The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Пакетные фильтры в Linux: iptables, ipchains

   Корень / Администратору / Сетевая подсистема, маршрутизация / Пакетные фильтры и фаерволы / Пакетные фильтры в Linux: iptables, ipchains

----* Интерактивный firewall в Linux   Автор: tux2002  [комментарии]
  Linux обладает отличными средствами фильтрации сетевого трафика, но обычно в нём строят статический firewall. В данной статье я опишу идею и реализацию интерактивного firewall, который в случае подозрительной активности выводит пользователю окно с предложением блокирования трафика или игнорирования предупреждения.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Создание модуля для iptables, изменяющего ID пакета (доп. ссылка 1)   Автор: xlise  [комментарии]
  Данная статья основывается на материале "Разработка Match-модуля для iptables своими руками" (http://www.linuxjournal.com/article/7184), но код работает на ядрах 2.6.20+.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Совместное использование SELinux и iptables (доп. ссылка 1)   [комментарии]
  Используя утилиту [[http://james-morris.livejournal.com/11010.html Secmark]] можно организовать назначение в правилах iptables SELinux-меток для сетевых пакетов, примерно также как осуществляется назначение меток для локальных системных ресурсов. Подобное может использоваться для предотвращения доступа сторонних процессов, не находящихся под контролем SELinux, к определенному классу пакетов. Например, можно указать что запросы на 80 порт (метка http_packet_t) может отправлять только определенный web-браузер (или процесс, имеющий SELinux-метку http_t) и никто иной.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Простой интерактивный firewall в Linux   Автор: tux2002  [комментарии]
  Недавно на форуме спрашивали есть ли интерактивный firewall в Linux и многие отвечали, что нет. Ниже простая заготовка скрипта, следящего за событиями в логе, в случае подозрительной активности выводящего пользователю окно с предложением блокирования трафика или игнорирования предупреждения.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Установка ipfw и dummynet в Linux и Windows (доп. ссылка 1)   [комментарии]
  Не многие знают о том, что классический пакетный фильтр FreeBSD ipfw и система ограничения пропускной способности dummynet были успешно портированы в Linux и Windows.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Round Robin балансирование IP адресов исходящих соединений средствами iptables (доп. ссылка 1)   Автор: Stanislav S. Osipov  [комментарии]
  Данное решение отличается изящностью, так как реализует все средствами iptables. Синтаксис: на машине, которая должна балансировать исходящие соединения, выполнить скрипт balancer.sh:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Защита от bruteforce средствами iptables (доп. ссылка 1)   Автор: Владимир  [комментарии]
  В заметке приведены различные варианты защиты от bruteforce-атак, на примере блокирования последовательного подбора паролей через ssh.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Защита от спамерских и bruteforce-атак с помощью iptables   Автор: Забудкин Лев Мирославович  [комментарии]
  Сохраняем в файл скрипт:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Защищаем http-proxy от пробрасывания http-туннеля средствами iptables (доп. ссылка 1)   Автор: Владимир   [комментарии]
  При пробрасывании http-туннеля через http-прокси, http-заголовок пакета имеет аномально маленький размер, порядка 80-90 байт, так как передается лишь минимальный набор данных. Заголовок передаваемых браузером запросов обычно не бывает меньше 350 байт. Основываясь на данной особенности можно отфильтровать проброшенных поверх http-прокси туннели.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Настройка ufw в Ubuntu (доп. ссылка 1)   Автор: Eugene Shelepov  [комментарии]
  Начиная с версии Ubuntu 8.04 в ее состав по умолчанию включена новая упрощенная оболочка для работы с файрволом - ufw (Uncomplicated firewall - "незамысловатый" брэндмауер). Как известно Linux по умолчанию имеет очень мощный встроенный сетевой фильтр - netfilter.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Защита от трассировки маршрутов с помощью iptables (доп. ссылка 1)   Автор: Владимир  [комментарии]
 
Для того, чтобы затруднить исследование сети (локальной, DMZ и т.д.) можно
заблокировать все пакеты с низким значением TTL. Пример блокирования пакетов с
TTL меньше 5:

   iptables -A INPUT -p all -m ttl --ttl-lt 5 -j DROP

или

   iptables -A FORWARD -p all -m ttl --ttl-lt 5 -j DROP
 
----* Активное противодействие сканированию портов (доп. ссылка 1)   Автор: Владимир  [комментарии]
  Имеется сервер на нем ssh и web. Ниже приведён простой пример правил для блокирования на определенное время IP, обратившегося по неактивному номеру порта.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Защищаем SSH при помощи технологии "Port Knocking" (доп. ссылка 1) (доп. ссылка 2)   Автор: Дмитрий  [комментарии]
  Реализация идеи динамического открытия доступа к 22 порту, при предварительном обращении telnet-ом на определенный сетевой порт (в примере 333 - открыть доступ и 334 - закрыть). Идея реализована средствами iptables, без привлечения дополнительных утилит и анализаторов логов.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Методы сокрытия сервисов средствами iptables на примере sshd (доп. ссылка 1) (доп. ссылка 2)   Автор: Владимир  [комментарии]
  Все действия в нижеизложенной статье выполнялись в debian 5, стандартными средствами. Методы предназначены для сокрытия сервисов.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Использование L7-filter в Linux (доп. ссылка 1)   Автор: Сергей Яремчук  [комментарии]
  Проект l7-filter (http://l7-filter.sf.net) дает возможность Netfilter идентифицировать пакет на прикладном уровне данных, основываясь на его содержимом, и классифицировать пакеты по их назначению, без привязки к номеру порта. В настоящее время поддерживаются протоколы HTTP и FTP; P2P сети (Kazaa, BitTorrent, eDonkey2000, FastTrack); IM-системы (AIM/Jabber/IRC/MSN); VoIP/Skype; VPN; игры (Battlefield, CS, Doom3, WoW); файлы (exe, mp3) и даже сетевые черви - Code Red и Nimda.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Корректировка вывода arptables-save в Debian Lenny   Автор: аноним  [комментарии]
  Суть проблемы: в Debian Lenny arptables-save генерирует данные, синтаксически и семантически некорректные с точки зрения arptables-restore.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Ограничение возможностей ssh туннеля при помощи iptables   Автор: Avatar  [комментарии]
  Использование туннелей на основе ssh сейчас широко распространено. И многие используют его как универсальное решение для организации туннелей внутрь локальной сети для доступа к различным сервисам. И в связи с этим очень часто возникает вопрос "А как ограничить возможности такого туннеля".
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Скрипт для блокировки в iptables целых стран (доп. ссылка 1)   Автор: Vivek Gite  [комментарии]
  Скрипт для организации блокировки диапазонов IP адресов в привязке к названию страны. Например, можно использовать для блокирования всех непрофильных сайту стран в моменты DDoS атаки или запретить приход почты для стран с которыми явно не ведется переписка.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Поддержка TARPIT для RHEL 5/CentOS 5   Автор: Андрей  [комментарии]
  Для RHEL 5 / CentOS 5 исходники модуля TARPIT можно загрузить здесь:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Удаление iptables правил по их номерам   [комментарии]
 
Для отображения порядковых номеров iptables правил в списке необходимо
использовать опцию --line-numbers.
Например, просмотрим содержимое таблицы трансляции и правила, влияющие на
пересылку пакетов между интерфейсами:

   iptables -L POSTROUTING -t nat -n -v --line-numbers
   iptables -L FORWARD -n -v --line-numbers

Удалим несколько записей по номеру:

   iptables -D FORWARD 55
   iptables -t nat -D POSTROUTING 15

Цепочку следует явно указывать, так как номера уникальны только в рамках каждой цепочки.
Удалять следует внимательно и по одному элементу, так как после удаления
следующие номера сдвигаются!
Т.е., если вы хотели удалить в списке строки 15 и 25, удалять нужно, начиная с большего номера,
иначе 25 запись после удаления 15 сменит номер на 24.
 
----* Обход блокировки BitTorrent трафика, через отправку фиктивных RST пакетов (доп. ссылка 1)   Автор: tuxtraining.com  [комментарии]
  Некоторые сетевые операторы, например Comcast, используют ПО Sandvine для нарушения работы BitTorrent.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Как заблокировать через iptables пакеты отправленные из определенной ОС (доп. ссылка 1)   Автор: Evgeniy Polyakov  [комментарии]
  Модуль ost был написан для использования в iptables правилах результатов пассивного определения типа операционной системы, из которой был отправлен TCP SYN пакет.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Как увеличить размер таблицы контроля сессий ip_conntrack в Linux   [комментарии]
 
Если ядро ругается "kernel: ip_conntrack: table full, dropping packet.", причину флуда 
(скорее всего вирус или сканирование портов) можно найти по списку /proc/net/ip_conntrack
Если просто общая загрузка большая, увеличить размер таблицы можно через /proc/sys/net/ipv4/ip_conntrack_max

Также можно увеличить размерность хэша через параметр  hashsize модуля ip_conntrack:
/etc/modules.conf:
   options ip_conntrack hashsize=N

Более тонкий тюнинг можно произвести через переменные определенные в /proc/sys/net/ipv4/netfilter
 
----* Как вести лог блокировок в iptables и ipfw   [комментарии]
  Linux:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Статистика сетевых соединений через syslog и iptables   Автор: umask  [комментарии]
  Часто недовольные пользователи приходят и просят дать им распечатку логов доступа в интернет. Отчасти это позволяет сделать squid, но только при прозрачном проксировании, да и то логи только по http-протоколу.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Скрипт для автоматизации настройки iptables фильтра для локальной сети (доп. ссылка 1)   Автор: Константин Брызгалов  [комментарии]
  На разных машинах в моей локальной сети накопилась куча программ, которым нужен был выход в интернет напрямую. У каждой свой набор портов. Захотелось на входе иметь минимальную конфигурацию, описывающую ресурсы, а на выходе набор разрешающих правил для iptables. В основном были клиент-банки - поэтому и такая терминология в программе.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Лимитирование числа запросов в единицу времени через iptables (доп. ссылка 1)   Автор: Steve  [комментарии]
 
Разрешаем производить только 4 коннекта к 22 порту в течении 60 секунд:

   iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

   iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \
      --update --seconds 60 --hitcount 4 -j DROP
 
----* Ограничение трафика через iptables (доп. ссылка 1)   Автор: Николай Малых  [комментарии]
  ipt_limit - общее ограничение по срабатываний правила
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Примеры возможностей iptables открывающихся после установки POM (patch-o-matic) (доп. ссылка 1)   [комментарии]
  Фильтрация по строковой маске:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Как удалить iptables правило по номеру   [комментарии]
 
iptables -L INPUT --line-numbers
iptables -D INPUT номер

iptables -t nat -L POSTROUTING --line-numbers
iptables -t nat -D POSTROUTING номер
 
----* Как ограничить пропускную полосу для пакетов помеченных меткой через MARK.   Автор: Denis Fedorishenko (NuclearCat)  [комментарии]
 
Сделать MARK, и загнать все такие трансферы в какой-либо класс шейпера. 
Т.е. если например помеченные пакеты - все их отнести к классу 1:51 где
скорость ограничена от 32К до 64К:
  tc filter add dev eth1 parent 1:0 protocol ip prio 100 handle 51 fw classid 1:51
  tc class add dev eth1 parent 1:2 classid 1:51 htb rate 32Kbit ceil 64Kbit
  tc qdisc add dev eth1 parent 1:51 handle 51 sfq perturb 10
 
----* Как запретить пользователям качать большие файлы   Автор: Denis Fedorishenko (NuclearCat)  [обсудить]
 
- Собираем поддержку connbytes в patch-o-matic.
- Добавляем правило в firewall, например:
     iptables -A FORWARD --connbytes 100000 -j REJECT
- теперь все TCP сессии более 100 Кбайт будут "обрезаны", необходимо добавить 
исключения для протоколов типа ssh, обычные "долгоживущие" чаты и т.п.
 
----* Борьба с Kazaa и прочим вредным трафиком путем вырезания пакетов по маске   Автор: Denis Fedorishenko (NuclearCat)  [комментарии]
 
- собираем поддержку "string" в patch-o-matic.
- смотрим на протокол Kazaa, в заголовках содержится:
  HTTP/1.0 503 Service Unavailable.Retry-After: 3..X-Kazaa-Username: BlazeTre
- добавляем в firewall строчку - iptables -A FORWARD -m string --string "X-Kazaa-" -j REJECT
 
----* Как в Linux перебросить соединение через NAT во внутреннюю сеть (доп. ссылка 1)   Автор: Dimez  [комментарии]
 
Первый путь - пробрасывание только порта:
  1) iptables -t nat -A PREROUTING -p tcp -d EXT_R_IP --dport 10000 -j DNAT --to-destination LOCAL_IP:80
  2) iptables -A FORWARD -i eth0 -d LOCAL_IP -p tcp --dport 22 -j ACCEPT

Второй вариант - выброс всей машины наружу (если есть свободные адреса):
  1) ifconfig eth0:0 NEW_IP netmask NETMASK broadcast BROADCAST
  2) route add NEW_IP gw GW netmask 0.0.0.0 metric 1 dev eth0:0
  3) iptables -t nat -A PREROUTING -p tcp -d NEW_IP -j DNAT --to-destination LOCAL_IP
  4) iptables -A FORWARD -i eth0 -d LOCAL_IP -j ACCEPT

