Skenario saya saat ini melibatkan memungkinkan berbagai aturan, tetapi saya perlu ftp agar dapat diakses dari mana saja. OS adalah Cent 5 dan saya menggunakan VSFTPD. Sepertinya saya tidak bisa mendapatkan sintaks yang benar. Semua aturan lain berfungsi dengan benar.
## 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
Berikut ini adalah aturan yang telah saya coba.
##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
Jawaban:
Inilah dokumen yang saya referensikan kepada orang-orang sehingga mereka dapat mengikuti protokol FTP: http://slacksite.com/other/ftp.html
Anda tidak memiliki apa pun kembali: rantai OUTPUT Anda di pos Anda, jadi saya akan memasukkannya di sini juga. Jika rantai OUTPUT Anda adalah default-drop maka ini penting.
Tambahkan aturan ini ke konfigurasi iptables Anda:
Untuk mendukung FTP mode pasif, Anda perlu memuat modul ip_conntrack_ftp saat boot. Batalkan komentar dan ubah baris IPTABLES_MODULES di file / etc / sysconfig / iptables-config untuk membaca:
Simpan konfigurasi iptables dan mulai ulang iptables.
Untuk sepenuhnya mengesampingkan VSFTPD sebagai masalah, hentikan VSFTPD, verifikasi bahwa itu tidak mendengarkan pada port 21 dengan "netstat -a" dan kemudian jalankan:
Ini akan mulai mendengarkan netcat pada port 21 dan akan memasukkan input ke shell Anda. Dari host lain, TELNET ke port 21 server Anda dan verifikasi bahwa Anda mendapatkan koneksi TCP dan Anda melihat output di shell ketika Anda mengetikkan koneksi TELNET.
Terakhir, bawa kembali VSFTPD, verifikasi bahwa ia mendengarkan pada port 21, dan coba sambungkan lagi. Jika koneksi ke netcat berhasil maka aturan iptables Anda baik-baik saja. Jika koneksi ke VSFTPD tidak berfungsi setelah netcat maka ada sesuatu yang salah dengan konfigurasi VSFTPD Anda.
sumber
Coba aturan ini. Catatan:
$EXTIP
adalah alamat IP eksternal Anda untuk server FTP.sumber
Dalam kasus saya, saya kehilangan modul kernel ip_conntrack_ftp. Perlu dimuat. Jadi Anda dapat mencoba ini:
Dan juga tambahkan ip_conntrack_ftp ke / etc / modules sehingga akan berfungsi setelah restart
sumber