Вовзращаясь к предыдущему посту о защите ssh от брутфорса , хочу рассмотреть установку и настройку такого приложения как SSHGuard.
Программа сканирую записи логов на предмет наличия постоянного перебора паролей.
Итак, перейдем к настройке и установке на Debian и Ubuntu.
Debian
1. Выполним установку пакета:
# apt-get -y install sshguard
Установка займет несколько минут, в зависимости от скорости соединения.
2. Произведем настройки Iptables для работы программы.
Зададим разрешающие правила доступа к серверу на порты 22, 53 , 80 , 443:
# iptables -N sshguard # iptables -A INPUT -j sshguard # iptables -P INPUT ACCEPT # iptables -A INPUT -p tcp --dport 22 -j ACCEPT # iptables -A INPUT -p udp --dport 53 -j ACCEPT # iptables -A INPUT -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -p tcp --dport 443 -j ACCEPT
3. Сохраним изменения с помощью команды :
# iptables-save
4. Для того, чтобы заданные правила приводились в действие после перезагрузки, отредактируем файл /etc/network/if-up.d/00-iptables
# nano -w /etc/network/if-up.d/00-iptables
5. Добавим в него строки следующего содержания:
#!/bin/sh iptables-restore < /etc/firewall.conf
6. Предоставим скрипту права на выполнение:
# chmod +x /etc/network/if-up.d/00-iptables
7. Отправим цепочку правил в фаервол:
# iptables-save >/etc/firewall.conf
8. Теперь дадим права sshguard на запись правил iptables:
# chmod +s /usr/sbin/sshguard # iptables-save > /etc/init.d/iptables # /usr/sbin/sshguard -l /var/log/messages
Ubuntu
Установка SSHGuard на Ubuntu выполняется следующим образом:
1. Выполним апдейт системы и установим пакет
# apt-get update # apt-get install sshguard
2. Установим утилиту для анализа логов
# apt-get autoremove rsyslog # apt-get install syslog-ng
3. Добавим цепочку правил iptables
# iptables -A INPUT -j sshguard # iptables -P INPUT ACCEPT # iptables -A INPUT -p tcp --dport 22 -j ACCEPT # iptables -A INPUT -p udp --dport 53 -j ACCEPT # iptables -A INPUT -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -p tcp --dport 443 -j ACCEPT # iptables-save -c
4. Отредактируем конфигурационный файл установленной утилиты:
nano /etc/syslog-ng/syslog-ng.conf
Добавим в него следующее содержаение:
[ ... ] # pass only entries with auth+authpriv facilities from programs other than sshguard filter f_sshguard { facility(auth, authpriv) and not program("sshguard"); }; # pass entries built with this format destination sshguard { program("/usr/sbin/sshguard" template("$DATE $FULLHOST $MSGHDR$MESSAGE\n") ); }; log { source(src); filter(f_sshguard); destination(sshguard); }; [ ... ]
Сохраним измения [ ctrl + o ] и выполним команду:
# killall -HUP syslog-ng
5. Для того, чтобы заданные правила приводились в действие после перезагрузки, отредактируем файл /etc/network/if-up.d/00-iptables:
# nano -w /etc/network/if-up.d/00-iptables
Добавим следующие строки:
#!/bin/sh iptables-restore < /etc/firewall.conf
Дадим права на выолнение скрипта:
# chmod +x /etc/network/if-up.d/00-iptables
6. Отправим цепочку правил в фаервол:
# iptables-save >/etc/firewall.conf
7. Выполним запуск утилиты:
# /etc/init.d/sshguard start
После настроек какждые четыре попытки перебрать пороль будет приводить к записи в черный список.