mirror of
https://github.com/angolo40/mikrocata2selks.git
synced 2025-05-09 15:07:22 +00:00
147 lines
4.5 KiB
Bash
Executable File
147 lines
4.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
### START EDIT SETTINGS
|
|
|
|
# Path where to install SELKS files
|
|
PATH_SELKS=$HOME/SELKS
|
|
|
|
# SETUP CONFIG SCRIPT
|
|
INSTALL_DUMMY_INTERFACE=true
|
|
INSTALL_MIKROCATA_SERVICE=true
|
|
INSTALL_SELKS=true
|
|
|
|
HOW_MANY_MIKROTIK=1 #Min 1 Mikrotik
|
|
|
|
### END EDIT SETTINGS
|
|
|
|
echo "--- Install required package ---"
|
|
|
|
apt-get install ca-certificates curl wget unzip tcpdump gnupg lsb-release build-essential python3-pip python3-pyinotify python3-ujson python3-librouteros python3-requests git htop libpcap-dev -y
|
|
|
|
PATH_GIT_MIKROCATA=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
|
sed -i '/SELKS_CONTAINER_DATA_SURICATA_LOG=/c\SELKS_CONTAINER_DATA_SURICATA_LOG="'$PATH_SELKS'/docker/containers-data/suricata/logs/"' "$PATH_GIT_MIKROCATA/mikrocata.py"
|
|
|
|
HOW_MANY_MIKROTIK=$(( $HOW_MANY_MIKROTIK - 1 ))
|
|
|
|
docker -v
|
|
if [ $? -eq 128 ]; then
|
|
echo "--- Installing docker ---"
|
|
curl -fsSL https://get.docker.com/ | sh
|
|
else
|
|
echo "--- Docker already installed ---"
|
|
fi
|
|
|
|
if $INSTALL_DUMMY_INTERFACE
|
|
then
|
|
echo "--- Install packet sniffer interface ---"
|
|
wget -P /opt https://github.com/thefloweringash/tzsp2pcap/archive/master.zip
|
|
cd /opt
|
|
unzip /opt/master.zip
|
|
cd /opt/tzsp2pcap-master/
|
|
make
|
|
make install
|
|
|
|
wget -P /opt https://github.com/appneta/tcpreplay/releases/download/v4.4.2/tcpreplay-4.4.2.tar.gz
|
|
cd /opt
|
|
tar -xf /opt/tcpreplay-4.4.2.tar.gz -C /opt
|
|
cd /opt/tcpreplay-4.4.2/
|
|
./configure
|
|
make
|
|
make install
|
|
|
|
num=0
|
|
while [ $num -le $HOW_MANY_MIKROTIK ]
|
|
do
|
|
echo "--- Creating interface ---"
|
|
cp $PATH_GIT_MIKROCATA/tzsp.netdev /etc/systemd/network/tzsp$num.netdev
|
|
cp $PATH_GIT_MIKROCATA/tzsp.network /etc/systemd/network/tzsp$num.network
|
|
cmd="tzsp$num"
|
|
sed -i "s/tzsp0/$cmd/g" /etc/systemd/network/tzsp$num.netdev
|
|
sed -i "s/tzsp*/$cmd/g" /etc/systemd/network/tzsp$num.network
|
|
cmd="25$num"
|
|
sed -i "s/254/$cmd/g" /etc/systemd/network/tzsp$num.network
|
|
num=$(( $num + 1 ))
|
|
done
|
|
systemctl enable systemd-networkd
|
|
systemctl restart systemd-networkd
|
|
|
|
port=37008
|
|
num=0
|
|
while [ $num -le $HOW_MANY_MIKROTIK ]
|
|
do
|
|
echo "--- Create service for interface dummy ---"
|
|
cp $PATH_GIT_MIKROCATA/TZSPreplay@.service /etc/systemd/system/TZSPreplay$port@.service
|
|
cmd="tzsp2pcap -p $port"
|
|
sed -i "s/tzsp2pcap/$cmd/g" /etc/systemd/system/TZSPreplay$port@.service
|
|
systemctl enable --now TZSPreplay$port@tzsp$num.service
|
|
num=$(( $num + 1 ))
|
|
port=$(( $port + 1 ))
|
|
done
|
|
fi
|
|
|
|
if $INSTALL_MIKROCATA_SERVICE
|
|
then
|
|
|
|
num=0
|
|
while [ $num -le $HOW_MANY_MIKROTIK ]
|
|
do
|
|
echo "--- Installing Mikrocata and his service ---"
|
|
cp $PATH_GIT_MIKROCATA/mikrocata.py /usr/local/bin/mikrocataTZSP$num.py
|
|
chmod +x /usr/local/bin/mikrocataTZSP$num.py
|
|
sed -i "s/tzsp0/tzsp$num/g" /usr/local/bin/mikrocataTZSP$num.py
|
|
mkdir -p /var/lib/mikrocata
|
|
touch /var/lib/mikrocata/savelists-tzsp$num.json
|
|
touch /var/lib/mikrocata/uptime-tzsp$num.bookmark
|
|
touch /var/lib/mikrocata/ignore-tzsp$num.conf
|
|
cp $PATH_GIT_MIKROCATA/mikrocata.service /etc/systemd/system/mikrocataTZSP$num.service
|
|
cmd="mikrocataTZSP$num.py"
|
|
sed -i "s/mikrocata.py/$cmd/g" /etc/systemd/system/mikrocataTZSP$num.service
|
|
systemctl enable --now mikrocataTZSP$num.service
|
|
num=$(( $num + 1 ))
|
|
done
|
|
|
|
fi
|
|
|
|
if $INSTALL_SELKS
|
|
then
|
|
echo "--- Start SELKS Installer ---"
|
|
|
|
git clone https://github.com/StamusNetworks/SELKS.git $PATH_SELKS
|
|
cd $PATH_SELKS/docker/
|
|
|
|
num=0
|
|
cmd=""
|
|
cmd2=""
|
|
while [ $num -le $HOW_MANY_MIKROTIK ]
|
|
do
|
|
cmd2="$cmd2 -i tzsp$num"
|
|
num=$(( $num + 1 ))
|
|
done
|
|
|
|
./easy-setup.sh --non-interactive $cmd2 --iA --restart-mode always --es-memory 6G
|
|
docker compose up -d
|
|
|
|
fi
|
|
|
|
echo "--- INSTALL COMPLETED ---"
|
|
echo "--- "
|
|
echo "--- "
|
|
port=37008
|
|
num=0
|
|
while [ $num -le $HOW_MANY_MIKROTIK ]
|
|
do
|
|
echo "--- MIKROTIK $num"
|
|
echo "--- Port: $port "
|
|
echo "--- Local Interface: tzsp$num"
|
|
echo "--- SERVICEs:"
|
|
echo "--- --- ----: Mikrocata: Edit '/usr/local/bin/mikrocataTZSP$num.py' with your info and then reload service --> 'systemctl restart mikrocataTZSP$num.service'"
|
|
echo "--- --- --- : Interface: TZSPreplay$port@tzsp$num.service --> 'systemctl status TZSPreplay$port@tzsp$num.service'"
|
|
echo "--- "
|
|
num=$(( $num + 1 ))
|
|
port=$(( $port + 1 ))
|
|
done
|
|
echo "--- "
|
|
echo "--- "
|
|
echo "--- Remember to configure Mikrotik"
|
|
echo "--- "
|