Saya menjalankan Ubuntu 11.10 - mengatur NFS untuk berbagi direktori di antara banyak server lain. Port mana yang harus dibuka di firewall?
Saya menjalankan Ubuntu 11.10 - mengatur NFS untuk berbagi direktori di antara banyak server lain. Port mana yang harus dibuka di firewall?
Jawaban:
$ rpcinfo -p | grep nfs
Port 111 (TCP dan UDP) dan 2049 (TCP dan UDP) untuk server NFS.
Ada juga port untuk Cluster dan status klien (Port 1110 TCP untuk yang sebelumnya, dan 1110 UDP untuk yang terakhir) serta port untuk manajer kunci NFS (Port 4045 TCP dan UDP). Hanya Anda yang dapat menentukan port mana yang perlu Anda izinkan tergantung pada layanan mana yang dibutuhkan lintas gateway.
grep nfs
, tetapi saya berhenti grep untuk mengetahui bahwa 111 adalah untuk portmapper
. Juga senang tahu! (dan seperti yang Anda sebutkan, perlu)
Selain 111 untuk portmapper dan 2049 untuk nfs, Anda harus mengizinkan port mountd dan mungkin rquotad, lockd, dan statd, yang semuanya dapat menjadi dinamis. Panduan keamanan NFS yang luar biasa ini merekomendasikan untuk mengubah skrip startup dan konfigurasi modul kernel untuk memaksa mereka menggunakan port statis.
Selain panduan di atas, yang memiliki bagian tentang firewall , lihat jawaban saya untuk pertanyaan lain tentang pengerasan NFS.
RPCMOUNTDOPTS="--port 34567"
dan kemudian mulai kembali dengan sysctl --system
dan/etc/init.d/nfs-kernel-server restart
Saya menemukan petunjuk yang bermanfaat untuk masalah saya di halaman ini, tetapi tidak ada resep yang mudah diikuti. Jadi, inilah resep saya.
TL; DR - harus mengizinkan port nfs (111, 2049) dan mountd port setelah memperbaikinya.
Instruksi:
gksudo gedit /etc/default/nfs-kernel-server
RPCMOUNTDOPTS=--manage-gids
RPCMOUNTDOPTS="--port 33333"
Atau nomor port lainnya.
sekarang coba reset nfs menggunakan:
sudo service nfs-kernel-server restart
Dan uji apakah itu membantu menggunakan:
rpcinfo -p | grep "tcp.*mountd"
Bagi saya itu tidak cukup, tetapi restart penuh memperbaiki masalah ini.
( kredit )
(1) hapus aturan lama, lakukan ini secara manual atau reset jika ini hanya digunakan untuk firewall:
sudo ufw reset
sudo ufw enable
(2) tambahkan port nfs & mountd
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
(Ubah IP lokal Anda atau " any
" alih-alih 10.0.0.1/20
)
Itu saja yang ada di sana.
sudo service nfs-config restart
sebelum memulai kembali nfs-kernel-server
akan baik-baik saja.
systemctl
, itu systemctl restart nfs-kernel-server.service
.
sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333
diikuti oleh (ok, dua gelombang besar) sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333
. Catatan port 33333 adalah per contoh di atas. Anda dapat menggunakan port lain seperti yang ditunjukkan oleh jawabannya.
Ini akan memberikan daftar semua port yang digunakan oleh semua program terkait NFS:
rpcinfo -p | awk '{print $3" "$4}' | sort -k2n | uniq
Dengan FERM kita dapat menggunakan Backticks untuk mendapatkan porta dari rpcinfo, misalnya:
Server:
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
}}
Klien:
proto udp {saddr ($SERVER) {ACCEPT;}} # NFS
(Jika Anda hanya akan menggunakan TCP maka Anda hanya perlu proto tcp
bagian itu).
Sebagai catatan, saya harus menambahkan izin untuk port 111, 2049 DAN 1048 untuk konfigurasi di mana bagian NFS diekspor oleh server Windows 2008 R2 dan kliennya adalah Ubuntu 12.04.4.
Saya harap ini membantu seseorang.