Saya ingin mengizinkan lalu lintas FTP yang masuk.
CentOS 5.4:
Ini /etc/sysconfig/iptables
file saya .
# Generated by iptables-save v1.3.5 on Thu Oct 3 21:23:07 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:14837]
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
COMMIT
# Completed on Thu Oct 3 21:23:07 2013
Juga, secara default, modul ip_conntrack_netbios_n semakin dimuat.
#service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
Tetapi masalahnya bukan pada modul itu, karena saya mencoba membongkar dan masih belum berhasil.
Jika saya menonaktifkan iptables, saya dapat mentransfer cadangan saya dari komputer lain ke FTP. Jika iptables memberlakukan, maka transfer gagal.
sumber
--sport 1024: and --dport 1024:
berarti bahwa kami menyertakan semua port dalam kisaran1024:32535
yang merupakan port yang tidak terjangkau, yang berarti bahwa pengguna tanpa akses privilege dapat menggunakan port ini untuk menguji aplikasi mereka.--sport
untuk menjadi mode tidak terprivasi untuk mengatasi masalah firewall dan membiarkan klien terhubung ke server.NEW,ESTABLISHED
tetapi itu tidak masalah. Koneksi pertama selalu dalamNEW
keadaan kemudian melompat keRELATED
yang menunjukkan bahwa koneksi ini terkait dengan koneksi yang sudah diizinkan. Ketika koneksi berubah keESTABLISHED
keadaan itu memberitahu kami bahwa koneksi telah dibuat di kedua sisi (server / klien). Anda mungkin mencoba-m state --state ...
sebagai gantinya.NEW
memang penting. Sepertinya tidak akan berhasil tanpanya.--sport 1024:
. Mengapa port klien berguna untuk aturan? Jika ia terhubung dari port 80 ke port pasif server, ia harus diizinkan untuk terhubung juga.Saya sudah melihat peraturan yang begitu luas di beberapa Blog dll dan bertanya-tanya mengapa tidak digunakan saja
bersama dengan
nf_conntrack_ftp
modul. Ini lebih ringkas dan mudah dibaca, yang umumnya merupakan hal yang baik, terutama dengan firewall ...FWIW, tampaknya ada perubahan di kernel 4.7, sehingga Anda perlu mengatur
net.netfilter.nf_conntrack_helper=1
viasysctl
(misalnya memasukkannya/etc/sysctl.d/conntrack.conf
) atau menggunakan(lihat di sini untuk detail lebih lanjut)
sumber
echo "1" > /proc/sys/net/netfilter/nf_conntrack_helper
dan semuanya berfungsi seperti yang diharapkan.Klien FTP:
SERVER FTP:
Untuk beralih antara mode pasif dan aktif di sisi klien
sumber
Menambahkan BARU memperbaikinya, saya percaya.
Sekarang, file iptables saya terlihat seperti ini ..
Mengetiknya sebagai jawaban, karena terlalu banyak karakter tidak diizinkan dalam komentar .. Terima kasih banyak atas bantuan Anda.
sumber
--dport 20:65535
meninggalkan semua port dari 20 - 65535 terbuka dari port sumber manapun antara 1024: 65535, yang membuat banyak layanan terkena yang mungkin tidak boleh, kecuali diizinkan secara eksplisit. Saya percaya apa yang dimaksudkan adalah--dport 1024:65535
Jika Anda memerlukan koneksi aktif dan pasif, dan sudah menerima
ESTABLISHED
koneksi, seperti:Maka Anda hanya perlu membuka port 21 dan menambahkan aturan khusus untuk port pasif. Tidak diperlukan aturan untuk port 20 karena sudah diterima oleh
ESTABLISHED
aturan di atas.Pertama, terima koneksi baru di
port 21
:Kemudian tambahkan CT helper untuk port pasif
1024:
:Lihat juga:
Catatan: Anda harus mengatur
1024:
seperti di server FTP Anda: cari port pasif default di konfigurasi FTP Anda. Jika tidak, Anda akan membuka terlalu banyak port yang mungkin bukan relatif FTP.Catatan penting: Saya tidak menambahkan
OUTPUT
aturan saat standar saya berjalaniptables -P OUTPUT ACCEPT
. Berarti saya percaya apa yang keluar dari kotak saya. Itu mungkin bukan pilihan yang baik, terutama dalam pengaturan NAT.Catatan yang sangat penting: FTPS tidak akan berfungsi dengan pengaturan seperti itu, karena port pasif disembunyikan (dienkripsi), maka tidak ada cara untuk
iptables
menebak port yang baik. Lihat Mengubah IPTables untuk Mengizinkan FTP melalui TLS Menggunakan Port Pasif dan https://serverfault.com/questions/811431/are-my-iptables-for-ftps-with-tls-oksumber