it-swarm-tr.com

IPTable'larla FTP'ye izin verme

Benim mevcut senaryom çeşitli kurallara izin içerir, ancak ftp her yerden erişilebilir olması gerekir. İşletim sistemi Cent 5 ve VSFTPD kullanıyorum. Sözdizimini doğru anlayamıyorum. Diğer tüm kurallar düzgün çalışır.

## 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ğıda denediğim kurallar var.

##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
26
IOTAMAN

FTP protokolünü izleyebilmeleri için insanları bahsettiğim belge: http://slacksite.com/other/ftp.html

  • Aktif mod FTP yapmak için, TCP bağlantı noktası 21'e gelen bağlantılara ve bağlantı noktası 20'den giden bağlantılara izin vermeniz gerekir.
  • Pasif mod FTP yapmak için, TCP bağlantı noktası 21'e 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ını gerektirir)

Yeniden bir şey yok: yayınınızdaki OUTPUT zinciriniz, bu yüzden buraya da ekleyeceğim. OUTPUT zinciriniz varsayılan olarak bırakılıyorsa, bu önemlidir.

Bu kuralları iptables yapılandırmanıza 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, önyükleme sırasında ip_conntrack_ftp modülünü yüklemeniz gerekir./Etc/sysconfig/iptables-config dosyasındaki IPTABLES_MODULES satırını açın ve aşağıdakileri okumak için değiştirin:

IPTABLES_MODULES="ip_conntrack_ftp"

İptables yapılandırmasını 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 ardından bir komut çalıştırın:

nc -l 21

Bu, 21 numaralı bağlantı noktasında netcat dinlemeye başlayacak ve Shell'inize girişi yansıtacaktır. Başka bir Ana Bilgisayardan, TELNET'ten sunucunuzun 21 numaralı bağlantı noktasına gidin ve TCP bağlantı aldığınızdan ve TELNET bağlantısını yazdığınızda Shell'de çıktı gördüğünüzden emin olun.

Son olarak, VSFTPD'yi yeniden getirin, bağlantı noktası 21'de dinlediğini doğrulayın ve tekrar bağlanmayı deneyin. Netcat bağlantısı çalıştıysa iptables kurallarınız iyi durumdadır. Netcat yaptıktan sonra VSFTPD bağlantısı çalışmıyorsa, VSFTPD yapılandırmanızla ilgili bir sorun var.

41
Evan Anderson

Bu kuralı deneyin. Not: $EXTIP, FTP 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
Matt

Benim durumumda ip_conntrack_ftp çekirdek modülünde eksikti. Yüklenmesi gerekiyor. Böylece şunu deneyebilirsiniz:

modprobe ip_conntrack_ftp

Ve ayrıca/etc/modüllerine ip_conntrack_ftp ekleyin, böylece yeniden başlattıktan sonra çalışacaktır

0
Kornel