HOTLINE

(0275) 2974 127

CHAT WA 24/7
0859-60000-390 (Sales)
0852-8969-9009 (Support)
Blog

Pengertian, Fungsi dan Cara Menggunakan Iptables

Pengertian Iptables

Iptables adalah salah satu tools firewall pada sistem operasi Linux. Fungsi iptables adalah mengamankan jaringan dengan melakukan penyaringan traffik pada server.

Dengan iptables dapat mengatur lalu lintas jaringan, termasuk mengizinkan atau memblokir koneksi yang masuk, keluar, atau sekedar melewati server. Pada iptables bisa membuat aturan pada server untuk mengelola jenis paket yang dapat diterima, mengatur traffik berdasarkan asal dan tujuan data, mengelola port, dll.

Iptables bekerja dengan membandingkan lalu lintas jaringan dengan serangkaian aturan yang telah dibuat. Jadi, semua paket dalam lalu lintas jaringan akan dicek. Dalam pengaturan paket, iptables memiliki beberapa tabel yang berfungsi untuk menentukan arah putaran data. Setiap tabel tersebut memiliki rules atau kumpulan aturan yang disebut chain.

Pertama, tabel FILTER. Tabel ini digunakan untuk menyaring paket yang masuk, keluar, ataupun yang hanya lewat. Caranya. dengan menggunakan beberapa aturan, yaitu :

  • ACCEPT : Menerima paket yang masuk.
  • REJECT : Menolak atau Memblokir paket yang masuk.
  • DROP : Memutuskan koneksi paket.
  • LOG : Mencatat paket.

Tabel FILTER memiliki tiga chain, yaitu :

  • INPUT : Chain ini menangani semua paket yang masuk ke server.
  • OUTPUT : Chain ini menangani semua paket yang keluar dari server.
  • FORWARD : Chain ini menangani paket yang diteruskan melalui server.

Kedua, tabel NAT (Network Address Translation). Tabel ini digunakan untuk mengubah alamat asal tujuan dari sebuah paket. Ada dua chain pada tabel NAT :

  • PRE-ROUTING (dstnat) : Mengubah destination address pada sebuah paket data.
  • POST-ROUTING (srcnat) : Mengubah source address dari sebuah paket data.

Ketiga, tabel MANGLE. Tabel ini digunakan untuk melakukan penghalusan pada proses pengaturan paket dan memiliki kemampuan untuk menggunakan semua chain yang ada pada IPTABLES di atas.

Cara Menggunakan Iptables

Sebelum mengikuti tutorial cara menggunakan iptables, pastikan memiliki akses root ke server. Jika sudah siap dapat langsung mengikuti tiga langkah berikut ini, yaitu :

1. Melakukan Instalasi iptables

Untuk mengecek versi iptables yang terinstall pada Linux, perlu melakukan koneksi ke server melalui SSH terlebih dulu.

Caranya, login dengan username dan password yang dapat ditemukan pada detail SSH di panel VPS. Kemudian, jalankan perintah berikut :

sudo iptables -V

Jika perintah tersebut menampilkan output versi iptables seperti gambar di bawah ini, maka iptables memang sudah terinstall pada Linux.

Maka, dapat langsung melanjutkan panduan ini ke langkah selanjutnya.

Namun, jika outputnya berupa command not found, artinya iptables belum terinstall. Jadi, jalankan perintah berikut ini untuk menginstall iptables :

sudo apt-get update
sudo apt-get install iptables

Tunggu beberapa saat hingga proses instalasi iptables selesai dilakukan. Jika sudah berhasil, cek status konfigurasi dengan menjalankan perintah :

sudo iptables -L -v

Command -L pada perintah diatas digunakan untuk melihat list semua aturan yang ada. Sedangkan command -v digunakan untuk menunjukkan informasi list aturan tersebut secara detail. Contoh outputnya seperti ini :

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

Iptables yang baru saja di install belum memiliki aturan apapun. Sehingga semua paket yang masuk akan diterima tanpa filter. Tentu saja hal ini masih sangat tidak aman. Tapi tenang saja disini akan menjelaskan bagaimana cara membuat rules pada iptables di langkah berikutnya.

2. Membuat Rules iptables

Rules iptables merupakan aturan untuk mengelola lalu lintas jaringan pada server. Rules ini akan ditambahkan pada suatu chain tertentu.

Iptables menggunakan perintah -A (Append) sebagai tanda bahwa ada rules yang ditambahkan :

sudo iptables -A

Namun, perintah di atas belum bisa dijalankan karena perintah Append tidak bisa berdiri sendiri. Perintah -A membutuhkan argumen pendukung untuk membuat suatu rules.

Berikut ini merupakan argumen yang bisa digunakan untuk membuat rules :

  • -i : Interface merupakan antarmuka jaringan yang akan di filter, seperti eth0, lo, dll.
  • -p : Protocol adalah protokol jaringan yang akan di cek dalam suatu rule. Misalnya tcpudpicmp, dll.
  • -s : Source adalah alamat trafik berasal (IP address atau hostname).
  • -dport : Destination Port merupakan nomor port suatu protokol, seperti 22 untuk SSH dan 80 untuk HTTP.
  • -j : Jump merupakan nama target (ACCEPT, DROP, RETURN) yang dituju ketika membuat rule yang baru.

Argumen di atas tidak harus digunakan satu persatu. Sesuaikan saja dengan kebutuhan. Namun, kalau perlu digunakan semua, urutannya harus seperti ini :

sudo iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no.>  -j <target>

