Основные моменты использования iptables

Опубликован в блоги: IPTABLES, SSH
Что такое iptables? iptables — утилита(служба) для контроля сетевого трафика или попросту некий фаерволл с огромными возможностями.
Важно: запускать iptables необходимо с правами root'a.

Синтаксис iptables следующий:
iptables [-t ТАБЛИЦА] -A ЦЕПОЧКА ПАРАМЕТРЫ -j ДЕЙСТВИЕ

Ключи для работы с цепочками:
-A — добавить новое правило.
-D — удалить правило.
-F — удалить все правила.
-R — замена правила.
-L — вывод списка всех правил.

В таблице filter(по умолчанию) существую следующие цепочки:
INPUT — входящий трафик.
OUTPUT — исходящий трафик.
FORWARD — пересылаемый(транзитный) трафик.

Параметры:
-p — протокол, можно использовать all,icmp,tcp,udp.
-s — ip адрес/хост источника.
-d — ip адрес/хост назначения.
-i — интерфейс на который пришел пакет.
-o — интерфейс с которого уйдет пакет.
(просмотреть все интерфейсы можно с помощью команды.ifconfig, обычно это eth0)
--sport — порт источника.
--dport — порт назначения.

Действия:
ACCEPT — разрешить пакеты.
REJECT — блокировать пакеты с сообщением об отказе.
DROP — блокировать пакеты(более приоритетный вариант, нежели REJECT, т.к для блокируемого ip адреса(или диапазонов) будет аналогичный эффект тому, когда сервер находится в дауне).

Несколько примеров:

1) Блокируем все входящие пакеты с ip адреса 111.111.111.111
iptables -A INPUT -s 111.111.111.111 -j DROP


А с помощью знака "!"(отрицание) можно сделать блокировку всех адресов(хостов), кроме заданного.
Например, с помощью нижеприведенной команды, пакеты будут блокироваться со всех адресов, кроме 111.111.111.111
iptables -A INPUT ! -s 111.111.111.111 -j DROP


2) Снимаем бан с IP 111.111.111.111
iptables -D INPUT -s 111.111.111.111 -j DROP


3) Просмотр списка с правилами
iptables -L INPUT --line-numbers


Таким образом мы сможем увидить все пронумерованные правила, которые также можно удалить с помощью ключа -D.
Нижеприведенная команда удаляет правила под номером 5.
iptables -D INPUT 5


4) Поностью очищаем список со всеми правилами
iptables -F


5) Блокируем входящие пакеты для диапазона ip адресов c 192.168.0.8 по 192.168.0.25
iptables -I INPUT -m iprange --src-range 192.168.0.8-192.168.0.25 -j DROP


6) Блокируем весь входящий трафик на 80 порт(http).
iptables -A INPUT -p tcp --sport 80 -j DROP


7) Блокируем домен vk.com(вконтакте).
iptables -A INPUT -s vk.com -j DROP # блокируем входящие пакеты от домена vk.com
iptables -A OUTPUT -d vk.com -j DROP # блокируем исходящие пакеты к домену vk.com


Другие домены вконтакта: vk.com, vkontakte.ru, incontact.ru, durov.ru
Также можно прописать алиасы в файл .bashrc(или в .bash_aliases) для удобства использования первого и второго примера:

alias ban='iptables -I INPUT -j DROP -s'
alias unban='iptables -D INPUT -j DROP -s'


После чего можно гораздо быстрее банить ip адрес командой
ban 111.111.111.111


и снимать бан командой
unban 111.111.111.111

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.