web-dev-qa-db-ja.com

NFSサーバーとファイアウォール

これに関するスラムダンクのドキュメントが見つからないので、始めましょう。

CentOS 7.1ホストでは、firewall-cmdエントリを含む linuxconfig HOW-TO を実行し、エクスポート可能なファイルシステムを持っています。

[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サーバーからの iptablesコマンドを適応させて、町に行きましょうHOW-TO ...

[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エントリが欠けていますか?

ああ、もう一つ注意。これまでのところ、CentOS 6クライアントとCentOS 7サーバー上の/etc/sysconfig/nfsファイルは変更されていません。可能であれば、変更(および維持)する必要がないことを望みます。

16
dafydd

これで十分です:

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

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
6
Aditya.V

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

setsebool -P use_nfs_home_dirs 1

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

4
JamesM

私は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
0
elbarna