Не могу сообразить, что не так...

Конфигурирование IPTABLES (Установка, настройка IPTABLES, Маскарадинг, Firewall)
dimanlev
Сообщения: 13
Зарегистрирован: 01 дек 2010, 18:27

Не могу сообразить, что не так...

Сообщение dimanlev » 20 дек 2010, 17:24

Вот скрипт.

#Секция сбрасывает все правила и удаляет цепочки
iptables -F
iptables -X

#Устанавливаем политику по умолчанию DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Разрешаем все входящие и исходящие соединения на локальном интерфейесе
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#Открываем порт SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT

#Открываем порт для DNS-сервера
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT

iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT

#Открываем порт FTP-сервера
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT

#Пропускаем все пакеты, относящиеся к уже установленным или связанным соединениям
iptables -A INPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#Открываем Интернет на локальную сеть
iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Настроен FTP, DNS, SSH. Так вот, эти службы отвечают на сервере, т.е. в INPUT и OUTPUT все правила работают. А вот выйти в Интернет из локальной сети не удаётся. Где я не вижу ошибки?

Аватара пользователя
Роман Торопов
Администратор
Сообщения: 135
Зарегистрирован: 24 мар 2008, 10:49
Откуда: г. Пермь
Контактная информация:

Re: Не могу сообразить, что не так...

Сообщение Роман Торопов » 21 дек 2010, 13:46

dimanlev писал(а): Настроен FTP, DNS, SSH. Так вот, эти службы отвечают на сервере, т.е. в INPUT и OUTPUT все правила работают. А вот выйти в Интернет из локальной сети не удаётся. Где я не вижу ошибки?
На локальный компах, в настройках сетевого интерфейса должен быть указан шлюз (IP на eth1), внешние DNS-сервера (IP DNS-серверов провайдера).

dimanlev
Сообщения: 13
Зарегистрирован: 01 дек 2010, 18:27

Re: Не могу сообразить, что не так...

Сообщение dimanlev » 21 дек 2010, 13:53

Спасибо большое за реакцию. Шлюз указан. А почему внешний DNS? Задача стоит на брандмауэре поднять DNS.
Вот ещё что заметил.
При iptables -P INPUT DROP и -P OUTPUT DROP nslookup не разрешает имя в адрес, а если выставить ACCEPT, то прекрасно работает.
Соответственно и Интернет работает.
Сейчас ковыряюсь в named.conf, может там что-то.
Ещё в логе сообщение named worked directory not writable.

Аватара пользователя
Роман Торопов
Администратор
Сообщения: 135
Зарегистрирован: 24 мар 2008, 10:49
Откуда: г. Пермь
Контактная информация:

Re: Не могу сообразить, что не так...

Сообщение Роман Торопов » 21 дек 2010, 13:56

dimanlev писал(а):Спасибо большое за реакцию. Шлюз указан. А почему внешний DNS? Задача стоит на брандмауэре поднять DNS..
Вот когда он заработает, тогда у пользователей указать локальный IP DNS сервера
dimanlev писал(а):Вот ещё что заметил.
При iptables -P INPUT DROP и -P OUTPUT DROP nslookup не разрешает имя в адрес, а если выставить ACCEPT, то прекрасно работает.
Соответственно и Интернет работает.
Сейчас ковыряюсь в named.conf, может там что-то.
Ещё в логе сообщение named worked directory not writable.
достаточно по дефолту открыть OUTPUT
-P OUTPUT ACCEPT
убрать цепочки OUTPUT

Все цепочки OUTPUT - это все запросы от сервера в интернет (из сервера в интернет или в локаль).
INPUT - из интернет (или локали) на сервер
FORWARD - всё что идёт мимо сервера (из локали в интернет и обратно)

dimanlev писал(а):#Открываем Интернет на локальную сеть
iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Вместо этого нужно вот это:
-A FORWARD -s 192.168.0.0/24 -p icmp -i eth1 -j ACCEPT # пинги
-A FORWARD -d 192.168.0.0/24 -p icmp -o eth1 -j ACCEPT # пинги
-A FORWARD -s 192.168.0.0/24 -p udp -m udp --dport 53 -i eth1 -j ACCEPT # DNS запросы
-A FORWARD -d 192.168.0.0/24 -p udp -m udp --sport 53 -o eth1 -j ACCEPT # DNS запросы
-A FORWARD -s 192.168.0.0/24 -p udp -m udp --dport 123 -i eth1 -j ACCEPT # Синхронизация системного времени
-A FORWARD -d 192.168.0.0/24 -p udp -m udp --sport 123 -o eth1 -j ACCEPT # Синхронизация системного времени
-A FORWARD -s 192.168.0.0/24 -p tcp -m multiport --dports 20-22,25,80,110,443,8080 -i eth1 -j ACCEPT # разрешенные порты
-A FORWARD -d 192.168.0.0/24 -p tcp -m multiport --sports 20-22,25,80,110,443,8080 -o eth1 -j ACCEPT # разрешенные порты

Где
eth1 - локальный сетевой интерфейс
192.168.0.0/24 - локальная подсеть

dimanlev
Сообщения: 13
Зарегистрирован: 01 дек 2010, 18:27

Re: Не могу сообразить, что не так...

Сообщение dimanlev » 21 дек 2010, 14:38

Ммм... этот вариант не работает тоже............

dimanlev
Сообщения: 13
Зарегистрирован: 01 дек 2010, 18:27

Re: Не могу сообразить, что не так...

Сообщение dimanlev » 21 дек 2010, 15:44

Всё-таки проблема с DNS.
Вот что происходит.
Когда iptables остановлена (читай INPUT и OUTPUT установлены в ACCEPT)
то, nslookup <какой-то адрес> 127.0.0.1 и nsookup <какой-то адрес> IP_DNS (сервер провайдера)
работают.
А когда INPUT и OUTPUT устанавливаю в DROP, то уже не проходит.

Аватара пользователя
Роман Торопов
Администратор
Сообщения: 135
Зарегистрирован: 24 мар 2008, 10:49
Откуда: г. Пермь
Контактная информация:

Re: Не могу сообразить, что не так...

Сообщение Роман Торопов » 21 дек 2010, 15:58

dimanlev писал(а):Всё-таки проблема с DNS.
Вот что происходит.
Когда iptables остановлена (читай INPUT и OUTPUT установлены в ACCEPT)
то, nslookup <какой-то адрес> 127.0.0.1 и nsookup <какой-то адрес> IP_DNS (сервер провайдера)
работают.
А когда INPUT и OUTPUT устанавливаю в DROP, то уже не проходит.
Значит деволтовые правила становять в очередь первыми и закрывают ниже стоящие,
можно пойти от обратного, открыть дефолтовые, обозначить правила, остальное закрыть:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 21,22,53 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,123 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j LOG --log-level 7 --log-tcp-options
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable

-A FORWARD -s 192.168.0.0/24 -p icmp -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -p icmp -o eth1 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -p udp -m udp --dport 53 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -p udp -m udp --sport 53 -o eth1 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -p udp -m udp --dport 123 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -p udp -m udp --sport 123 -o eth1 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -p tcp -m multiport --dports 20-22,25,80,110,443,8080 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -p tcp -m multiport --sports 20-22,25,80,110,443,8080 -o eth1 -j ACCEPT

-A FORWARD -o eth1 -j DROP
-A FORWARD -i eth1 -j DROP
-A FORWARD -o eth0 -j DROP
-A FORWARD -i eth0 -j DROP

dimanlev
Сообщения: 13
Зарегистрирован: 01 дек 2010, 18:27

Re: Не могу сообразить, что не так...

Сообщение dimanlev » 21 дек 2010, 19:31

Значит деволтовые правила становять в очередь первыми и закрывают ниже стоящие,
можно пойти от обратного, открыть дефолтовые, обозначить правила, остальное закрыть
Тогда какой смысл вообще имеют конструкции типа -P <Цепочка> <политика>. Т.е. какой смысл тогда вообще задавать политики по-умолчанию.

Я так понимаю, что-то с iptables не так...?

dimanlev
Сообщения: 13
Зарегистрирован: 01 дек 2010, 18:27

Re: Не могу сообразить, что не так...

Сообщение dimanlev » 22 дек 2010, 10:14

Значит деволтовые правила становять в очередь первыми и закрывают ниже стоящие,
можно пойти от обратного, открыть дефолтовые, обозначить правила, остальное закрыть
Тогда бы не работал и SSH и FTP, но они работают. Сканер портов со стороны как eth0, так и со стороны eth1 показывает открытые порты 21, 22, 53.
Когда iptables остановлена (читай INPUT и OUTPUT установлены в ACCEPT)
то, nslookup <какой-то адрес> 127.0.0.1 и nsookup <какой-то адрес> IP_DNS (сервер провайдера)
работают.
А когда INPUT и OUTPUT устанавливаю в DROP, то уже не проходит.
nslookup ведет себя также и на самом брандмауэре.

dimanlev
Сообщения: 13
Зарегистрирован: 01 дек 2010, 18:27

Re: Не могу сообразить, что не так...

Сообщение dimanlev » 22 дек 2010, 13:13

Есть идеи?

Ответить