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

Не получается пробросить 80-й порт в локальных сетях


0

1

Доброе утро. Есть 2 локальные сети: 192.168.1.0 и 192.168.20.0. В сети 192.168.20.0 стоит хранилище, которое работает через 80-й порт. Ip адрес хранилища: 192.168.20.2

Моя задача — сделать так, чтобы все компьютеры из сети 192.168.1.0 имели доступ к хранилищу.

Для того, чтобы «связать» 2 сети, был выделен компьютер с двумя сетевыми картами. На нем установил Ubuntu 12.10. первой сетевой карте выдали ip адрес 192.168.1.199, а второй сетевой карте назначили адрес 192.168.20.1.

Предполагается, что если людям из сети 192.168.1.0 понадобится «залезть» на хранилище, то они в адресной строке браузера будут вводить ip адрес 192.168.1.199.

Полезная информация:

# ifonfig
lo        Link encap:Локальная петля (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:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

p2p1      Link encap:Ethernet  HWaddr 30:85:a9:44:c0:9c  
          inet addr:192.168.20.1  Bcast:192.168.20.255  Mask:255.255.255.0
          inet6 addr: fe80::3285:a9ff:fe44:c09c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1749 (1.7 KB)  TX bytes:6388 (6.3 KB)

p4p1      Link encap:Ethernet  HWaddr 64:70:02:01:0a:ea  
          inet addr:192.168.1.199  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6670:2ff:fe01:aea/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9437 errors:0 dropped:1745 overruns:0 frame:0
          TX packets:1242 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:830469 (830.4 KB)  TX bytes:148321 (148.3 KB)

# cat /proc/sys/net/ipv4/ip_forward
1

Мои настройки iptables: iptables -t nat -A PREROUTING -p tcp -d 192.168.1.199 --dport 80 -j DNAT --to-destination 192.168.20.2:80 iptables -t nat -A POSTROUTING -p tcp --dst 192.168.20.2 --dport 80 -j SNAT --to-source 192.168.1.199

Логика такая: все, что приходит на 80-й порт ip адреса 192.168.1.199 перенаправляем на адрес 192.168.20.2, а все, что приходит с адреса 192.168.20.2 направляем на 192.168.1.199

Проблема в том, что из сети 192.168.1.0 не получается зайти на адрес 192.168.1.199 через браузер.

Отладочная информация:

# iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            192.168.1.199        tcp dpt:80 to:192.168.20.2:80

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       tcp  --  0.0.0.0/0            192.168.20.2         tcp dpt:80 to:192.168.1.199

★★

iptables -L -n (на предмет FORWARD) пожалуйста посмотри, там пропускается? И убери правило из POSTROUTING, оно того, не того вообще.

spunky ★★ ()

А по условию компы из сети 192.168.1.0 могут/должны ли пинговать компы 192.168.20.0 ?

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

нет, ни чего не пропускается:

# iptables -F;iptables -X;iptables -t nat -F;iptables -t nat -X;
# iptables -t nat -A PREROUTING -p tcp -d 192.168.1.199 --dport 80 -j DNAT --to-destination 192.168.20.2:80
# iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            192.168.1.199        tcp dpt:80 to:192.168.20.2:80

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
root@dcm4cheeserver:/tmp# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

dicos ★★ ()

посмотри tcpdump'ом на обоих сторонах что происходит

zolden ★★★★★ ()

А почему nat -A POSTROUTING -p tcp --dst 192.168.20.2 --dport 80 -j SNAT --to-source 192.168.1.199

А не nat -A POSTROUTING -p tcp --dst 192.168.20.2 --dport 80 -j SNAT --to-source 192.168.20.1

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

спасибо, не сообразил.

Полностью правила выглядят вот так: iptables -t nat -A PREROUTING -p tcp -d 192.168.1.199 --dport 80 -j DNAT --to-destination 192.168.20.2:80 iptables nat -A POSTROUTING -p tcp --dst 192.168.20.2 --dport 80 -j SNAT --to-source 192.168.20.1

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

Если на 192.168.20.2 есть возможность прописать статический маршрут в сеть 192.168.1.0 через гейт 192.168.20.1, то SNAT не нужен и в логах сервиса будут реальные IP-адреса, вместо одного 192.168.20.1.

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

Пишу на 192.168.20.2 строку:

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.20.1 eth0

К сожалению, после перезагрузки все сбрасывается. Так как 192.168.20.2 в это сетевое хранилище, хоть и там есть линукс, но он сильно урезанный, поэтому вдаваться в детали не хочу.

Оставлю все как есть.

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

Является, но из-за чего не работает — сказать не могу.

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

нет такого файла:

# ls /etc/
acpi/          httpd/         netconfig      services
alsa/          hv_raid_ip/    nsswitch.conf  shortcut.db@
asound.conf    idmapd.conf    ntp/           smartd.conf
atalk/         init.d@        openldap/      snmp/
bftpd.conf     inittab        opt/           ssh/
bftpd.pw       inputrc        pam.d/         ssl/
bin@           iproute2/      passwd         sysconfig/
boot.flag      iscsi/         passwd-        syslog.conf
cfg/           iscsid.conf    ppp/           termcap
dhcpc/         ld.so.cache    pptpd.conf     udhcpd.conf*
fdisk.conf*    ld.so.conf     profile        ups/
fstab          localtime@     protocols      version@
group          lost+found/    rc.d/          vimrc
HOSTNAME       manifest.txt   resolv.conf*   webinfo@
hosts          modules.conf   rpc
hotplug/       motd           rtorrent.rc
hotplug.d/     mtab@          samba/
.conf    version@

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