Фильтрация по строковой маске:
iptables -A FORWARD -i eth0 -p tcp --sport 80 \
-m string --string '|7F|ELF' -j DROP
iptables -A FORWARD -i eth0 -p tcp \
! -s 192.168.0.5 --sport 80 -m string \
--string '|7F|ELF' -j DROPСжатая компоновка номеров портов в одной строке:
iptables -A INPUT -p tcp -m mport \
--dports 80,110,21,6000:6003 -j ACCEPTУчет времени при блокировке:
iptables -A INPUT -p tcp -d 80 -m time \
--timestart 04:00 --timestop 06:30 --days Fri \
--syn -j REJECTКоннект в пустоту (соединение не закрывается, но ничего не происходит):
iptables -A INPUT -p tcp -m tcp -dport 80 -j TARPITСрабатывание правила с заданной вероятностью (в процентах):
iptables -t nat -A PREROUTING -i eth0 -p tcp \
--dport 80 --syn -m random --average 33 \
-j DNAT --to-destination 192.168.0.100:80
iptables -t nat -A PREROUTING -i eth0 -p tcp \
--dport 80 --syn -m random --average 50 \
-j DNAT --to-destination 192.168.0.101:80
iptables -t nat -A PREROUTING -i eth0 -p tcp \
--dport 80 --syn -j DNAT \
--to-destination 192.168.0.102:80См. также статью http://linuxgazette.net/108/odonovan.html
URL: http://www.linuxjournal.com/article.php?sid=7180
Обсуждается: http://www.opennet.me/tips/info/690.shtml
iptables v1.2.7a: Couldn't load match `time':/lib/iptables/libipt_time.so: cannot open shared object file: No such file or directoryКак с эти бороться?
Пример РАБОТЫ
// сохранение новой таблицы
iptables-save | sudo tee /etc/sysconfig/iptables
// перезапуск сервиса iptables
service iptables restart
Примеры настроек iptables из лаб:
// включает прием всех пакетов с хоста ws.mytrust.ru
iptables -t filter -A INPUT -s ws.mytrust.ru -j ACCEPT// запрещает отправку всех пакетов на хост mail.ru на порт 25
iptables -t filter -A OUTPUT -d mail.ru --dport 25 -j DROP// запрещает прием всех сообщений
iptables -t filter -A INPUT -j DROP//С помощью скрипта /etc/sysconfig/iptables настройте клиентский NAT и публикацию порта telnet клиента на порту № 2222.
iptables -t nat -A POSTROUTING -s 10.0.0.2 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 2222 -j DNAT --to-destination 10.0.0.2:23//Запретите передачу данных между приватной сетью и хостом de.ifmo.ru
iptables -A FORWARD -s 10.0.0.2 -d de.ifmo.ru -j DROP//Должен быть доступен DNS сервер c адресом, равным DNS на реальном компьютере (определить и установить вручную).
iptables -A FORWARD -s 10.0.0.2 -d 8.8.8.8 -j ACCEPT//Должен быть доступен и HTTP прокси с адресом proxy.ifmo.ru
iptables -A FORWARD -s 10.0.0.2 -d proxy.ifmo.ru -j ACCEPT//Должен быть доступен FTP сервер ftp.ifmo.ru
iptables -A FORWARD -s 10.0.0.2 -d ftp.ifmo.ru -p tcp -m multiport --ports 20,21 -j ACCEPT//Должны быть доступны все наружные POP3 сервера
iptables -A FORWARD -s 10.0.0.2 -p tcp -m multiport --ports 110,995 -j ACCEPT//Должен быть доступен SMTP сервер mail.ifmo.ru
iptables -A FORWARD -s 10.0.0.2 -d mail.ifmo.ru -p tcp -m multiport --ports 25 -j ACCEPT//Со всех узлов подсети 83.0.0.0/16 должен быть доступен SSH сервер на компьютере – шлюзе
iptables -A INPUT -s 83.0.0.0/16 -d 10.0.0.1 -p tcp -m multiport --ports 22 -j ACCEPT
//Отдельно должен быть заблокирован доступ к шлюзу и к внутренней сети с хоста 10.10.11.173
iptables -A INPUT -s 10.10.11.173 -d 10.0.0.0/8 -p tcp -j DROP//Шлюз не должен отвечать на запросы команды PING с внутренней сети
iptables -A INPUT -s 10.0.0.0/8 -d 10.0.0.1 -p icmp --icmp-type echo-reply -j DROP
iptables -A OUTPUT -s 10.0.0.1 -d 10.0.0.0/8 -p icmp --icmp-type echo-reply -j DROP//Должны быть не доступны все наружные Web сервера
iptables -A FORWARD -s 10.0.0.2 -p tcp -m multiport --ports 80,443 -j DROP//Работа с остальными сервисами должна быть блокирована
iptables -A FORWARD -s 10.0.0.2 -j DROP