Краткая памятка по Iptables
Iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) Netfilter для ядер Linux, начиная с версии 2.4. С её помощью администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Для работы с семейством протоколов IPv6 существует отдельная версия утилиты — Ip6tables. Для использования утилиты Iptables требуются привилегии суперпользователя (root).
Ниже будет приведена краткая памятка по работе с данным инструментом.
Синтаксис 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 — интерфейс с которого уйдет пакет;
- —sport — порт источника;
- —dport — порт назначения.
Действия:
- ACCEPT — разрешить пакеты;
- REJECT — блокировать пакеты с сообщением об отказе;
- DROP — блокировать пакеты.
Примеры использования:
- Блокируем все входящие пакеты с IP 10.10.10.10:
iptables -A INPUT -s 10.10.10.10 -j DROP
Если использовать знак отрицания (!) можно сделать блокировку всех адресов, кроме заданного:
iptables -A INPUT ! -s 111.111.111.111 -j DROP
- Снимаем блокировку с IP 10.10.10.10
iptables -D INPUT -s 111.111.111.111 -j DROP
- Просматриваем список с правилами:
iptables -L INPUT --line-numbers
Мы сможем увидеть пронумерованные правила, которые можно удалить с помощью ключа -D. Например, удалим правило под номером 5:
iptables -D INPUT 5
- Удаляем все правила:
iptables -F
- Блокируем все пакеты для диапазона IP адресов с 10.10.20.10 по 10.10.20.20:
iptables -I INPUT -m iprange --src-range 10.10.20.10-10.10.20.20 -j DROP
- Блокируем весь входящий трафик на порт 135 порт (DCOM):
iptables -A INPUT -p tcp --sport 135 -j DROP
- Блокируем вх/исх трафик на домен facebook.com:
iptables -A INPUT -s facebook.com -j DROP # блокируем входящие пакеты от домена facebook.com iptables -A OUTPUT -d facebook.com -j DROP # блокируем исходящие пакеты к домену facebook.com
- Блокируем диапазон 10.10.0.0/24:
iptables -i eth1 -A INPUT -s 10.10.0.0/24 -j DROP
- Логируем и блокируем диапазон 10.10.0.0/16:
iptables -A INPUT -s 10.10.0.0/16 -j LOG --log-prefix "IP DROP SPOOF A:" iptables -A INPUT -s 10.10.0.0/16 -j DROP
Для удобства можно прописать алиасы команд в .bashrc (или .bash_aliases) для удобства блокировки или разблокировки IP адреса:
alias ban='iptables -I INPUT -j DROP -s' alias unban='iptables -D INPUT -j DROP -s'
После чего блокировать и заблокировать адреса следующим способом:
ban 10.10.10.10
unban 10.10.10.10
Источник:
- http://wolf-et.ru/linux/iptables-for-dummies/