NFS kullanmak için güvenlik duvarında hangi bağlantı noktalarını açmam gerekir?


73

Ubuntu 11.10 kullanıyorum - NFS'yi diğer birçok sunucu arasında bir dizin paylaşacak şekilde ayarlıyorum. Güvenlik duvarında hangi portların açılması gerekiyor?


6
Kullanmayı düşündüğünüz protokolün sürümüne bağlıdır. NFS 4 yalnızca 2049, eski sürümler ise daha fazlasını gerektirir.
15'te

Yanıtlar:


97
$ rpcinfo -p | grep nfs

NFS sunucusu için Bağlantı Noktası 111 (TCP ve UDP) ve 2049 (TCP ve UDP).

NFS kilitleme yöneticisi için bir bağlantı noktasının yanı sıra, Küme ve istemci durumu için bağlantı noktaları (birincisi için bağlantı noktası 1110 TCP ve ikincisi için 1110 UDP) ve bağlantı noktaları vardır. Ağ geçidi için hangi servislerin gerekli olduğuna bağlı olarak hangi portlara izin vermeniz gerektiğini belirleyebilirsiniz.


4
Rpcinfo'yu bilmiyordum, bu oldukça faydalı. 111 numaralı bağlantı noktasını ile görmedim grep nfs, ancak 111'in ne olduğunu öğrenmek için engebeyi bıraktım portmapper. Ayrıca bilmek güzel! (ve bahsettiğiniz gibi, gerekli)
kenny

@KennyYounger rpcinfo da faydalıdır. Bu sorunuzu cevapladıysa, gelecekteki izleyicilerin yararına cevap olarak işaretlemeyi unutmayın.
Wesley,

6
Dosya sistemini ilk taktığınızda mountd açmanız gerekir. Dinamik bir bağlantı noktasında çalışır, böylece her zaman aynı olmaz. Cevabımdaki bir rehbere link verdim.
bonsaiviking

1
@Bonsaiviking teşekkür ederiz. Bu işlem için kritik bilgi. Cevabını değiştirdim!
kenny,

Bu hizmetlerin ("küme ve müşteri durumu", "NFS kilit yöneticisi") nelere ve ne zaman ihtiyaç duyulabileceklerine dair kısa bir açıklama verebilir misiniz? Bu hizmetler bir güvenlik duvarı tarafından engellenirse, NFS sunucuları ve istemciler incelikli bir şekilde bozulur mu veya bir yanıt beklemeyi kilitler mi?
Nathan Craike

27

Portmapper için 111'e ve nfs için 2049'a ek olarak, bağlantı noktası portuna izin vermeniz ve muhtemelen tümü dinamik olabilen rquotad, lockd ve statd seçeneklerine ihtiyacınız olacaktır. Bu mükemmel NFS güvenlik kılavuzu , başlangıç ​​komut dosyalarınızı ve çekirdek modülü yapılandırmalarınızı statik bağlantı noktaları kullanmaya zorlamak için değiştirmenizi önerir.

Güvenlik duvarlarında bir bölümü olan yukarıdaki kılavuza ek olarak, NFS'nin sertleştirilmesiyle ilgili başka bir soruya cevabımı görün .


7
İçeriğe işaretçiler değil, içeriği tercih ederiz. Bir bağlantı içeren içeriğin bir ön kısmı da tamam ve bir bağlantıya tercih edilir.
user9517

2
2012 hakkında emin değilim, ancak bağlantılardaki önerileri fena halde modası geçmiş görünüyor. TCP üzerinden NFS, çeşitli nedenlerle tercih edilir ve UDP üzerinden NFS, protokol kısıtlamaları nedeniyle hızlı bağlantıda sessiz veri bozulmalarına neden olabilir. Güvenlik rehberi Kerberos / GSS vs.'den bahsetmiyor
Maciej Piechotka

Mountd ile ilgili olarak, mountd portunun sabit olduğundan emin olmak için yeniden yapılandırmanız durumunda hayat çok daha kolaydır. Debian sistemlerinde, RPCMOUNTDOPTS değerini benzer bir şeyle düzenleyin RPCMOUNTDOPTS="--port 34567"ve ardından sysctl --systemve ile yeniden /etc/init.d/nfs-kernel-server restart
başlayın

14

Sorunumla ilgili bu sayfada faydalı talimatlar buldum, ancak tarifi takip etmek kolay olmadı. İşte tarifim.

TL; DR - sabitleme işleminden sonra hem nfs bağlantı noktalarına (111, 2049) hem de bağlantı noktalarına izin vermeniz gerekir.

Talimatlar:


Mountd için sabit bir port ayarlama

gksudo gedit /etc/default/nfs-kernel-server
  • bu satırı yorumla: RPCMOUNTDOPTS=--manage-gids
  • bunun yerine şunu ekle: RPCMOUNTDOPTS="--port 33333"

Veya başka bir port numarası.

Şimdi nfs kullanarak sıfırlamayı deneyin:

sudo service nfs-kernel-server restart

Ve kullanımına yardımcı olup olmadığını sınayın:

rpcinfo -p | grep "tcp.*mountd"

Benim için yeterli değildi, ancak tam bir yeniden başlatma sorunu çözdü.

( kredi )


Güvenlik duvarını kurma

(1) eski kuralları silin, bunu el ile yapın veya güvenlik duvarı için tek kullanımlıksa sıfırlayın:

sudo ufw reset
sudo ufw enable

(2) nfs ve mountd portları ekle

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

(Yerel IP’lerinize veya anyyerine " " olarak değiştirin 10.0.0.1/20)

Hepsi bu kadar.


3
Tüm kutuyu yeniden başlatmanız gerekmez. Yeniden sudo service nfs-config restartbaşlatmadan önce basit olan nfs-kernel-serversadece iyi olacaktır.
showp1984

@ showp1984 teşekkürler, bir dahaki sefere deneyeceğim
Amir Uval

Veya sisteminiz kullanıyorsa systemctl, öyle systemctl restart nfs-kernel-server.service.
fbicknel

Bunları ayrıca bir kabarcıklı foopta da yapabilirsiniz: sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333bunu takiben (tamam, iki kabarcıklı foop) sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333. Not 33333 numaralı bağlantı noktası yukarıdaki örnektir. Cevabın gösterdiği gibi başka bir port kullanabilirsiniz.
fbicknel

5

Bu, NFS ile ilgili tüm programların kullandığı tüm portların bir listesini verecektir:

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

3

FERM ile portları rpcinfo'dan almak için Backticks'i kullanabilirsiniz , örneğin:

Sunucu:

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
}}

Müşteri:

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

(Yalnızca TCP'yi kullanacaksanız, yalnızca proto tcpparçaya ihtiyacınız vardır ).


1

Kayıtlar için, NFS paylaşımının bir Windows 2008 R2 sunucusu tarafından ihraç edildiği ve istemcilerin Ubuntu 12.04.4 olduğu bir yapılandırma için 111, 2049 AND 1048 bağlantı noktaları için izinler eklemek zorunda kaldım.

Umarım bu birine yardımcı olur.


2
Neden 1048 numaralı limana ihtiyacınız olduğunu ve bunu nasıl belirlediğinizi açıklamak yardımcı olabilir.
HBruijn

3
Açıkçası, neden 1048'e izin vermem gerektiğine dair hiçbir fikrim yok, ancak bunu eklemek sorunumu çözdü. Gelecekte bir başkasının zaman kazanabileceğini bilmek istiyorum. Soruyu cevaplayamadığım için üzgünüm.
Erdem KAYA
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.