Поради щодо захисту сервера Linux від зовнішніх атак

Вгадую людей, які їздять Сервери Linux знати і знати про Заборонити HOSTS y Fail2ban. Для тих, хто його не знає, я буду пояснити трохи про цих двох застосування.

Джон Фреді Перес є одним із переможці з нашого щотижневого конкурсу: «Поділіться своїми знаннями про Linux«. Вітаємо! Стурбований брати участь і внести свій внесок у громаду, як це зробив Джон?

Ми встановимо та налаштуємо ці два додатки, щоб уникнути подальших головних болів. Перш за все ми пояснимо, що таке ці два додатки та яка їх функція:

Fail2Ban

Це аналізатор журналів, який шукає невдалі спроби реєстрації та блокує IP-адреси, з яких ці спроби надходять. Він поширюється за ліцензією GNU і, як правило, працює на всіх системах, які взаємодіють із системою управління атаками або локальним брандмауером.

Fail2Ban має чудову конфігурацію, а також може створювати правила для програм
власні або треті сторони.

Заборонити HOSTS

Це інструмент безпеки, написаний на python, який контролює журнали сервера доступу, щоб запобігти атакам грубої сили на віртуальний сервер. Програма працює, забороняючи IP-адреси, які перевищують певну кількість невдалих спроб підключення.

Ці програми Linux - DenyHosts та Fail2ban - можна використовувати окремо або разом. У моєму випадку я обоє працюю разом.

Встановлення та конфігурація кожного з них залежить від дистрибутиву, який ви використовуєте. Ця публікація орієнтована на CentOS 6.3, хоча відмінності між іншими дистрибутивами не дуже помітні.

Ну тоді приступайте до роботи.

Встановлення та налаштування Fail2Ban

Ця програма генерує динамічні правила в самому брандмауері Linux і відповідає за створення діючих правил в IpTables.

Установка

Для встановлення:

ням встановити 

Якщо пакет не відображається, ми повинні додати необхідне сховище:

rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

З цього вам слід розпочати встановлення програми разом із її залежностями.

Тепер нам потрібно налаштувати Fail2Ban для аналізу журналів, які ми хочемо, і заблокувати
IP-адреси, надсилання повідомлень по електронній пошті. Для цього ми повинні змінити файл jail.conf, який ми знаходимо в / etc / fail2ban

cd / etc / fail2ban
нано в'язниця.conf

У цьому файлі слід зробити наступне:

  • Modify - це значення часу дії, це значення визначає час у секундах, коли IP-адресу зловмисника буде заблоковано, за замовчуванням значення приходить через 600 секунд.
  • Знайдіть значення maxretry, яке буде стільки разів, коли IP може мати невдалу автентифікацію перед блокуванням.
  • Додайте наші ip в параметр ignoreip. Тут програма буде ігнорувати наші автентифіковані IP-адреси за цим параметром.
[DEFAULT]
# "ignoreip" може бути IP-адресою, маскою CIDR або хостом DNS. Fail2ban не буде
# заборонити хост, який відповідає адресі в цьому списку. Може бути кілька адрес
# визначено за допомогою роздільника пробілу.
ignoreip = 127.0.0.1

# "bantime" - це кількість секунд, коли хост заборонений.
bantime = 600

# Хост заборонено, якщо він генерував "maxretry" протягом останнього "часу пошуку"
# секунди.
findtime = 600

# "maxretry" - це кількість збоїв до заборони хоста.
maxretry = 3

Приклад того, як це може виглядати, є наступним:

ignoreip = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2

Налаштуйте Fail2Ban та SSH

Щоб шукати невдалі спроби входу в SSH, ми модифікуємо файл, поки він не виглядатиме так:

[ssh-iptables] 
увімкнено = вірно
filter = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # Це журнал, який буде аналізувати
maxretry = 3 # будь-який IP, який має три або більше невдалих спроб, буде заблокований.
bantime = 86400 # 24-годинний час заборони, виражений у секундах

Не забувайте, що якщо ви змінюєте порт, де прослуховує SSH, ви також повинні змінити параметр порту.

Ця програма працює не тільки для несанкціонованого доступу в SSH, а також для apache, для читання журналів Asterisk тощо.

Встановлення та налаштування DenyHOSTS

Його робота заснована на використанні файлу /etc/hosts.deny, тобто на блокуванні адрес "атакуючих" хостів, створенні списку заборонених хостів.

Встановлення зі сховищ можна отримати за допомогою наступної команди:

ням встановити denyhosts - - 

Файл конфігурації знаходиться в /etc/denyhosts.conf

Перш ніж продовжувати, оскільки, як люди, ми можемо помилятися і виконувати типовий "рівень 8", отримуючи доступ до будь-якої з послуг і блокуючи себе. Щоб уникнути цього, ми редагуємо файл /etc/hosts.allow і додаємо IP-адреси машин, з яких ми не хочемо обмежуватися через збій доступу.

Змініть файл denyhosts.conf

Щоб не заходити так далеко в налаштуваннях, у цьому файлі ми лише збираємося редагувати та розкоментувати деякі параметри. Це:

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 год
SYNC_UPLOAD = так
SYNC_DOWNLOAD = так
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 год

Таким чином, ми залишимо конфігурацію практично за замовчуванням, але з великим захистом від атак SSH.

nano /etc/hosts.allow

Приклад:

sshd:127.0.0.1 
sshd:192.168.1.10
sshd: 192.168.0. *

Після цього ми перезапускаємо послугу:

/etc/init.d/denyhosts перезапустити

Цим ми надаємо дозвіл на IP, діапазон IP і, звичайно, на наш інтерфейс зворотного зв'язку. Щось, що я не пробував - тому я не знаю, чи працює це - це додавання DNS-файлів до цього файлу; тобто з такими послугами, як DynDNS. Якщо я це зроблю, я розповім вам, як це пройшло.

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

Щоб час від часу видаляти збережені адреси, як налаштовано, демон потрібно запускати з параметром –purge:

/etc/init.d/denyhosts start --purge

На додаток до цього, ми повинні включити його на початку системи:

chkconfig denyhosts на

0 коментарі, залиште свій

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.