LINUX.ORG.RU
решено ФорумAdmin

IPTABLES настройка

 , , ,


0

2

Всем привет, Есть сервер где установлен Centos 6.7 и поднят DNS на BIND, также есть другой сервер где крутиться почтовый сервер, когда IPTABLES выключен все работает нормально т.е письма и от корп почты в любой адрес и от любого адреса к корп почте передаются нормально, но когда включаю IPTABLES письма не приходят на корп почту.

В iptables прописал:

 # Generated by iptables-save v1.4.7 on Thu Mar 24 
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1012:101820]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

Можете помочь советом как решить данную проблему

Во-первых, порядок правил имеет значение. Во-вторых, ответы от DNS сервера идут с 53 порта, а не на 53. В-третьих, правило для 25 порта вообще отсутствует.

Black_Shadow ★★★★★ ()

Правило -A INPUT -j REJECT --reject-with icmp-host-prohibited у тебя где-то в середине, а должно быть в конце цепочки.

Deleted ()
Ответ на: комментарий от preimrender

Давай так. У тебя есть два сервера, на первом DNS, на втором почта. С какого из серверов конфиг iptables?

Deleted ()

Как серваки связаны между собой и где вы меняете iptables, нам угадывать?
Если первый сервер является шлюзом для второго, то вам нужно добавить правила для обработки транзитного трафика.

ArcFi ()
Ответ на: комментарий от preimrender

За транзитный трафик отвечает цепочка FORWARD.

ArcFi ()
Ответ на: комментарий от Black_Shadow

Во-вторых, ответы от DNS сервера идут с 53 порта, а не на 53.

-A OUTPUT -m state --state NEW -m tcp -p udp --sport 53 -j ACCEPT
-A OUTPUT -m state --state NEW -m udp -p tcp --sport 53 -j ACCEPT

на выход так пишется?

preimrender ()
Ответ на: комментарий от preimrender

для всех серверов шлюзом является Firewall который поднят на Cisco asa

Тогда вам нужна цепочка INPUT, а FORWARD и OUTPUT не трогайте.
И имейте ввиду, что правила с действием REJECT должны быть завершающими в цепочке.

ArcFi ()
Ответ на: комментарий от preimrender

У тебя используется connection tracking, и эти правила просто не нужны, потому как пакеты с ответами от dns пропустит правило, которое пропускает пакеты от соединений с состоянием ESTABLISHED. И уж точно критерий --state NEW здесь не подходит. Короче, убирай правила для 53 порта, они не нужны.

Black_Shadow ★★★★★ ()
Последнее исправление: Black_Shadow (всего исправлений: 1)
Ответ на: комментарий от ArcFi

порядок исправил :

:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1012:101820]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

но, пробема все та же

preimrender ()
Ответ на: комментарий от preimrender

В общем, вот:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1012:101820]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
-A INPUT -m comment --comment "lor-testing" -j LOG --log-prefix "lor-testing/input:"
-A INPUT -m comment --comment "lor-testing" -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -m comment --comment "lor-testing" -j LOG --log-prefix "lor-testing/forward:"
-A FORWARD -m comment --comment "lor-testing" -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Дальше смотрите, что оседает в логе.
Когда всё будет работать корректно, правила с комментом lor-testing можно убрать.

ArcFi ()

Можете помочь советом как решить данную проблему

Спасибо за оказанное доверие.

thesis ★★★★★ ()
Ответ на: комментарий от anonymous

Если я правильно понял, то тут:

другой сервер

Если нет, то увидим в логах.

ArcFi ()
Ответ на: комментарий от ArcFi

нету, достаточно перезагрузка iptables для того чтобы логи пошли или где то надо указать уровень логирование?

preimrender ()
Ответ на: комментарий от ArcFi

Логи он так и не написал, но сейчас с включенном файрволлом все работает, значит проблема было в том что правило -A INPUT -j REJECT --reject-with icmp-host-prohibited стоял не там где надо.

preimrender ()

Проброс реального адреса через NAT

Добрый день ! Прошу помощи в решении следующего вопроса : На шлюзе (debian linux) : внешняя карта : eth0 (1.2.3.4), внутренняя : eth1 (192.168.1.254) есть локальная сеть 192.168.1.0/24, в которой стоит сервер обновлений (192.168.1.155), на который проброшен на шлюзе внешний адрес , порт 80. Сервер обновлений в Log файлах фиксирует внутренний адрес шлюза (192.168.1.254), т.к. пакеты приходят от «его имени» Требуется подменить адрес в src пакетов, приходящих на сервер обновлений на внешний Ip адрес удаленного сервера из Internet’а, инициирующего обновления. Фрагмент действующего firewall'а (внешние адреса заменены на «абстрактные») :

iptables -t nat -A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.155:80 iptables -t nat -A POSTROUTING -d 192.168.1.155/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 1.2.3.4:80

Amurzet ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.