MininetIDS is a consolidated environment for training, testing, and deploying Machine Learning-based Intrusion Detection Systems (ML-IDS) in Software-Defined Networks (SDN). It leverages Mininet for network emulation and the Ryu controller for SDN management, providing a comprehensive platform for researchers and network security professionals to develop and evaluate advanced IDS solutions in SDN environments.
- Dataset management (import, select, analyze, preprocess)
- Machine learning model training (Logistic Regression, KNN, Naive Bayes, Decision Tree, Random Forest)
- Network topology management
- Integration with Ryu controller for IDS functionality
- Feature selection and data preprocessing tools
MininetIDS comes with two pre-included datasets for testing and evaluation:
-
MininetFlows
- Generated using Mininet
- Contains DoS attacks:
- ICMP flood
- TCP SYN flood
- UDP flood
- LAND attack
- Includes normal traffic:
- HTTP
- TCP
- UDP
- ICMP
-
NSL-KDD
- Widely used benchmark dataset for network intrusion detection research
- Improved version of the original KDD Cup 1999 dataset
- Contains various types of network attacks and normal traffic
These datasets provide a starting point for testing and evaluating IDS models within the MininetIDS environment. The MininetFlows dataset offers simulated traffic that closely matches the Mininet environment, while NSL-KDD provides a standard benchmark for comparison with other IDS research.
- Update your system:
sudo apt-get update
- Install Git:
sudo apt-get install git
- Clone the repository:
git clone https://github.com/ranauzairahmed/MininetIDS.git
- Navigate to the project directory:
cd MininetIDS
- If you already have Mininet and Ryu working properly:
pip install -r requirements.txt
- Otherwise, make the installation script executable:
chmod +x install.sh
- Run the installation script:
./install.sh
To start the MininetIDS interface, run:
python3 MininetIDS.py
This will launch the command-line interface where you can use various commands to manage datasets, train models, and control the IDS.
For a full list of commands, use the help
command in the MininetIDS interface.
Associated with Capital University of Science & Technology
Faculty of Computing
BSCS - Final Year Project
Dr. Muhammad Siraj Rathore
[email protected]
Faculty Profile
Google Scholar
ResearchGate
Rana Uzair Ahmed
[email protected]
LinkedIn
Raja Tayyab Nawaz
[email protected]
LinkedIn