如何使用 iptables 啟用 Windows 共享?
我在 CentOS5 上有一個 OpenVPN 伺服器,我想通過 VPN 啟用 Windows 共享。
當我嘗試訪問 Windows 共享時,會發生記錄。沒有錯誤或任何東西。
我的 iptables 規則是預設規則加上這些:
iptables -I INPUT -i eth0 -p udp --dport 1194 -j ACCEPT iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT iptables -I FORWARD -i tun0 -o eth0 -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE modprobe ip_conntrack modprobe ip_conntrack_ftp
我嘗試添加這些,但沒有通過 VPN 啟用 Windows 共享。
IPTABLES="/sbin/iptables" LAN="eth0" $IPTABLES -A INPUT -i $LAN -p tcp --dport 137 -j ACCEPT # NetBIOS name service tcp $IPTABLES -A INPUT -i $LAN -p udp --dport 137 -j ACCEPT # NetBIOS name service udp $IPTABLES -A INPUT -i $LAN -p udp --dport 138 -j ACCEPT # NetBIOS datagram service $IPTABLES -A INPUT -i $LAN -p tcp --dport 139 -j ACCEPT # NetBIOS session service File/printer sharing and other operations $IPTABLES -A INPUT -i $LAN -p tcp --dport 445 -j ACCEPT # Used by Win2k/xp when NetBIOS over TCP/IP is disabled - Microsoft Common Internet File System $IPTABLES -A INPUT -i $LAN -p udp --dport 445 -j ACCEPT #$IPTABLES -A INPUT -i $LAN -p tcp --dport 901 -j ACCEPT # used by SWAT (GUI configuration tool for samba)
有誰知道可能出了什麼問題,也許如何解決?
更新
我的設置看起來像這樣。OpenVPN 伺服器路由所有私有子網,因此當我連接時,我可以通過 SSH 和 ping 伺服器,而我通常在沒有 OpenVPN 連接的情況下無法訪問。
我已經在 Windows、Mac 和 Linux 客戶端上測試了 VPN。
在專用網路上有一個 samba 伺服器。當我使用 Windows 電腦連接 VPN 時,我非常想訪問這些共享。
據我所知,當netbios有點像讓FTP在某種意義上的NAT防火牆上工作時,必須對防火牆做一些事情才能使這項工作。
為了讓 FTP 通過 NAT’ed 防火牆工作,我必須載入
modprobe ip_conntrack modprobe ip_conntrack_ftp
因此 FTP 伺服器想要與客戶端建立的連接是耦合的。
netbios 需要類似的處理才能工作是否正確?
你能檢查基本的網路連接嗎?從 Windows openvpn 客戶端,您可以 ping Samba 伺服器嗎?Samba 伺服器可以 ping Windows openvpn 客戶端嗎?通過IP地址?按名字?
您可能還需要從 openvpn 中推送 WINS 資訊,類似於:
push "dhcp-option WINS 192.168.1.2"
或任何充當您網路中的 WINS 伺服器的東西。在這種情況下,您的客戶端應該能夠通過名稱解析 Samba 伺服器。
我不必為 Netbios 載入額外的模組,例如 ip_conntrack。
您可能還想發布“iptables -L -n”和“iptables -L -n -t nat”的(編輯的)輸出,以便我們可以看到實際的防火牆規則是什麼。