Mari coba membuat rules iptables dengan syntax di atas. Sebagai contoh, di tutorial kali ini akan menambahkan rules pada chain INPUT untuk memfilter koneksi yang masuk dan mencegah koneksi yang dapat membahayakan server.

Rules iptables yang akan digunakan sebagai contoh adalah :

1. Mengaktifkan trafik pada localhost

Untuk mengizinkan trafik pada localhost, jalankan perintah berikut ini :

sudo iptables -A INPUT -i lo -j ACCEPT

Perintah di atas memastikan koneksi antara database dan aplikasi web pada localhost bisa berjalan dengan baik.

2. Mengaktifkan koneksi pada port HTTP, HTTPS dan SSH

Untuk memberikan izin akses ke port HTTP (80), HTTPS (443) dan SSH (22), jalankan perintah di bawah ini :

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

Jika sudah dapat mengecek rules yang baru saja dibuat dengan perintah :

sudo iptables -L -v

Perintah tersebut akan menghasilkan output seperti gambar berikut :

Gambar di atas menunjukkan bahwa iptables akan menerima semua koneksi TCP dari port HTTP, HTTPS dan SSH.

3. Memfilter koneksi berdasarkan sumber paket

Untuk menyaring koneksi yang masuk berdasarkan IP address atau range IP address tertentu, tambahkan IP sumber paket berasal setelah perintah -s seperti ini :

sudo iptables -A INPUT -s 192.168.1.2 -j ACCEPT

Sebaliknya, untuk memutus koneksi IP tertentu bisa menjalankan perintah DROP berikut ini :

sudo iptables -A INPUT -s 192.168.1.2 -j DROP

Selain itu bisa memutuskan koneksi dari suatu range IP address dengan menambahkan perintah -m dan modul iprange. Kemudian, masukkan range IP address setelah perintah --src-range.

Jangan lupa gunakan tanda pisah tanpa spasi (-) untuk memisahkan range IP Address. Untuk lebih lengkapnya, silahkan lihat perintah berikut :

sudo iptables -A INPUT -m iprange --src-range 192.168.1.130-192.168.1.180 -j DROP

Perintah di atas akan memutuskan koneksi dari range IP address 192.168.130 hingga 192.168.1.180.

4. Memutus koneksi trafik lainnya

Setelah mengizinkan koneksi masuk dari port tertentu, bagaimana cara memutuskan semua paket dari trafik diluar rules yang telah dibuat? Sebab, penting untuk mencegah koneksi asing mengakses server melalui port yang terbuka.

Caranya, jalankan perintah berikut ini :

sudo iptables -A INPUT -j DROP

5. Menghapus rules

Ada kalanya ingin menghapus semua rules untuk kembali membuat rules dari awal lagi. Untuk melakukannya, jalankan perintah Flush berikut ini :

sudo iptables -F

Selain itu bisa menghapus suatu rule secara spesifik dengan menggunakan perintah Delete atau -D.  Namun, perlu diketahui dulu nomor line dari rule yang akan dihapus. Jadi, jalankan perintah di bawah ini :

sudo iptables -L --line-numbers

Setelah dijalankan akan mendapat output yang mirip seperti ini :

Pilih rule yang akan dihapus, kemudian ingatlah chain serta nomornya. Masukkan chain beserta nomor rule pada perintah delete sebagai berikut :

sudo iptables -D [chain] [nomor rule]

Sebagai contoh ingin menghapus rule nomor 2 pada chain INPUT. Maka, perintahnya adalah :

sudo iptables -D INPUT 2

3. Menyimpan Konfigurasi iptables secara Permanen

Rules iptables yang telah dibuat di atas akan hilang ketika server direstart. Jadi, pastikan menyimpan konfigurasi iptables secara permanen dengan perintah di bawah ini :

sudo /sbin/iptables-save

Jangan lupa jalankan perintah tersebut ketika ada perubahan pada rules iptables. Misalnya, ketika ingin menghapus semua rules iptables, maka perlu menjalankan dua perintah berikut ini :

sudo iptables -F
sudo /sbin/iptables-save

Output yang akan dihasilkan adalah :

5/5 - (2 votes)
Risa Y

Recent Posts

Ingin Membuat Website E-Commerce Yang Menarik? Perhatikan Tips Ini

Design website toko online tidak hanya soal estetika, tapi juga UX yang bagus secara keseluruhan.…

16 hours ago

Apa Saja Jenis Proyek yang Bisa Dikerjakan UX Designer? Yuk Simak Di Sini

Sebelum memulai karir Anda sebagai desainer UX, Anda harus membuat portofolio yang mencakup semua pengalaman…

2 days ago

Aktifkan Keep-Alive Untuk Meningkatkan Performa Website Anda

Keep-Alive memungkinkan browser pengunjung Anda mendownload semua konten (JavaScript, CSS, gambar, video, dll) melalui koneksi…

3 days ago

Baca Ini Untuk Pelajari Apa Saja Job Description Web Developer

Job description seorang web developer adalah membuat situs web menggunakan berbagai bahasa pemrograman. Tanggung jawab…

4 days ago

Rekomendasi Tools A/B Testing untuk Meningkatkan Conversion Rate

Secara default, WordPress tidak mendukung A/B testing. Tapi jangan khawatir. Di bawah ini, kami telah…

5 days ago

Ingin Menjadi UX Designer? Coba Pelajari Apa Saja Tugasnya!

UX design merupakan singkatan dari User Experience design atau desain pengalaman pengguna. Istilah ini sering…

7 days ago