請教:NFS功能,伺服器端Iptables的設置
如果啟動 iptables,剛客戶端可以訪問NFS伺服器,但一在NFS伺服器端啟動iptables,客戶端就無法訪問NFS伺服器。
請教:在NFS伺服器端啟動了iptables的情況下,如何修改 iptables 的規則使客戶端能夠訪問NFS伺服器。 謝謝!
《解決方案》
這個是代理伺服器嗎?``忘記了
《解決方案》
具體情況是這樣的:
系統版本:Red Hat Enterprise Linux AS release 4 (Nahant Update 1)
做NFS伺服器的IP:192.168.0.2
客戶端IP: 192.168.0.10
當 192.168.0.2這個NFS伺服器啟動的 iptables的時候,客戶端(192.168.0.10)不能訪問NFS伺服器。
當 192.168.0.2這個NFS伺服器不啟動iptables的時候,客戶端(192.168.0.10)可以訪問NFS伺服器。
我現在要上NFS伺服器啟動iptables,同時客戶端也能訪問NFS伺服器。所以要改一下iptables的規則,但不清楚如何改。還請高手指點一下。
《解決方案》
Iptables啟動后,默認的規則:
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
:RH-Firewall-1-INPUT -
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
《解決方案》
rpc 相關服務的一些 port 是動態建立的,與那個 ftp active/passive mode 有一點點類似情況。
iptables 有一個 rpc 的 MATCH EXTENSION 項目,您就 iptables -m rpc -h 先簡單看一下好了。
不過 rpc 似乎不是一個正式進入 iptables release 發行版本內,所以似乎要自己 patch ?
RPC v1.3.3 options:
--rpcs list,of,procedures a list of rpc program numbers to apply
ie. 100003,mountd,rquotad (numeric or
name form; see /etc/rpc).
--strict a flag to force the drop of packets
not containing "get" portmapper requests.
==
《解決方案》
所以,如時機要起NFS的話,還是把IPTABLES關掉吧
《解決方案》
最近該問題也遇到所以測試了一下
由於 nfs rpc 等服務對 portmap 註冊產生厚的 port 是隨機建立的,所以依據 rh-based 系統 /etc/init.d/nfs 與 /etc/init.d/nfslock 的 script 來看,可以改一下設定檔案讓這兩個服務 script 執行時傳給 daemon 相關 port 來運作溝通。\r
於 /etc/sysconfig/nfs 像是這樣設定:
MOUNTD_PORT="4002"
STATD_PORT="4003"
LOCKD_TCPPORT="4004"
LOCKD_UDPPORT="4004"
這樣 rpc.mountd 與 rpc.statd 等等程式就會固定 port 提供服務,而若是不確定可以用 pcinfo -p localhost 確認一下。
最後請開放 firewall 部份打開,這些 port 的 tcp 與 udp protocol,包含 nfs 的 port 2049 與 portmap 用的 port 111 都開放即可使用。
--