2014-10-03 105 views
3

沒有iptables規則我能夠掛載我的NFSSERVER:/PATH但啓用它(firewall/iptables)啓用我無法掛載。NFS服務器和NFS客戶端的iptables規則

[.e.g., after iptables --flush/ firewaalld stop ; mount NFSSERVER:/Path works ] 

我不應該禁用/清除firewall/iptables但我允許打開一個端口。我需要添加什麼規則來打開端口/安裝?

當前的默認政策是DROP all INCOMING/OUTGOING/FORWARD並且有幾個規則,允許從外部端口80的wget等,

添加NFS服務器端口沒有幫助。

iptables -A OUTPUT -p tcp --dport 2049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -p tcp --sport 2049 -m state --state ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -p udp --dport 2049 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 
iptables -A INPUT -p udp --sport 2049 -m state --state ESTABLISHED -j ACCEPT 

謝謝。

PS:這是爲nfs客戶端而不是NFS服務器機器。

+1

這不起作用,因爲'nfsd'不是唯一需要網絡訪問的守護進程。涉及NFS的其他守護進程是portmap,statd,mountd,lockd和rquotad。例如,請參見[this](http://tldp.org/HOWTO/NFS-HOWTO/security.html#FIREWALLS)和[this](http://rlworkman.net/howtos/NFS_Firewall_HOWTO)。 – Yoel 2014-10-04 19:48:27

回答

6

NFS SERVER:

爲rquotd配置端口(875/UDP; 875/TCP),的lockd(32803/TCP; 32769/UDP),mountd的(892/UDP; 892/TCP),的statd (10053/UDP; 10053/TCP),statd_outgoing(10054/UDP; 10054/TCP)

vim /etc/sysconfig/nfs 

如果需要的話,通過編輯線5的& 6的/ etc/SYSCONFIG /禁用NFS NFS v3和NFS v2的詢問服務

MOUNTD_NFS_V2="no" 
    MOUNTD_NFS_V3="no" 

保存當前的iptables規則以備後用。 (如果iptables的保存在你的分佈不存在,您可以嘗試的iptables -S文件名)

iptables-save > pre-nfs-firewall-rules-server 

沖洗,並檢查iptables規則

iptables -F 
    iptables -L 

停止和啓動NFS及相關服務按以下順序

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

確保已配置的NFS及其關聯端口顯示爲之前設置的端口號和OSI第4層協議。 rpcbind(或portmapper)的標準端口號是111/udp,111/tcp和nfs是2049/udp,2049/tcp。

rpcinfo -p | sort -k 3 

恢復前NFS的防火牆規則現在

iptables-restore < pre-nfs-firewall-rules-server 

寫iptables規則的NFS服務器(注:環回適配器必須允許,否則你會看到數據包丟棄,也當你重新啓動nfs服務,它會吐出錯誤 {啓動NFS配額:無法註冊服務:RPC:超時rpc.rquotad:無法註冊(RQUOTAPROG,RQUOTAVERS,udp)。[FAILED]} rquotad守護進程。您可以通過過濾器表的輸入或輸出鏈)的底部添加具有LOG跳轉目標的規則檢查這個

iptables -P INPUT DROP 
    iptables -P OUTPUT DROP 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --dports 10053,111,2049,32769,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --dports 10053,111,2049,32803,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --sports 10053,111,2049,32769,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --sports 10053,111,2049,32803,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -I INPUT -i lo -d 127.0.0.1 -j ACCEPT 
    iptables -I OUTPUT -o lo -s 127.0.0.1 -j ACCEPT 
    iptables -L -n --line-numbers 

配置NFS出口目錄

vim /etc/exports 
    exportfs -av 
    showmount -e 
    rpcinfo -p 

停止和啓動NFS及相關服務以下序列

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

NFS客戶:

保存當前的iptables規則以備後用。 (如果iptables的保存在你的分佈不存在,您可以嘗試的iptables -S文件名)

iptables-save > pre-nfs-firewall-rules-client 

沖洗,並檢查iptables規則

iptables -F 
    iptables -L 

從客戶機和notedown獲取防火牆NFS服務器端口端口號和OSI第4層協議。

rpcinfo -p 'ip-addr-nfs-server' | sort -k 3 

恢復前NFS的防火牆規則現在

iptables-restore < pre-nfs-firewall-rules-client 

寫iptables規則的NFS客戶端(注:環回適配器必須允許,否則你會看到數據包丟棄,也當你重新啓動nfs服務,它會吐出錯誤 {啓動NFS配額:無法註冊服務:RPC:超時rpc.rquotad:無法註冊(RQUOTAPROG,RQUOTAVERS,udp)。[FAILED]}對於rquotad守護程序。這通過在INPUT或OUT底部添加一條LOG跳轉目標規則PUT過濾表中的鏈)

iptables -P INPUT DROP 
    iptables -P OUTPUT DROP 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --sports 10053,111,2049,32769,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --sports 10053,111,2049,32803,875,892 -m state --state ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p udp -m multiport --dports 10053,111,2049,32769,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -A OUTPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m multiport --dports 10053,111,2049,32803,875,892 -m state --state NEW,ESTABLISHED -j ACCEPT 
    iptables -I INPUT -i lo -d 127.0.0.1 -j ACCEPT 
    iptables -I OUTPUT -o lo -s 127.0.0.1 -j ACCEPT 
    iptables -L -n --line-numbers 

停止和啓動NFS及相關服務按以下順序

service rpcbind stop 
    service nfslock stop 
    service nfs stop 
    service rpcbind start 
    service nfslock start 
    service nfs start 

列表NFS服務器出口

showmount -e 'ip-addr-nfs-server' 

安裝NFS手動導出(永久坐騎使用/ etc/fstab進行配置)

mount -t nfs ip-addr-nfs-server:/exported-directory /mount-point -o rw,nfsvers=3 
    mount -t nfs ip-addr-nfs-server:/exported-directory /mount-point -o rw --> For NFS4 version 

配置autofs的,如果掛載優選用於NFS出口,並與LDAP用戶主目錄(直接和間接映射可設置)

vim /etc/auto.master -> specify the mount point and map-name (Eg: auto.nfs) 
    vim /etc/map-name 
    service autofs stop 
    service autofs start 

檢查安裝NFS導出

df -h -F nfs 
    mount | grep nfs 

列出所有僞根NFS -V4出口目錄(NFS掛載懶)

ls /net/ip-addr-nfs-server 
4

如果你需要的是NFS版本4(這已經是10歲以上),你不需要去參考@Sathish的答案中所描述的所有努力。只要確保TCP端口2049打開服務器的防火牆,並且客戶端的防火牆允許出站流量到達服務器上的端口2049。

CentOS 5(也是舊的)有一個很好的explanation爲什麼NFSv4比v3和v2更具防火牆友好性。

+0

這就是我一直在尋找的!謝謝! – 2017-11-22 14:48:03

相關問題