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エントリを作成して、最も便利なエントリに応じてこれを明示的に許可することもできます。