Perbaiki akses FTP dari PC klien Linux dengan firewall diaktifkan
Hari ini, saya ingin berbagi pengalaman pribadi saya dengan akses FTP di Linux. Berkat sistem operasi baru dari Microsoft, yang menurut saya tidak cocok untuk penggunaan sehari-hari, saya beralih ke Linux beberapa tahun yang lalu. Saya menjalankan server FTP di jaringan rumah saya, dan saya tidak dapat mengaksesnya dari PC klien saya yang sedang berjalan Linux yang memiliki aturan firewall untuk memblokir koneksi masuk, yaitu kebijakan INPUT diatur ke REJECT di iptables. Inilah cara saya memperbaiki masalah ini.
Saya berasumsi bahwa kebijakan OUTPUT ACCEPT pada mesin klien dan server.
Solusi #1. Gunakan modul kernel nf_conntrack_ftp
Modul kernel nf_conntrack_ftp memungkinkan Anda untuk membuka blokir akses ke port yang diperlukan untuk server FTP secara otomatis setiap kali Anda membuat koneksi. Satu-satunya persyaratan untuk modul ini adalah baris berikut dalam aturan iptables Anda (biasanya /etc/iptables/iptables.rules) pada PC klien:
$IPT -A INPUT -i eth0 -m state --state TERKAIT, ESTABLISHED -j ACCEPT
Ada eth0 adalah nama perangkat jaringan Anda.
Selanjutnya, Anda perlu memuat nf_conntrack_ftp jika tidak dimuat. Jalankan perintah berikut sebagai root pada PC klien
# modprobe nf_conntrack_ftp
Jika server Anda menggunakan beberapa port non-default (selain port 21), gunakan perintah berikut:
# modprobe port nf_conntrack_ftp=port_anda
Ini akan menyediakan koneksi otomatis dengan semua port yang diperlukan antara server FTP dan perangkat lunak klien Anda. Ini berfungsi sampai Anda me-reboot PC Anda.
Untuk membuat perubahan ini permanen, Anda perlu membuat file teks baru, /etc/modules-load.d/conntrack_ftp.conf, dan tambahkan baris berikut ke file ini:
nf_conntrack_ftp
Dalam hal port server non-default, Anda perlu membuat file tambahan, /etc/modprobe.d/conntrack_ftp.conf dengan konten berikut:
opsi nf_conntrack_ftp ports=
Ini sudah cukup.
Solusi #2. Gunakan rentang port pasif tetap
Jika Anda tidak dapat menggunakan modul nf_conntrack_ftp, Anda dapat mengatur rentang port tetap untuk perangkat lunak server FTP dan membukanya di PC klien. Sebagai contoh, berikut adalah bagaimana hal itu dapat dilakukan untuk aplikasi vsftpd.
- Dalam file konfigurasi vsftpd, yang biasanya /etc/vsftpd.conf, tambahkan baris berikut:
pasv_min_port=5500. pasv_max_port=6500
Ini harus dilakukan di sisi server. Setelah itu Anda harus memulai ulang vsftpd.
- Dalam aturan iptables Anda (biasanya /etc/iptables/iptables.rules) pada PC klien, tambahkan aturan berikut:
$IPT -A INPUT -p tcp -s
--dport 5500:6500 -j TERIMA - Terapkan aturan iptables sebagai berikut:
# iptables-restore < /etc/iptables/iptables.rules
Itu dia.