Использование Iptables в Linux

Оглавление:

Использование Iptables в Linux
Использование Iptables в Linux

Видео: Использование Iptables в Linux

Видео: Использование Iptables в Linux
Видео: VDS и VPS сервер. Что это и как настроить виртуальный сервер? - YouTube 2024, Ноябрь
Anonim

Это руководство попытается объяснить, как использовать iptables для Linux в понятном для понимания языке.

содержание

[скрывать]

  • 1 Обзор
  • 2 Использование

    • 2.1 Блокировка одного IP-адреса
    • 2.2 Разрешение всего трафика с IP-адреса
    • 2.3 Блокировка порта из всех адресов
    • 2.4. Разрешение одного порта с одного IP-адреса
    • 2.5 Просмотр текущих правил
    • 2.6. Очистка текущих правил
  • 3 Распространение

    3.1 Gentoo

обзор

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 в режим паники, пока выфизически перед компьютером.

Рекомендуемые: