IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)

这里写目录标题

  • 一、前言:
  • 二、环境配置
    • (一)、java安装
      • 1.linux本身无java环境
      • 2.如果系统已经有了`openjdk`环境
      • 3.已经带有`jdk1.8.0`
    • (二)`Maven` 安装
      • Maven 换源
    • (三)Git安装
    • (四)安装 gradle
    • (五)安装libpacp
    • (六)IntellJ IDEA
    • (七)下载CICFlowMeter
  • 三、IDEA中导入CICFlowMeter-master并配置IDEA
  • 四、CIC-IDS-2017数据集下载

一、前言:

根据该教程(参考博文:阿蕉(作者)
-CICFlowMeter使用)使用windows环境进行配置时,总是在offlineline分析CIC-IDS-2017数据集中的pcap文件时异常退出。如下图所示的错误,可能是jdk的问题吧(版本没错),改了太多次也不想再折腾了,干脆在VMwork Station中的kali虚拟机里尝试一下,就成功了。
IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第1张图片
IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第2张图片

在这里插入图片描述

二、环境配置

参考博文-CSDN-Ashin Wang’s Blog-CICFlowMeter安装及使用体验注:本文在配置时使用oracle的jdk1.8.0,使用前述博文所说的openjdk不能够成功进行数据集操作

(一)、java安装

1.linux本身无java环境

参考博文-景天zy(作者)-Kali安装JDK 1.8的详细过程
如果终端中键入java -version报错,显示没有java的话,则直接使用本链接进行jdk1.8.0下载,
华为云jdk_1.8.0_202下载

sudo vim /etc/profile

在文件的最后添加:(ps:也可以在~/.bashrc或者~/.zshrc这样的配置文件中添加)

# install JAVA JDK
export JAVA_HOME=/opt/jdk1.8.0_202
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

退出后键入命令:(修改了其他文件则进行相应操作如source ~/.bashrc或者source ~/.zshrc)

source vim /etc/profile

通知系统java的位置(注意这里的版本号一定要和安装的版本号一样,否则出错!!)

sudo update-alternatives --install /usr/bin/java javac /opt/jdk1.8.0_202/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_202/bin/javac 1
sudo update-alternatives -set java /opt/jdk1.8.0_202/bin/java
sudo update-alternatives --set javac /opt/jdk1.8.0_202/bin/javac

2.如果系统已经有了openjdk环境

要先卸载原有环境:

sudo apt-get remove openjdk-11-jre
sudo apt-get remove openjdk-11-jre-headless 

注意,这里可能会执行完上述指令,还会有openjdk,那么就再执行一次上述命令。
卸载之后重复第一点内容。

3.已经带有jdk1.8.0

比如:
在这里插入图片描述
则直接进行下一步

(二)Maven 安装

sudo apt install maven

Maven 换源

参考博文:CSDN-一天_pika(作者)-Linux下配置Maven中心源
maven的安装目录下(Ubuntukali默认为:‘/usr/share/maven/conf’)编辑setting.xml文件
(ps:本文并没有修改settings.xml文件,而是新建了settings文件,没有影响到最终结果,若发现问题之后会修改)

sudo vim /usr/share/maven/conf/settings

在其中添加如下内容:

<mirror>
    <id>alimavenid>
    <name>aliyun mavenname>
    <url>http://maven.aliyun.com/nexus/content/groups/public/url>
    <mirrorOf>centralmirrorOf>
mirror>
<mirror>
    <id>uiid>
    <mirrorOf>centralmirrorOf>
    <name>Human Readable Name for this Mirror.name>
    <url>http://uk.maven.org/maven2/url>
mirror>
<mirror>
    <id>jboss-public-repository-groupid>
    <mirrorOf>centralmirrorOf>
    <name>JBoss Public Repository Groupname>
    <url>http://repository.jboss.org/nexus/content/groups/publicurl>
mirror>
<mirror>
    <id>repo2id>
    <mirrorOf>centralmirrorOf>
    <name>Human Readable Name for this Mirror.name>
    <url>http://repo2.maven.org/maven2/url>
mirror>
<mirror>
    <id>OSChinaid>
    <name>OSChina Centralname>
    <url>http://maven.oschina.net/content/groups/public/url>
    <mirrorOf>centralmirrorOf>
mirror>
<mirror>
    <id>nexus-osc-thirdpartyid>
    <mirrorOf>thirdpartymirrorOf>
    <name>Nexus osc thirdpartyname>
    <url>http://maven.oschina.net/content/repositories/thirdparty/url>
mirror>

(三)Git安装

 sudo apt install git

(四)安装 gradle

 sudo apt install gradle

(五)安装libpacp

参考博文-CSDN-JPLAY0(作者)-Linux安装libpcap(pcap.h库)(以Ubuntu 18.04为例)
注意 上述参考博文使用的libpcap版本非最新版,使用最新版运行上述博文中的test.c样例将会报错,因此本文下载libpcap的版本为1.8.1(ps:参考博文-CSDN-老李头带你看世界(作者)-libpcap编译遇到的问题 ‘pcap_lookupdev’ is deprecated)

libpcap1.8.1下载链接: https://pan.baidu.com/s/1myW_DpC3Nlj5EtkdYzNpdQ?pwd=1111
提取码: 1111