Обозначения: EXT_R_IP - внешний IP роутера, LOCAL_IP - внутренний IP машины,
которую хочешь выбросить
  NEW_IP - новый IP на который хочешь посадить машину, которая имеет локальный LOCAL_IP
  NETMASK, BROADCAST, GW - внешние netmask, broadcast и gateway
 
----* Пример настройки NAT с привязкой к IP под Linux   [комментарии]
 
  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -o eth0 -j SNAT --to-source 212.23.98.45
или (без привязки к IP)
  ipchains -A forward -j MASQ -s 192.168.0.0/16 -d 0.0.0.0/0
или (через iproute2)
  ip rule add from 10.0.1.0/24 nat 254.147.38.14
Диругой способ трансляции адресов:
  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j MASQUERADE
 
----* Как ограничить через iptables максимальное число одновременных соединений с одного IP.   [комментарии]
 
# Максимум 10 одновременных соединений к 80 порту с одного IP
  iptables -A INPUT-p tcp --dport 80 -m iplimit --iplimit-above 10 -j REJECT
# Блокируем на стадии SYN
  iptables -I INPUT -p tcp --syn --dport 80 -j DROP -m iplimit --iplimit-above 10
# 20 соединений на сеть класса С
  iptables -p tcp --dport 80 -m iplimit --iplimit-above 20 --iplimit-mask 24 -j REJECT 
  
 
