web-dev-qa-db-ja.com

NFSを使用するには、ファイアウォールでどのポートを開く必要がありますか?

Ubuntu 11.10を実行しています-他の多くのサーバー間でディレクトリを共有するようにNFSを設定しています。ファイアウォールでどのポートを開く必要がありますか?

77
kenny
$ rpcinfo -p | grep nfs

NFSサーバーのポート111(TCPおよびUDP)および2049(TCPおよびUDP)。

クラスタとクライアントのステータス用のポート(ポート1110 TCP、後者の場合は1110 UDP))とNFSロックマネージャのポート(ポート4045 TCPおよびUDP)。ゲートウェイ間で必要なサービスに応じて、許可する必要があるポートを決定できるのはあなただけです。

103
Wesley

Portmapperの111とnfsの2049に加えて、mountdポートと、場合によってはrquotad、lockd、およびstatdを許可する必要があります。これらはすべて動的にすることができます。 この優れたNFSセキュリティガイド 起動スクリプトとカーネルモジュールの構成を変更して、静的ポートを使用するように強制することをお勧めします。

上記のガイドには ファイアウォールのセクション が含まれていますが、NFSの強化に関する別の質問については my answer を参照してください。

27
bonsaiviking

このページで自分の問題に役立つ説明を見つけましたが、レシピに従うのが簡単ではありませんでした。これが私のレシピです。

TL; DR-修正後、nfsポート(111、2049)とmountdポートの両方を許可する必要があります。

手順:


Mountdの固定ポートのセットアップ

gksudo gedit /etc/default/nfs-kernel-server
  • この行をコメント化してください:RPCMOUNTDOPTS=--manage-gids
  • 代わりにこれを追加してください:RPCMOUNTDOPTS="--port 33333"

または、その他のポート番号。

ここで、次を使用してnfsをリセットしてみてください:

Sudo service nfs-kernel-server restart

そして、それが使用に役立つかどうかをテストします:

rpcinfo -p | grep "tcp.*mountd"

私にとっては十分ではありませんでしたが、完全に再起動することで問題は解決しました。

クレジット


ファイアウォールを設定する

(1)古いルールを削除します。これを手動で行うか、これがファイアウォールの唯一の用途である場合はリセットします。

Sudo ufw reset
Sudo ufw enable

(2)nfsとmo​​untdポートを追加する

Sudo ufw allow in from 10.0.0.1/20 to any port 111 
Sudo ufw allow in from 10.0.0.1/20 to any port 2049
Sudo ufw allow in from 10.0.0.1/20 to any port 33333

(ローカルIPまたは10.0.0.1/20ではなく "any"に変更してください)

これですべてです。

16
Amir Uval

これにより、NFS関連のすべてのプログラムで使用されるすべてのポートのリストが表示されます。

rpcinfo -p | awk '{print $3" "$4}' | sort -k2n | uniq
6
charlesnadeau

FERMを使用すると、 Backticks を使用してrpcinfoからポートを取得できます。次に例を示します。

サーバ:

proto tcp {saddr ($CLIENT) {
  dport (`rpcinfo -p | Perl -e 'while(<>){/\s+\d+\s+\d\s+(?:tcp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
proto udp {saddr ($CLIENT) {
  dport (`rpcinfo -p | Perl -e 'while(<>){/\s+\d+\s+\d\s+(?:udp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}

クライアント:

proto udp {saddr ($SERVER) {ACCEPT;}}  # NFS

(TCPのみを使用する場合は、proto tcp部分)。

3
Artem

記録のために、私はポート111、2049[〜#〜]および[〜#〜]1048にNFSを使用する構成のアクセス許可を追加する必要がありました共有はWindows 2008 R2サーバーによってエクスポートされ、クライアントはUbuntu 12.04.4です。

これが誰かのお役に立てば幸いです。

1
Erdem KAYA

SynologyをUbuntu 18.04システムにマウントするには、ポート111、892、2049を有効にする必要がありました

マウントすると、次のようになります(SynologyではNFS 4が有効になっていません):

[email protected]# mount -a -vv
mount.nfs: trying text-based options 'vers=4.2,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4.1,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'vers=4.0,addr=5.6.7.8,clientaddr=1.2.3.4'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'addr=5.6.7.8'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 5.6.7.8 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 5.6.7.8 prog 100005 vers 3 prot UDP port 892
successfully mounted
0
Slavik