Одним з найпоширеніших векторів атак на сервери є спроби грубого входу. Тут зловмисники намагаються отримати доступ до вашого сервера, намагаючись нескінченні комбінації імен користувачів та паролів.
Для таких проблем найшвидше та найефективніше рішення - обмежити кількість спроб та заблокувати доступ до користувача або до тієї IP протягом певного часу. Важливо також знати, що для цього існують також програми з відкритим кодом, спеціально розроблені для захисту від цього типу атаки.
У сьогоднішньому дописі Я представляю вам, один називається Fail2Ban. Спочатку розроблений Сірілом Джакіє у 2004 році, Fail2Ban є програмним забезпеченням для запобігання вторгненню, яке захищає сервери від атак грубої сили.
Про Fail2ban
Fail2ban сканує файли журналів (/ var / log / apache / error_log) і забороняє IP-адреси, які демонструють шкідливу активність, як занадто багато несправних паролів та пошук вразливостей тощо.
Загалом Fail2Ban використовується для оновлення правил брандмауера для відхилення IP-адрес протягом певного періоду часу, хоча будь-які інші довільні дії (наприклад, надсилання електронного листа) також можуть бути налаштовані.
Встановлення Fail2Ban на Linux
Fail2Ban міститься у більшості сховищ основних дистрибутивів Linux, а точніше - у найбільш часто використовуваних для використання на серверах, таких як CentOS, RHEL та Ubuntu.
У випадку з Ubuntu просто введіть наступне для встановлення:
sudo apt-get update && sudo apt-get install -y fail2ban
У випадку Centos та RHEL вони повинні ввести наступне:
yum install epel-release
yum install fail2ban fail2ban-systemd
Якщо у вас SELinux, важливо оновити правила за допомогою:
yum update -y selinux-policy*
Як тільки це буде зроблено, вони повинні знати на передньому плані, що файли конфігурації Fail2Ban знаходяться в / etc / fail2ban.
Конфігурація Fail2Ban в основному розділений на два ключові файли; це fail2ban.conf та jail.conf. fail2ban.confes визначає більший файл конфігурації Fail2Ban, де ви можете налаштувати такі параметри, як:
- Рівень журналу.
- Файл для входу.
- Файл сокета процесу.
- Файл pid.
jail.conf - це місце, де ви налаштовуєте такі параметри, як:
- Конфігурація служб для захисту.
- Як довго забороняти, якщо на них слід напасти.
- Електронна адреса для надсилання звітів.
- Дія, яку потрібно вжити при виявленні нападу.
- Заздалегідь визначений набір параметрів, наприклад, SSH.
конфігурація
Тепер ми перейдемо до частини конфігурації, Перше, що ми збираємося зробити, це резервна копія нашого файлу jail.conf із:
cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
І ми продовжуємо редагувати зараз за допомогою nano:
nano /etc/fail2ban/jail.local
Всередині ми переходимо до розділу [За замовчуванням], де ми можемо внести деякі корективи.
Тут, у частині "ingoreip", є IP-адреси, які будуть залишені і вони будуть повністю проігноровані Fail2Ban, тобто в основному це IP-адреса сервера (локальний) та інші, які, на вашу думку, слід ігнорувати.
Звідти далі інші IP-адреси, яким не вдалося отримати доступ, будуть заборонені і зачекайте, скільки секунд буде заборонено (за замовчуванням це 3600 секунд) і що fail2ban діє лише після 6 невдалих спроб
Після загальної конфігурації ми зараз вкажемо послугу. У програмі Fail2Ban вже є кілька попередньо визначених фільтрів для різних служб. Тож просто виконайте деякі адаптації. Ось приклад:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Після внесення відповідних змін вам нарешті доведеться перезавантажити запущений Fail2Ban:
service fail2ban reload
systemctl enable firewalld
systemctl start firewalld
Закінчивши це, давайте швидко перевіримо, чи працює Fail2Ban:
sudo fail2ban-client status
Розблокувати IP
Тепер, коли ми успішно заборонили IP, що робити, якщо ми хочемо заборонити IP? Для цього ми можемо знову використовувати fail2ban-client та сказати йому заборонити певний IP, як у прикладі нижче.
sudo fail2ban-client set ssh unbanip xxx.xxx.xx.xx
Де "ххх ..." Це буде IP-адреса, яку ви вкажете.