开iptables防火墙samba启动慢 不启动

samba 與 iptables

眾所皆知,samba 會用到 port 137,138,139,因此若有設定 firewall,必須把這些 port 都打開,然而這就夠了嗎?似乎不是 ……

另外有一個 ipp (Internet Printing Protocol), port 631,這個也要打開才行!雖然已經將 smb.conf 裡面有關印表機的設定都拿掉,然而若沒有打開 631 這個 port,samba 啟動會很久(可能在針對 port 631 在 broadcast ?),雖然可以成功啟動,然而 samba 卻不能正常地運作!

PS: 後來發現,samba 雖然會用到 ipp,但是只會針對 Local Loopback 這個介面,因此 iptables 其實不用開這個 port,只要指定介面就可以了!由 tedyeng 發表於 February 17, 2006 03:46 PM

迴響

要怎麼設定 firewall rules,除了查文件外,應該要能從 tcpudmp 觀察 samba 啟動時行為,觀察需要開哪些 ports,才是有系統的做法。

之前 tcpdump 明明沒看到在啟動 samba 時,會有 port 631 的封包進來~~~但放行 port 631 後卻能解決遇到的問題,這聽起來怪怪的。所以再重新檢查一次…

(之前不解的地方)觀測不到異常,但在啟動 firewall 後,samba 卻又無法啟動:

tcpdump 沒下介面參數時,預設是觀察第一個實體介面 eth0。iptables 下 firewall rules 時,如果沒特別標示介面,那會對所有的介面生效。

(原因)忘了觀測 loopback 介面:

samba 啟動的時候,會透過 loopback 介面,自己丟 tcp port 631 的封包給自己。所以之前用 tcpdump 沒觀測到這個行為,改用 tcpdump -i lo 就會看到了。

個人認為比較好的解決方式是,把 firewall rules 開在 eth0 就好 (而 lo 則完全開放),那就不用特別去放行 tcp port 631。

iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

 » 本站地址:http://www.gomoth.com
  • 您可能感兴趣的相关文章