Setelah saya share config firewall menggunakan UFW dan Firewalld di postingan sebelumnya. Saat ini akan saya share sedikit beberapa konfigurasi firewall menggunakan iptables.
Iptables merupakan salah satu firewall yang bagus dimana sudah termasuk framework netfilter di linux.
Berikut beberapa rule pada iptables.
- Mangle
a. Rules untuk memodifikasi paket - NAT (Network Add Translation)
a. PREROUTING
b. POSTROUTING - FILTER
a. INPUT
b. OUTPUT
c. FORWARD
Iptables juga dapat digunakan untuk menspesifikkan rule dengan protokol, sehingga jika Anda ingin block koneksi internet dari VM, hal tersebut juga bisa dilakukan.
Konfigurasi Iptables
Untuk melihat rule iptables yang sudah dikonfigurasikan bisa menjalankan perintah:
sudo iptables -L
Apabila Anda ingin flush atau menghapus rule iptables yang sudah pernah dibuat, bisa menjalankan perintah:
sudo iptables -F
Policy pada ipables terdiri dari:
- ACCEPT: Mengizinkan trafik
- DROP: Menolak trafik
Sebagai contoh, jika policy pada rule iptables INPUT drop, maka firewall akan menolak semua trafik/koneksi internet dari dalam keluar.
Apabila Anda ingin mengizinkan trafik internet keluar bisa menggunakan perintah berikut:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Mengizinkan semua trafik outbound:
sudo iptables -A OUTPUT -j ACCEPT
Sedangkan jika Anda ingin mengizinkan port HTTP dan HTTPS VM agar bisa diakses dari luar bisa menggunakan rule berikut:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Kemudian, jika Anda ingin mengizinkan port SSH bisa menggunakan perintah:
sudo iptables -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
Note: Sesuaikan dengan port SSH yang Anda gunakan.
Sedangkan jika Anda ingin menolak trafik dari IP tertentu yang mengakses ke VM Anda bisa menggunakan perintah:
sudo iptables -A INPUT -s x.x.x.x -j DROP
Note: Untuk x.x.x.x
bisa diisikan dengan IP Addressnya.
Apabila Anda ingin mengimplementasikan rule diatas, silakan membuat rule berikut terlebiih dahulu.
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Berikut perintah yang sering digunakan pada iptables.
Atribut | Keterangan |
---|---|
-A | Append, opsi ini digunakan untuk menambahkan rule baru |
-I | Insert, opsi ini digunakan untuk memasukkan rule baru |
-D | Delete, opsi ini digunakan untuk menghapus rule |
-L | Melihat daftar rule |
-L --line-numbers | Menunjukkan nomor setiap baris rule |
-F | Menghapus semua rule |
-F CHAIN | Menghapus rule dengan spesifik CHAIN |
-N CHAIN_NAME | Membuat CHAIN baru |
-X CHAIN | Menghapus sebuah CHAIN |
-N CHAIN_NAME | Membuat CHAIN baru |
iptables -A CHAIN -s | Spesifik sumber IP Address |
iptables -A CHAIN -p | Spesifik protokol |
iptables -A CHAIN -p tcp –dport | Spesifik port |
Iptables memiliki banyak tips dan trik lagi, ini hanya beberapa sample yang dimiliki iptables saja. Jika Anda ingin mempelajari lebih jauh tentang iptables bisa merujuk ke link berikut.
Referensi lain:
https://help.ubuntu.com/community/IptablesHowTo
Semoga bermanfaat dan barokah 🙂