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

Исходное сообщение
"iptables nat"

Отправлено Grave , 29-Июн-09 10:01 
Поставил сервак на debian lenny настроил сеть, squid раздает веб юзерам, но не могу настроить NAT для доступа пользователей к внешним почтовым серверам, хотя делал это не раз на разных серваках.
Теперь в деталях.
eth0 смотрит в локалку 192.168.0.0/24 и имеет сетевой адрес 192.168.0.1 является гейтом для всех компов в сети. eth1 получает напрямйю инет от провайдера с адресом 79.*.*.* и маской 255.255.255.252
правила делал разные, смысл примерно такой
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
пробовал менять маскарад на SNAT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to-destination 79.*.*.*

пробовал указывать и конкретных источников и протоколы ничего не помогает, посоветуйте, как решить проблему, мож я  что не учел помимо iptables


Содержание

Сообщения в этом обсуждении
"iptables nat"
Отправлено Andrey Mitrofanov , 29-Июн-09 10:58 
>мож я  что не учел помимо iptables

В iptables не учёл разрешающее правило в FORWARD. Вне iptables -- включение ip_forward. М буть, в этом всём -- последовательность правил и ненулевую вероятность опечатьк...


"iptables nat"
Отправлено reader , 29-Июн-09 11:02 
>[оверквотинг удален]
>для всех компов в сети. eth1 получает напрямйю инет от провайдера
>с адресом 79.*.*.* и маской 255.255.255.252
>правила делал разные, смысл примерно такой
>iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
>пробовал менять маскарад на SNAT
>iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to-destination
>79.*.*.*
>
>пробовал указывать и конкретных источников и протоколы ничего не помогает, посоветуйте, как
>решить проблему, мож я  что не учел помимо iptables

echo 1 > /proc/sys/net/ipv4/ip_forward

так же у клиента должен быть прописан шлюз и DNS

если это сделано, то загружены ли модули и iptables-save показывайте


"iptables nat"
Отправлено Grave , 29-Июн-09 15:33 
>[оверквотинг удален]
>>79.*.*.*
>>
>>пробовал указывать и конкретных источников и протоколы ничего не помогает, посоветуйте, как
>>решить проблему, мож я  что не учел помимо iptables
>
>echo 1 > /proc/sys/net/ipv4/ip_forward
>
>так же у клиента должен быть прописан шлюз и DNS
>
>если это сделано, то загружены ли модули и iptables-save показывайте

в течении 10 минут выложу, на клиентах все прописано, проблему с днс тестил пингом по ip


"iptables nat"
Отправлено Grave , 29-Июн-09 16:23 
>[оверквотинг удален]
>>>решить проблему, мож я  что не учел помимо iptables
>>
>>echo 1 > /proc/sys/net/ipv4/ip_forward
>>
>>так же у клиента должен быть прописан шлюз и DNS
>>
>>если это сделано, то загружены ли модули и iptables-save показывайте
>
> в течении 10 минут выложу, на клиентах все прописано, проблему с
>днс тестил пингом по ip

после echo 1 > /proc/sys/net/ipv4/ip_forward в файлике появилась единичка
результат iptables-save

# Generated by iptables-save v1.4.2 on Tue Jun 30 02:04:42 2009
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [2:136]
-A POSTROUTING -j MASQUERADE
-A POSTROUTING -o eth1 -j SNAT --to-source 79.122.149.138
COMMIT
# Completed on Tue Jun 30 02:04:42 2009
# Generated by iptables-save v1.4.2 on Tue Jun 30 02:04:42 2009
*filter
:INPUT DROP [1:68]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2:136]
-A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Tue Jun 30 02:04:42 2009

сам скрипт в том виде как он есть сейчас

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -F -t nat

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT


iptables -A INPUT -i eth0 -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

iptables -A POSTROUTING -t nat -s 192.168.0.55 -p ALL -j MASQUERADE
iptables -A POSTROUTING -t nat  -o eth1 -j SNAT --to-source 79.122.149.138
iptables -t nat -I POSTROUTING  -p ALL  -j MASQUERADE

#iptables -A FORWARD -s 192.168.0.55  -j ACCEPT
#iptables -A FORWARD -s 192.168.0.55  -j ACCEPT
#iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -t nat -A POSTROUTING -s 192.168.0.55 -o eth1 -j SNAT --to 79.122.149.138



