Налаштування iptables на CentOS 7

У всіх операційних системах, заснованих на базі ядра Linux, є вбудований міжмережевий екран, який здійснює контроль і фільтрацію вхідного і вихідного трафіку, виходячи із заданих користувачем або платформою правил. У дистрибутиві CentOS 7 за замовчуванням таку функцію виконує утиліта iptables , взаємодіючи з вбудованим брандмауером netfilter. Іноді системному адміністратору або менеджеру мережі доводиться налаштовувати роботу цього компонента, прописуючи відповідні правила. У рамках сьогоднішньої статті ми хотіли б поговорити про основи конфігурації iptables у згаданій вище ОС.

Налаштування iptables на CentOS 7

Сам інструмент доступний до роботи відразу ж після завершення інсталяції CentOS 7, але додатково буде потрібно встановити деякі сервіси, про що ми і поговоримо далі. У розглянутій платформі є ще один вбудований інструмент, що виконує функцію фаєрвола під назвою FirewallD. Для уникнення конфліктів при подальшій роботі рекомендуємо відключити цей компонент. Розгорнуті інструкції по цій темі читайте в іншому нашому матеріалі за наступним посиланням.

Детальніше: вимкнення брандмауера в CentOS 7

Як відомо, в системі можуть застосовуватися протоколи IPv4 і IPv6. Сьогодні ми зупинимося на прикладі IPv4, але якщо ви хочете здійснювати конфігурацію для іншого протоколу, буде потрібно замість команди iptables у консолі використовувати ip6tables .

Встановлення служб iptables

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

  1. Всі подальші дії будуть проводитися в класичній консолі, тому запустіть її будь-яким зручним методом.
  2. Запуск терминала для настройки утилиты iptables в CentOS 7
  3. За установку сервісів відповідає команда sudo yum install iptables-services . Введіть її і натисніть на клавішу Enter .
  4. Установка сервисов для работы утилиты iptables в CentOS 7
  5. Підтвердьте обліковий запис суперкористувача, вказавши пароль від нього. Зверніть увагу, що при запитах sudo введені символи в рядку ніколи не відображаються.
  6. Ввод пароля для установки сервисов iptables в CentOS 7 через терминал
  7. Буде запропоновано додати в систему Один пакет, підтвердіть цю дію, вибравши варіант y .
  8. Подтверждение добавления новых пакетов сервисов iptables в CentOS 7
  9. Після завершення інсталяції Перевірте поточну версію інструменту: sudo iptables --version .
  10. Проверка версии утилиты iptables в CentOS 7 через терминал
  11. Результат з'явиться в новому рядку.
  12. Отображение текущей версии утилиты iptables в CentOS 7 через терминал

Тепер ОС повністю готова для подальшої настройки міжмережевого екрану через утиліту iptables . Ми пропонуємо ознайомитися з конфігурацією по пунктах, почавши з управління сервісами.

Зупинка та запуск служб iptables

Управління режимом роботи iptables потрібно в тих випадках, коли потрібно перевірити дію певних правил або просто виконати перезапуск компонента. Робиться це за допомогою вбудованих команд.

  1. Введіть sudo service iptables stop і натисніть на клавішу Enter , щоб зупинити послуги.
  2. Остановка сервисов утилиты iptables в CentOS 7 через терминал
  3. Для підтвердження цієї процедури вкажіть пароль суперкористувача.
  4. Ввод пароля для остановки сервисов утилиты iptables в CentOS 7
  5. При успішному виконанні процесу відобразиться новий рядок, що свідчить про внесення змін в конфігураційний файл.
  6. Уведомление об остановке сервисов утилиты iptables в CentOS 7
  7. Запуск сервісів проводиться практично так само, тільки рядок набуває вигляду sudo service iptables start .
  8. Запустить сервисы утилиты iptables в CentOS 7 в терминале

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

Перегляд і видалення правил

Як вже було сказано раніше, Управління міжмережевим екраном проводиться шляхом ручного або автоматичного додавання правил. Наприклад, деякі додаткові програми можуть отримати доступ до інструменту, змінюючи певні політики. Однак більшість подібних дій все ж робиться вручну. Перегляд списку всіх поточних правил доступний через команду sudo iptables -L .

Отобразить список всех текущих правил утилиты iptables в CentOS 7

В отобразившемся результаті буде інформація по трьох ланцюжках: &171;INPUT&187; , &171;OUTPUT&187; і &171;FORWARD&187; &8212; вхідний, вихідний і пересилається трафік відповідно.

Вид списка всех правил утилиты iptables в CentOS 7

Визначити статус всіх ланцюжків можна, ввівши sudo iptables -S .

Отображение списка цепей утилиты iptables в CentOS 7

Якщо побачені правила вас не влаштовують, вони досить просто видаляються. Весь список очищається так: sudo iptables -F . Після активації правила будуть стерті абсолютно для всіх трьох ланцюгів.

Очистить список всех правил утилиты iptables в CentOS 7

