Блок Fail2ban з IPtable не працює на Debian Lenny. [переміщено порт ssh]


11

Нещодавно я вирішив зробити деяке обслуговування безпеки. Я побачив свої журнали, і було кілька спроб проти мого 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 крок за кроком:

  1. Налаштуйте Fail2ban на низький проміжок часу. 60 сек. Потім перезавантажте.
  2. Спроба ввійти (із SSH), безпосередньо з неправильним паролем.
  3. Шести раз введіть правильний пароль (максимум спроб тут лише 4). Я ввійшов у систему. Я також можу отримати доступ до веб-сторінки, розміщеної на цьому сервері.
  4. iptables -Lпоказав мене як згадуваний вище. Тож заборона була активною, коли я підключився, командував своїм сервером.

Тест №2 крок за кроком:

  1. Зупинити Fail2ban. Створіть atсценарій, щоб у майбутньому видалити написане нижче правило заборони. ( iptables -D INPUT 1)
  2. Створіть правило заборони: iptables -I INPUT 1 -s 84.x.y.z -j DROP
  3. Я не міг нічого вводити, SSH-з'єднання не використовується. Я не зміг отримати доступ до веб-сторінки. Отже, що я хотів від iptables.
  4. Після atсценарію я можу отримати доступ до свого сервера.

Я не бачу рішення, що мені робити, щоб заборонити свої IPtables (зроблені Fail2ban)?


Питання відредаговано! Будь-які ідеї?
антивірус

Відповіді:


8

Я встановив проблему, що я зробив, перш ніж встановлювати fail2ban. Вибачте за ваш час.

З міркувань безпеки я перемістив свій sshd з порту 22 до іншого. Посилання iptablesвказується лише на порт 22. Я подумав, що це змінна, що завжди посилається на поточний порт sshd. Але НЕ .

Точне рішення (якщо ви переїхали демона зі свого початкового порту):

  1. Відкрийте тюремний.локальний (або .conf).
  2. Знайдіть свою послугу (в дужках).
  3. Виправити portрозділ для всіх . Приклад:port = all
  4. Додайте або відредагуйте існуючий banactionрядок після лінії порту зі значенням iptables-allports . Приклад: banaction = iptables-allports.
  5. Перезапустіть демон. Приклад: # service fail2ban restart.

Я не зміг знайти рішення для зміни port sshдирективи або написати там номер. Якщо у вас є рішення, яке не є всіма портами, я прослухаю його!


1
Все, що вам потрібно зробити - це вказати номер порту замість імені.
Джуліан Найт

Також зауважте, що ваше ім'я iptable має містити менше 32 символів, щоб бути успішно доданим.
Адріан Лопес

2

У мене була така ж проблема з не забороною fail2ban після того, як я перемістив свій ssh-сервер на нестандартний порт 12345 (скажімо так).

Щоб змусити fail2ban виробляти правильні правила після ряду невдалих спроб аутентифікації, я відредагував /etc/fail2ban/jail.conf.

port = ssh 

в

port = 12345

Я припускаю, що подібний підхід буде працювати для інших служб на нестандартних портах.


0

Встановлено параметр fail2ban /etc/fail2ban/jail.local. При встановленні за замовчуванням я не впевнений, чи є він. Тоді що ви робите копію , jail.confщоб jail.local, таким чином у вас є обидва файли в /etc/fail2ban/. Редагуйте jail.local, перейдіть до рядка, що містить, [ssh]і ввімкніть його так:

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

Після цього перезапустіть fail2ban:

sudo /etc/init.d/fail2ban restart

Цілком можливо, що він буде працювати зараз, я його так налаштував і він працює.


Я думаю, ти не зрозумів мого питання! Fail2ban робить те, що я хочу: дивитись журнали та встановлювати заборону для зловмисників. Але ця заборона, що повинні робити IPtable, не працює. Я можу ВІДБУТИ ДОСТУПИТИ сервер, за допомогою вказаних вище правил.
антивіртел

Вибачте, я поспішав, тому не зрозумів, і оскільки у мене була та сама проблема, яку я вирішив, додавши jail.local, я подумав, що це допоможе. На жаль, якщо у вас все встановлено правильно, я не знаю, у чому проблема, але сподіваюся, що хтось інший зробить.
enedene

0

Ви вказали "Fail2ban 0.8.3-2sid1" як встановлений. Це непідтримувана конфігурація. Пакети Sid не повинні встановлюватися в стабільне середовище.

Я запускаю Debian 6 (Squeeze), який був оновлений від Lenny, в VM спеціально як SSH-сервер для мого будинку. Я також використовую fail2ban. Я виконував ваш тест №1 і все працювало як слід. Я не зміг увійти в систему за максимальну кількість спроб, і тоді мої запити на вхід були відхилені протягом 60 секунд.

Мій список версій:

  • / etc / debian_version = 6.0.1
  • fail2ban = 08..4-3
  • iptables = 1.4.8
  • openssh-сервер = 1: 5.5p1-6

Ні, у мене є правильний пакет. packages.debian.org/search?suite=lenny&keywords=fail2ban
antivirtel

У такому випадку я рекомендую зробити оновлення dist.
Джеймс Самнерс

okok, це не надто просто, але мені вдасться це зробити якось ... - можливо, чиста перевстановлення
антивірус

sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade. Це досить просто.
Джеймс Самнерс

так, але чи є шанс наступного разу не завантажитися ... в примітках до випуску написано, що новий kenel + нова система udev ... - це було успішно з вашою машиною?
антивірус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.