Собственно ситуация в следующем.
У меня на виртуальной машине VirtualBox крутиться Winxp. Сеть настроено через bridge. То есть на хост машине интерфейс tap0 192.168.0.1/24 а на виртуальной машине прописан интерфейс 192.68.0.3/24. На хост машине так же есть интерфейс 172.16.1.14, через который и хожу в интернет. Виртуалка выходит в сеть через SNAT.
Пытаюсь пробросить все netbios запросы пришедшие на 172.16.1.14 на 192.168.0.3. Но почему то никак не могу достучаться до виндовой шары....
Вот правила iptables которые использую:
*nat
:PREROUTING ACCEPT [46:6514]
:INPUT ACCEPT [38:5442]
:OUTPUT ACCEPT [244:15528]
:POSTROUTING ACCEPT [244:15528]
-A PREROUTING -d 172.16.1.14/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.3:80
-A PREROUTING -i eth0 -p tcp -m tcp --dport 445 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p udp -m udp --dport 445 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p udp -m udp --dport 135:139 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p tcp -m tcp --dport 135:139 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p tcp -m tcp --dport 445 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p udp -m udp --dport 445 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p tcp -m tcp --dport 137:139 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p udp -m udp --dport 137:139 -j DNAT --to-destination 192.168.0.3
-A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 172.16.1.14
COMMIT
# Completed on Fri Feb 25 17:34:54 2011
# Generated by iptables-save v1.4.10 on Fri Feb 25 17:34:54 2011
*filter
:INPUT ACCEPT [13549:9883022]
:FORWARD ACCEPT [92:16294]
:OUTPUT ACCEPT [11401:2575357]
-A INPUT -s 192.168.0.0/24 -p udp -m udp --sport 137 -j ACCEPT
-A FORWARD -d 192.168.0.3/32 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -d 192.168.0.3/32 -j ACCEPT
З.Ы. К слову сказать 80 порт пробрасывается нормально и успешно работает. А вот с самбой какой то косяк, в чём дело понять не могу...
Netbios and DNAT
Так работать не будут
-A PREROUTING -i eth0 -p udp -m udp --dport 135:139 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p tcp -m tcp --dport 135:139 -j DNAT --to-destination 192.168.0.3
а вот как то так будет
-A PREROUTING -i eth0 -p udp --dport -m multiport --ports 135:139 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p tcp --dport -m multiport --ports 135:139 -j DNAT --to-destination 192.168.0.3
А ешё лучше не через multiport
A PREROUTING -i eth0 -p udp -m udp --dport 135 -j DNAT --to-destination 192.168.0.3:135
A PREROUTING -i eth0 -p udp -m udp --dport 135 -j DNAT --to-destination 192.168.0.3:136
A PREROUTING -i eth0 -p udp -m udp --dport 135 -j DNAT --to-destination 192.168.0.3:137
A PREROUTING -i eth0 -p udp -m udp --dport 135 -j DNAT --to-destination 192.168.0.3:138
A PREROUTING -i eth0 -p udp -m udp --dport 135 -j DNAT --to-destination 192.168.0.3:139
A PREROUTING -i eth0 -p tcp -m tcp --dport 135 -j DNAT --to-destination 192.168.0.3:135
A PREROUTING -i eth0 -p tcp -m tcp --dport 135 -j DNAT --to-destination 192.168.0.3:136
A PREROUTING -i eth0 -p tcp -m tcp --dport 135 -j DNAT --to-destination 192.168.0.3:137
A PREROUTING -i eth0 -p tcp -m tcp --dport 135 -j DNAT --to-destination 192.168.0.3:138
A PREROUTING -i eth0 -p tcp -m tcp --dport 135 -j DNAT --to-destination 192.168.0.3:139
Что то не помогает...
Блин сек накосячил
Вот подправил
-A PREROUTING -i eth0 -p udp -m udp --dport 135 -j DNAT --to-destination 192.168.0.3:135
-A PREROUTING -i eth0 -p udp -m udp --dport 136 -j DNAT --to-destination 192.168.0.3:136
-A PREROUTING -i eth0 -p udp -m udp --dport 137 -j DNAT --to-destination 192.168.0.3:137
-A PREROUTING -i eth0 -p udp -m udp --dport 138 -j DNAT --to-destination 192.168.0.3:138
-A PREROUTING -i eth0 -p udp -m udp --dport 139 -j DNAT --to-destination 192.168.0.3:139
-A PREROUTING -i eth0 -p tcp -m tcp --dport 135 -j DNAT --to-destination 192.168.0.3:135
-A PREROUTING -i eth0 -p tcp -m tcp --dport 136 -j DNAT --to-destination 192.168.0.3:136
-A PREROUTING -i eth0 -p tcp -m tcp --dport 137 -j DNAT --to-destination 192.168.0.3:137
-A PREROUTING -i eth0 -p tcp -m tcp --dport 138 -j DNAT --to-destination 192.168.0.3:138
-A PREROUTING -i eth0 -p tcp -m tcp --dport 139 -j DNAT --to-destination 192.168.0.3:139
И всё же никак. Вот такие правила сейчас имеем.
*mangle
:PREROUTING ACCEPT [183436:90624097]
:INPUT ACCEPT [152022:87024147]
:FORWARD ACCEPT [6317:1273800]
:OUTPUT ACCEPT [111272:38818720]
:POSTROUTING ACCEPT [117528:40086021]
COMMIT
# Completed on Fri Feb 25 18:37:33 2011
# Generated by iptables-save v1.4.10 on Fri Feb 25 18:37:33 2011
*nat
:PREROUTING ACCEPT [74:7477]
:INPUT ACCEPT [61:5271]
:OUTPUT ACCEPT [49:3507]
:POSTROUTING ACCEPT [49:3507]
-A PREROUTING -i eth0 -p udp -m udp --dport 135 -j DNAT --to-destination 192.168.0.3:135
-A PREROUTING -i eth0 -p udp -m udp --dport 135 -j DNAT --to-destination 192.168.0.3:135
-A PREROUTING -i eth0 -p udp -m udp --dport 136 -j DNAT --to-destination 192.168.0.3:136
-A PREROUTING -i eth0 -p udp -m udp --dport 137 -j DNAT --to-destination 192.168.0.3:137
-A PREROUTING -i eth0 -p udp -m udp --dport 138 -j DNAT --to-destination 192.168.0.3:138
-A PREROUTING -i eth0 -p udp -m udp --dport 139 -j DNAT --to-destination 192.168.0.3:139
-A PREROUTING -i eth0 -p tcp -m tcp --dport 135 -j DNAT --to-destination 192.168.0.3:135
-A PREROUTING -i eth0 -p tcp -m tcp --dport 136 -j DNAT --to-destination 192.168.0.3:136
-A PREROUTING -i eth0 -p tcp -m tcp --dport 137 -j DNAT --to-destination 192.168.0.3:137
-A PREROUTING -i eth0 -p tcp -m tcp --dport 138 -j DNAT --to-destination 192.168.0.3:138
-A PREROUTING -i eth0 -p tcp -m tcp --dport 139 -j DNAT --to-destination 192.168.0.3:139
-A PREROUTING -i eth0 -p tcp -m tcp --dport 445 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i eth0 -p udp -m udp --dport 445 -j DNAT --to-destination 192.168.0.3
-A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 172.16.1.14
COMMIT
# Completed on Fri Feb 25 18:37:33 2011
# Generated by iptables-save v1.4.10 on Fri Feb 25 18:37:33 2011
*filter
:INPUT ACCEPT [56676:36563039]
:FORWARD ACCEPT [982:175356]
:OUTPUT ACCEPT [48811:24721089]
-A INPUT -s 192.168.0.0/24 -p udp -m udp --sport 137 -j ACCEPT
-A FORWARD -d 192.168.0.3/32 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -d 192.168.0.3/32 -j ACCEPT
COMMIT
# Completed on Fri Feb 25 18:37:33 2011
Щас глянул у себя нужны порты 135,136,137,138,139,445
Исправь ещё 445
-A PREROUTING -i eth0 -p tcp -m tcp --dport 445 -j DNAT --to-destination 192.168.0.3:445
-A PREROUTING -i eth0 -p udp -m udp --dport 445 -j DNAT --to-destination 192.168.0.3:445
Уже сам заметил косяк и добавил его. Но всё равно не работает...
Может там какой то модуль ядра используется что то типа ip_conntrack_netbios или ip_conntrack_ftp
Блин давай такс я просто не знаю где вас учат такс писать
nano /home/nat
туды пишим
#!/bin/bash
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
modprobe ip_conntrack_pptp
iptables -F
iptables -F -t nat
iptables -F -t mangle
#drop
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#mtu
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 443 -j DNAT --to-destination 192.168.0.3:445
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 443 -j DNAT --to-destination 192.168.0.3:445
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 135 -j DNAT --to-destination 192.168.0.3:135
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 135 -j DNAT --to-destination 192.168.0.3:135
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 136 -j DNAT --to-destination 192.168.0.3:136
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 136 -j DNAT --to-destination 192.168.0.3:136
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 137 -j DNAT --to-destination 192.168.0.3:137
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 137 -j DNAT --to-destination 192.168.0.3:137
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 138 -j DNAT --to-destination 192.168.0.3:138
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 138 -j DNAT --to-destination 192.168.0.3:138
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 139 -j DNAT --to-destination 192.168.0.3:139
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 139 -j DNAT --to-destination 192.168.0.3:139
Даём права
chmod +x /home/nat
выполняем
./home/nat
Отпиши после, если не заработает можно глянуть конфиг samba
Блин давай такс я просто не знаю где вас учат такс писать
Это вывод iptables-save - стандартный smile
Спасибо сейчас попробую. потом отпишу. Кстати самбы то на host машине вообще не установлено. Может в этом дело ? )
Не помогло =)
А может поможет
-A FORWARD -d 192.168.0.0/24 -j ACCEPT
-A FORWARD -s 192.168.0.3/24 -j ACCEPT
-A FORWARD -d 172.16.1.0/24 -j ACCEPT
-A FORWARD -s 172.16.1.0/24 -j ACCEPTИ интересно посмотреть вывод iptables -t nat -L -v
Срабатывают ли правила?
pahan40 в XP firewall отключи
pahan40, а зачем вам netbios запросы из нета?
по SMB связываться с миром wink
по SMB связываться с миром wink
не бред ли?
Вы сами ответили и на свой и на мой вопрос wink