Mengijinkan FTP pada iptables

Kalau anda ingin telah menginstall FTP server pada VPS anda, bisa vsftpd atau ProFTPd atau PureFTPd, dan ada firewall didalamnya maka menata aturan aksesnya adalah penting. Pada umumnya di Linux masih rata – rata menggunakan iptables dan ini jadi fokus tutorialnya.

Tidak ada yang sulit, intinya kita akan memberi ijin dalam rule iptables untuk port – port yang digunakan oleh FTP. Sederhana kan? 🙂

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

Untuk active-mode FTP maka kita memperbolehkan koneksi masuk ke port 21 dan koneksi keluar pada port 20. Aslinya saya baru tahu kalau FTP butuh port 20 gara – gara belajar iptables juga. 😛

Bagaimana dengan passive-mode? Ini sistemnya mirip, koneksi awal pada port 21 tapi untuk berikutnya akan disambung pada port acak. Dan ini butuh sedikit modifikasi pada konfigurasinya:

nano /etc/sysconfig/iptables-config

Kemudian edit jadi seperti ini:

IPTABLES_MODULES="ip_conntrack_ftp"

Dan jangan lupa simpan dan restart iptables:

service iptables save
service iptables restart

Silahkan tes apakah koneksi FTP bisa digunakan pada server anda atau tidak setelahnya.

Selesai dan sekian tutorialnya. 🙂

4 Comments

  1. Mas Chandra, kenapa ya di VPS saya selalu gagal ketika mencoba menerapkan ini. Hasilnya seperti ini:
    iptables: Setting chains to policy ACCEPT: mangle nat filte[ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] iptables: Loading additional modules: ip_conntrack_ftp [FAILED]

    Hasil dari saya googling, kemungkinan nama modul yang di-load bisa jadi nf_conntrack_ftp tapi hasil tetap sama dengan nama modul ini (failed juga).
    Saya pakai command lsmod | grep ip_conntrack_ftp / lsmod | grep nf_conntrack_ftp untuk check apakah modul available atau tidak. Dan hasilnya tidak ada. Akhirnya saya kontak VPS provider, karena ada forum luar yang mengatakan bisa jadi itu gagal di-load dikarenakan openVZ / node tidak support module/tidak diintall. Mereka mengatakan sedang memperbaiki ini, tapi pada akhirnya mereka hanya menyarankan menggunakan CSF. Menurut saya iptables adalah bawaan setiap system, jadi saya enggan untuk menginstall firewall lain untuk alasan kinerja.

    1. Haha 😀 Pertimbangannya sama mas. Saya juga condong ke alat yang sudah default di Linuxnya. Ini pakai distro Linux apa mas? Dan mas sudah install FTP servernya?

      1. Maaf baru balas mas, oh sama lah kita 🙂 sudah mas, FTP sudah terinstal, saya pakai VSFTPD. Tanpa firewall / iptables off sih aman. Lancar pakai port 21 nya.. Tapi ketika ya gitu, pas coba aktifkan iptables malah error seperti di atas.. Hehe.. Sampai sekarang saya masih berharap module tersebut bisa diload.. Terimakasih mas,,

      2. Pakai distro Linux apa mas? Saya tebak sih CentOS kalau lihat filenya.

        Sudah coba ini mas:

        echo "modprobe ip_conntrack" >> /etc/sysconfig/modules/iptables.modules
        chmod +x /etc/sysconfig/modules/iptables.modules

        Atau ini:

        nano /etc/sysconfig/iptables-config
        # Load additional iptables modules (nat helpers)
        #   Default: -none-
        # Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
        # are loaded after the firewall rules are applied. Options for the helpers are
        # stored in /etc/modprobe.conf.
        IPTABLES_MODULES="nf_conntrack_ftp nf_conntrack"

Tinggalkan Balasan ke Chandra Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *