LinuxForum.Fans
Тема

Не работает NAT

Автор: scotch 35 сообщений 8895 просмотров
#150974

всем привет!

Конфиг iptables

[console] GNU nano 2.2.4 File: /root/iptables.sh
#!/bin/sh

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

iptables -A INPUT -i lo0 -j ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT


iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
[/console]
interfaces

[console]
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
auto eth0

allow-hotplug eth1
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 82.209.240.241
auto eth1

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
provider dsl-provider
[/console]

eth1 - подсеть модема, т.е в ней поднимается pppoe
eth0 - внутренняя сеть

pppoe - поднимается без проблем.
подсеть eth1 и модем пингуются.

iptables-save
[console]
# Generated by iptables-save v1.4.8 on Tue Apr 12 11:31:41 2011
*nat
:PREROUTING ACCEPT [1138:83920]
:POSTROUTING ACCEPT [711:41352]
:OUTPUT ACCEPT [11:758]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Tue Apr 12 11:31:41 2011
# Generated by iptables-save v1.4.8 on Tue Apr 12 11:31:41 2011
*filter
:INPUT ACCEPT [1830:149083]
:FORWARD ACCEPT [1868:171878]
:OUTPUT ACCEPT [1140:253987]
-A INPUT -i lo0 -j ACCEPT
-A FORWARD -s 192.168.1.200/32 -d 82.209.240.241/32 -j ACCEPT
COMMIT
# Completed on Tue Apr 12 11:31:41 2011
# Generated by iptables-save v1.4.8 on Tue Apr 12 11:31:41 2011
*mangle
:PREROUTING ACCEPT [4516:381311]
:INPUT ACCEPT [2351:194026]
:FORWARD ACCEPT [2162:187009]
:OUTPUT ACCEPT [1406:300881]
:POSTROUTING ACCEPT [3568:487890]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:6$
COMMIT
# Completed on Tue Apr 12 11:31:41 2011
[/console]

sysctl.conf

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

#150982

предложенный вариант ничего не изменил, кроме того что доступ пропал уже и в сеть модема

#150986

Атак?:

text

#!/bin/sh
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

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

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

iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -i eth0 -j ACCEPT iptables -A OUTPUT -o eht0 -j ACCEPT iptables -A INPUT -i eth1 -j ACCEPT iptables -A OUTPUT -o eht1 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE

#150989

Где форвард добавь еще:
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT

eth1 - же внутренняя, а ppp0 на eth0?

#150991

ppp0 на eth1, после подключения модулей видимо перестал видеть сеть модема т.е eth1

#150995

так сорри сеть модема видит ошибка была в другом. Но инет не работает, сейчас добавлю ваше правило в forward

Правило добавил - без изменений. Сеть модема видит, внешний адрес модема пингует. в инете ничего не пингует.

#150999
scotch написал:
ppp0 на eth1, после подключения модулей видимо перестал видеть сеть модема т.е eth1

Поменяй местами в скрипте я думал нооборот
и это тоже:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

#151000

так стоп, маскарад на eth0 ?

#151001

Короче может и первый скрипт бы работал, если бы эта строчка
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
была в начале скрипта, а
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE - вместо eth1 - eht0.

#151002
scotch написал:
так стоп, маскарад на eth0 ?

Ну если ppp0 на eth1 то маскарад на локалку - eth0.

#151004

сделал eth0. модем не пингуется у него адрес 192.168.0.1, шлюз пингуется на обоих адресах 192.168.0.2 и 1.3 - инета нету.

#151008

Так давай еще раз, ppp0 поднят на eht1, eth0 - локалка 192.168.0.0/24 так?
пакажи вывод ifconfig.
ы. Можно явно ip компа на который натить указать.

Сорри забылся я что-то при ppp подключении надо так:
iptables -t nat -A POSTROUTING -o ppp0 -s ip_компа_на_который_натить -j MASQUERADE

#151010

[console]eth0 Link encap:Ethernet HWaddr 00:e0:4d:81:3a:87
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2e0:4dff:fe81:3a87/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2257 errors:1 dropped:0 overruns:0 frame:1
TX packets:236 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:164571 (160.7 KiB) TX bytes:51743 (50.5 KiB)
Interrupt:27 Base address:0x2000

eth1 Link encap:Ethernet HWaddr 00:40:f4:60:8f:1a
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::240:f4ff:fe60:8f1a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:242 errors:0 dropped:0 overruns:0 frame:0
TX packets:874 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15794 (15.4 KiB) TX bytes:65031 (63.5 KiB)
Interrupt:18 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)

ppp0 Link encap:Point-to-Point Protocol
inet addr:178.120.11.39 P-t-P:178.120.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:43 errors:0 dropped:0 overruns:0 frame:0
TX packets:729 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:2843 (2.7 KiB) TX bytes:40077 (39.1 KiB)[/console]

сеть 192.168.1.0

#151013

iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE

ыы. А dnsmasq стоит? Если нет поставь. Или dns указывай типа 8.8.8.8
$ aptitude install dnsmasq

#151019

iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE - так заработало.

но как то это не стабильно. ppp0 а если соединение слетит и будет ppp1 ? работать не будет уже ? да и вообще впервые столько возни с этим. раньше при помощи правила как было выше все работало. только видимо я интерфейсы не путал. :)

Kettler,
ваш способ попробую

#151021
scotch написал:

но как то это не стабильно. ppp0 а если соединение слетит и будет ppp1?

Не видел такого... слетит это как? Тогда и интерфейсы могут также слететь... :(

Про интерфейсы и кто будет eth1 и eth0 тут писал http://linuxforum.ru/viewtopic.php?pid=167383#p167383

#151027
scotch написал:
ppp0 а если соединение слетит и будет ppp1

если уверены что интерфейсов ppp больше одного не будет (или они все будут работать по одним правилам) - можно использовать ppp+ вместо ppp0

#151031
scotch написал:

но как то это не стабильно. ppp0 а если соединение слетит и будет ppp1 ? работать не будет уже ? да и вообще впервые столько возни с этим. раньше при помощи правила как было выше все работало. только видимо я интерфейсы не путал. :)

Чтоб не путал но покрайне мере есть параметр в pptp
например debian настройках pptp есть параметр unit обычно во всех примерах unit 0
но если поставить unit 999 у вас будет ppp999
Судя по описанию есть и в ppoe

#151032
newzenon написал:
[quote=scotch]
но как то это не стабильно. ppp0 а если соединение слетит и будет ppp1?

Не видел такого... слетит это как? Тогда и интерфейсы могут также слететь... :(

Про интерфейсы и кто будет eth1 и eth0 тут писал http://linuxforum.ru/viewtopic.php?pid=167383#p167383[/quote]
Это совсем другое

Войдите или зарегистрируйтесь, чтобы ответить.