Використання Iptables на Linux
Це керівництво буде намагатися пояснити, як використовувати iptables на linux в легко зрозумілій мові.
Зміст[приховати]
|
Огляд
Iptables - це брандмауер, заснований на правилах, який оброблятиме кожне правило, поки не знайде той, що відповідає.
Todo: включіть приклад тут
Використання
Утиліта iptables, як правило, попередньо встановлена у вашій дистрибутиві linux, але фактично не виконує жодних правил. У більшості дистрибутивів ви знайдете утиліту:
/ sbin / iptables
Блокування одного IP-адреси
Ви можете заблокувати IP за допомогою параметра -s, замінивши 10.10.10.10 адресою, яку ви намагаєтеся заблокувати. У цьому прикладі ви побачите, що ми використовували параметр -I (або -insert works) замість додавання, тому що ми хочемо переконатися, що це правило з'являється першим, до будь-яких правил дозволу..
/ sbin / iptables -I INPUT -s 10.10.10.10 -j DROP
Дозволити весь трафік з IP-адреси
Ви можете поперемінно дозволяти весь трафік з IP-адреси, використовуючи ту ж команду, що й вище, але замінюючи DROP на ACCEPT. Потрібно переконатися, що це правило з'являється першим, перед правилами DROP.
/ sbin / iptables -A INPUT -s 10.10.10.10 -j ACCEPT
Блокування порту з усіх адрес
Порт можна повністю заблокувати від доступу до мережі за допомогою перемикача -dport і додавання порту служби, яку потрібно заблокувати. У цьому прикладі ми блокуємо порт mysql:
/ sbin / iptables -A INPUT -p tcp --dport 3306 -j DROP
Дозвіл одного порту з одного IP-адреси
Можна додати команду -s разом з командою -dport, щоб обмежити правило певним портом:
/ sbin / iptables -A INPUT -p tcp -s 10.10.10.10 --dport 3306 -j ACCEPT
Перегляд поточних правил
Ви можете переглянути поточні правила за допомогою наступної команди:
/ sbin / iptables -L
Це дасть вам висновок, подібний до наступного:
Целевий INPUT (policy ACCEPT) цільовий протокол opt opt source джерело ACCEPT all - 192.168.1.1/24 в будь-якому місці ACCEPT all - 10.10.10.0/24 в будь-якому місці DROP tcp - в будь-якому місці mysql
Фактичний вихід, звичайно, буде трохи довшим.
Очищення діючих правил
Ви можете очистити всі поточні правила, використовуючи параметр flush. Це дуже корисно, якщо потрібно поставити правила в правильному порядку або під час тестування.
/ sbin / iptables --flush
Специфічне розподіл
Хоча більшість дистрибутивів Linux містять форму iptables, деякі з них також включають обгортки, які роблять управління трохи легше. Найчастіше ці «аддони» мають форму ініціалізації скриптів, які піклуються про ініціалізацію iptables при запуску, хоча деякі дистрибутиви також включають повномасштабні програми-оболонки, які намагаються спростити загальний випадок.
Gentoo
The iptables Сценарій init на Gentoo здатний обробляти багато поширених сценаріїв. По-перше, це дозволяє налаштувати iptables для завантаження під час запуску (як правило, ви хочете):
rc-update додавати iptables за замовчуванням
Використовуючи сценарій init, можна завантажувати та очищати брандмауер за допомогою простої команди:
/etc/init.d/iptables запустіть /etc/init.d/iptables зупиніться
Сценарій init обробляє деталі збереження поточної конфігурації брандмауера при запуску / зупинці. Таким чином, ваш брандмауер завжди знаходиться в тому стані, в якому ви його залишили. Якщо потрібно вручну зберегти нове правило, сценарій init також може обробити це:
/etc/init.d/iptables зберегти
Крім того, ви можете відновити брандмауер до попереднього збереженого стану (для випадку, коли ви експериментували з правилами, а тепер хочете відновити попередню робочу конфігурацію):
/etc/init.d/iptables перезавантаження
Нарешті, скрипт init може помістити iptables у режим “паніки”, де блокується весь вхідний та вихідний трафік. Я не впевнений, чому цей режим корисний, але всі брандмауери Linux, схоже, мають його.
/etc/init.d/iptables панікує
Увага: Не запускайте режим паніки, якщо ви підключені до сервера через SSH; ти волі бути відключеним! Єдиний раз, коли ви повинні помістити iptables в режим паніки, поки ви перебуваєте фізично перед комп'ютером.