CICFlowMeter安装及使用体验

个人博客文章:CICFlowMeter安装及使用体验

文章目录

  • 一、安装环境
    • 1 Java 安装
    • 2 Maven 安装
      • Maven 换源
    • 3 Git 安装
    • 4 安装 gradle
    • 5 安装 libpcap
      • 下载libpcap
      • 安装依赖包
      • 编译和安装
      • 测试
    • 6. IDEA
  • 二、导入项目
    • 1 克隆项目
    • 2 导入项目
    • 3 安装 mvn 包
    • 4 gradle 换源
  • 三、构建项目
  • 四、体验
    • 1 Realtime
    • 2 Offline

CICIDS 数据集是 Canadian Institute for Cybersecurity 使用他们自己开源的 CICFlowMeter 进行流量特征提取,维度高达80多,并可生成 csv 文件,提供实时捕获和离线 pcap 两种方式。

CICFlowMeter 官方开源地址:https://github.com/ahlashkari/CICFlowMeter

CICFlowMeter 相关介绍:https://www.unb.ca/cic/research/applications.html#CICFlowMeter

实验环境

  • 虚拟机 Ubuntu x64 18.04

一、安装环境

1 Java 安装

执行 $ sudo apt update

执行 $ java -version 若报未安装,提示

$ apt install default-jre
$ apt install openjdk-11-jre-headless
$ apt install openjdk-8-jre-headless
$ apt install openjdk-9-jre-headless

直接根据提示安装即可。

2 Maven 安装

$ sudo apt install maven

Maven 换源

搬运:@一天_pika:Linux下配置Maven中心源

$ mvn -v 查看 maven 安装路径

Ubuntu 一般在 /usr/share/maven/conf

$ cd /usr/share/maven/conf
# 编辑配置文件
$ vi seetings
粘贴下面的源

    alimaven
    aliyun maven
    http://maven.aliyun.com/nexus/content/groups/public/
    central


    ui
    central
    Human Readable Name for this Mirror.
    http://uk.maven.org/maven2/


    jboss-public-repository-group
    central
    JBoss Public Repository Group
    http://repository.jboss.org/nexus/content/groups/public


    repo2
    central
    Human Readable Name for this Mirror.
    http://repo2.maven.org/maven2/


    OSChina
    OSChina Central
    http://maven.oschina.net/content/groups/public/
    central


    nexus-osc-thirdparty
    thirdparty
    Nexus osc thirdparty
    http://maven.oschina.net/content/repositories/thirdparty/

3 Git 安装

$ sudo apt install git

4 安装 gradle

$ sudo apt install gradle

5 安装 libpcap

全程参考:@JPLAY0:Linux安装libpcap(pcap.h库)(以Ubuntu 18.04为例)

下载libpcap

官网:https://www.tcpdump.org/#latest-releases

安装依赖包

libpcap 是unix/linux 平台下的网络数据包捕获函数包,安装它需要安装它的依赖包。

$ sudo apt-get update
$ sudo apt-get install flex bison byacc 

编译和安装

# 进入存放 libpcap-x.x.x.tar.gz 的目录
$ cd ?/

# 解压
$ tar -zxvf libpcap-x.x.x.tar.gz

# 进入 libcap 解压后的目录
$ cd libpcap-x.x.x
#  编译安装
$./configure
$ make
$ sudo make install

测试

新建一个 test.c

#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;
}  

拷贝 lib 文件

$ sudo cp /usr/local/lib/libpcap.so.1 /usr/lib/

编译运行

$ cd ?/
# gcc 编译
$ gcc test.c -lpcap -o test
# 测试
$ sudo ./test

测试成功如下截图

CICFlowMeter安装及使用体验_第1张图片

6. IDEA

https://www.jetbrains.com/idea/下载 Linux 版

$ 解压一般放置 /opt/
$ cd idealxxxxxxx/bin/
# 运行
$ ./idea.sh

二、导入项目

1 克隆项目

$ git clone https://github.com/ahlashkari/CICFlowMeter.git

2 导入项目

导入项目到 IDEA 中

3 安装 mvn 包

# 打开 IDEA 中的 Terminal
$ cd pathtoproject/jnetpcap/linux/jnetpcap-1.4.r1425
# 安装
$ mvn install:install-file -Dfile=jnetpcap.jar -DgroupId=org.jnetpcap -DartifactId=jnetpcap -Dversion=1.4.1 -Dpackaging=jar

4 gradle 换源

打开项目文件 build.grade 修改 repositories

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

三、构建项目

$ sudo su

$ gradle execute

四、体验

1 Realtime

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E06gv1DS-1584671450164)(/Users/ashin/Desktop/截屏2020-02-20上午10.09.24.png)]

监听的网卡还没发货~ 待更新

2 Offline

支持将 pcap 抓包文件转换 csv 文件。

CICFlowMeter安装及使用体验_第2张图片

你可能感兴趣的:(机器学习)