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

Kenali Apa itu Pop Up, Fungsi hingga Cara Membuatnya

Kamu mungkin pernah mendengar istilah "Pop Up"  dalam beberapa penjelasan artikel. Lalu, apa si Pop…

1 day ago

Begini Cara Setting SSL di Cloudflare!

Setting SSL Cloudflare – Saat ini, HTTPS adalah salah satu upaya yang dilakukan banyak pemilik…

1 day ago

Apa itu IPv6? Kenali Perbedaannya dengan IPv4

Pernahkah kamu mendengar tentang IPv6? IPv6 adalah versi terbaru dari IP (Protokol Internet) dari yang…

2 days ago

Kesulitan Membuat Aplikasi Android? Sangat Tepat, Berikut Cara Mudah 100% Berhasil!

Bagi yang merasa kesulitan dalam membuat aplikasi Android, Hosteko akan memberikan cara mudah membuat aplikasi…

2 days ago

Amankan Website dari XSS Vulnerability dengan CSP

Ketika kamu ingin membuat website, ada beberapa hal yang perlu kamu perhatikan, khususnya tingkat keamanan…

4 days ago

Rekomendasi Website dan Aplikasi Kompres File PDF

Kompresi online file PDF ukuran 200 KB dan 500 KB atau rahasia kompresi PDF di…

4 days ago