====== Banovátor ====== Sada scriptů nahrazující fail2ban na ssh, jelikož fail2ban měl problémy reagovat včas a nebyl schopen odfiltrovat burst útoky. Do /etc/rc.local přidat: # zinicializujeme banovátor /usr/local/bin/banovator-init.sh **TODO:** Předělat na ifup verzi post-up /usr/local/bin/script.sh a následně vytvořit tyhle tři spustitelné soubory v /usr/local/bin: * banovator-init.sh * banovator.sh * vycuc.sh #!/bin/bash ########################################## # Blokování SSH po 3 hitech na 5 minut # ########################################## dev_inet="eth0" # Výjimky které neblokovat iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -s 89.29.73.229 -j ACCEPT # Jeffrey iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -s 194.228.12.30 -j ACCEPT # Prace # Hlavní blokátor iptables -N SshLogBlock iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -m state --state NEW -m recent --update --seconds 300 --hitcount 3 -j SshLogBlock iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -m state --state NEW -m recent --set iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -j ACCEPT iptables -A SshLogBlock -j LOG --log-prefix "BLOCKED-SSH: " --log-ip-options iptables -A SshLogBlock -j DROP ### END blokování SSH ### #!/bin/bash iptables -D INPUT -j bany 2> /dev/null iptables -F bany iptables -X bany 2> /dev/null iptables -N bany iptables -I INPUT 1 -j bany cat /etc/banned-ip | while read ipka comment; do iptables -A bany -s $ipka -j DROP done #!/bin/bash grep -v pam_unix /var/log/auth.log | grep -v sudo | grep -E [[:digit:]]\.[[:digit:]]\.[[:digit:]]\.[[:digit:]] > /tmp/short-auth.log grep -v pam_unix /var/log/auth.log.1 | grep -v sudo | grep -E [[:digit:]]\.[[:digit:]]\.[[:digit:]]\.[[:digit:]] > /tmp/short-auth-old.log chmod 644 /tmp/short-auth* Následně vytvořit soubor **/etc/banned-ip**. Tento soubor je nyní prázdný ale následně do něj budeme kopírovat spamující IP. Formát řádku: IPVolitelný komentář Komentář je volitelný a je scripty úplně ignorován. Slouží jen adminům. Dále je zapotřebí modifikovat **/etc/rsyslog.conf** následujícím způsobem: ############### #### RULES #### ############### # # First some standard log files. Log by facility. # :msg, contains, "BLOCKED-SSH" -/var/log/blocked-ssh.log a restartovat rsyslog: sudo /etc/init.d/rsyslog restart spustit ručně: banovator-init.sh a přidat do cronu následující řádky: */5 * * * * root /usr/local/bin/vycuc.sh &> /dev/null */5 * * * * root /usr/local/bin/banovator.sh &> /dev/null Tímto máme základní instalaci hotovou. Celek je funkční, do **/var/log/blocked-ssh.log** se logují veškeré blokované přístupy na SSH. Je na ctěném užovatelstvu jak si vylistuje které IP spamují. Mám na to [[banana_pi_m2u:lighttpd:banovator_web|webík]] který je ale mimo téma této stránky