NFS:1つを除くすべてのクライアントと共有

NFS:1つを除くすべてのクライアントと共有

1つを除いて、ネットワーク上のすべてのクライアントとフォルダを共有したいと思います。これは私の現在の/etc/exportsファイルです。

/opt/resources     *(rw,async)

顧客が192.168.1.24他の承認されたすべての顧客の住所に言及する必要がないようにするには、何を追加する必要がありますか?

答え1

exportsファイルの否定的なパターンを許可するNFSサーバーはありません。

IPアドレスを一覧表示している場合は、ネットワークマスクを使用して複数のクライアントを同時に処理できます(IPアドレスにワイルドカードパターンを使用できません)。たとえば、次の行は192.168.1.*(192.168.1.24を除く)と一致します。はい、退屈です。

/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ネットグループ。ただし、netgroupファイルでは、すべてのリストのすべてのホストをリストする必要があります。

hostsエクスポートした各ツリーのアクセスリストを説明する満足できる方法が見つからない場合は、それらを自動生成またはファイリングする必要がありますnetgroup

答え2

私が知っている限り、NFS指定されたクライアントを拒否するオプションはありません(クライアントがエントリにリストされていないとexports共有リソースにアクセスできないため)。

あなたの場合、共有へhost.denyのクライアントアクセスを拒否するために使用できると思います。NFS行を追加/etc/host.deny:

portmap:192.168.1.24

もちろん、リストされたクライアントはサーバー上の他の共有リソースに/etc/host.denyアクセスできないため、これは完璧なソリューションではありません。NFS

答え3

別の方法はIPセットiptablesを使って。 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エントリを作成して、最も便利なエントリに応じてこれを明示的に許可することもできます。

関連情報