
Пример правил
В большинстве случаев пользователю достаточно выполнить такую последовательность комманд:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -P INPUT DROP
Примеры простых правил:
Заблокировать все входящие коннекты к 110 порту
iptables -A INPUT -p tcp --dport 110 -j DROP
Заблокировать входящие подключения по 80 порту на адрес 195.0.0.195
iptables -A INPUT -p tcp --dport 80 -d 195.0.0.195 -j DROP
Заблокировать входящие подключения по порту 80 tcp с адреса 193.0.0.193 на адрес 195.0.0.195
iptables -A INPUT -p tcp --dport 80 -s 193.0.0.193 -d 195.0.0.195 -j DROP
Указать входящий интерфейс eth0
iptables -A INPUT -p tcp --dport 80 -s 193.0.0.193 -i eth0 -j DROP
Можно также использовать символ отрицания !
Блокируем все подключения по 80 порту tcp отовсюду кроме сети 192.168.0.0/16
iptables -A INPUT -p tcp 80 -s ! 192.168.0.0/16 -j DROP
Модули
С использованием модулей iptables получит просто безграничные возможности. Для указания модуля используется опция -m. Например:
iptables -A INPUT -m модуль bla-bla
-m owner
Добавляет следующие опции (только для цепочки OUTPUT):
--uid-owner UID - UID программы, пославшей пакет.
--gid-owner GID - GID программы, пославшей пакет.
--pid-owner PID - PID программы, пославшей пакет.
--sid-owner SID - SID (идентификатор сессии; производится проверка SID пакета, значение SID наследуются дочерними процессами от "родителя").
--cmd-owner NAME - имя программы, пославшей пакет.
-m multiport
Позволяет указывать фильтрацию не по одному порту, а сразу несколько:
--source-ports порт1,порт2 - список портов, с которых пришел пакет;
--sports порт1,порт2 - укороченый аналог --source-ports;
--destination-ports порт1,порт2 - список портов назначения;
--dports порт1,порт2 - укороченый аналог --destination-ports;
--ports порт1,порт2 - проверяет как исходящий так и входящий порт пакета.
-m state
Предназначен для указания состояния пакета с помощью опции --state. Доступны следующие типы пакетов:
NEW - пакет устанавливающий новое соединение.
ESTABLISHED - пакет от уже установленного соединения.
RELATED - новый пакет уже установленном соединении.
-m mac
Проверяет соответствие MAC-адреса в пакете с помощью опции --mac-source, например:
iptables -A INPUT -s 192.168.0.1 -m mac --mac-source 00:65:3F:ED:12:98 -j DROP
Дополнительная информация
Руководство по iptables 1.1.19 (Рус.): http://www.opennet.ru/docs/RUS/iptables/
Часто используемые сетевые порты:
FTP |
TCP 20, 21 |
UUCP |
TCP 540 |
SSH |
TCP 22 |
RTCP |
TCP 554 |
Telnet |
TCP 23 |
MS Exchange |
TCP 691 |
SMTP |
TCP 25 |
MS SQL |
TCP 1433, 1434 |
DNS |
TCP,UDP 53 |
RADIUS |
TCP 1645 |
DHCP |
UDP 67,68 |
L2TP |
TCP 1701 |
TFTP |
UDP 69 |
MS PPTP |
TCP 1723 |
HTTP |
TCP 80, 8080 |
RADIUS |
TCP 1812, 1813 |
Kerberos |
TCP 88 |
NFS |
TCP 2049 |
POP3 |
TCP 110 |
Oracle DB |
TCP 2483, 2484 |
NNTP (Usenet) |
TCP 119 |
HTTP Proxy |
TCP 3128 |
NTP |
UDP 123 |
MySQL |
TCP 3306 |
Microsoft RPC |
135 |
Terminal Server |
TCP 3389 |
Службы Windows |
135..139 |
RTP |
TCP 5004, 5005 |
NETBIOS |
TCP 137 |
SIP |
5060 |
SNMP |
UDP 161,162 |
PostgreSQL |
TCP 5432 |
LDAP |
TCP 389 |
X.Window |
7000…7010 |
HTTPS |
TCP 443 |
HTTP Proxy |
TCP 8080 |
Microsoft DS |
TCP 445 |
Webmin |
TCP 10000 |
Kerberos |
TCP 464 |
NetBus |
TCP 12345 |
IKE (ISAKMP) |
UDP 500 |
HalfLife |
27015 |
SYSLOG |
UDP 514 |
BackOrifice |
31337 |
Варианты заданий:
Узнать, какие сетевые порты открыты на защищаемом хосте и какие программы их используют.
Запретить доступ к PC из внешних сетей
Разрешить исходящий ping – трафик.
Ограничить (запретить) входящий ping-трафик из внешней сети.
Запретить входящие ТСР- соединения из внешних сетей.
Запретить установление TELNET- соединения с данным компьютером.
Запретить SSH-трафик из внешней сети.
Разрешить пользователям внутренней сети использование почтовых сервисов SMTP и POP3. Запретить остальным использование почтовых сервисов.
Разрешить почтовому серверу обмен SMTP-трафиком с внешней сетью.
Запретить POP-трафик с внешними сетями.
Разрешить для внутренней сети использование FTP-сервера.
Разрешить всем пользователям внешней сети использование только web- и FTP-серверов.
Разрешить для внутренней сети использование только web-сервера
Запретить подключение к 80 порту Web – сервера.
Разрешить (запретить) для PC использование только одного web-сервера во внешней сети.
Разрешить доступ к внешним web-серверам только через proxy-сервер.
Запретить трафик к определенным web-серверам во внешней сети.
Разрешите прохождение запросов между DNS-сервером во внутренней сети и внешними DNS-серверами.
Запретить использование TFTP – сервера с определенного IP - адреса.
Разрешить подключение к MySQL – серверу только с определенного адреса.