LinuxForum.Fans
Тема

Iptables проброс портов

Автор: glabol 8 сообщений 6646 просмотров
#251094

Дано:

хост Linux debian 2.6.32-5-686 #1 SMP Mon Mar 26 05:20:33 UTC 2012 i686 GNU/Linux ip 192.168.1.25
установлен virtualbox 3.1
гостевая windows xp ip 192.168.56.101
требуется подключиться к удаленному рабочему столу гостевой машины из локальной сети и из внешки.

root@debian:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0d:87:c9:68:aa
inet addr:192.168.1.25 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20d:87ff:fec9:68aa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:984 errors:0 dropped:0 overruns:0 frame:0
TX packets:266 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:91318 (89.1 KiB) TX bytes:31593 (30.8 KiB)
Interrupt:21 Base address:0xa000

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)

vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:192.168.56.1 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:6365 (6.2 KiB)

root@debian:~# iptables -nL
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


root@debian:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere debian.local tcp dpt:3389 to:192.168.56.101:3389

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- anywhere 192.168.56.101 tcp dpt:3389 to:192.168.1.25

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


проброс делал так
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.25 --dport 3389 -j DNAT --to-destination 192.168.56.101:3389
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.56.101 --dport 3389 -j SNAT --to-source 192.168.1.25

Просьба vrdp не предлагать какой то он тугой (скорость маленькая, несоответствие мышки)


Будьте любезны подскажите пожалуйста как достичь нужного результата

#251096

Может проще не через нат гостю давать, а сделать его полноценным участником сети. Причем в той же.
Я пробрасываю вот так

text
iptables -t nat -A PREROUTING -i eth1  -p tcp --dport 3389 -j DNAT --to-destination 192.168.3.79
iptables -A FORWARD -i eth1 -o vlan3 -d 192.168.3.79 -p tcp -m tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -i vlan3 -o eth1 -s 192.168.3.79 -p tcp -m tcp --sport 3389 -j ACCEPT

Где eth1 интернет.

#251099

прописал как у тебя все равно подключения нет
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.56.101
iptables -A FORWARD -i eth0 -o vboxnet0 -d 192.168.56.101 -p tcp -m tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -i vboxnet0 -o eth0 -s 192.168.56.101 -p tcp -m tcp --sport 3389 -j ACCEPT


root@debian:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:3389 to:192.168.56.101

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


а как гостя сделать полноценным участником сети?

#251103

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

#251122
"glabol" написал:
сделал гостя полноценным участником сети, а можно закрыть все подключения к машине и разрешить только с определенных подсетей?

iptables Вам в руки. Все цепочки закрывай и открывай только то что нужно.

#251276

полноценный участник сети не вариант т.к. когда закрываешь все порты на дебиане то к порту 3389 винды все равно подключение проходит. Короче я так и не разобрался если есть кому че подсказать помогите

#251407

Ситуация такова когда я добавляю правило

iptables -t nat -A PREROUTING -p tcp -d 192.168.1.25 --dport 3389 -j DNAT --to-destination 192.168.56.101:3389

подключиться с хоста на гостя можно, а вот когда добавляю второе
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.56.101 --dport 3389 -j SNAT --to-source 192.168.1.25
то с хоста на гостя уже подключиться нельзя

#251522
"glabol" написал:
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.25 --dport 3389 -j DNAT --to-destination 192.168.56.101:3389
подключиться с хоста на гостя можно, а вот когда добавляю второе
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.56.101 --dport 3389 -j SNAT --to-source 192.168.1.25
то с хоста на гостя уже подключиться нельзя

у меня такое ощущение, что сначала он в PREROUTING меняет поля пакета таким образом, что потом он соответсвует правилу в POSTROUTING, а там меняется вес наоброт... Фактически туда сюда.

http://ru.wikibooks.org/wiki/Iptables#.D0.A2.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D0.B0_nat посмотрите, там похожий пример вроде как...

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