Pendahuluan

Pada sistem operasi Linux terdapat mekanisme keamanan yang menggunakan tools IPTables. Melalui IPTables ini maka sistem dapat melakukan pengelolaan atas paket-paket yang berhubungan dengan sistem operasi Linux. Secara sederhana, sistem pengelolaan koneksi data ini dapat terbagi menjadi 3 bagian besar, yaitu :

  1. INPUT
    Berguna ketika melakukan pembatasan atas paket-paket yang masuk dari luar ke dalam sistem operasi tersebut. Misalnya adalah ketika seorang administrator melakukan koneksi ke mesin Linux dari mesin lainnya melalui fasilitas SSH.
  2. OUTPUT
    Adalah kondisi di mana paket data keluar dari sistem Linux ke luar, misalnya ketika sistem Linux melakukan proses updating sehingga membutuhkan koneksi ke luar.
  3. FORWARD
    bila sistem anda menggunakan Linux sebagai router, maka paket data yang datang ke sistem Linux bukan ditujukan untuk mesin itu sendiri, namun demikian mesin Linux yang berfungsi sebagai router harus melakukan forward atas paket data tersebut ke tujuan yang diinginkan.

 

Cara Konfigurasi iptables

Jika IPTables sudah terinstalasi dengan baik pada OS Linux, Untuk melihat kondisi atau konfigurasi yang berlaku pada IPTables dapat menggunakan perintah :
CODE : # iptables –L –v

Kemudian kita coba masukan aturan atau rule ke dalam 3 kelompok besar paket data yang akan kita kelola. Pertama-tama kita pastikan dahulu bahwa untuk semua paket data INPUT secara default adalah ACCEPT, hal ini dapat dilakukan dengan :
CODE: # iptables –P INPUT ACCEPT

Kemudian bila kita ingin memblokir semua paket data INPUT maka secara default dapat menggunakan :
CODE: # iptables –P INPUT DROP

Untuk membuka interface tertentu maka dapat menggunakan parameter –i, sebagai berikut :
CODE: # iptables –A INPUT –i eth0 –j ACCEPT
Dalam hal ini kita mengelola interface eth0 agar semua paket data yang masuk melalui interface ini langsung dilarikan ke policy ACCEPT. Di sini kita menggunakan –A bertujuan untuk menambahkan terhadap aturan yang sudah ada.

Untuk kebutuhan akan pengelolaan data yang sudah berjalan (ESTABLISHED, RELATED) maka kita juga dapat memanfaatkan modul state, sebenarnya dengan menggunakan modul ini kita dapat juga untuk mengenali apakah paket data tersebut NEW, ESTABLISHED, RELATED. NEW artinya paket data tersebut baru diinisiasi dan akan melakukan koneksi ke sistem, ESTABLISHED artinya paket data tersebut adalah bagian koneksi yang telah terjalin antara pihak luar dan internal sistem, sedangkan RELATED artinya bahwa paket data yang terjalin berhubungan dengan koneksi yang telah terjalin antara pihak luar dan internal sistem.

Berikut adalah contoh aturan untuk membolehkan paket data yang merupakan bagian dan berhubungan dengan koneksi yang telah terjalin sebelumnya, yaitu perintah :
CODE: # iptables –A INPUT –m state --state ESTABLISHED, RELATED –j ACCEPT

Selain itu kita juga dapat mengelola paket data berdasarkan IP Address, yaitu dengan :
CODE: # iptables –A INPUT –s 192.168.1.100 –j ACCEPT
Artinya adalah kita membolehkan adanya paket masuk yang berasal dari PC dengan IP Address 192.168.1.100.

Kita juga dapat melakukan konfigurasi berdasarkan network address, yaitu :
CODE:
# iptables –A INPUT –s 192.168.1.0/24 –j ACCEPT
# iptables –A INPUT –s 192.168.1.0/255.255.255.0 –j ACCEPT

Dengan konfigurasi di atas anda dapat memilih salah satu saja, karena keduanya bertujuan sama yaitu membolehkan paket data dari network address 192.168.1.0/24 atau 192.168.1.0/255.255.255.0.

Selain berdasarkan IP Address maka kita juga dapat memanfaatkan MAC Address untuk proses ini, yaitu :
CODE: # iptables –A INPUT –s 192.168.1.100 –m mac --mac-source 08:00:27:30:7B:EA –j ACCEPT
Dengan konfigurasi di atas maka kita dapat memastikan bahwa IP Address tersebut juga harus memiliki MAC Address yang sesuai, sehingga hal ini menambah tingkat keamanan yang diberikan oleh sistem.

Untuk yang biasa menggunakan port maka kita juga dapat mengelola paket data yang ada berdasarkan port yang digunakan oleh aplikasi, yaitu :
CODE: # iptables –A INPUT –p tcp --dport 22 –j ACCEPT

Maka dengan cara ini kita dapat membolehkan paket data yang menggunakan protokol tcp (kita dapat menggunakan tcp, udp, icmp, all) yang menggunakan port 22 (pada sisi tujuan). Bila kita perlu untuk melakukan filter terhadap port sumber maka dapat dilakukan sebagai berikut :
CODE: # iptables –A INPUT –p tcp --sport 80 --dport 80 –j ACCEPT
Dengan metode di atas maka kita dapat membatasi aturan dengan port sumber dan port tujuan.

Hal lainnya lagi adalah untuk urusan port yang digunakan kita dapat mengkonfigurasi dengan range port sebagaimana berikut :
CODE: # iptables –A INPUT –p udp --dport 8888:9999 –j ACCEPT

Sehingga semua paket data yang masuk dengan protokol UDP ke port 8888 hingga 9999 dapat diperbolehkan. Anda dapat melakukan semua ini untuk aturan INPUT, OUTPUT, dan FORWARD. Untuk mereset semua aturan atau rule yang ada dapat dilakukan dengan :
CODE: # iptables –F

Kemudian anda dapat melakukan inisialisasi sebagai berikut :
CODE:
# iptables –P INPUT DROP
# iptables –P OUTPUT ACCEPT
# iptables –P FORWARD DROP

Dalam konfigurasi di atas maka default Policy adalah DROP untuk INPUT, ACCEPT untuk OUTPUT, dan DROP untuk FORWARD. Selanjutnya anda dapat menambahkan aturan-aturan atau rules sebagaimana dibahas di atas. Setelah anda melakukan konfigurasi maka aturan-aturan yang anda buat langsung dapat diuji pada kondisi sebenarnya. Anda dapat melihat aturan dan paket-paket data yang terpengaruh (bisa dilihat log paket data yang di DROP atau ACCEPT) dengan menggunakan :
CODE: # iptables –L –v

Bila anda sudah nyaman dengan kondisi tersebut maka lakukan proses penyimpanan konfigurasi dengan menggunakan :
CODE: # service iptables save