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
()
Ответ на: комментарий от 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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.