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

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

まだこれに関するスラムダンク文書が見つからなかったので、始めましょう。

CentOS 7.1ホストで私は経験しました。linuxconfigの操作方法firewall-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

ファイアウォールを再起動します。サービス端末:

[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コマンドを使用する方法...

[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/nfsこれまで、CentOS 6 クライアントと CentOS 7 サーバーのファイルは変更されていません。可能であれば変更(およびメンテナンス)する必要はありません。

答え1

これで十分です。

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

答え2

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

  1. nfs-server.service
  2. rpcbindサービス
  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

答え3

私はこれを見つけました。 SELinuxがログイン中に~/.ssh/authorized_keysの読み込みをブロックする問題が発生したときに動作しました!まず、 ~/.ssh/authorized_keys ファイルが正しく入力されていること、その権限とそのフォルダの権限が正しく設定されていることを確認してください。その後、SSHターゲットホストで「setenforce 0」を実行し、パスワードを入力せずにそのホストにログインできますが、同じターゲットホストで「setenforce 1」を入力した後にログインできない場合は、次の方法で問題を解決できます。 。 :

setebool -P use_nfs_home_dirs 1

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

答え4

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

私が忘れてしまった1つの重要な事実は、mountdの静的ポートを設定して共有を表示するshowmount -eために使用できることです。私は個人的に34777を使用します

root      1873     1  0 21:11 ?        00:00:00 /usr/sbin/rpc.mountd -p 34777

したがって、ファイアウォールでポートを開きます。

  firewall-cmd --permanent --add-port=34777/udp --zone=public
  firewall-cmd --permanent --add-port=34777/tcp --zone=public

マウントポートの設定は、展開バージョンとは異なります。一部は /etc/sysconfig を使用し、一部は /etc/default を使用し、一部はスクリプトの編集が必要です。ディストリビューションのドキュメントを確認してください。

関連情報