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

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

Налаштовуємо iptables в CentOS 7

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

Детальніше: Відключення 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. Для підтвердження цієї процедури вкажіть пароль користувача root.
  4. Введення пароля для зупинки сервісів утиліти iptables в CentOS 7

  5. При успішному виконанні процесу відобразиться новий рядок, що свідчить про внесення змін до конфігураційний файл.
  6. Повідомлення про зупинку сервісів утиліти iptables в CentOS 7

  7. Запуск сервісів проводиться практично так само, тільки рядок набуває вигляду sudo service iptables start .
  8. Запустити сервіси утиліти iptables в CentOS 7 в терміналі

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

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

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

Відобразити список всіх поточних правил утиліти iptables в CentOS 7

В відобразиться результаті буде інформація по трьом ланцюжках: «INPUT», «OUTPUT» і «FORWARD» - вхідний, вихідний і пересилається трафік відповідно.

Вид списку всіх правил утиліти 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 - назва ланцюга, а DROP - значення скидання.

Скидання вхідних запитів в утиліті iptables в CentOS 7

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

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

Як відомо, всі мережеві додатки і процеси працюють через певний порт. Шляхом блокування або дозволу певних адрес можна контролювати доступ всіх мережевих цілей. Давайте розберемо кидок порту на прикладі 80. У «Терміналі» буде досить ввести команду sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT , де - додавання нового правила, INPUT - вказівка ланцюга, -P - визначення протоколу, в цьому випадку TCP, а - -dport - порт призначення.

Правило для відкриття порту 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-адреса, рядок трохи видозмінюється - після TPC додається -s і сам адресу. sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT --dport sudo iptables -A INPUT -p tcp -s 12.12.12.12/32 --dport 22 -j ACCEPT , де 12.12.12.12/32 - необхідний IP-адреса.

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

Блокування відбувається за тим же принципом, змінюючи в кінці значення ACCEPT на DROP. Тоді виходить, наприклад, sudo iptables -A INPUT -p tcp -s 12.12.12.0/24 --dport 22 -j DROP --dport 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) - протокол, який входить до складу 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 , де --limit 20 / minute - обмеження на частоту позитивних результатів. Одиницю виміру ви можете вказувати самостійно, наприклад, /second, /minute, /hour, /day . --limit-burst number - обмеження на число пропускаються пакетів. Всі значення виставляються індивідуально по перевагах адміністратора.
  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 в даних випадках - назва використовуваної ланцюга.
  8. Третє правило для блокування сканування портів iptables в CentOS 7

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