Портал информационной и технической поддержки ПО образовательных учреждений РФ

SPO HELP
  • Новости
  • Продукты
  • Поддержка
  • Учебный центр
  • Документация
  • Сообщество
  • Форумы
       
  • Вход
  • Регистрация

Форумы → Готовые решения → ipTables
Последние записи

ipTables

Подписаться на ipTables Сообщений: 7, участников: 4

  • Участвуют:
  • Julia Dronova (administrator)
  • Александр Демин
  • Viktor
Ответить


12 октября 2010, 12:54
Zhuu_admin_medium Julia Dronova (administrator) Записей: 3144

IPTABLES (firewall)

iptables -t filter -nL - отобразить все цепочки правил

iptables -nL - отобразить все цепочки правил

iptables -t nat -L -отобразить все цепочки правил в NAT-таблице

iptables -t filter -F - очистить все цепочки правил в filter-таблице

iptables -F - очистить все цепочки правил в filter-таблице

iptables -t nat -F -очистить все цепочки правил в NAT-таблице

iptables -t filter -X -удалить все пользовательские цепочки правил в filter-таблице

iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT - позволить входящее подключение telnet'ом

iptables -t filter -A OUTPUT -p tcp --dport http -j DROP -блокировать исходящие HTTP-соединения

iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT - позволить "прокидывать" (forward) POP3-соединения

iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT" - включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT"

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.

iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 - перенаправление пакетов, адресованных одному хосту, на другой хост

iptables -A INPUT -p tcp --syn --dport 23 -m connlimit --connlimit-above 2 -j REJECT - допускать не больше 2 соединений telnet с одного хоста

iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 16 --connlimit-mask 24 -j REJECT - ограничить число одновременных запросов http до 16 на подсеть класса C (24 первых разряда) Примечание: Чтобы отменить ошибочное правило не обязательно очищать все цепочки правил, для этого в опции iptables есть команда -A, --append означает -добавить одно или несколько правил в конец указанной цепочки.

-D, --delete удалить

Так в нашем случае: iptables -t filter -D OUTPUT -p tcp --dport http -j DROP - отменяет заданную нами ранее блокировку исходящих HTTP-соединений

можно также

iptables -t nat -D POSTROUTING 1 где 1 это номер правила по порядку, или удаляем все правила из таблицы POSTROUTING iptables -t nat -F POSTROUTING

Еще примеры использования iptables:

Прописываем правила, закрывающие все порты за исключением 25 (smtp: принимаем почту) и 80 (http: показываем web страницы)

# iptables -A INPUT -i eth1 -p tcp --dport 25 -j ACCEPT # iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable # iptables -A FORWARD -o eth1 -p tcp -j DROP

Теперь наш сервер прикрыт с внешнего мира. Запуск команд netcat и nmap c самого сервера покажет тоже, что и до внесения правил, но если пробовать с другого компьютера, то заметим результат: доступ везде прикрыт, кроме как на разрешённые нами 25 и 80 порты.

iptables -t nat -A POSTROUTING -s 10.0.3.41 -d 217.217.217.217 -o eth1 -p tcp --dport 25 -j SNAT --to 116.116.116.116 Разрешаем прямой доступ к внешней почте. Подробнее: разрешаем доступ хосту 10.0.3.41 из внутренней сети обращаться к хосту 217.217.217.217 на 25 порт (smtp) протокола tcp; такие обращения пропускаем через интерфейс eth1, который имеет адрес 116.116.116.116

Для доступа к РОР добавляем такое же правило для порта 110

iptables -t nat -A POSTROUTING -s 10.0.3.41 -p tcp --dport 25 -j MASQUERADE

Более короткое правило, аналогичное вышеприведённому, только здесь пользователь с ip 10.0.3.41 имеет доступ к любому почтовому серверу в Интернете. Можно посмотреть действующие правила в виде команд:

# iptables-save

Чтобы запомнить эти правила сохраняем новую конфигурацию в этот файл:

# iptables-save > /etc/sysconfig/iptables

Теперь при запуске системы прописанные нами правила восстановятся.

Дополнение: Разрешаем маршрутизацию на на один раз до перезагрузки

sysctl -w net.ipv4.ip_forward=1

Проверить

sysctl -a |grep forwarding

увидеть net.ipv4.conf.lo.forwarding = 1 или 0 если не открыт

Для того чтобы правило вступало в силу и после перезагрузки заходим в /etc/net/sysctl.conf находим

net.ipv4.ip_forward = 0 и изменяем на 1

