IPTable'larla FTP'ye İzin Verme


26

Mevcut senaryom çeşitli kurallara izin vermeyi içeriyor, ancak ftp'nin her yerden erişilebilir olmasını istiyorum. İşletim sistemi Cent 5'tir ve VSFTPD kullanıyorum. Sözdizimini doğru anlamış görünmüyorum. Diğer tüm kurallar doğru çalışıyor.

## Filter all previous rules
*filter

## Loopback address
-A INPUT -i lo -j ACCEPT

## Established inbound rule
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## Management ports
-A INPUT -s x.x.x.x/24 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s x.x.x.x/23 -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s x.x.x.x/23 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT

## Allow NRPE port (Nagios)
-A INPUT -s x.x.x.x -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT
-A INPUT -s x.x.x.x -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT

##Allow FTP

## Default rules
:INPUT DROP [0:0]
:FORWARD DROP
:OUTPUT ACCEPT [0:0]
COMMIT

Aşağıdakiler denediğim kurallar.

##Allow FTP
-A INPUT --dport 21 any -j ACCEPT
-A INPUT --dport 20 any -j ACCEPT

-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT


-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 20 -j ACCEPT
-A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 21 -j ACCEPT

-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT

1
biçimlendirmeniz düzeltildi, böylece okunabilir.
Avery Payne

Sanırım Rackspace kullanıyorsunuz? Eğitimde bu kusur var. Sadece @Evan Anderson'ın talimatlarını takip edin.
Andres SK,

Yanıtlar:


41

İşte insanları yönlendirdiğim ve FTP protokolünü izleyebilecekleri belge: http://slacksite.com/other/ftp.html

  • Etkin mod FTP yapmak için, 21 numaralı TCP bağlantı noktasına gelen bağlantılara ve 20 numaralı bağlantı noktasından giden bağlantılara izin vermeniz gerekir.
  • Pasif mod FTP yapmak için, 21 numaralı TCP bağlantı noktasına gelen bağlantılara ve sunucu bilgisayardaki rastgele oluşturulmuş bir bağlantı noktasına gelen bağlantılara izin vermeniz gerekir (netfilter'de bir bağlantı modülü kullanılması gerekir)

Sizin hiçbir şeyiniz yok: Mesajınızdaki ÇIKIŞ zinciriniz, bu yüzden bunu da buraya dahil edeceğim. ÇIKIŞ zinciriniz varsayılan olarak düşerse, bu önemlidir.

İptables yapılandırmanıza bu kuralları ekleyin:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

Pasif mod FTP'yi desteklemek için ip_conntrack_ftp modülünü önyüklemede yüklemeniz gerekir. Okumak için / etc / sysconfig / iptables-config dosyasındaki IPTABLES_MODULES satırını kaldırın ve değiştirin:

IPTABLES_MODULES="ip_conntrack_ftp"

İptables config'i kaydedin ve iptables'ı yeniden başlatın.

service iptables save
service iptables restart

VSFTPD'yi bir sorun olarak tamamen dışlamak için, VSFTPD'yi durdurun, 21 numaralı bağlantı noktasını "netstat -a" ile dinlemediğini doğrulayın ve sonra şunu çalıştırın:

nc -l 21

Bu netcat 21 portunu dinlemeye başlayacak ve girişi kabuğunuza ekleyecektir. Başka bir ana bilgisayardan, TELNET sunucunuzun 21 numaralı bağlantı noktasına bağlanır ve bir TCP bağlantısı aldığınızı ve TELNET bağlantısını yazarken kabukta çıktı gördüğünüzü doğrulayın.

Son olarak, VSFTPD'yi yedekleyin, 21 numaralı bağlantı noktasını dinlediğini doğrulayın ve tekrar bağlanmayı deneyin. Netcat ile bağlantı işe yaradıysa, iptables kurallarınız iyi. VSFTPD bağlantısı netcat yaptıktan sonra çalışmıyorsa, VSFTPD yapılandırmanızla ilgili bir sorun var demektir.


Yardım adamınız için teşekkürler, pasif mod için özetlediğiniz öneriler sorunumu çözdü. Yardımın için minnettarım.
IOTAMAN

IPtables 'ı yeniden başlatmak IPTABLES_SAVE_ON_STOP "evet" olarak ayarlanmamışsa yaptığınız değişiklikleri silecektir.
Kevin M

@Kevin: Kesinlikle, kesinlikle iyi bir nokta! > smile <Şimdi üzerinde bir düzenleme bırakacağım.
Evan Anderson

@ GLB03: Sorun değil. Sunucu Arızası ile yaşıyorum ...> smile <
Evan Anderson 18

Bu cevap benim için işe yaramadı, bu yüzden bu sorunu yaşayan herhangi biri için, bunun (ve ayrıca 21 numaralı giriş / çıkış portunun açılması) benim için çalıştığını belirteceğim : linuxquestions.org/questions/linux-security-4 /… -
ehsanul

0

Bu kuralı dene. Not: $EXTIPFTP sunucusu için harici IP adresinizdir.

-A INPUT -i $EXTIP -m state --state NEW,ESTABLISHED,RELATED -p TCP -s 0.0.0.0 -d $EXTIP --dport 21 -j ACCEPT

0

Benim durumumda ip_conntrack_ftp çekirdek modülünü özlüyordum. Yüklenmesi gerekiyor. Yani bunu deneyebilirsiniz:

modprobe ip_conntrack_ftp

Ayrıca yeniden başlatma sonrası çalışacak şekilde / etc / modüllerine ip_conntrack_ftp ekleyin.

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.