Это руководство попытается объяснить, как использовать iptables для Linux в понятном для понимания языке.
содержание[скрывать]
|
обзор
Iptables - это брандмауэр на основе правил, который будет обрабатывать каждое правило до тех пор, пока не найдет тот, который соответствует.
Todo: включите сюда пример
использование
Утилита iptables обычно предварительно установлена в вашем дистрибутиве Linux, но на самом деле не работает никаких правил. Вы найдете полезность здесь в большинстве дистрибутивов:
/sbin/iptables
Блокировка одного IP-адреса
Вы можете заблокировать IP-адрес, используя параметр -s, заменив 10.10.10.10 на адрес, который вы пытаетесь заблокировать. В этом примере вы отметите, что мы использовали параметр -I (или -insert) тоже, а не append, потому что мы хотим убедиться, что это правило отображается первым, прежде чем разрешить какие-либо правила.
/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
Это должно дать вам результат, похожий на следующий:
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 192.168.1.1/24 anywhere ACCEPT all -- 10.10.10.0/24 anywhere DROP tcp -- anywhere anywhere tcp dpt:ssh DROP tcp -- anywhere anywhere tcp dpt:mysql
Разумеется, фактический результат будет немного длиннее.
Очистка текущих правил
Вы можете очистить все текущие правила, используя параметр flush. Это очень полезно, если вам нужно поставить правила в правильном порядке или при тестировании.
/sbin/iptables --flush
Распределение Специфичное
Хотя большинство дистрибутивов Linux включают в себя форму iptables, некоторые из них также включают в себя обертки, которые упрощают управление. Чаще всего эти «аддоны» принимают форму скриптов init, которые заботятся об инициализации iptables при запуске, хотя некоторые дистрибутивы также включают полномасштабные приложения-оболочки, которые пытаются упростить общий случай.
Gentoo
Iptables init на Gentoo способен обрабатывать многие распространенные сценарии. Для начала он позволяет настроить iptables для загрузки при запуске (обычно, что вы хотите):
rc-update add iptables default
Используя скрипт init, можно загрузить и очистить брандмауэр с помощью легкой для запоминания команды:
/etc/init.d/iptables start /etc/init.d/iptables stop
Сценарий init обрабатывает сведения о сохранении текущей конфигурации брандмауэра при запуске / остановке. Таким образом, ваш брандмауэр всегда находится в состоянии, в котором вы его оставили. Если вам нужно вручную сохранить новое правило, сценарий инициализации также может справиться с этим:
/etc/init.d/iptables save
Кроме того, вы можете восстановить брандмауэр в предыдущее сохраненное состояние (для случая, когда вы экспериментировали с правилами и теперь хотите восстановить предыдущую рабочую конфигурацию):
/etc/init.d/iptables reload
Наконец, скрипт init может поместить iptables в режим «паники», где весь входящий и исходящий трафик блокируется. Я не уверен, почему этот режим полезен, но все брандмауэры Linux, похоже, имеют его.
/etc/init.d/iptables panic
Предупреждение: Не запускайте режим паники, если вы подключены к вашему серверу через SSH; выбудут быть отключенным! Единственный раз, когда вы должны вводить iptables в режим паники, пока выфизически перед компьютером.