NFS (Network File System) は、FreeBSD でサポートされているファイル システムであり、TCP/IP ネットワークを介してネットワーク上のコンピューター間でリソースを共有できるようにします。 NFS の構成と使用が不適切であると、セキュリティ上の問題が発生する可能性があります。
NFS の安全性の低さは主に次の 4 つの側面に反映されています:
アクセス制御メカニズムの欠如
実際のユーザー認証メカニズムがなく、RPC/マウント要求の検証のみを処理します
前NFS のバージョンによっては、権限のないユーザーが有効なファイル ハンドルを取得できる可能性があります
RPC リモート呼び出しでは、SUID プログラムにはスーパーユーザー権限があります
上記のセキュリティ リスクに効果的に対処するには、次のことをお勧めします。次の強化スキームを使用します。
anonuid、anongid を使用して共有ディレクトリを設定し、NFS サーバーにマウントされたクライアントが最小限の権限のみを持つようにします。 no_root_squash は使用しないでください。
セキュリティ グループ ポリシーまたは iptable ファイアウォールを使用して、NFS サーバーに接続できるマシンの範囲を制限します。
iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8 --dport 111 -j ACCEPT iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8 --dport 111 -j ACCEPT
アカウント認証
ログイン認証システムとして Kerberos V5 を使用し、セキュリティを向上させるためにすべての訪問者にアカウントでのログインを要求します。
NFSD の COPY の数を設定します
Linux では、NFSD の COPY の数はスタートアップ ファイル /etc/rc.d/init.d/nfs
で定義されており、デフォルト値は 8 です。 /etc/rc.d/init.d/nfs
中,默认值为 8。
最佳的 COPY 数目一般取决于可能的客户机数目。您可以通过测试来找到 COPY 数目的近似最佳值,并手动设置该参数。
选择传输协议
对于不同的网络情况,有针对地选择 UDP 或 TCP 传输协议。传输协议可以自动选择,也可以手动设置。
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
UDP 协议传输速度快,非连接传输时便捷,但其传输稳定性不如 TCP,当网络不稳定或者黑客入侵时很容易使 NFS 性能大幅降低,甚至导致网络瘫痪。一般情况下,使用 TCP 的 NFS 比较稳定,使用 UDP 的 NFS 速度较快。
在机器较少,网络状况较好的情况下,使用 UDP 协议能带来较好的性能。
当机器较多,网络情况复杂时,推荐使用 TCP 协议(V2 只支持 UDP 协议)。
在局域网中使用 UDP 协议较好,因为局域网有比较稳定的网络保证,使用 UDP 可以带来更好的性能。
在广域网中推荐使用 TCP 协议,TCP 协议能让 NFS 在复杂的网络环境中保持最好的传输稳定性。
限制客户机数量
修改 /etc/hosts.allow
和 /etc /hosts.deny
来限制客户机数量。
/etc/hosts.allow
portmap: 192.168.0.0/255.255.255.0 : allow
portmap: 140.116.44.125 : allow
/etc/hosts.deny
portmap: ALL : deny
改变默认的 NFS 端口
NFS 默认使用的是 111 端口,使用 port 参数可以改变这个端口值。改变默认端口值能够在一定程度上增强安全性。
配置 nosuid 和 noexec
SUID (Set User ID) 或 SGID (Set Group ID) 程序可以让普通用户以超过自己权限来执行。很多 SUID/SGID 可执行程序是必须的,但也可能被一些恶意的本地用户利用,获取本不应有的权限。
尽量减少所有者是 root,或是在 root 组中却拥有 SUID/SGID 属性的文件。您可以删除这样的文件或更改其属性,如:
使用 nosuid 选项禁止 set-UID 程序在 NFS 服务器上运行,可以在 /etc/exports
伝送プロトコルを選択しますさまざまなネットワーク条件に合わせて、ターゲットを絞った方法で UDP または TCP 伝送プロトコルを選択します。トランスポート プロトコルは自動的に選択することも、手動で設定することもできます。
mount -t nfs -o sync,tcp,noatime,rsize=1024,wsize=1024 EXPORT_MACHINE:/EXPORTED_DIR /DIR
UDPプロトコルは通信速度が速く無接続通信に便利ですが、通信の安定性に問題がありますは TCP ほど優れていないため、ネットワークが不安定またはハッキングされている場合、NFS のパフォーマンスが大幅に低下したり、ネットワーク麻痺を引き起こしたりする可能性があります。一般に、TCP を使用する NFS はより安定しており、UDP を使用する NFS は高速です。 マシンの数が少なく、ネットワークの状態が良好な場合、UDP プロトコルを使用するとパフォーマンスが向上します。 マシンの数が多く、ネットワーク状況が複雑な場合は、TCPプロトコルを使用することをお勧めします(V2はUDPプロトコルのみをサポートします)。 🎜🎜🎜🎜 LAN では比較的安定したネットワークが保証されており、UDP を使用するとパフォーマンスが向上するため、LAN では UDP プロトコルを使用することをお勧めします。 🎜🎜🎜🎜 WAN では TCP プロトコルを使用することをお勧めします。TCP プロトコルを使用すると、複雑なネットワーク環境でも最高の伝送安定性を維持できます。 🎜🎜🎜🎜🎜クライアントの数を制限する🎜🎜🎜/etc/hosts.allow
と /etc /hosts.deny
を変更して、クライアントの数を制限します。 🎜🎜🎜/etc/hosts.allow🎜portmap: 192.168.0.0/255.255.255.0 :allow🎜portmap: 140.116.44.125 :allow🎜/etc/hosts.deny🎜portmap: ALL :deny🎜🎜🎜デフォルトのNF S ポート 🎜🎜NFS はデフォルトでポート 111 を使用します。このポート値は port パラメーターを使用して変更できます。デフォルトのポート値を変更すると、セキュリティをある程度強化できます。 🎜🎜🎜nosuid および noexec を構成する🎜🎜SUID (ユーザー ID の設定) または SGID (グループ ID の設定) プログラムを使用すると、一般ユーザーが自分の権限を超えて実行できるようになります。多くの SUID/SGID 実行可能プログラムが必要ですが、一部の悪意のあるローカル ユーザーによって悪用されて、本来持つべきではないアクセス許可を取得する可能性もあります。 🎜🎜所有者が root であるか、root グループに属しているが SUID/SGID 属性を持つファイルの数を最小限に抑えます。このようなファイルは削除するか、次のように属性を変更できます。 🎜🎜 set-UID プログラムが NFS サーバー上で実行されないようにするために、 /etc/exports
に行を追加します。 >: 🎜🎜🎜/www www.abc.com(rw, root_squash, nosuid)🎜🎜🎜その中のバイナリファイルの直接実行を禁止するには、noexec を使用します。 🎜🎜関連する推奨事項: 🎜🎜🎜 NFS とは何ですか? CentOS7でNFS共有を実装する方法を共有します🎜🎜🎜🎜Linuxでのftp、nfs、sshサーバーの確立🎜🎜🎜🎜NFSサービスの紹介と使い方🎜🎜以上がLinux NFS サービスのセキュリティ強化の例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。