Защита от подбора пароля по SSH силами IPTABLES
Добавлено: 25 ноя 2022, 12:21
Сей код для того, чтоб не дать возможности подключиться на 22 порт по SSH боле 4 раз за последнюю минуту. Остальные коннекты будут обрываться .
Просто скопировать этот код в командную строку и он сам всё сделает. Если побаловались фаерволом - то идёт проверка каждые три часа, если нет правил, то заново применяцца правила.
Просто скопировать этот код в командную строку и он сам всё сделает. Если побаловались фаерволом - то идёт проверка каждые три часа, если нет правил, то заново применяцца правила.
Код: Выделить всё
#!/bin/bash
mkdir /root/bin
touch /root/bin/ssh_brutforce.sh
chmod +x /root/bin/ssh_brutforce.sh
touch /root/bin/ssh.sh
chmod +x /root/bin/ssh.sh
cat <<EOCONFIG > /root/bin/ssh_brutforce.sh
#!/bin/sh
iptables -t filter -A INPUT -p tcp --destination-port 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -t filter -A INPUT -p tcp --destination-port 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_BRUTFORCE: "
iptables -t filter -A INPUT -p tcp --destination-port 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
EOCONFIG
cat <<EOCONFIG >> /etc/crontab
# ssh brutforce
* */3 * * * root /root/bin/ssh.sh > /dev/null 2>&1
EOCONFIG
cat <<EOCONFIG > /root/bin/ssh.sh
#!/bin/bash
ssh=`iptables -n -L | grep SSH_BRUTFORCE | awk '{print $27}'`
if [ -z "$ssh" ]; then
cd /root/bin && ./ssh_brutforce.sh
fi
exit
EOCONFIG