This repo is a prototype for Survey 6 project of ScoreLabs
Please find better quality video here
Project: Ipv6 is the internet's future, and it necessitated a more scalable survey tool to comprehend how routing and DNS function. The purpose of this project is to create an IPv6 listener that will passively collect IPv6 traffic data as a passive data collection tool for cyber security research.
Prototype: In this protype,
- The probe captures the IPv4 packets
- It sends dummy packet using gRPC requests to the server whenever the host network is idle for more than 5 seconds.
- The probe sends heart beats to the server every 2 seconds for health check. This is again done using gRPC.
The server collects the pulses and logs them in the terminal.
The server also logs the recieved dummy packet number.
- libpcap
- gRPC
.
├── ip6.proto
├── server
│ ├── server.py
├── probe
│ ├── CMakeLists.txt
│ └── client.cc
├── screenshots
└── README.md
- You need version 3.13 or later of cmake. Install it by following these instructions:
sudo apt install -y cmake
cmake --version
- Install the basic tools required to build gRPC:
sudo apt install -y build-essential autoconf libtool pkg-config
- gRPC for C++ : follow this guide or follow the installation guide here
export MY_INSTALL_DIR=$HOME/.local
mkdir -p $MY_INSTALL_DIR
export PATH="$MY_INSTALL_DIR/bin:$PATH"
git clone --recurse-submodules -b v1.45.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc
cd grpc
mkdir -p cmake/build
pushd cmake/build
cmake -DgRPC_INSTALL=ON \
-DgRPC_BUILD_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=$MY_INSTALL_DIR \
../..
make -j
make install
popd
- Python 3.5 or higher
- pip version 9.0.1 or higher
- Create Virtual Environment
python -m pip install virtualenv
virtualenv venv
source venv/bin/activate
- gRPC for python : follow this guide or follow the installation guide here. Inside the virtual environment. Install gRPC
python -m pip install grpcio
Install gRPC tools
python -m pip install grpcio-tools
Current dependencies and requirements are as per linux based systems
- Activate the virtual environment
source venv/bin/activate
- Clone the repository
git clone https://github.com/dhruvi29/survey6-prototype
cd survey6-prototype
- Generate gRPC code for python server
cd server
python -m grpc_tools.protoc -I../ --python_out=. --grpc_python_out=. ../ip6.proto
- Run Server
python server.py
- Build probe - In a new terminal
cd probe
mkdir -p cmake/build
cd cmake/build
cmake -DCMAKE_PREFIX_PATH=$MY_INSTALL_DIR ../..
make
- Run Probe
./client