- •Iptables
- •История
- •Архитектура
- •Основные понятия
- •Принцип работы
- •Основные компоненты
- •netfilter
- •iptables
- •conntrack
- •nfnetlink
- •ipset
- •ipvs
- •Механизм определения состояний
- •Критерий состояния соединения
- •Маркировка соединений
- •Использование статистики по соединениям
- •Ограничение количества соединений
- •Отслеживание информации о соединениях
- •Действия
- •Переходы
- •Встроенные действия
- •Терминальные и нетерминальные действия
- •Таблицы
- •Таблица mangle
- •Цепочки
- •Действия
- •Таблица nat
- •Цепочки
- •Действия
- •Таблица filter
- •Цепочки
- •Действия
- •Таблица security
- •Цепочки
- •Действия
- •Таблица raw
- •Цепочки
- •Действия
- •Таблица rawpost
- •Цепочки
- •Действия
- •Критерии
- •Универсальные критерии
- •Критерии, специфичные для протоколов
- •IPsec
- •Критерии состояния соединения
- •conntrack
- •state
- •Дополнительные критерии
- •Вспомогательные критерии
- •Критерии маркировки
- •Лимитирующие критерии
- •Критерий recent
- •Критерий u32
- •Прочие критерии
- •Критерии из набора xtables-addons
- •Программы
- •Основные
- •iptables
- •ipset
- •Вспомогательные
- •Фронтенды
- •С веб-интерфейсом
- •Модули ядра
- •Параметры sysctl/procfs
- •Псевдофайлы procfs
- •Параметры, относящиеся к протоколам
- •Расширения
- •Userspace-компоненты
- •Наборы дополнительных критериев и действий
- •Patch-o-Matic
- •Команды
- •Команды модификации правил
- •Параметры определения правил
- •Модули
- •Некоторые из встроенных (входящие в стандартный пакет)
- •state
- •connlimit
- •iprange
- •multiport
- •Примечания
- •Литература
- •Ссылки
- •Лицензия
Iptables |
76 |
connlimit
Позволяет задавать возможное количество одновременных подключений к машине от заданного IP или блока адресов
[!] --connlimit-above n — пакет подойдет под описание, если количество одновременных подключений на данный момент больше (меньше), чем n
--connlimit-mask bits — позволяет задать маску блока адресов
iprange
Выделяет не один адрес, как --src, а все адреса от ip1 до ip2
Нужно учитывать тот факт что перед использованием данного критерия, необходимо подгрузить модуль его реализующий «-m iprange»
[!]--src-range ip1-ip2 [!]--dst-range ip1-ip2
multiport
Выделяет не один порт, как --dport или --sport, а несколько по списку (до 15 штук). Можно задавать диапазоны как первый_порт:последний_порт. Может быть использовано только вместе с -p udp или -p tcp.
[!]--source-ports port1,port2,port3:port4 [!]--destination-ports port1,port2,port3:port4 [!]--ports port1,port2,port3:port4
mac
Сравнение не IP источника пакета, а его ethernet-адреса
[!] --mac-source address. MAC-адрес должен быть указан в стандартном формате XX:XX:XX:XX:XX:XX.
Если нужна фильтрация по MAC-адресу в мостовых соединениях (например, pppoe), то можно воспользоваться утилитой ebtables, которая предназначена как раз для более низкоуровневой фильтрации пакетов.
Примечания
[1]http://www.netfilter.org/
[2]Разработчики Netfilter представили замену iptables (http://www.opennet.ru/opennews/art.shtml?num=20843)
[3]http://search.cpan.org/~hawk/IPTables-libiptc-0.18/lib/IPTables/libiptc.pm
[4]http://netfilter.org/projects/libnetfilter_queue/index.html
[5]http://conntrack-tools.netfilter.org/
[6]http://www.spinics.net/lists/netfilter-devel/msg17027.html
[7]http://git.netfilter.org/cgi-bin/gitweb.cgi?p=ipset.git;a=commit;h=d6ee5bb4e5346b84efa33858091ba4add2b26de2
[8]http://xtables-addons.sourceforge.net/
[9]http://www.linuxvirtualserver.org/
[10]http://linux-ha.org/
[11]http://jengelh.medozas.de/documents/Perfect_Ruleset.pdf
[12]Если кратко, EtherType указывает тип протокола, инкапсулированного в Ethernet-кадр. При работе с iptables это значение будет всегда равно 08:00 (протокол IPv4), при работе с ip6tables — 86:DD (IPv6). Полный список EtherTypes доступен на сайте IANA (http:// www.iana.org/assignments/ethernet-numbers), список поддерживаемых netfilter’ом — в файле /etc/ethertypes, который в большинстве дистрибутивов находится в пакете ebtables.
[13]http://www.netfilter.org/projects/ulogd/
[14]http://software.inl.fr/trac/wiki/EdenWall/NuLog
Iptables |
77 |
[15]Обычно проблемы с пониженным MTU в Ethernet-сетях возникают как раз из-за VPN-туннелей
[16]http://git.netfilter.org/cgi-bin/gitweb.cgi?p=iptables.git;a=blob;f=extensions/libipt_ECN.c
[17]http://www.iana.org/assignments/tcp-parameters/tcp-parameters.xhtml
[18]http://tools.ietf.org/html/rfc1323
[19]http://wiki.squid-cache.org/Features/Tproxy4
[20]http://packages.debian.org/squeeze/xtables-addons-common
[21]На самом деле, для «чистого» проброса адреса, даже при использовании stateful NAT, необходимо обычно два или три правила, в частности, для проброса соединений с самого сервера в цепочке OUTPUT. Более подробно это описано при рассмотрении операции DNAT таблицы nat, и здесь, с целью упрощения понимания примера, эти аспекты опущены
[22]Заметим, что для расчета масок подсетей и диапазонов адресов существует очень удобная утилита ipcalc.
[23]http://linux-ip.net/html/routing-tables.html
[24]http://tools.ietf.org/html/rfc3775
[25]http://www.openbsd.org/faq/pf/ftp.html#client
[26]http://www.openbsd.org/cgi-bin/man.cgi?query=ftp-proxy&sektion=8
[27]http://l7-filter.sourceforge.net/HOWTO-userspace#Does
[28]http://l7-filter.sourceforge.net/technicaldetails
[29]http://www.linux.org.ru/jump-message.jsp?msgid=3790164&cid=3791754
[30]http://www.hping.org/wbox/
[31]http://www.opennet.ru/base/net/iptables_tbf.txt.html
[32]http://jengelh.medozas.de/2009/0717-bandwidth-monitoring.php
[33]http://www.opennet.ru/docs/RUS/portsentry/portsentry-security.html.gz
[34]http://wiki.opennet.ru/Iptables_-m_recent
[35]http://www.debian-administration.org/articles/268
[36]http://silverghost.org.ua/2007/06/13/ssh-portknocking/
[37]http://www.opennet.ru/openforum/vsluhforumID3/41732.html#32
[38]http://tools.ietf.org/html/rfc3828
[39]http://www.117.su
Литература
• Gregor N. Purdy Linux iptables. Pocket Reference. — O’Reilly, 2004. — С. 97. — ISBN 0-596-00569-5
Ссылки
•Настройка межсетевого экрана в Linux
•Сайт (http://www.netfilter.org) проекта Netfilter
•Man page of iptables (http://security.maruhn.com/iptables-manual.html) (англ.)
•Frozentux Iptables Tutorial (http://www.frozentux.net/documents/iptables-tutorial/)*(англ.)
•Руководство по iptables (Iptables Tutorial 1.1.19) (http://www.opennet.ru/docs/RUS/iptables)*(рус.)
•Простой полноценный межсетевой экран (готовый шаблон для дектопа) (http://wiki.archlinux.org/index. php/Simple_stateful_firewall_HOWTO#Prerequisites) (англ.)
•Настройка межсетевого экрана Iptables (готовый шаблон для дектопа) (http://posix.ru/network/ iptables)*(рус.)
•flex-fw — это гибкая надстройка над iptables для построения сервис-ориентированного statefull-фаервола с простым синтаксисом команд (http://freshmeat.net/projects/flex-fw)
•linux.die.net/man/8/iptables (http://linux.die.net/man/8/iptables) (англ.)
•'man iptables' /*ubuntu linux*/ (http://manpages.ubuntu.com/manpages/karmic/en/man8/iptables.8. html)(англ.) (ubuntu community) (https://help.ubuntu.com/community/IptablesHowTo)(англ.)
•'man ufw' /*ubuntu linux*/ (http://manpages.ubuntu.com/manpages/karmic/en/man8/ufw.8.html)(англ.) (ubuntu community) (https://help.ubuntu.com/community/UFW)(англ.)
•'man gufw' /*ubuntu linux*/ (http://manpages.ubuntu.com/manpages/karmic/man8/gufw.8.html)(англ.) (ubuntu community) (https://help.ubuntu.com/community/Gufw)(англ.)
Iptables |
78 |
•'ubuntu fierwall' (https://help.ubuntu.com/9.10/serverguide/C/firewall.html)- 'ufw utility' (https://wiki. ubuntu.com/UncomplicatedFirewall) (ubuntu community) (https://help.ubuntu.com/community/Firewall)
(англ.)