NFSサーバーとfirewalld


16

私はこれについてスラムダンク文書を見つけていないので、始めましょう。

CentOS 7.1ホストで、エントリを含むlinuxconfig HOW-TOfirewall-cmdを実行し、エクスポート可能なファイルシステムがあります。

[root@<server> ~]# firewall-cmd --list-all
internal (default, active)
  interfaces: enp5s0
  sources: 192.168.10.0/24
  services: dhcpv6-client ipp-client mdns ssh
  ports: 2049/tcp
  masquerade: no
  forward-ports: 
  rich rules: 

[root@<server> ~]# showmount -e localhost
Export list for localhost:
/export/home/<user> *.localdomain

ただし、showmountクライアントからの場合は、まだ問題があります。

[root@<client> ~]# showmount -e <server>.localdomain
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

さて、これがどのようにファイアウォールの問題であると確信していますか?簡単です。ファイアウォールをオフにします。サーバ側:

[root@<server> ~]# systemctl stop firewalld

クライアント側:

[root@<client> ~]# showmount -e <server>.localdomain
Export list for <server>.localdomain:
/export/home/<server> *.localdomain

firewalldを再起動します。サーバ側:

[root@<server> ~]# systemctl start firewalld

クライアント側:

[root@<client> ~]# showmount -e <server>.localdomain
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

それでは、RHEL 6 NFSサーバーHOW-TOからiptablesコマンドを適応させて、町に行きましょう...

[root@ ~]# firewall-cmd \
>  --add-port=111/tcp \
>  --add-port=111/udp \
>  --add-port=892/tcp \
>  --add-port=892/udp \
>  --add-port=875/tcp \
>  --add-port=875/udp \
>  --add-port=662/tcp \
>  --add-port=662/udp \
>  --add-port=32769/udp \
>  --add-port=32803/tcp
success

[root@<server> ~]# firewall-cmd \
>  --add-port=111/tcp \
>  --add-port=111/udp \
>  --add-port=892/tcp \
>  --add-port=892/udp \
>  --add-port=875/tcp \
>  --add-port=875/udp \
>  --add-port=662/tcp \
>  --add-port=662/udp \
>  --add-port=32769/udp \
>  --add-port=32803/tcp \
>  --permanent
success

[root@<server> ~]# firewall-cmd --list-all
internal (default, active)
  interfaces: enp5s0
  sources: 192.168.0.0/24
  services: dhcpv6-client ipp-client mdns ssh
  ports: 32803/tcp 662/udp 662/tcp 111/udp 875/udp 32769/udp 875/tcp 892/udp 2049/tcp 892/tcp 111/tcp
  masquerade: no
  forward-ports: 
  rich rules: 

今回は、クライアントからわずかに異なるエラーメッセージが表示されます。

[root@<client> ~]# showmount -e <server>.localdomain
rpc mount export: RPC: Unable to receive; errno = No route to host

だから、私は正しい軌道に乗っていることを知っています。そうは言っても、なぜこれに関する決定的なチュートリアルがどこにも見つからないのですか?私はこれを理解しなければならない最初の人ではなかったでしょう!

firewall-cmd不足しているエントリは何ですか?

ああ、もう一つの注意。私の/etc/sysconfig/nfsCentOSの6クライアントとCentOSの7サーバー上のファイルは、これまでのところ、修正されていません。可能な限り、それらを変更(および保守)する必要はありません。

回答:


40

これで十分です:

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload

私の場合は十分ではありません。2台のNFSサーバーがあります。最初のサーバーは正しくブロードキャストし、クライアントによってサブスクライブされています。 receive; errno =ホストへのルートなし)。私がこれを解決した場合/私はここに戻ってきます。
-Urhixidur

SERVERには、ファイアウォールに追加された3つのサービス(nfs、mountd、rpc-bind)が必要であることが判明しました(クライアントが3つすべてを必要とする場合はdunno。私の場合は3つすべてが必要です)。私の場合、クライアント(最初のNFSサーバー)にはありましたが、サーバー(2番目のNFSサーバー)にはmountdがありませんでした。
-Urhixidur

firewalldは発信接続を許可するため、クライアントがこれらを必要としない@Urhixidur。
T0xicCode

rpc-bindのスペルに注意してください。私はそれを有効にしますがsystemctl enable rpcbindsystemctl start rpcbind、ファイアウォール-cmdは私に言いましたError: INVALID_SERVICE: rpcbind。すぐに、このコンテキストではダッシュが必要であることに気付きました!彼らは本当に同じサービスですか?
Qwertie

5

NFSサーバーを構成したら、次の3つのサービスを有効にして開始する必要があります。

  1. nfs-server.service
  2. rpcbind.service
  3. nfs-mountd.service(開始のみが必要です)

また、サーバーファイアウォールでこれらのサービスを許可します。

# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=rpcbind
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --reload

4

これを見つけました-そして、問題がSELinuxがログイン中に〜/ .ssh / authorized_keysの読み取りをブロックしているときに機能します!最初に、〜/ .ssh / authorized_keysファイルが適切に読み込まれ、そのアクセス許可とそのフォルダーのアクセス許可が正しく設定されていることを確認します。次に、SSH宛先ホストで「setenforce 0」を実行し、パスワードを入力せずにそのホストにログインできるが、同じ宛先ホストで「setenforce 1」を入力した後にログインできない場合、次の問題が解決する場合があります。

setsebool -P use_nfs_home_dirs 1

参照:https : //cassjohnston.wordpress.com/2015/06/12/selinux-nfs-home-directories/


0

私はnfsv4を使用し、これらの行で正常に動作します。ゾーンが「パブリック」であり、デフォルトのポート2049および4001を使用していると仮定します

firewall-cmd --permanent --add-service=nfs --zone=public
firewall-cmd --permanent --add-service=mountd --zone=public
firewall-cmd --permanent --add-service=rpc-bind --zone=public
firewall-cmd --permanent --add-port=4001/udp --zone=public
firewall-cmd --permanent --add-port=4001/tcp --zone=public
firewall-cmd --permanent --add-port=2049/tcp --zone=public
firewall-cmd --permanent --add-port=2049/udp --zone=public
firewall-cmd --reload
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.