Блокування нападів грубої сили SSH на IPv6


10

Нещодавно мені довелося працювати з деякими серверами, які мають підключення IPv6, і я з подивом дізнався, що fail2ban не має підтримки IPv6, а також не відхиляє. Шукаючи в Google, я виявив, що люди зазвичай рекомендують:

  • Дезактивація входу в ssh через IPv6 (не для мене рішення)
  • використовуючи лише автентифікацію приватного / відкритого ключа на сервері, без автентифікації паролів (працює, але багато атак можуть коштувати серверу чимало процесорної потужності, або навіть зробить його недоступним DDoS-ним)
  • використання ip6tables для блокування послідовних атак з одного і того ж IP
  • за допомогою sshguard, який підтримує IPv6

З того, що я вже збирав, заборона адрес у IPv6 дещо інша, ніж у IPv4, оскільки провайдери не дають користувачеві жодної адреси (/ 128), а цілої підмережі (у мене зараз є / 48). Таким чином, заборона єдиних IPv6-адрес була б неефективною для атак. Я шукав високі та низькі теми щодо ip6tables та sshguard, що блокують підмережі для виявлення атак, але мені не вдалося знайти жодної інформації.

Хтось знає, чи sshguard забороняє підмережі для атак IPv6?
Хтось знає, як зробити конфігурацію ip6tables для заборони підмереж для атак IPv6?
Або хтось знає про кращий спосіб пом'якшення нападів, ніж те, що я вже знайшов?

PS: Я використовую CentOS 7 в системі.


3
Для отримання додаткової інформації про fail2ban додавання підтримки IPv6: github.com/fail2ban/fail2ban/isissue/39 . Здається, що вони стикаються з проблемою блокування підмережі , що затримує подальше впровадження (воно, здається, все далі і далі від нас насправді ...).
Джон У. Сміт

Правила обмеження / заборони швидкості в iptables. Змініть своє запитання з цього питання, і пара рефератів повинна відповісти точно.

Це гіпотетична проблема? Я шукав журнали спроб грубої сили з декількох серверів, і кожен з них робився за допомогою IPv4. І я не бачив, щоб жоден сервер піддавався занадто великому навантаженню через такі спроби, коли автентифікація пароля відключена на стороні сервера.
kasperd

1
@kasperd У мене є кілька тисяч спроб на IPv6 на день, так що ні, це не гіпотетична проблема. Адреса сервера є загальнодоступною, оскільки він розміщує сайт, тому це дуже реальна проблема.
DarthRevan13

@ user123418 Я залишу заголовок питання таким, яким він є зараз, я дійсно вважаю за краще щось подібне до sshguard через контроль над ним і правило в ip6tables. Якщо на наступному тижні ніхто не відповість, то я зміню своє питання.
DarthRevan13

Відповіді:


4

Для атаки на сервер зловмисник повинен спочатку знати його IP-адресу. З IPv6 у вас буде стільки адрес на вибір, що неможливо знайти правильну адресу шляхом сканування IP-діапазону.

Це означає, що ви можете просто призначити два різних IPv6 адреси інтерфейсу. Ви дозволяєте доменному імені вашого веб-сайту постійно вказувати на ту саму IP-адресу, як завжди, а sshd слухати лише за щойно призначеною IP-адресою.

Після цієї зміни знання доменного і IP-адреси вашого веб-сайту не надасть зловмиснику жодного доступу до вашого sshd.

Звичайно, вам буде потрібно вторинне ім'я хоста, яке буде використано під час підключення за допомогою ssh. Це ім'я хоста може мати набагато більше ентропії, ніж адреса IPv6. Хтось здогадується ім'я хоста для ssh, немислимий, якщо ви використовуєте 63 буквено-цифрових символів.

Якщо хтось дізнається адресу IPv6, яка використовується для sshd, просто перемістіть sshd на нову адресу IPv6 та оновіть запис AAAA. Тоді вони повинні почати все спочатку.

Якщо ви переживаєте, що законний користувач ssh може просочити ім'я хоста та / або IP-адреси, то ви можете створити інше ім’я хоста для кожного користувача, щоб отримати доступ до ssh. Спочатку я хотів би CNAME всіх них одним ім'ям хоста, таким чином, що для оновлення існує лише одна запис AAAA.


Звучить краще, ніж у мене зараз, але не зовсім те, що я шукав. Все одно, дякую.
DarthRevan13

0

Хороша новина полягає в тому, що нещодавно fail2ban випустив підтримку IPv6.

Для серверів Debian IPv6 я рекомендував би дотримуватися цього підручника .

Для серверів CentOS IPv6 я рекомендую завантажити його тут, а потім виконати ці команди, замінивши відповідно номер версії:

tar xvfj fail2ban-0.11.0.tar.bz2
cd fail2ban-0.11.0
python setup.py install

Переконайтесь, що в'язниця для sshd увімкнена в /etc/fail2ban/jail.local , наприклад:

[sshd]
enabled=1

1
Хоча я захоплююсь тим, що зробили хлопці в програмі fail2ban, цього все одно недостатньо! Не всі функції підтримуються протоколом IPv6 відповідно до їх змін github.com/fail2ban/fail2ban/blob/0.10/ChangeLog, і досі немає підтримки для заборони підмереж github.com/fail2ban/fail2ban/isissue/927, що має ключове значення для IPv6, оскільки будь-який Інтернет-провайдер не запропонує клієнту лише одну IPv6-адресу, а всю підмережу. Поки це залишається правдою, жодна виробнича машина не повинна використовувати fail2ban зараз! Будь ласка, змініть свою відповідь, щоб це відобразити, адже цю сторінку відвідує дуже багато людей.
DarthRevan13
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.