Tutorial Iptables: Mengamankan VPS dengan Firewall Linux
Sedang mencari tutorial iptables yang lengkap untuk membantu mengelola VPS? Nah, Anda sudah membaca artikel yang tepat!
Kali ini, kami akan menunjukkan cara instal iptables dan menggunakannya pada sistem Ubuntu. Anda bisa mengamankan VPS menggunakan CLI (antarmuka baris perintah) kalau sudah familiar dengan tool firewall Linux ini.
Langsung saja, ini dia tutorial iptables selengkapnya! Scroll ke bawah dan baca sampai selesai, ya.
Apa Itu Iptables?
Iptables adalah program firewall untuk Linux yang berfungsi untuk memantau traffic masuk dan keluar server menggunakan tabel. Dalam tabel ini, terdapat serangkaian aturan yang disebut chain (rantai), yang akan memfilter paket data masuk dan keluar.
Bagaimana Cara Kerja Iptables?
Ketika ada packet (paket) yang cocok dengan rule (aturan), packet akan diberi target, yang bisa berupa chain lain atau salah satu dari nilai-nilai spesial berikut:
- ACCEPT – akan mengizinkan packet untuk diteruskan.
- DROP – tidak mengizinkan packet diteruskan.
- RETURN – menghentikan packet agar tidak melintasi chain dan memberitahunya untuk kembali ke chain sebelumnya.
Dalam tutorial iptables ini, kami akan menggunakan salah satu tabel default, yang disebut filter. Tabel filter ini terdiri dari tiga chain:
- INPUT – mengontrol packet yang masuk ke server.
- FORWARD – memfilter packet masuk yang akan diteruskan ke tempat lain.
- OUTPUT – memfilter packet yang keluar dari server Anda.
Sebelum memulai panduan ini, pastikan Anda memiliki akses SSH root atau sudo ke perangkat yang menggunakan Ubuntu 22.04 atau lebih tinggi.
Anda bisa membuat koneksi melalui PuTTY (Windows) atau terminal shell (Linux, macOS). Apabila menggunakan Hostinger VPS, Anda bisa mendapatkan detail login SSH di tab Server dari hPanel.
Penting! Aturan iptables hanya berlaku untuk ipv4. Apabila ingin mengatur firewall untuk protokol ipv6, Anda perlu menggunakan ip6tables.
Cara Install Iptables Firewall Linux dan Menggunakannya
Kami akan membagi tutorial iptables ini menjadi tiga langkah. Pertama, Anda akan mempelajari cara install iptables di Ubuntu. Kedua, kami akan menunjukkan cara menentukan aturannya. Terakhir, kami akan membantu Anda melakukan perubahan tetap di iptables.
Mari mulai dari yang pertama, yaitu menginstal iptables.
1. Install Iptables
Iptables biasanya sudah terinstal di sebagian besar distribusi Linux. Namun, kalau belum ada di sistem Ubuntu/Debian Anda secara default, ikuti langkah-langkah di bawah ini:
- Konek ke server Anda melalui SSH. Apabila belum tahu caranya, silakan baca tutorial SSH kami.
- Jalankan command berikut satu per satu:
sudo apt-get update
sudo apt-get install iptables
- Cek status konfigurasi iptables Anda saat ini dengan menjalankan:
sudo iptables -L -v
- Di sini, opsi -L digunakan untuk mencantumkan semua aturan, dan -v digunakan untuk menampilkan info dalam format yang lebih detail. Berikut adalah contoh outputnya:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Sekarang, firewall Linux iptables Anda sudah terinstal. Pada tahap ini, Anda bisa melihat bahwa semua chain diatur ke ACCEPT dan tidak memiliki aturan. Hal ini tidak aman, karena setiap packet bisa masuk tanpa pemfilteran.
Tenang, kami akan memberi tahu Anda cara menentukan aturan pada langkah tutorial iptables berikutnya di bawah ini.
2. Definisikan Aturan Chain
Dengan mendefinisikan aturan, artinya Anda menambahkan aturan tersebut ke dalam chain. Untuk melakukannya, Anda perlu memasukkan opsi -A (Tambahkan) tepat setelah perintah iptables, seperti ini:
sudo iptables -A
Ini akan memberi tahu iptables bahwa Anda menambahkan aturan baru ke sebuah chain. Kemudian, Anda bisa menggabungkan command dengan opsi lainnya, seperti:
- -i (interface) – antarmuka jaringan yang traffic-nya ingin Anda filter, seperti eth0, lo, ppp0, dan lain-lain.
- -p (protocol) – protokol jaringan tempat proses pemfilteran berlangsung. Opsi ini bisa berupa tcp, udp, udplite, icmp, sctp, icmpv6, dan seterusnya. Atau, Anda bisa mengetikkan all untuk memilih setiap protokol.
- -s (source) – alamat tempat traffic berasal. Anda bisa menambahkan nama host atau alamat IP.
- –dport (destination port) – nomor port tujuan suatu protokol, seperti 22 (SSH), 443 (https), dan seterusnya.
- -j (target) – nama target (ACCEPT, DROP, RETURN). Anda perlu memasukkan nama target ini setiap kali membuat aturan baru.
Apabila ingin menggunakan semuanya, Anda harus menulis command dalam urutan berikut:
sudo iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no.> -j <target>
Setelah memahami sintaksis dasarnya, Anda bisa mulai mengonfigurasi firewall untuk meningkatkan keamanan server. Untuk tutorial iptables ini, kami akan menggunakan chain INPUT sebagai contoh.
Mengizinkan Traffic di Localhost
Untuk mengizinkan traffic di localhost, ketik command berikut:
sudo iptables -A INPUT -i lo -j ACCEPT
Di tutorial iptables ini, kami menggunakan lo atau antarmuka loopback. Antarmuka ini digunakan untuk semua komunikasi di localhost. Command di atas akan memastikan bahwa koneksi antara database dan aplikasi web pada mesin yang sama berfungsi dengan baik.
Mengizinkan Koneksi pada Port HTTP, SSH, dan SSL
Selanjutnya, kami ingin koneksi http (port 80), https (port 443), dan ssh (port 22) berjalan seperti biasa. Untuk melakukannya, kami perlu menentukan protokol (-p) dan port yang sesuai (–dport). Anda bisa menjalankan command di bawah ini satu per satu:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Saatnya mengecek apakah aturan telah ditambahkan di iptables:
sudo iptables -L -v
Hasilnya akan muncul di bawahnya, yang berarti semua koneksi protokol TCP dari port yang ditentukan akan diterima:
Memfilter Packet Berdasarkan Sumber
Iptables memungkinkan Anda memfilter packet berdasarkan alamat IP atau rentang alamat IP. Anda perlu menentukannya setelah opsi -s. Sebagai contoh, untuk menerima packet dari 192.168.1.3, berikut command yang digunakan:
sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT
Anda juga bisa menolak packet dari alamat IP tertentu dengan mengganti target ACCEPT dengan DROP.
sudo iptables -A INPUT -s 192.168.1.3 -j DROP
Apabila ingin menghapus packet dari rentang alamat IP, Anda harus menggunakan opsi -m dan modul iprange. Kemudian, tentukan rentang alamat IP dengan –src-range. Ingat, rentang alamat ip dipisahkan dengan tanda hubung dan tanpa spasi, seperti ini:
sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j DROP
Membuang Seluruh Traffic Lainnya
Penting untuk menggunakan target DROP bagi seluruh traffic lainnya setelah menentukan aturan –dport. Hal ini akan mencegah koneksi yang tidak sah mengakses server melalui port lain yang terbuka. Untuk melakukannya, cukup ketik:
sudo iptables -A INPUT -j DROP
Sekarang, koneksi di luar port yang ditentukan akan dihentikan.
Menghapus Aturan
Apabila ingin menghapus semua aturan dan memulai dari awal, Anda bisa menggunakan opsi -F (flush):
sudo iptables -F
Perintah ini menghapus semua aturan yang ada saat ini. Namun, untuk menghapus aturan tertentu, Anda harus menggunakan opsi -D. Pertama, Anda perlu melihat semua aturan yang ada dengan memasukkan command berikut:
sudo iptables -L --line-numbers
Anda akan mendapatkan daftar aturan dengan sejumlah angka:
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 192.168.0.4 anywhere 2 ACCEPT tcp -- anywhere anywhere tcp dpt:https 3 ACCEPT tcp -- anywhere anywhere tcp dpt:http 4 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Untuk menghapus aturan, masukkan chain yang sesuai dan nomor dari daftar. Misalnya, untuk tutorial iptables ini, kami ingin menghilangkan aturan nomor tiga dari chain INPUT. Perintahnya akan seperti ini:
sudo iptables -D INPUT 3
Atau, kalau perlu memfilter traffic masuk saja, Anda bisa menggunakan Firewall VPS Hostinger. Pilih VPS lalu buka bagian Firewall:
Buat konfigurasi baru, beri nama, dan tentukan aturan traffic masuk yang Anda inginkan:
3. Simpan Perubahan
Aturan iptables yang dibuat akan disimpan dalam memori. Artinya, Anda harus menyimpan konfigurasi iptables dalam file agar bisa dimuat lagi setelah reboot. Untuk hal ini, Anda bisa menggunakan command berikut, tergantung apakah Anda menyimpan aturan IPv4 atau IPv6:
sudo iptables-save > /etc/iptables/rules.v4 sudo iptables-save > /etc/iptables/rules.v6
Sekarang, setiap kali VPS direstart, Anda perlu memuat aturan yang tersimpan tersebut dengan perintah ini:
sudo iptables-restore < /etc/iptables/rules.v4 sudo iptables-restore < /etc/iptables/rules.v6
Apabila ingin mengotomatiskan proses pemuatan, Anda bisa menyiapkan paket iptables-persistent yang akan mengurus pemuatan aturan.
sudo apt-get install iptables-persistent
Setelah instalasi iptables, Anda akan diminta untuk menyimpan aturan saat ini. Pilih Yes untuk IPv4 dan IPv6 lalu selesaikan konfigurasinya. Proses pemuatan pun akan berjalan otomatis. Tapi ingat, Anda masih perlu menggunakan command sudo iptables-save setiap kali membuat perubahan pada iptables.
Kesimpulan
Iptables adalah program firewall canggih yang bisa Anda gunakan untuk mengamankan server Linux atau VPS. Kerennya, Anda bisa menentukan berbagai aturan berdasarkan preferensi.
Melalui tutorial iptables ini, Anda sudah mempelajari cara menginstal dan menggunakan tool tersebut. Semoga Anda bisa mencobanya tanpa masalah untuk mengatur rangkaian aturan guna memfilter packet masuk dan keluar.
Selamat mencoba dan semoga berhasil!
Tutorial Lainnya seputar Mengamankan Linux
Cara Mengonfigurasi OpenVPN di VPS
Cara Mengatur Firewall UFW di Ubuntu