Я недавно решил сделать некоторые меры безопасности. Я видел свои журналы, и было несколько попыток на моем SSH-сервере. Сначала я убрал SSH-порт со стандартного 22. После этого я прочитал кое-что о Fail2ban , BlockHosts и DenyHosts .
Я посмотрел на первое: это просто настроить, все понятно; но когда я попытался «проверить его защиту», тесты провалились . Все вроде бы хорошо, но я все еще могу получить доступ к серверу.
Я также проверил IPtables: # iptables -I INPUT -j DROP
- после этого мое соединение SSH было потеряно (так, что я хотел). Тогда # iptables -I INPUT -s 84.x.y.z -j DROP
, который тоже работал.
Но какие правила сделал Fail2ban, это не работает: ( $ sudo iptables -L
)
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-apache tcp -- anywhere anywhere multiport dports www,https
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-apache (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-ssh (1 references)
target prot opt source destination
DROP all -- 84.x.y.z anywhere
RETURN all -- anywhere anywhere
Chain fail2ban-ssh-ddos (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Загружены модули ядра: ( $ lsmod | grep ip
)
iptable_nat 4680 0
nf_nat 15576 1 iptable_nat
nf_conntrack_ipv4 12268 3 iptable_nat,nf_nat
nf_conntrack 55540 4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport 2816 2
iptable_filter 2624 1
ip_tables 10160 2 iptable_nat,iptable_filter
x_tables 13284 5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6 235396 24
Версии:
- Debian Lenny 5.06, ядро 2.6.26-2-686
- IPtables 1.4.2-6
- Fail2ban 0.8.3-2sid1
openssh-server
1: 5.1p1-5
Тест № 1 шаг за шагом:
- Настройте Fail2ban для низкого времени запрета. 60 секунд Затем перезагрузите.
- Попытка войти (с SSH), напрямую с неправильным passwd.
- В шестой раз введите правильный пароль (максимальное количество попыток здесь только 4). Я вошел в систему. Я также могу получить доступ к веб-странице, размещенной на этом сервере.
iptables -L
показал мне, как упоминалось выше. Так что бан был активным, когда я подключился, командовал моим сервером.
Тест № 2 шаг за шагом:
- Стоп Fail2ban. Создайте
at
сценарий, чтобы удалить приведенное ниже правило запрета записи в будущем. (iptables -D INPUT 1
) - Создать правило бана:
iptables -I INPUT 1 -s 84.x.y.z -j DROP
- Я не мог набрать что-нибудь еще, SSH-соединение не используется. Я не мог получить доступ к веб-странице. Итак, что я хотел от iptables.
- После
at
сценария я могу получить доступ к своему серверу.
Я не вижу решения, что я должен сделать, чтобы мой запрет IPtables (сделанный Fail2ban) работал?
Ответы:
Я нашел проблему, что я сделал, перед установкой fail2ban. Извините за ваше время.
По соображениям безопасности я перенес свой sshd с порта 22 на другой. Ссылка в
iptables
относится только к порту 22. Я думал, что это переменная, которая всегда ссылается на текущий порт sshd. Но НЕ .Точное решение (если вы удалили своего демона из исходного порта):
port
раздел для всех . Пример:port = all
banaction
строку после строки порта со значением iptables-allports . Пример:banaction = iptables-allports
.# service fail2ban restart
.Я не мог найти решение для изменения
port ssh
директивы или написать там номер. Если у вас есть решение не для всех портов, я его послушаю!источник
У меня была та же проблема с отказом банить fail2ban после того, как я переместил свой ssh-сервер на нестандартный порт 12345 (скажем).
Чтобы заставить fail2ban создавать правильные правила после нескольких неудачных попыток аутентификации, я отредактировал
/etc/fail2ban/jail.conf
.в
Я предполагаю, что подобный подход будет работать для других служб на нестандартных портах.
источник
Настройки для fail2ban в
/etc/fail2ban/jail.local
. При установке по умолчанию я не уверен, что это там. Тогда что вы делаете копию ,jail.conf
чтобыjail.local
, таким образом у вас есть оба файла в/etc/fail2ban/
. Отредактируйтеjail.local
, перейдите к строке, содержащей[ssh]
и включите ее следующим образом:После этого перезапустите fail2ban:
Возможно, это будет работать сейчас, я настроил это так, и это работает.
источник
Вы указали "Fail2ban 0.8.3-2sid1" как установленный. Это неподдерживаемая конфигурация. Пакеты sid не должны быть установлены в стабильной среде.
Я запускаю Debian 6 (Squeeze), который был обновлен с Lenny, на виртуальной машине специально как SSH-сервер для моего дома. Я также использую fail2ban. Я выполнил ваш тест № 1, и все заработало как надо. Мне не удалось войти на максимальное количество попыток, и затем мои запросы на вход в систему были отброшены на 60 секунд.
Мой список версий:
источник
sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade
, Это довольно просто.