Menggantikan firewalld dengan iptables pada CentOS 7

Seperti yang kita tahu bahwa mulai CentOS 7 untuk filter internetnya menggunakan firewalld yang menggantikan iptables. Harus belajar format konfigurasi baru jadinya dan walaupun lebih baik dari iptables tapi kalau sudah terbiasa juga masih ampuh dalam menangani masalah bisa dipertimbangkan untuk diubah aplikasi firewallnya. Ini sekaligus melunasi request dari mbak Shafira. 😀

Sebenarnya juga bukan hal yang sulit, langkah paling pertama adalah mematikan firewalld:

systemctl stop firewalld

Cegah supaya firewalld dijalankan saat booting/startup CentOS 7:

systemctl mask firewalld

Kemudian mari kita install iptables:

yum install iptables-services

Aktifkan iptables saat booting/startup sistem operasi:

systemctl enable iptables

Kalau anda mencari tahu tentang topik ini semestinya sudah paham bagaimana setting iptables. Nah… silahkan edit konfigurasinya atau adaptasikan dari server lama anda:

nano /etc/sysconfig/iptables

Misal anda tidak tahu atau tidak yakin ini saya berikan template iptables paling dasar agar akses SSH dan HTTP/HTTPS tidak diblokir:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT

Saya ingatkan dulu, ini saya asumsikan semuanya masih default. Harap dicek dulu apakah masih cocok dengan kondisi server anda.

Muat ulang konfigurasinya:

systemctl restart iptables

Setelah itu simpan konfigurasi iptables yang baru dibuat secara permanen:

/usr/libexec/iptables/iptables.init save

Selesai. 🙂

9 pemikiran pada “Menggantikan firewalld dengan iptables pada CentOS 7”

  1. Halo mas chandra,
    saya lagi belajar dari awal untuk centos 7 😀
    saya coba gantikan firewalld dengan iptables sesuai langkah di atas dan berhasil, setelah itu saya edit pengaturan ssh sbb :

    vi /etc/ssh/sshd_config
    port 46
    PasswordAuthentication no
    UseDNS no
    systemctl restart sshd.service

    lalu saya tambahkan port yang baru saya buat di iptables sbb:

    iptables -A INPUT -p tcp -m tcp --dport 46 -j ACCEPT
    iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
    systemctl restart iptables
    /usr/libexec/iptables/iptables.init save

    saya coba keluar dari kitty dan login ulang dengan pengaturan yang baru di kitty tapi nggak bisa masuk sama sekali 🙁 kurangnya dimana ya? sudah 3 kali rebuild droplet dan ulangi dari awal tapi masih saja hasilnya sama.

    trims sebelumnya mas.

  2. hari ini saya coba lagi dari awal, setelah menonaktifkan firewalld dan instal iptables lalu masukkan pengaturan baru langsung mengetikkan dari terminal bukan dari editor setelah itu simpan dan reload dan saya coba cek lagi pengaturan yang baru saya input dengan perintah :
    iptables -L dan iptables -S
    pengaturan baru yang saya masukkan sebelumnya tidak tersimpan, saya coba input lagi pengaturan baru seperti sebelumnya, simpan dan reload, cek lagi oke sudah tersimpan, lanjut ke perubahan port di /etc/ssh/sshd_config, simpan dan reload.
    buka sesi ssh baru seperti anjuran mas chandra tapi masih belum bisa masuk.

    percobaan kedua, setelah firewalld nonaktif, instal iptables, masukkan pengaturan baru via editor :

    vi /etc/sysconfig/iptables
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 12345 -j ACCEPT
    -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
    -A INPUT -p tcp -m multiport --dports 21,12000:12100 -j ACCEPT
    -A INPUT -p udp -m udp --dport 53 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
    -A INPUT -p tcp -m multiport --dports 25,465,587,2525 -j ACCEPT
    -A INPUT -p tcp -m multiport --dports 110,995 -j ACCEPT
    -A INPUT -p tcp -m multiport --dports 143,993 -j ACCEPT
    -A INPUT -p tcp -m multiport --dports 3306,5432 -j ACCEPT
    -A INPUT -p icmp -j ACCEPT

    simpan dan reload, coba tes dengan iptables -L dan iptables -S, oke pengaturan tersimpan, lanjut ke perubahan port di /etc/ssh/sshd_config, simpan dan reload.
    buka sesi baru dan berhasil bisa masuk!
    iseng balik ke sesi ssh sebelumnya dan coba hapus salah satu pengaturan yg sebelumnya saya input di iptables, coba simpan dan reload lalu cek dengan iptables -L dan iptables -S, eh pengaturan yang saya hapus masih ada? padahal sudah dihapus dan simpan.

    saya nggak tahu dimana letak salahnya, apa mungkin iptables belum sempurna terintegrasi dan menggantikan firewalld yang dinonaktifkan, tapi yang penting masalahnya solved hehehe 😀

    maaf mas chandra sudah merepotkan 🙂

    • Loh belum merepotkan mbak. Droplet saya masih standby sejak ganti tutorial ganti SSH lewat firewalld. 😀

      Trims informasinya yang lengkap mbak. Walaupun masih misteri ini beneran bisa atau ga. 🙂

  3. mas saya tadi hapus iptables dengan perintah yum remove iptables
    kok mariadbnya kehapus juga ya mas? apa begitu terus blognya tewas deh…

  4. Terimakasih sebelumnya buat Mas Candra.
    Website saya sempet offline setelah saya restart VPS dg CentOS7.
    Googling, mendarat di sini.
    Coba matiin firewalld, wuishhhh… website saya online lagi !!!

    karena saya newbie, saya bkn mau pake iptables, tapi mau tetep pake firewalld bawaan CentOS7.
    Mau tanya Mas, apa konsekuensinya kalo firewalld nya tetep saya matiin ?

    Terimakasih Mas

Tinggalkan komentar