"iptables nat"
Отправлено reader , 29-Июн-09 18:02 
уберите
iptables -t nat -I POSTROUTING  -p ALL  -j MASQUERADE

"iptables nat"
Отправлено Grave , 01-Июл-09 16:38 
Ничего не помогло, вот так выглядит скрипт сейчас
iptables -A INPUT -i eth0 -s 0/0 -d 0/0 -j ACCEPT
iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

iptables -A POSTROUTING -t nat -p TCP --dport 10:79 -o ppp0 -j SNAT --to-source
iptables -A POSTROUTING -t nat -p TCP --dport 81:500 -o ppp0 -j SNAT --to-source
iptables -A POSTROUTING -t nat -p ICMP -o ppp0 -j SNAT --to-source 87.103.*.*
iptables -A POSTROUTING -t nat  -o ppp0 -j SNAT --to-source 87.103.*.*

#default policy
iptables -P FORWARD ACCEPT

Перешли на нового провайдера и картина такая eth0 - локалка, eth1 - модем, ppp0 - pppoe соединение с провайдером.

iptables-save выглядит вот так

*nat
:PREROUTING ACCEPT [42:3098]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [4:287]
-A POSTROUTING -o ppp0 -p tcp -m tcp --dport 10:79 -j SNAT --to-source 87.103.24
-A POSTROUTING -o ppp0 -p tcp -m tcp --dport 81:500 -j SNAT --to-source 87.103.2
-A POSTROUTING -o ppp0 -p icmp -j SNAT --to-source 87.103.245.49.
-A POSTROUTING -o ppp0 -j SNAT --to-source 87.103.245.49.
COMMIT
# Completed on Thu Jul  2 02:31:41 2009
# Generated by iptables-save v1.4.2 on Thu Jul  2 02:31:41 2009
*filter
:INPUT ACCEPT [106:38115]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [102:40168]
-A INPUT -i eth0 -j ACCEPT.
-A INPUT -i lo -j ACCEPT.
COMMIT
# Completed on Thu Jul  2 02:31:41 2009
# Generated by iptables-save v1.4.2 on Thu Jul  2 02:31:41 2009
*mangle
:PREROUTING ACCEPT [594616:243676473]
:INPUT ACCEPT [567112:241740250]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [540525:272151711]
:POSTROUTING ACCEPT [540549:272156819]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:15
COMMIT
# Completed on Thu Jul  2 02:31:41 2009

Помогите, пожалуйта, вроде все правильно делаю, но проблему решить не могу

Кстати, с клиентов пингуется внешний ip от провайдера, происходит ли NAT или это сервак сам отвечает без этого.......


"iptables nat"
Отправлено reader , 01-Июл-09 21:36 
>[оверквотинг удален]
>*nat
>:PREROUTING ACCEPT [42:3098]
>:POSTROUTING ACCEPT [0:0]
>:OUTPUT ACCEPT [4:287]
>-A POSTROUTING -o ppp0 -p tcp -m tcp --dport 10:79 -j SNAT
>--to-source 87.103.24
>-A POSTROUTING -o ppp0 -p tcp -m tcp --dport 81:500 -j SNAT
>--to-source 87.103.2
>-A POSTROUTING -o ppp0 -p icmp -j SNAT --to-source 87.103.245.49.
>-A POSTROUTING -o ppp0 -j SNAT --to-source 87.103.245.49.

оставте пока только
-A POSTROUTING -o ppp0 -j SNAT --to-source 87.103.245.49

когда запустите тогда и будите наворачивать.

а на шлюзе инет работает, через прокси работает?

>[оверквотинг удален]
>:POSTROUTING ACCEPT [540549:272156819]
>-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m
>tcpmss --mss 1400:15
>COMMIT
># Completed on Thu Jul  2 02:31:41 2009
>
>Помогите, пожалуйта, вроде все правильно делаю, но проблему решить не могу
>
>Кстати, с клиентов пингуется внешний ip от провайдера, происходит ли NAT или
>это сервак сам отвечает без этого.......

пингуется 87.103.245.49 - это ваша машина и отвечает.

тут кое что про модули есть, может ваш случай
https://www.opennet.ru/openforum/vsluhforumID10/4246.html


"iptables nat"
Отправлено Grave , 02-Июл-09 08:02 
Спасибо, подгрузкой модулей решил проблему