cd ~
sudo apt-get install flex bison byacc
# 拷贝 lib 文件(为避免运行test.c出现报错)
sudo cp libpcap.so.1 /usr/lib/

载完成后tar -zxvf 文件名.tar.gz 解压,cd进入源码目录

./configure
make
sudo make install

现在进行测试:(ps:此处的测试代码与参考博文的代码在头文件引用上有所不同,多引用了一个头文件#include ,以防止出现isprint函数的相关报错。参考博文-菜鸟教程-菜鸟教程(作者)-C 库函数 - isprint())

#include 
#include 
#include 
#include 

#define MAXBYTE2CAPTURE 2048

void processPacket(u_char *arg, const struct pcap_pkthdr *pkthdr, const u_char *packet) {
  int i = 0, *counter = (int *) arg;
  printf("Packet Count: %d\n", ++(*counter));
  printf("Received Packet Size: %d\n", pkthdr->len);
  printf("Payload:\n");
  for (i = 0; i < pkthdr->len; i++) {
    if (isprint(packet[i]))
      printf("%c ", packet[i]);
    else
      printf(". ");
    if ((i % 16 == 0 && i != 0) || i == pkthdr->len - 1)
      printf("\n");
  }
  return;
}

int main() {
  int i = 0, count = 0;
  pcap_t *descr = NULL;
  char errbuf[PCAP_ERRBUF_SIZE], *device = NULL;
  memset(errbuf, 0, PCAP_ERRBUF_SIZE);
  /* Get the name of the first device suitable for capture */
  device = pcap_lookupdev(errbuf);
  printf("Opening device %s\n", device);
  /* Open device in promiscuous mode */
  descr = pcap_open_live(device, MAXBYTE2CAPTURE, 1, 512, errbuf);
  /* Loop forever & call processPacket() for every received packet */
  pcap_loop(descr, -1, processPacket, (u_char *) &count);
  return 0;
}  

键入如下命令验证libpcap安装是否成功

gcc test.c -lpcap -o test
# 没有sudo会报段错误
sudo ./test

IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第3张图片

(六)IntellJ IDEA

在官网https://www.jetbrains.com/idea/下载Community Edition
解压一般放置在 /opt/

# 修改下述内容为本机对应IDEA文件夹名称
cd /opt/idea-IC-222.4345.14/bin
# 运行
./idea.sh

(七)下载CICFlowMeter

cd ~
git clone https://github.com/ahlashkari/CICFlowMeter.git
unzip CICFlowMeter-master.zip

三、IDEA中导入CICFlowMeter-master并配置IDEA

IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第4张图片
选择open,打开CICFlowMeter-master文件

IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第5张图片
下图划线JDK home path位置改为刚刚下载的jdk的位置。

IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第6张图片
SDKs的上面有有关Modules的设置,在Dependencies里添加右下角划线的两个内容,其中jnetpcap.jar对应导入后的jnetpcap.jarlibjnetpcap.so对应导入后的Empty Library勾选导入后的两个内容(下图中之前已经配置过一些内容,所以已经存在了一个Empty Library),应用这些更改后的设置。
IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第7张图片
下图划线位置打开terminal
IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第8张图片
键入下述命令

cd jnetpcap/linux/jnetpcap-1.4.r1425
mvn install:install-file -Dfile=jnetpcap.jar -DgroupId=org.jnetpcap -DartifactId=jnetpcap -Dversion=1.4.1 -Dpackaging=jar

更改CICFlowMeter-master目录下的build.grade配置文件,
将参考博文-CSDN-_飞行员舒克(作者)-CICFlowMeter工具ubuntu启动时出现“Could not find org.jnetpcap:jnetpcap:1.4.1.”问题的解决办法

compile group: 'org.jnetpcap', name: 'jnetpcap', version:'1.4.1'

改为

compile group: 'jnetpcap', name: 'jnetpcap', version:'1.4.r1425-1g'

以及将: repositories的内容改为

repositories {
    mavenLocal()
    //  maven 中心源
    //  mavenCentral()
    //  maven 阿里源
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
}

回到IDEAterminal
键入命令

sudo ./gradle execute
# 如果不行键入下述命令:
sudo su
# 进入超级权限后
./gradle execute

选择要分析的pcap文件和生成文件要放入的目录。
IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第9张图片
IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第10张图片

成功生成csv文件

IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第11张图片

IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第12张图片

IntelliJ IDEA+CICFlowMeter实现对CIC-IDS-2017数据集特征提取(含数据集及linux下IntelliJ IDEA配置和部分错误的解决方法)_第13张图片

四、CIC-IDS-2017数据集下载

参考博文-CSDN-iioSnail
(作者)-CICIDS2017数据集(百度网盘链接)

百度网盘下载数据集链接: https://pan.baidu.com/s/1zyKyVHPlKMBfF2Wkk3RQqA?pwd=1111
提取码: 1111

官网:https://www.unb.ca/cic/datasets/ids-2017.html

官网数据地址:http://205.174.165.80/CICDataset/CIC-IDS-2017/

你可能感兴趣的:(工具使用,intellij-idea,linux,java)