Iptables

Sederhananya, Iptables adalah program firewall untuk Linux. Ini akan memantau lalu lintas dari dan server menggunakan tabel. Tabel ini berisi kumpulan aturan, yang disebut rantai, yang akan menyaring paket data yang masuk dan keluar.
Ketika sebuah paket cocok dengan aturan, paket tersebut diberi target, yang dapat berupa rantai lain atau salah satu dari nilai khusus berikut:
- ACCEPT - Akan mengizinkan paket untuk melewatinya.
- DROP - Tidak akan membiarkan paket lewat.
- RETURN - Menghentikan paket dari melintasi rantai dan memerintahkannya untuk kembali ke rantai sebelumnya.
Bekerja dengan salah satu tabel default, yang disebut filter. Ini terdiri dari tiga rantai:
- INPUT - Mengontrol paket yang masuk ke server.
- FORWARD - Menyaring paket-paket yang masuk yang akan diteruskan ke tempat lain.
- OUTPUT - Memfilter paket yang keluar dari server Anda.
Sebelum memulai, pastikan Anda memiliki akses root atau SSH ke mesin Anda yang berjalan di Ubuntu 16.04 atau lebih. Anda dapat membuat koneksi melalui Putty (Windows) atau terminal shell (Linux, macOS).
Option Dasar iptables
Berikut adalah beberapa option dasar yang sering digunakan dalam mengkonfigurasi iptables.
-ATambahkan rule / aturan ini ke rantai aturan yang ada. Rantai yang valid adalahINPUT,FORWARDandOUTPUT. Kita biasanya lebih banyak menggunakan rantaiINPUTyang berdampak pada traffic yang masuk.-Lmemperlihatkan daftar aturan / rule yang ada iptables.-m stateMengijinkan aturan di cocokan berdasarkan kondisi sambungan (connection state). Mengijinkan penggunaan option-–state.--stateMendefinisikan daftar dari kondisi / states bagi aturan untuk di cocokan. Beberapa state yang valid, adalah,NEWSambungan baru, dan belum pernah terlihat sebelumnya.RELATEDSambungan baru, tapi berhubungan dengan sambungan lain yang telah di ijinkan.ESTABLISHEDSambungan yang sudah terjadi.INVALIDTraffic yang karena berbagai alasan tidak bisa di identifikasi.-m limitDibutuhkan oleh rule jika ingin melakukan pencocokan dalam waktu / jumlah tertentu. Mengijinkan penggunakan option--limit. Berguna untuk membatasi aturan logging.--limitKecepatan maksimum pencocokan, diberikan dalam bentuk angka yang di ikuti oleh/second,/minute,/hour, atau/daytergantung seberapa sering kita ingin melakukan pencocokan aturan. Jika option ini tidak digunakan maka default-nya adalah3/hour.-pProtokol yang digunakan untuk sambungan.--dportPort tujuan yang digunakan oleh aturan iptables. Bisa berupa satu port, bisa juga satu range ditulis sebagai start:end, yang akan mencocokan semua port start sampai end.-jJump ke target yang spesifik. iptables mempunyai empat (4) target default, yaitu,
ACCEPT- Accept / menerika paket dan berhenti memproses aturan dalam rantai aturan ini.REJECT- Reject / tlak paket dan beritahu ke pengirim bahwa kita menolak paket tersebut, dan stop pemrosesan aturan dalam rantai aturan ini.DROP– Diam-diam tidak pedulikan paket, dan stop pemrosesan aturan di rantai aturan ini.LOG- Log / catat paket, dan teruskan memprosesan aturan di rantai aturan ini. Mengijinkan penggunaan option--log-prefixdan--log-level.
- --log-prefix Jika pencatatan di lakukan, letakan text / tulisan sebelum catatan. Gunakan kutip di text / tulisan.
- --log-level Pencatatan menggunakan syslog level. 7 adalah pilihan yang baik, kecuali kita perlu suatu yang lain.
- -i Lakukan pencocokan jika paket yang masuk dari interface tertentu.
- -I Insert / masukan aturan. Butuh dua (2) option, yaitu, rantai aturan yang mana, dan nomor aturan. Jadi
-I INPUT 5akan memasukan ke rantai INPUT dan menjadikannya aturan nomor 5 di daftar. - -v Menampilkan lebih banyak informasi di layar. Sangat membantu jika ada beberapa aturan yang tampak mirip jika di tampilkan tanpa
-v.
Cara
Itu mungkin terlihat seperti banyak, tetapi sangat sederhana ketika Anda memecahnya. Pertama, aturan ini dimulai dengan -A karena akan ditambahkan ke aturan iptables Anda.
Selanjutnya, -i menentukan interface untuk aturan tersebut. Dalam hal ini, ini adalah eth0. Saat Anda menulis aturan Anda sendiri, pastikan Anda mengetahui interface mana yang terhubung ke jaringan Anda.
Bendera berikut, -p, menamai protokol. Aturan ini untuk tcp, yang merupakan lalu lintas Web.
Bendera -m sedikit berbeda. Digunakan untuk menegaskan bahwa ada suatu kondisi yang harus dipenuhi agar traffic tidak ditolak. Kondisi dalam aturan ini adalah negara.
Negara sebenarnya adalah bendera berikutnya. Anda perlu memberikan --state daftar status yang dapat diterima yang ditulis dalam huruf besar semua dan dipisahkan dengan koma. Aturan ini menerima koneksi baru dan yang sudah ada.
Bendera kedua terakhir di sini adalah --sport. Itu singkatan dari "port sumber," dan memberi tahu iptables dari mana lalu lintas berasal. Ada juga flag --dport yang merupakan singkatan dari “destination port.” Ini digunakan untuk aturan OUTPUT untuk menangani lalu lintas port mana yang datang.
Akhirnya, ada flag -j. Ini memberi tahu iptable tindakan mana yang harus "dilompati". Dalam hal ini harus MENERIMA lalu lintas yang memenuhi kondisi sebelumnya.
Installasi
sudo apt-get update
sudo apt-get install iptables
- Periksa status konfigurasi iptables saat ini dengan menjalankan:
sudo iptables -L -v
Di sini, opsi -L digunakan untuk membuat daftar semua aturan, dan -v adalah untuk menampilkan info dalam format yang lebih detail. Di bawah ini 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 akan menginstal firewall Linux. Pada saat ini, dapat melihat bahwa semua rantai diatur ke ACCEPT dan tidak memiliki aturan. Ini tidak aman karena paket apa pun dapat masuk tanpa penyaringan.
Mematikan Iptables
sudo iptables -F
Contoh
- Memblokir sebuah website, disini memakai contoh Facebook
sudo iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP
sudo iptables -A OUTPUT -p tcp -d facebook.com -j DROP