LinuxForum.Fans
Тема

Netbios and DNAT

Автор: pahan40 17 сообщений 3399 просмотров
#133728

Собственно ситуация в следующем.
У меня на виртуальной машине 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 порт пробрасывается нормально и успешно работает. А вот с самбой какой то косяк, в чём дело понять не могу...

#133737

Так работать не будут
-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

#133739

Что то не помогает...

#133741

Блин сек накосячил

Вот подправил

-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

#133743

И всё же никак. Вот такие правила сейчас имеем.

*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

#133746

Щас глянул у себя нужны порты 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

#133747

Уже сам заметил косяк и добавил его. Но всё равно не работает...

#133748

Может там какой то модуль ядра используется что то типа ip_conntrack_netbios или ip_conntrack_ftp

#133754

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

nano /home/nat

туды пишим

text

#!/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

#133757
Kettler написал:
Блин давай такс я просто не знаю где вас учат такс писать

Это вывод iptables-save - стандартный smile

Спасибо сейчас попробую. потом отпишу. Кстати самбы то на host машине вообще не установлено. Может в этом дело ? )

#133776

Не помогло =)

#133782

А может поможет

text
-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
Срабатывают ли правила?

#133793

pahan40 в XP firewall отключи

#133969

pahan40, а зачем вам netbios запросы из нета?

#134045

по SMB связываться с миром wink

#134101
Vadimsky написал:
по SMB связываться с миром wink

не бред ли?

#134279

Вы сами ответили и на свой и на мой вопрос wink

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