Текущая страница: ГлавнаяНастройка сервера → Ограничение доступа к SSH через iptables

Ограничение доступа к SSH через iptables

Есть красивое решение для ограничения доступа к SSH средствами iptables
Запрос вида http://example.com:1800 — разрешает доступ к SSH
Запрос вида http://example.com:1801 — запрещает доступ к SSH
При этом, при открытии доступа к SSH в syslog падает соответствующее оповещение.
Порты можно выставлять свои. Этот же метод можно использовать и для других сервисов, которые не обязательно держать открытыми постоянно, например ftp.
Итак, ниже сами настройки:

iptables -N sshguard
# Если адрес в списке, то подключение разрешено
iptables -A sshguard -m state --state NEW -m recent --rcheck --name SSH -j ACCEPT
# Разрешить пакеты для уже установленных соединений
iptables -A sshguard -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A sshguard -j DROP
# Заносит адрес в список
#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1800 -j LOG --log-prefix "SSH-open: "
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1800 -m recent --name SSH --set -j DROP
# Удаляет адрес из списка
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1801 -m recent --name SSH --remove -j DROP
# Применение для трафика ssh цепочку sshguard
iptables -A INPUT -p tcp --dport 22 -j sshguard

Еще один хороший способ защиты SSH изложен на хабрхабр.
Смотрим стоит ли у нас модуль hashlimit
cat /proc/net/ip_tables_matches
Если нет то aptitude install module-assistant xtables-addons-source и проверяем снова )))
Создаем цепочку RH-Firewall-1-INPUT и описываем правила

iptables -N RH-Firewall-1-INPUT
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 60000 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j DROP
iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

На некоторых VPS могут возникать проблемы при настройке iptables, подробности
тут.

Добавить комментарий