мега скрипт от атак на ssh и ftp
Добавлено: 2010-01-18 11:42:36
Всем привет. Наткнулся на интересный сайтик bsdmag.org. На нем выложены для безплатного скачивания много журналов, если точнее все выпуски в формате pdf. В одном из номеров есть очень интересная статейка про защиту ssh от подбора паролей. Интересность скрипта в том, что он блочит при первой неудачной авторизации. На мой сервак все время ломятся кул-хацкеры с разных адресов с тупым брутфорсом:
Сама ситуевина уже начала напрягать. Ставил sshguard-pf не особо помог, т.к. блокирует после нескольких попыток с одного ip.
Вот сам скрипт:
После создания скрипта, в статье просят создать строку в syslog.conf
Далее создать это:
Так как я не очень с программированием хочу обратиться с вопросом, как этот скрипт корректно запустить. После всех предложенных выше манипуляций скрипт при запуске вываливается со следующей ошибкой:
Код: Выделить всё
Jan 18 11:19:31 server sshd[84513]: error: PAM: authentication error for mysql from 85.255.198.72
Jan 18 11:19:50 server sshd[84516]: error: PAM: authentication error for mysql from 209.85.66.237
Jan 18 11:20:10 server sshd[84522]: error: PAM: authentication error for mysql from 94.77.211.84
Jan 18 11:20:27 server sshd[84525]: error: PAM: authentication error for mysql from 213.163.8.115
Jan 18 11:20:49 server sshd[84528]: error: PAM: authentication error for mysql from 210.188.217.116
Jan 18 11:21:08 server sshd[84531]: error: PAM: authentication error for mysql from 113.100.130.6
Jan 18 11:21:27 server sshd[84534]: error: PAM: authentication error for mysql from 217.196.78.73
Jan 18 11:21:49 server sshd[84537]: error: PAM: authentication error for mysql from 80.153.71.4
Jan 18 11:22:01 server sshd[84540]: error: PAM: authentication error for mysql from 145.253.72.56
Jan 18 11:22:23 server sshd[84556]: error: PAM: authentication error for mysql from 201.38.0.130
Jan 18 11:22:39 server sshd[84559]: error: PAM: authentication error for mysql from 195.23.253.200
Jan 18 11:23:18 server sshd[84564]: error: PAM: authentication error for mysql from 113.100.128.20
Jan 18 11:23:18 server sshd[84562]: error: PAM: authentication error for mysql from 217.194.178.105
Jan 18 11:23:42 server sshd[84568]: error: PAM: authentication error for mysql from 202.185.77.110
Jan 18 11:23:46 server sshd[84571]: error: PAM: authentication error for mysql from 121.10.42.237
Jan 18 11:24:02 server sshd[84574]: error: PAM: authentication error for mysql from web.y-x.at
Jan 18 11:24:24 server sshd[84577]: error: PAM: authentication error for mysql from 112.96.28.75
Jan 18 11:24:39 server sshd[84580]: error: PAM: authentication error for mysql from 83.218.216.254
Jan 18 11:24:58 server sshd[84583]: error: PAM: authentication error for mysql from 71.5.35.93
Jan 18 11:25:22 server sshd[84589]: error: PAM: authentication error for mysql from suse.kitusa.netВот сам скрипт:
Код: Выделить всё
infoblog# cat protection-script.sh
#!/bin/sh
allowed_ips="192.168.0.2"
while read line
do
list='echo $line | grep "invalid user" | awk '//{print $13}''
echo $line >> /var/log/auth0
for i in $list
do
is_exists='cat /etc/pf.conf | grep $i | grep block'
for a in $allowed_ips
do
if expr "$a" : "\(.*$i.*\)";
then
echo "$i is allowed to connect to us. We forgive it!"
echo "$i is allowed to connect to us. We forgive it!" >> /var/log/auth1
break 2;
fi
done
length='${#is_exists}'
echo $length
if expr "$length" "<" "1";
then
echo "$i just crossed the line. This source IP has been blocked!"
echo "$i just crossed the line. This source IP has been blocked!" >> /var/log/auth2
#echo "block in from $i" >> /etc/pf.conf
echo "ipfw -q add deny all from $i to any" >> /etc/ipfw.rules
ipfw -q add deny all from $i to any
fi
done
done < /var/log/auth.pipe
Код: Выделить всё
auth.info;authpriv.info /var/log/auth.pipeКод: Выделить всё
#mkfifo /var/log/auth.pipeКод: Выделить всё
server# ./protection-script.sh
^C./protection-script.sh: cannot open /var/log/auth.pipe: Interrupted system call
server#