Проверим, осуществляется ли автоматический запуск iptables, то есть запускается при перезагрузки сервера проверяем

chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off

видим, что нет. Добавляем и проверяем:

chkconfig --level 35 iptables on chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:off 5:on 6: off

 

via salomatin.ru

 
17 октября 2010, 20:36
Icon_missing_medium Александр Демин Записей: 186

Могу лишь добавить, что можно создать исполняемый файл со всеми правилами и добавить его в автозагрузку - тогда можно не править стандартные конфиги.

 
17 октября 2010, 21:01
Zhuu_admin_medium Julia Dronova (administrator) Записей: 3144

Александр Демин писал(а):

Могу лишь добавить, что можно создать исполняемый файл со всеми правилами и добавить его в автозагрузку - тогда можно не править стандартные конфиги.

​
Александр, найдёте время показать пример такого файла и как добавить его в автозагрузку? Для начинающих администраторов :)
 
27 октября 2010, 15:00
Zhuu_admin_medium Julia Dronova (administrator) Записей: 3144

Тема уважаемого Денис Павелко перенесена сюда, форум всё-таки для готовых решений.

 
20 ноября 2010, 19:11
Icon_missing_medium Александр Демин Записей: 186

Julia Dronova (administrator) писал(а):

Александр Демин писал(а):

Могу лишь добавить, что можно создать исполняемый файл со всеми правилами и добавить его в автозагрузку - тогда можно не править стандартные конфиги.

​
Александр, найдёте время показать пример такого файла и как добавить его в автозагрузку? Для начинающих администраторов :)
​))Выполняю просьбу..
Так как с серверами привык работать удаленно (всегда стараюсь использовать Midnight Commander), то
1. Регестрируемся в системе от имени root
2. Переходим в родной для root'а каталог - /root/
3. Выполняем touch /root/firewall.rules назавание произвольное... я назвал так, что бы было что там - правила для файрволла
4. Запускаем mc, находим в нем firewall.rules нажимаем F4
5. Первой строкой в файле должно быть следующее -
#!/bin/sh
6. Далле пишите правила для файрволла, причем каждое правило - это новая строка... простой пример:
Файл firewall.rules (три сетевых интерфейса, один - инет на eth0, второй смотрит внутрь и имеет адрес из сети 192.168.0.0 с подмаской 255.255.255.0, к третьему с адресом 192.168.8.1 подключен VOIP шлюз, имееющий адрес 192.168.8.2
#!/bin/sh
/sbin/iptables -F
/sbin/iptables -x
/sbin/iptables -t nat -F
/sbin/iptables -t nat -x
#следующие три строки работают для того, чтобы обеспечить прохождение пакетов, но требует изменения, иначе атак извне не избежать... для начинающих политики следует поставить в ACCEPT !!!!
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -dst 192.168.8.2 -j SNAT --to-source 192.168.8.1
закрываем редактор, сохраняя отредактированное, после чего выполняем
chmod 777 /root/firewall.rules
в каталоге /etc/init.d или /etc/rc.d находим файл rc.local в который добавляем строку
/root/firewall.local
После перевозки получаем нужную конфигурацию файрволла, причем всегда можно вернуть стандартную - просто закоментировав строку  в файле rc.local
 
22 ноября 2010, 22:15
Custom_Аватар_medium Viktor Записей: 1327

> Могу лишь добавить, что можно создать исполняемый файл со всеми правилами и добавить его в автозагрузку - тогда можно не править стандартные конфиги.

Сдаётся мне, что это не самая хорошая идея. Большинство дистрибутивов имеют собственные "правила" инициализации iptables. Попробуй потом разберись на каком этапе и какие именно (да и откуда) правила были задействованы. Сменился админ и ищи, что и откуда. Здесь хоть имя говорящее. Кстати, rc.local на каком уровне исполняется, последним? Думаю править стандартные конфиги более правильно, хотя бы из идиолектических соображений.

 
03 декабря 2010, 11:42
Icon_missing_medium Александр Демин Записей: 186

Возможно, Вы и правы... Вот только сколько сталкивался с различными дистрибутивами - конфиги стандартные еще найти надо... К примеру, тот же Alt... Правка стандартного конфига результатов не даст, если установлно графическое окружение...

Войдите чтобы ответить на тему

Форумы → Готовые решения → ipTables
  • Главная
  • О проекте
  • Справка
  • Теги
  • Карта сайта

©2015 Все права защищены. Портал информационной и технической поддержки ПО образовательных учреждений РФ.
Cо всеми проблемами и пожеланиями по работе портала и службы технической поддержки вы можете обратиться по адресу .