# Interlayer5.0 **Repository Path**: inceJ/Interlayer5.0 ## Basic Information - **Project Name**: Interlayer5.0 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-14 - **Last Updated**: 2020-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 基于交互状态图的Fuzzing测试系统 ### 简介 本测试系统主要针对各类SDN控制器和SDN交换机进行漏洞发现测试, Fuzzing测试是黑盒测试中的一种,基于OpenFlow协议, 以及基于事件驱动和交互状态机控制, 系统构造各种有效、半有效、无效、畸形OpenFlow报文发送到 被测控制器或交换机,挖掘控制器或交换机的漏洞。 此系统可用于测试: - SDN控制器 - 真实SDN交换机 - 虚拟SDN交换机 针对真实交换机和虚拟交换机的不同,系统部署略有不同。 如果测试时用的是真实交换机,则直接需两台虚拟机和一台真实交换机, 其中一台虚拟机用于部署各种控制器,另外一台用于部署系统代码。 如果是针对虚拟交换机,还需增加一台虚拟机来部署mininet。 ### 安装步骤 1. 控制器虚拟机安装: 控制器虚拟机负责运行各类控制器,所以需将被测控制器先安装好。 - 基本环境安装: ``` sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y wget unzip git openssh-server #uninstall python-pip sudo apt-get remove python-pip -y #install easy_install sudo apt-get install python-setuptools python-dev build-essential -y #install pip by easy_install sudo easy_install pip ``` - 安装java8和maven > 见附录 - 配置java8和maven环境变量 > 见附录 - ONOS安装 ``` ``` - ODL安装 ``` ``` -Floodlight安装 ``` #!/bin/bash sudo apt-get install build-essential ant maven python-dev -y git clone git://github.com/floodlight/floodlight.git cd floodlight git submodule init git submodule update ant sudo mkdir /var/lib/floodlight sudo chmod 777 /var/lib/floodlight ``` - Ryu安装 ``` #!/bin/bash git clone https://github.com/osrg/ryu.git #安装ryu,pip-requires这个足够了,上面的可注释 cd ryu sudo pip install -r tools/pip-requires sudo python setup.py install ``` - POX安装 ``` git clone https://github.com/noxrepo/pox ``` 2. 系统代码部署虚拟机安装 - 基本环境安装 ``` sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y wget unzip git openssh-server #uninstall python-pip sudo apt-get remove python-pip -y #install easy_install sudo apt-get install python-setuptools python-dev build-essential -y #install pip by easy_install sudo easy_install pip ``` 3. 部署虚拟交换机虚拟机安装 - 基本环境安装 ``` ``` - mininet安装 ``` #!/bin/bash sudo apt-get install git -y git clone https://github.com/mininet/mininet.git cd mininet git checkout -b 2.2.2 2.2.2 util/install.sh -nfv cd ; ``` ### 运行 ``` 1. 打开config.properties,修改相关配置 2. 运行./build.sh,编译文件,产生output文件夹 3. cd output 4. ./run.sh ``` 查看日志:打开output/logs/查看相关日志 ### 附录 - 安装java8和maven ``` #!/bin/bash # install oracle-jdk 1.8 echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections sudo apt-get install software-properties-common -y sudo add-apt-repository ppa:webupd8team/java -y sudo apt-get update && sudo apt-get install oracle-java8-installer -y sudo apt-get install oracle-java8-set-default -y #install maven sudo apt-get install wget -y cd; mkdir Applications cd Downloads wget http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/ ``` - 配置java8和maven环境变量 打开.bashrc,在文末添加如下内容后保存,然后运行source .bashrc ``` # Setup some environmental context for developers if [ -z "${JAVA_HOME}" ]; then if [ -x /usr/libexec/java_home ]; then export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) elif [ -d /usr/lib/jvm/java-8-oracle ]; then export JAVA_HOME="/usr/lib/jvm/java-8-oracle" elif [ -d /usr/lib/jvm/java-8-openjdk-amd64 ]; then export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" fi fi export MAVEN=${MAVEN:-~/Applications/apache-maven-3.3.9} export MAVEN_OPTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -XX:TieredStopAtLevel=1" export PATH="$PATH:$MAVEN/bin" ``` - 设置sudo,免密获取root权限 ``` 设置sudo免密: sudo visudo 然后在%sudo下面添加一行: name ALL=(ALL) NOPASSWD:ALL 注意:name为用户名 ctrl+o保存 enter ctrl+x退出 ``` - 设置虚拟机ssh免密登陆 ``` # 执行下面命令生成本机密钥 $ cd ~ $ ssh-keygen -t rsa (Press Enter)(两次) # 复制密钥到控制器所在虚拟机和交换机所在虚拟机 $ ssh-copy-id -i ~/.ssh/id_rsa.pub $ ssh-copy-id -i ~/.ssh/id_rsa.pub