----* Как посмотреть статистику по PREROUTING цепочкам в iptables.   [комментарии]
 
> Делаю:
> iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.22.33:3128
> По iptables -L ничего не показывается.
Используйте: iptables -t nat -L
 
----* Как настроить пакетный фильтр для фильтрации по содержимому пакетов   [комментарии]
 
Следующие правила блокируют прохождение пакетов, данные в которых содержат подстроку virus.exe
и ведут лог пакетов с строкой secret внутри:
iptables -A INPUT -m string --string "secret" -j LOG --log-level info --log-prefix "SECRET"
iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --string "virus.exe"
# Block Code Red
iptables -I INPUT -j DROP -p tcp -m string --string "cmd.exe"
# Block Nimda
iptables -I INPUT -j DROP -p tcp -m string --string "root.exe"
iptables -I INPUT -j DROP -p tcp -m string --string "default.ida"
 
----* Как настроить NAT (транслятор адресов) для нормальной работы с FTP и ICQ в Linux   [комментарии]
 
iptables:
   modprobe iptable_nat
   modprobe ip_conntrack_ftp
   modprobe ip_nat_ftp                     
   modprobe ip_nat_irc
ipchains:
   modprobe ip_masq_ftp
   modprobe ip_masq_raudio
   modprobe ip_masq_irc
   modprobe ip_masq_icq
 
----* Список интересных iptables модулей-расширений. (доп. ссылка 1)   [обсудить]
  Фильтрация по MAC (mac):
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Можно ли отфильтровывать пакеты (вести лог) в зависимости от UID пользователя ?   [обсудить]
 
Для FreeBSD:
ipfw add count tcp from any to not 192.168.1.0/24 uid 231
uid user (или gid group) - под правило попадают все TCP или UDP пакеты посланный 
или принятые пользователем user (группой group).
В Linux в ядрах 2.4.x в iptables можно использовать модуль owner.
 
----* Ограничение трафика через iptables (доп. ссылка 1)   Автор: Z0termaNN  [комментарии]
 
iptables --new-chain car
iptables --insert OUTPUT 1 -p tcp --destination-port 25 -o eth1 --jump car
iptables --append car -m limit --limit 20/sec --jump RETURN
iptables --append car --jump DROP
 

 Версия для печати



АКЦИЯ! ПОДПИШИСЬ на журнал Linux Format до 31 января 2012 года и выиграй СУПЕРПРИЗ!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Подробнее о проведении акции вы можете прочитать на странице сайта.


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList