URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 65560
[ Назад ]

Исходное сообщение
"Нужна помощь по iptables, не могу добится правильной работы"

Отправлено NetUser , 11-Апр-06 20:10 
Приветствую
Нужна помощь по iptables.
Сразу говорю iptables прочитал, возможно что-то не понял убедительная простба не посылать перечитывать, а указать где ошибся и как надо сделать?
Задача, сделать из локалки
1. отправку и получение почты с сервера
2. доступ до локального DNS сервера который находится на гейте
3. доступ в Интернет из локальной сети через squid сквид висит стандартно на 3128
4. ping из локальной сети в интерент
Из Интернета только проброс портов на 80 порт в локальную сеть на ip 192.168.1.200
Имеется Linux в качестве гейта в инет с двумя сетевыми картами eth0 – смотрит в локальную сеть, eth1 смотрит на провайдера
Вот мои правила

iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -t filter -A INPUT -p tcp -dport 25 -j ACCEPT
iptables -t filter -A INPUT -p tcp -dport 110 -j ACCEPT
iptables -t filter -A INPUT -p udp -dport 53 -j ACCEPT
iptables -t filter -A INPUT -i eth0 -p tcp -dport 3128 -j ACCEPT
iptables -t nat -A PREROUTING -d xx.xx.xx.xx -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.200:80
iptables -t nat -A POSTROUTING -s 192.168.1.200 -o eth1 -j SNAT --to-source xx.xx.xx.xx
iptables -A FORWARD -d 192.168.0.200 -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

Проблема в том, что не пинги не проброс портов не работает доступа в интрернет через squid тоже нет,почта отправляется и принимается
Плиз покажите, где ошибка и как правильно сделать.

PS: если поставить
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
то все работает, но и все открыто получается.


Содержание

Сообщения в этом обсуждении
"Нужна помощь по iptables, не могу добится правильной работы"
Отправлено NetUser , 11-Апр-06 20:13 
вот тут в первом посте опечатался
iptables -A FORWARD -d 192.168.0.200 -i eth1 -p tcp --dport 80 -j ACCEPT
на самом деле
iptables -A FORWARD -d 192.168.1.200 -i eth1 -p tcp --dport 80 -j ACCEPT
все остальное как есть

"Нужна помощь по iptables, не могу добится правильной работы"
Отправлено _KAV_ , 11-Апр-06 20:45 
Для начала забыл разрешить established, related

"Нужна помощь по iptables, не могу добится правильной работы"
Отправлено NetUser , 11-Апр-06 21:50 
>Для начала забыл разрешить established, related
Если я правильно понял то не хватает вот этих 3 правил?
xx.xx.xx.xx – мой внешний ip - адрес
IPTABLES -A allowed -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
IPTABLES -A INPUT -p ALL -d  xx.xx.xx.xx -m state --state ESTABLISHED,RELATED -j ACCEPT
IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
Достаточно это безопасно?
Если было установлено соединение, то оно идет дальше по этому правилу, но не может установить новое соединение тоесть к примеру заципильсь на 80 порт и получить доступ к любому порту сервера? Или я вообще все не так понял?

"Нужна помощь по iptables, не могу добится правильной работы"
Отправлено _KAV_ , 12-Апр-06 10:32 
>>Для начала забыл разрешить established, related
>Если я правильно понял то не хватает вот этих 3 правил?
>xx.xx.xx.xx – мой внешний ip - адрес
>IPTABLES -A allowed -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
А где у тебя цепочка allowed? это лишнее
>IPTABLES -A INPUT -p ALL -d  xx.xx.xx.xx -m state --state ESTABLISHED,RELATED
>-j ACCEPT
>IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
>Достаточно это безопасно?
>Если было установлено соединение, то оно идет дальше по этому правилу, но
>не может установить новое соединение тоесть к примеру заципильсь на 80
>порт и получить доступ к любому порту сервера? Или я вообще
>все не так понял?
Все правильно... По этим правилам разрешается принимать ответы на запросы


"Нужна помощь по iptables, не могу добится правильной работы"
Отправлено NetUser , 13-Апр-06 21:17 
есть вот такие правила, и есть проброс портов, получается он сейчас для всех... работает, как как сделать чтобы он работал только для конкретных ip адресов? у меня не получилось пробывал ставить фильтрацию на PREROUTING.. плиз покажите как можно это сделать
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -t filter -A INPUT -p tcp -dport 25 -j ACCEPT
iptables -t filter -A INPUT -p tcp -dport 110 -j ACCEPT
iptables -t filter -A INPUT -p udp -dport 53 -j ACCEPT
iptables -t filter -A INPUT -i eth0 -p tcp -dport 3128 -j ACCEPT
iptables -t nat -A PREROUTING -d xx.xx.xx.xx -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.200:80
iptables -t nat -A POSTROUTING -s 192.168.1.200 -o eth1 -j SNAT --to-source xx.xx.xx.xx
iptables -A FORWARD -d 192.168.0.200 -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -j MASQUERADE
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

"Нужна помощь по iptables, не могу добится правильной работы"
Отправлено _KAV_ , 14-Апр-06 10:36 
так укажи в правилах проброски протокол tcp, --source 12.34.56.78 - и будет пробрасываться только с этого адреса