Коли необхідно торкнутися тільки політики з якоїсь однієї ланцюга, до рядка додається додатковий аргумент:

Sudo iptables -F INPUT
sudo iptables -F OUTPUT
sudo iptables -F FORWARD

Очистить список правил для определенной цепи iptables в CentOS 7

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

Прийом і скидання трафіку в ланцюгах

Кожна схема налаштовується окремо для прийому або блокування трафіку. Виставивши певне значення, можна домогтися того, що, наприклад, весь вхідний трафік буде блокуватися. Для цього команда повинна бути sudo iptables --policy INPUT DROP , де INPUT &8212; назва ланцюга, а DROP &8212; значення скидання.

Сброс входящих запросов в утилите iptables в CentOS 7

Точно такі ж параметри задаються і для інших ланцюгів, наприклад, sudo iptables --policy OUTPUT DROP . Якщо ж необхідно виставити значення на прийом трафіку, тоді DROP змінюється на ACCEPT і виходить sudo iptables --policy INPUT ACCEPT .

Дозвіл та блокування портів

Як відомо, усі мережеві програми та процеси працюють через певний порт. Шляхом блокування або дозволу певних адрес можна контролювати доступ всіх мережевих цілей. Давайте розберемо кидок порту на прикладі 80 . В &171;терміналі&187; буде достатньо ввести команду sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT , де - А & 8212; додавання нового правила, INPUT & 8212; вказівка ланцюга, -P & 8212; визначення протоколу, в цьому випадку TCP, а &45;&45;dport &8212; порт призначення.

Правило для открытия порта 80 в утилите iptables в CentOS 7

Точно така ж команда стосується порту 22 , який використовується службою SSH: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT .

Правило для открытия порта 22 в утилите iptables в CentOS 7

Для блокування вказаного порту застосовується рядок точно такого ж виду, тільки в кінці ACCEPT змінюється на DROP . У підсумку виходить, наприклад, sudo iptables -A INPUT -p tcp --dport 2450 -j DROP .

Правило для запрета порта в утилите iptables в CentOS 7

Всі ці правила заносяться в конфігураційний файл і ви можете переглянути їх в будь-який момент. Нагадуємо, здійснюється це через sudo iptables -L . Якщо разом з портом необхідно дозволити ще й мережеву IP-адресу, Рядок трохи видозмінюється &8212; після TPC додається -s і сама адреса. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT , де 12.12.12.12/32 &8212; необхідна IP-адреса.

Правило для принятия IP-адреса и порта в iptables в CentOS 7

Блокування відбувається за тим же принципом, змінюючи в кінці значення ACCEPT на DROP . Тоді виходить, наприклад, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP .

Правило для блокировки IP-адреса и порта в iptables в CentOS 7

Блокування ICMP

ICMP (Internet Control Message Protocol) & 8212; протокол, який входить до складу TCP/IP і задіяний для передачі повідомлень про помилки і екстрених ситуаціях при роботі з трафіком. Наприклад, коли запитуваний сервер недоступний, саме цей інструмент виконує сервісні функції. Утиліта iptables дозволяє заблокувати його через брандмауер, а зробити це можна командою sudo iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP . Вона зробить блокування запитів від вашого і до вашого сервера.

Первое правило для блокировки пропинговки iptables в CentOS 7

Вхідні запити блокуються дещо інакше. Тоді потрібно ввести sudo iptables -I INPUT -p icmp --icmp-type 8 -j DROP . Після активації даних правил сервер не буде відповідати на ping-запити.

Второе правило для блокировки пропинговки в iptables в CentOS 7

Запобігання несанкціонованим діям на сервері

Іноді сервери піддаються DDoS атакам або іншим несанкціонованим діям з боку зловмисників. Правильна настройка міжмережевого екрану дозволить убезпечити себе від подібного роду зломів. Для початку ми рекомендуємо задати такі правила:

  1. Пропишіть в консолі iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT , де &45;&45;limit 20/minute &8212; обмеження на частоту позитивних результатів. Одиницю виміру ви можете вказувати самостійно, наприклад, /second, /minute, /hour, /day . &45;&45;limit-burst number &8212; обмеження на число пропускаються пакетів. Всі значення виставляються індивідуально за уподобаннями адміністратора.
  2. Правило для безопасности от DDoS в iptables в CentOS 7
  3. Далі можна заборонити сканування відкритих портів, щоб прибрати одну з можливих причин злому. Введіть першу команду sudo iptables -N block-scan .
  4. Первое правило для запрета сканирования портов iptables в CentOS 7
  5. Потім вкажіть sudo iptables -A block-scan -p tcp —tcp-flags SYN,ACK,FIN,RST -m limit —limit 1/s -j RETURN .
  6. Второе правило для запрета сканирования портов iptables в CentOS 7
  7. Остання третя команда має вигляд: sudo iptables -A block-scan -j DROP . Вираження block-scan в даних випадках &8212; назва використовуваної ланцюга.
  8. Третье правило для блокирования сканирования портов iptables в CentOS 7

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

більше статей на цю тему: