Swego czasu, na forum pojawił się taki wątek "
Banowanie ludkow łaczacych sie przez ssh".
W tym wątku kolega Czerwo zamieścił dwa skrypty, które u mnie wyglądają następująco:
#!/bin/sh
# blokowanie ip przy atakach po ssh
# skrypt zapisz w /etc/ssh pod nazwa blokada
# nadaj atrybut wykonywalnosci chmod 755 /etc/ssh/blokada
# sprawdzic atrybut i przynaleznosc pliku 'rwx r-- r-- nobody nograp'
#
if [ ! -r /etc/ssh/stare ]; then
touch /etc/ssh/stare
fi
for IP in `cat /var/log/auth | grep "Invalid user" | awk '{print $10}' | uniq` ;do
ile=`cat /var/log/auth | grep "Invalid user" | grep -w $IP | wc -l`
if [ $ile -gt 3 ]; then
echo $IP >> /etc/ssh/nowe
fi
done
if [ ! -r /etc/ssh/nowe ]; then
touch /etc/ssh/nowe
fi
for IP in `cat /etc/ssh/nowe` ;do
cat /etc/ssh/stare | grep -w $IP > /dev/null
let wynik=$?
if [ $wynik = 1 ]; then
iptables -I INPUT -s $IP -p tcp -j DROP
iptables -I FORWARD -s $IP -p tcp -j DROP
iptables -I INPUT -d $IP -p tcp -j DROP
iptables -I FORWARD -d $IP -p tcp -j DROP
echo $IP >> /etc/ssh/stare
fi
done
rm /etc/ssh/nowe
# do rc.local dopisac ponizsze ale odkratkowane
# ---------------w /etc/rc.d/rc.local--------
# or IP in `cat /etc/ssh/stare` ;do
# iptables -I INPUT -s $IP -p tcp -j DROP
# iptables -I FORWARD -s $IP -p tcp -j DROP
# iptables -I INPUT -d $IP -p tcp -j DROP
# iptables -I FORWARD -d $IP -p tcp -j DROP
# done
# ------------------------------------------
# do /var/spool/cron/root dopisac ponizsze odkratkowane
# za pomoca polecenia crontab -e root
# ---------/var/spool/cron/root------------
# */5 * * * * /etc/ssh/blokada
# ----------------------------------------
# jezeli chcemy odblokowac jakies ip bo nam sie zablokowalo to :
# ----------------kod:---------------------
##!/bin/sh
# IP="81.1.110.199"
# iptables -I INPUT -s $IP -p tcp -j ACCEPT
# iptables -I FORWARD -s $IP -p tcp -j ACCEPT
# iptables -I INPUT -d $IP -p tcp -j ACCEPT
# iptables -I FORWARD -d $IP -p tcp -j ACCEPT
# -----------------------------------------------
oraz skrypt:
#!/bin/sh
# odblokowanie ip po atakach po ssh
# dla skryptu czerwa.
# Moze byc przydatne jezeli iptables dluzej nie jest restartowane i regulki
# moglyby sie bardzo rozrosnac....
# zapisac jako /etc/ssh/czysc_bany
# nadac atrybut wykonywalnosci chmod 755 /etc/ssh/czysc_bany
# sprawdzic atrybut i przynaleznosc pliku 'rwx r-- r-- nobody nogrup'
# do pliku /var/spool/cron/root/ dopisac
# poleceniem crontab -e root
# ------------------------------------------
# */* 6 * * * /etc/ssh/czysc_bany
# ------------------------------------------
# odblokowywanie co 6 godzin
#
if [ -r /etc/ssh/stare ]; then
for IP in `cat /etc/ssh/stare` ;do
iptables -D INPUT -s $IP -p tcp -j DROP
iptables -D FORWARD -s $IP -p tcp -j DROP
iptables -D INPUT -d $IP -p tcp -j DROP
iptables -D FORWARD -d $IP -p tcp -j DROP
done
fi
Niestety w:
Pojawiają się zapisy tego typu:
13-Mar-2010 00:15 USER root pid 15716 cmd /etc/ssh/blokad
13-Mar-2010 00:19 failed user root parsing */* 5 * * * /etc/ssh/czysc_bany
a plik:
zawiera listę, jak się domyślam, adresów IP z pod których dokonywano próbę włamania do mnie po SSH.
Plik:
się nie pojawia w katalogu.
Pytanie brzmi:
Dlaczego cron wywala taki komunikat, jak mniemam potwierdzający odmowę wykonania skryptu „czysc_bany” i co należy zrobić, żeby ten problem usunąć?
Pozdrawiam
J