8.2. rpc.mountd サービスのセキュリティー保護
rpc.mountd デーモンは、NFS マウントプロトコルのサーバー側を実装します。NFS マウントプロトコルは、NFS バージョン 3 (RFC 1813) で使用されます。
ファイアウォールルールを追加することで、rpc.mountd サービスを保護できます。すべてのネットワークへのアクセスを制限し、特定の例外を定義します。
前提条件
-
rpc.mountdパッケージがインストールされている。 -
firewalldパッケージがインストールされ、サービスが実行されている。
手順
再起動後も設定を維持させるには、
--permanentオプションを指定してファイアウォールルールを追加します。例:
192.168.0.0/24ネットワークからのmountd接続を破棄します。# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" service name="mountd" source address="192.168.0.0/24" invert="True" drop'ローカルホストからの
mountd接続を受け入れます。# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="127.0.0.1" service name="mountd" accept'
ファイアウォールをリロードして、新しいルールを適用します。
# firewall-cmd --reload
検証
ファイアウォールルールをリストします。
# firewall-cmd --list-rich-rule rule family="ipv4" service name="mountd" source address="192.168.0.0/24" invert="True" drop rule family="ipv4" source address="127.0.0.1" service name="mountd" accept
トラブルシューティング
ファイアウォールルールを適用した後、NFS クライアントがファイルシステムをマウントできない場合は、クライアントの IP アドレスが許可されたサブネット内にあることを確認します。
# firewall-cmd --list-allリッチルールが、クライアントの送信元アドレスを許可していることを確認します。
許可されたサブネットからのクライアントがそれでもマウントできない場合は、
rpc.mountdサービスが実行されていることを確認します。# systemctl status nfs-mountd-
ファイアウォールの変更が反映されない場合は、
--permanentオプションを指定してルールが適用されていることを確認します。また、ファイアウォールがリロードされていることも確認します。 ファイアウォールによるブロックをデバッグするには、ドロップされたパケットのロギングを一時的に有効にします。
# firewall-cmd --set-log-denied=all # journalctl -f -u firewalldクライアントから NFS マウントを試み、ログにパケットドロップの記録がないか確認します。トラブルシューティング後はロギングを無効化します。
# firewall-cmd --set-log-denied=off