Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Linux Firewall  (Прочитано 33907 раз)
0 Пользователей и 1 Гость смотрят эту тему.
A.R.T.
Гость
« Ответ #30 : 13-10-2009 06:14 » 

RXL, вот по этим правилам вроде работает

Код:
# Generated by iptables-save v1.2.11 on Tue Jul 18 22:20:07 2006
*nat
:PREROUTING ACCEPT [8:408]
:POSTROUTING ACCEPT [2:129]
:OUTPUT ACCEPT [2:129]
COMMIT
# Completed on Tue Jul 18 22:20:07 2006
# Generated by iptables-save v1.2.11 on Tue Jul 18 22:20:07 2006
*mangle
:PREROUTING ACCEPT [287:33378]
:INPUT ACCEPT [287:33378]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [288:38355]
:POSTROUTING ACCEPT [288:38355]
COMMIT
# Completed on Tue Jul 18 22:20:07 2006
# Generated by iptables-save v1.2.11 on Tue Jul 18 22:20:07 2006
*filter
:FORWARD ACCEPT [0:0]
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
# WEB access  -A INPUT -p tcp -m tcp -i eth1 --dport 9001:9080 -j DROP
# Web access    -A INPUT -p tcp -m tcp -i eth1 --dport 80 -j DROP
-A INPUT -p icmp -i eth1 -j DROP
# Accept traffic from internal interfaces -A INPUT -i eth1 -j ACCEPT
# Accept traffic with the ACK flag set -A INPUT -p tcp -m tcp --tcp-flags ACK ACK -j ACCEPT
# Allow incoming data that is part of a connection we established -A INPUT -m state --state ESTABLISHED -j ACCEPT
# Allow data that is related to existing connections -A INPUT -m state --state RELATED -j ACCEPT
# Accept responses to DNS queries -A INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j ACCEPT
# Accept responses to our pings -A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
# Accept notifications of unreachable hosts -A INPUT -p icmp -m icmp --icmp-type destination-unreachable -j ACCEPT
# Accept notifications to reduce sending speed -A INPUT -p icmp -m icmp --icmp-type source-quench -j ACCEPT
# Accept notifications of lost packets -A INPUT -p icmp -m icmp --icmp-type time-exceeded -j ACCEPT
# Accept notifications of protocol problems -A INPUT -p icmp -m icmp --icmp-type parameter-problem -j ACCEPT
# Allow connections to our SSH server -A INPUT -p tcp -m tcp --dport ssh -j ACCEPT
# Allow connections to our IDENT server -A INPUT -p tcp -m tcp --dport auth -j ACCEPT
# Allow connections to our SSH server -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# Allow connections to our WEB server -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# Allow connections to our Secure Web server -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
# Allow connections to our FTP server -A INPUT -p tcp -m tcp --dport 9001 -j ACCEPT
# Allow connections to our Webmin server -A INPUT -p tcp -m tcp --dport 9080 -j ACCEPT
# Allow connections to our Alternative Web server -A INPUT -p udp -m udp --dport 4569 -j ACCEPT
# Allow connections to our IAX server -A INPUT -p udp -m udp --dport 5000:5082 -j ACCEPT
# Allow connections to our SIP server -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
# Allow connections to our SIP-RTP server -A INPUT -p tcp -m tcp --dport 4445 -j ACCEPT
# Allow connections to our FOP server -A INPUT -p tcp -m tcp --dport 5038 -j ACCEPT
# Allow connections to NTP time server -A INPUT -p udp -m udp --dport 123 -j ACCEPT
# Allow connections to our Alternative Web server -A INPUT -p udp -m udp --dport 69 -j ACCEPT
# Allow connections to our Webmin server -A INPUT -p tcp -m tcp --dport 9022 -j ACCEPT
# Accept traffic from internal interfaces -A INPUT -i eth0 -j ACCEPT
COMMIT
# Completed on Tue Jul 18 22:20:07 2006

А как-то можно запретить всё на eth1 и разрешить только несколько портов .


Записан
A.R.T.
Гость
« Ответ #31 : 13-10-2009 06:31 » 


RXL,  Я правильно понимаю, что надо eth1 запретить, а выше создавать правила, которые разрешены?

Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 13-10-2009 08:14 » 

A.R.T., эти строки, начинающиеся с решетки - комментарии!!! Работает потому, что почти все закомментировано...

Рекомендую контролировать результат руками:
iptables -L -nx
или если еще детальнее:
iptables -L -nvx --line-numbers

Iptables - это древовидные цепочки правил. Проверка правил для пакета выполняется строго последовательно. Терминирующие действия типа ACCEPT, REJECT, DROP и т.п. прекращают дальнейшую обработку правил для текущего пакета. Соотв., чтобы "запретить все, разрешить определенное" надо сперва разрешить "определенное", а потом "запретить все".

Например такое задание: 2 интерфейса: eth0 - локалка, без защиты; eth1 - инет, входящие на порты 80/tcp и 22/tcp, пинги запрещены (imho, бессмыслица запрещать пинги).

Считаем, что таблицы у нас пустые.

# Через таблицы идет и трафик локальной петли - его фильтровать не надо.
iptables -A INPUT -i lo -j ACCEPT

# Локалку пускаем без фильтров.
iptables -A INPUT -i eth0 -j ACCEPT

# Теперь инет. Т.к. других интерфейсов у нас нет, то указание "-i eth1" опускаю.
# Ограничиваем пинги и разрешаем прочие icmp.
# Сменить правило на DROP всегда не поздно, а для тестирования лучше видеть реакцию.
iptables -A INPUT -p icmp -m icmp --icmp-type ping -j REJECT --reject-with icmp-host-prohibited
iptables -A INPUT -p icmp -j ACCEPT

# Разрешаем пакеты для уже активных соединений.
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Разрешаем создание соединений для портов 80/tcp и 22/tcp.
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

# Запрещаем "все остальное".
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

Ограничений на исходящие соединения не делаем (это сложнее и зачастую бесполезно).
Данный пример выполняется непосредственно в консоли (без всяких конфигов и служб).

Для очистки таблиц можно:

1. Воспользоваться побочным эффектом остановки "службы" iptables:

service iptables stop

2. Очистить iptables напрямую:

iptables -F
iptables -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t nat -F
iptables -t nat -X


В командах, где таблица не указывается явно, используется filter.

В конфиге /etc/sysconfig/iptables даны те же самые строки параметров iptables, только не указывается сама команда iptables и используемая таблица вынесена в заголовок блока.

Надеюсь стало яснее? Все таки хотелось бы чтобы было понимание. Т.к. рабочий пример я уже приводил, но что-то мешает его правильно применить.

Цитата
Applying iptables firewall rules: Error occurred at line: 19
Не понятно, к чему это относится.

Цитата
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
Bad argument `.log-level'
А вот это ясно дает понять, что правила сделаны без приложения знаний. Ищи, где у тебя встречается строка ".log-level".
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
A.R.T.
Гость
« Ответ #33 : 13-10-2009 09:12 » 


RXL, спасибо что уделили мне столько времени, сейчас сброшу все настройки и буду заново поднимать, посмотрим что получится.


Записан
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines