
1 つのクライアントを除くすべてのネットワーク クライアントとフォルダーを共有したいです。現在の/etc/exports
ファイルは次のとおりです。
/opt/resources *(rw,async)
192.168.1.24
他のすべての承認済みクライアントのアドレスを記載する必要なくクライアントを防止するには、何を追加すればよいですか?
答え1
ファイル内の負のパターンを受け入れる NFS サーバーは知りませんexports
。
IP アドレスをリストする場合、ネットマスクを使用して一度に複数のクライアントをカバーできます (IP アドレスにワイルドカード パターンは使用できません)。たとえば、次の行は 192.168.1.24 を除く 192.168.1.* に一致します。はい、面倒です。
/opt/resources 192.168.1.0/28(rw,async) 192.168.1.16/29(rw,async) 192.168.1.25(rw,async) 192.168.1.26/31(rw,async) 192.168.1.28/30(rw,async) 192.168.1.32/27(rw,async) 192.168.1.64/26(rw,async) 192.168.1.128/25(rw,async)
exports
ファイルの乱雑さや重複を避けるには、NIS ネットグループただし、ネットグループ ファイルでは、すべてのリスト内のすべてのホストをリストする必要があります。
エクスポートされた各ツリーのアクセス リストを記述する適切な方法が見つからない場合は、hosts
またはnetgroup
ファイルを自動的に生成することをお勧めします。
答え2
私の知る限り、NFS
指定されたクライアントを拒否するオプションはありません (クライアントがexports
エントリにリストされていない場合、共有リソースにアクセスできないため)。
あなたの場合、host.deny
クライアントのNFS
共有へのアクセスを拒否するために を使用できると思います。 に次の行を追加します/etc/host.deny
:
portmap:192.168.1.24
もちろん、これは完璧な解決策ではありません。リストされているクライアントは、サーバー/etc/host.deny
内の他の共有リソースにアクセスできないためです。NFS
答え3
もう一つの方法はipsetiptables を使用します。ipset はほとんどの Linux ベース リポジトリで利用できます。
たとえば、IPアドレスのipsetを作成できます。
ipset create serverblacklist hash:net
ipset -A serverblacklist 192.168.1.24
...そして、ipsetテーブル「serverblacklist」のIPをブロックするルールを追加します。
iptables -A INPUT -p tcp -m set --match-set serverblacklist src -j DROP
同様に、最も適切な方法に応じて、許可する IP のホワイトリストと、それらを明示的に許可する IPtables エントリを作成することもできます。