web-dev-qa-db-ja.com

nfsのiptablesルール

クライアントマシンでshowmount -e 192.168.56.2と入力しているときに、以下のエラーが発生していました

 [root @ client〜] #showmount -e 192.168.56.2 
 clnt_create:RPC:ポートマッパーの障害-受信できません:errno 113(ホストへのルートがありません)

これは私のnfsサーバー構成です

nfsサーバーIP192.168.56.2

これは私のnfsシェアです

 [root @ www〜] #cat/etc/exports 
/files 192.168.56.7(rw、sync)

これらはサーバーマシンで実行されている2つのサービスです

 [root @ www〜] #service rpcbind status 
 rpcbind(pid 2626)が実行中です... 
 [root @ www〜] #service nfs status 
 rpc.svcgssdが停止しました
 rpc.mountd(pid 2716)が実行されています... 
 nfsd(pid 2781 2780 2779 2778 2777 2776 2775 2774)が実行されています... 
 rpc.rquotad(pid 2712)が実行されています... 

これは私のiptablesルールです

 [root @ www〜] #cat /etc/sysconfig/iptables
#iptablesによって生成-2013年10月31日木曜日02:08:16にv1.4.7を保存
 * filter 
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [5:388] 
-入力-ptcp -m tcp --dport 111 -j ACCEPT 
-AINPUT -p tcp -m tcp --dport 2049 -j ACCEPT 
-AINPUT -m state --state RELATED、ESTABLISHED -j ACCEPT 
-AINPUT -p icmp -j ACCEPT 
-AINPUT -i lo -j ACCEPT 
-AINPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-AINPUT -j REJECT --reject-with icmp-Host-prohibited 
-AFORWARD -j REJECT --reject-with icmp-Host-prohibited 
 COMMIT 
#2013年10月31日木曜日02:08:16 
 
に完了

サーバーマシンでiptablesルールをフラッシュすると、クライアントはnfs共有を見ることができます

 [root @ client〜] #showmount -e 192.168.56.2 
 192.168.56.2のエクスポートリスト:
/files192.168.56.7 

それはiptablesルールの問題を意味します、誰かが私のiptablesルールの問題は何であるか教えてもらえますか、他のポートがありませんか?これらのタイプのトラブルシューティング方法問題の?

クライアントマシンからこのメソッドを試し、ポートがリッスンしているかどうかを確認しました。これがその出力です。

 [root @ client〜] #telnet 192.168.56.2 111 
 192.168.56.2を試行しています... 
 192.168.56.2に接続されています。
エスケープ文字は '^ ] '。
 [root @ client〜] #telnet 192.168.56.2 2049 
 192.168.56.2を試行しています... 
 192.168.56.2に接続されています。
エスケープ文字は '^ ] '。
 
3
max

NFS用に開いているポートのリストは制限が多すぎます。まず、UDPに対して同じポートを開く必要があります。次に、さらに2つのポートを追加する必要があります。開くポートの完全なリストは次のとおりです。

 sunrpc     111/tcp    rpcbind  #Sun Remote Procedure Call
 sunrpc     111/udp    rpcbind  #Sun Remote Procedure Call
 nfsd-status    1110/tcp   #Cluster status info
 nfsd-keepalive 1110/udp   #Client status info
 nfsd       2049/tcp   nfs      # NFS server daemon
 nfsd       2049/udp   nfs      # NFS server daemon
 lockd      4045/udp   # NFS lock daemon/manager
 lockd      4045/tcp
2
MariusMatutiae

NFSサーバー:

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

必要に応じて、/ etc/sysconfig/nfsの5行目と6行目を編集して、NFSv3およびNFSv2のサポートを無効にします。

    MOUNTD_NFS_V2="no"
    MOUNTD_NFS_V3="no"

後で使用するために現在のIptablesルールを保存します

    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(またはポートマッパー)の標準ポート番号は111/udp、111/tcpであり、nfsは2049/udp、2049/tcpです。

   rpcinfo -p | sort -k 3 

Pre-nfs-firewall-rulesを今すぐ復元する

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

NFSサーバーのiptablesルールを記述します(注:ループバックアダプターは許可する必要があります。許可しないと、パケットがドロップされ、nfsサービスを再起動すると、吐き出されます[〜#〜]エラー[〜#〜]{NFSクォータの開始:サービスを登録できません:RPC:タイムアウトしましたrpc.rquotad:登録できません(RQUOTAPROG、 RQUOTAVERS、udp)。[FAILED]}rquotadデーモンの場合。これは、フィルターテーブルのINPUTまたはOUTPUTチェーンの下部に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-save > pre-nfs-firewall-rules-client

Iptablesルールをフラッシュして確認する

   iptables -F
   iptables -L

クライアントマシンからファイアウォールで保護されたNFSサーバーポートを取得し、ポート番号とOSIレイヤー4プロトコルを書き留めます。

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

Pre-nfs-firewall-rulesを今すぐ復元する

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

NFSクライアントのiptablesルールを記述します(注:ループバックアダプターは許可する必要があります。許可しないと、パケットがドロップされ、nfsサービスを再起動すると、吐き出されます[〜#〜]エラー[〜#〜]{NFSクォータの開始:サービスを登録できません:RPC:タイムアウトしましたrpc.rquotad:登録できません(RQUOTAPROG、 RQUOTAVERS、udp)。[FAILED]}rquotadデーモンの場合。これは、フィルターテーブルのINPUTまたはOUTPUTチェーンの下部に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 --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

自動マウントがnfsエクスポートに優先され、LDAPユーザーホームディレクトリを使用する場合は、autofsを構成します(直接マップと間接マップを設定できます)

   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
2
Sathish