25 Aturan Penggunaan IPtables Firewall pada Linux yang harus kalian ketahui - BLC TELKOM

September 02, 2016 2

25 Aturan Penggunaan IPTables Firewall

      Mengelola lalu lintas jaringan merupakan salah satu pekerjaan terberat yang harus berurusan dengan sistem Adminstrator. Si Admin itu sendiri harus mengkonfigurasi Firewall dengan sedemikian rupa untuk menjaga koneksi keluar masuk jaringan dengan mestinya dan sistem yang di buat tidak rentan terhadapat serangan yang berada di dunia maya.

A. PENGERTIAN
     Disinilah iptables berguna, Iptables adalah firewall Linux dalam baris perintah yang memungkinkan administrator sistem untuk mengatur lalu lintas keluar masuk melalui seperangkat aturan dalam tabel yang dikonfigurasi.

Per penggunaan iptables, saat ini ada 3 jenis tabel :
1. Filter adalah table default, yang berisi dibangun dalam rantai untuk :
       - INPUT        : paket yang ditujukan untuk soket lokal
       - FORWARD : paket yang disalurkan melalui sistem
       - OUTPUT    : paket lokal yang dihasilkan
2. NAT adalah tabel yang berkondultasi ketika sebuah paket mencoba membuat koneksi baru. Berikut ini perintah pendukungnya :
       - PREROUTING   : digunakan untuk mengubah koneksi yang masuk
koneksi ini akan di proses di dalam router, bisa proses pembelokan ke proxy external, bisa filtering port, bisa apa aja deh, pokoknya ada proses, nah prerouting itu menandai koneksi sebelum terjadi proses tersebut.
       - OUTPUT             : digunakan untuk mengubah peket data yang dihasilkan.
       - POSTROUTING : digunakan untuk perubahan paket yang keluar.
3. MANGLE adalah tabel yang digunakan untuk paket pengubah namun beberapa sumber yang saya baca mangle itu seperti memberi tanda pada suatu paket yang diproses selanjutnya jadi seperti penanda saja mangle itu.
Sampai kernel 2.4 ini tabel ini memiliki 2 rantai namun sekarang bertambah menjadi 5 rantai tabel :
      - PREROUTING
      - OUTPUT
      - INPUT
      - POSTROUTING
      - FORWARD

        Pada postingan saya hari ini, sobat akan melihat beberapa perintah yang berguna yang akan membantu anda mengelola firewall sobat menggunakan iptabless.

B. LATAR BELAKANG
        Kenapa sih menggunakan IP Tables ? karena sintak IP tables yang sederhana namun hasil dari perintahnya jangan diragukan meskipun hanya 1 baris namun efeknya itu sangatlah fatal.

C. MAKSUD DAN TUJUAN
          Tujuannya penggunaan IPTables itu yang dengan mudah dikonfigurasi juga hasilnya yang memuaskan, untuk tujuannya ini saya (Admin) akan memulai dengan perintah sederhana agar mudah dipahami dan pergi yang lebih kompleks sampai akhir.

D. JANGKA DAN WAKTU KEGIATAN
        Untuk memahami apa itu IPTables dan bentuk konfigurasinya cukup lumayan 1/2 hari untuk mencobanya juga.

E. ALAT DAN BAHAN
           1. Laptop
           2. Koneksi internet untuk memahami perintah-perintahnya

F. TAHAPAN PELAKSANAAN KEGIATAN
1. Start / Stop / Restart Firewall Iptables
Pertama, kita harus tau bagaimana mengelola layanan IPTables di distribusi Linux yang berbeda. Hal ini cukuplah mudah :

Pada Distribusi Linux Berbasis systemd
------------ On Cent/RHEL 7 and Fedora 22+ ------------
#systemctl start iptables
#systemctl stop iptables
#systemctl restart iptables
Pada Distribusi Linux Berbasis SysVinit
------------ On Cent/RHEL 6/5 and Fedora ------------
#/etc/init.d/iptables start
#/etc/init.d/iptables stop
#/etc/init.d/iptables restart

2. Periksa semua Aturan Firewall Iptables
Jika anda sudah mengkonfigurasi IPTables dan ingin memeriksa aturan yang ada, gunakan perintah perintah berikut untuk melihat :
#iptables -L -n -v

Ini merupakan contoh hasil dari ouput pada konfigurasi IPTables
---- Tampilan dari Tabel INPUT ----
             ||   Chain INPUT (policy ACCEPT 1129K packets, 415M bytes)
             ||   pkts bytes target prot opt in out source destination
             ||   0 0 ACCEPT tcp  -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp  dpt:53
             ||   0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
             ||   0 0 ACCEPT tcp  -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp  dpt:67
             ||   0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
---- Tampilan dari Tabel FORWARD ----
             ||  Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
             ||  pkts bytes target prot opt in out source destination
             ||  0 0 ACCEPT all -- * lxcbr0 0.0.0.0/0 0.0.0.0/0
             ||  0 0 ACCEPT all -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0
---- Tampilan dari Tabel OUTPUT ----
             ||  Chain OUTPUT (policy ACCEPT 354K packets, 185M bytes)
             ||  pkts bytes target prot opt in out source destination

Jika anda memilih untuk memeriksa konfigurasi anda untuk tabel tertentu, Anda dapat menggunakan perintah -t opsi diikuti oleh tabel yang anda ingin periksa. Misalnya, untuk memeriksa aturan dalam NAT tabel, anda dapat menggunakan perintah :
#iptables -t nat -L -v -n

3. Blokir khusus IP Address pada Firewall Iptables
Jika anda menemukan ada alamat IP yang mencurigakan atau alamat IP asing di dalam IPTables ini anda bisa untuk memblokir alamat IP tersebut demi keamanan sistem yang anda bangun dengan memasukkan perintah seperti berikut :
#iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

        Dimana anda hanya perlu merubah "xxx.xxx.xxx.xxx" dengan alamat IP yang ingin anda blokir. Berhati-hatilah ketika menjalankan perintah ini karena nantinya malahan anda sendiri yang terblokir IPnya. Opsi atau sintak -A merupakan setiap paket akan diterima oleh firewall dan akan diteruskan ke tujuan.

4. Membuka Blokir IP Address di Firewall Iptables
Jika anda telah memutuskan bahwa anda tidak lagi ingin memblokir Alamat IP yang telah anda blokir tadi, anda dapat menghapus pengaturan pemblokiran dengan perintah seperti berikut :
#iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP

          Dimana opsi -D merupakan sintak untuk menghapus rantai aturan yang dipilih. D itu merupakan sintak dari perintah Delete anda harus menggunakan huruf D besar di karenakan jika anda menggunakan perintah d kecil artinya sintaknya sudah berbeda.

5. Memblokir Port khusus pada Firewall Iptables
Terlintas di pikiran kalian ingin memblokir port masuk agar sistem yang anda bangun menjadi lebih aman, karena jika terdapat banyak port yang terbuka nanti sistem anda akan menjadi bahan sasaran dari Hacker untuk masuk pada sistem yang anda bangun. Di karenakan untuk memblokir situs ini sangatlah penting.
Untuk memblokir koneksi keluar pada penggunaan port tertentu :
#iptables -A OUTPUT -p tcp --dport xxx -j DROP
Untuk mengijinkan koneksi keluar pada penggunaan port tertentu :
#iptables -A OUTPUT -p tcp --dport xxx -j ACCEPT

          Dimana kedua contoh diatas anda perlu merubah "xxx" dengan port yang ingin anda Blokir atau Ijinkan. Jika anda ingin merubah lali lintas UTP anda tinggal merubahnya dengan UDP dalam aturan iptables diatas.

6. Mengizinkan Beberapa Port pada Iptables menggunakan Multiport
Biasanya kan anda mana mungkin sih menggunakan 1 port untuk digunakan beramai-ramai ? Nah pada konfigurasi Iptables ini anda bisa mengizinkan beberapa por sekaligus dengan menggunakan multiport. Dibawah ini merupakan aturannya :
#iptables -A INPUT    -p tcp -m multiport --dports 22,80,443 -j ACCEPT
#iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT

7. Mengizinkan beberapa range network untuk mengakses Port tertentu di Iptables
Tidak mungkin lah jika kita harus konfigurasi 1 per 1 untuk memasukkan Alamat IP yang di perbolehkan mengakses suatu port tertentu, pastinya capek bukan ? Nah disini kita bisa memberikan range untuk nantinya jaringan yang ada pada range tersebut bisa mengakses atau tidak pada port yang di tentukan.
Katakanlah anda ingin mengizinkan port 22 yaitu ssh untuk jaringan 192.168.1.0/24. Anda hanya perlu melakukan perintah seperti berikut :
#iptables -A OUTPUT -p tcp -d 192.168.1.0/24 --dport 22 -j ACCEPT

         Dimana anda bisa mengganti ACCEPT menjadi DROP jika anda ingin memblokir network tersebut untuk mengakses ssh pada port 22.

8. Memblokir situs pada Firewall Iptables
Pada kegiatan disini saya akan memblokir situs Sosial Media terkenal di Dunia yaitu Facebook. Buat anda yang sebagai Admin ingin client-nya tidak facebook'an mulu anda juga bisa menerapkan sistem ini pada Iptables yang kalian pasang.
Catatan : Nanti anda akan di omelin karena hidup mereka hampa tanpa adanya facebook wkwkwk :v

Pertama temukan alamat IP yang digunakan oleh Facebook :
#host facebook.com
#whois "ip dari facebook.com" | grep CIDR

Kemudian anda dapat memblokir jaringan facebook dengan memasukkan perintah seperti berikut :
#iptables -A OUTPUT -p tcp -d 69.171.224.0/29 -j DROP

         Perlu diingat bahwa alamat IP yang digunakan facebook dapat bervariasi di negara-negara di Dunia ini.

9. Pengaturan Port Forwarding di Iptables
Kadang-kadang anda memungkin ingin meneruskan lalu lintas satu layanan untuk port lainnya. Anda dapat mengkonfigurasi dengan memasukkan perintah :
#iptables -t nat -A PREROUTING -i eth0 -p tcp dport 25 j REDIRECT -to-port 2525

      Perintah diatas meneruskan semua lalu lintas data yang masuk pada jaringan interface eth0, dari port 25 menuju port 2525. Anda dapat mengubah portnya sesuai apa yang anda inginkan atau butuhkan.

10. Memblokir network yang membanjiri port Web Server di Iptables.
Kadang-kadang banyak client yang mengirimkan banyak permintaan koneksi pada port Web Server yaitu 80, client bisa membanjiri port tersebut dan bisa membuat Web yang kita buat menjadi Error akibat permintaan Client yang berlebihan atau biasa disebut flood. Untuk mencegah itu anda bisa menggunakan perintah berikut :
#iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT

        Perintah diatas membatasi koneksi masuk dari per-menit ke 100 dan menetapkan batas sampai 200. Anda bisa mengedit pembatasan dan pembatasan penuh/full *bingung jelasinnya

11. Memblokir permintaan PING di Iptables
Untuk administrator yang menginginkan sistemnya benar-benar aman sampai-sampai client yang mengecek koneksi dengan perintah ping saja bisa terblokir. Sementara ancaman terhadap ping itu tidak begitu besar, tapi ada baiknya untuk mengetahui bagaimana memblokir permintaan tersebut :
#iptables -A INPUT -p icmp -i eth0 -j DROP

12. Mengijinkan loopback mengakses loopback di Iptables
Loopback akses (akses dari 127.0.0.1) merupakan penting dan anda harus selalu mengaktifkan loopbacknya dengan memasukkan perintah seperti berikut :
#iptables -A INPUT     -i lo -j ACCEPT
#iptables -A OUTPUT -o lo -j ACCEPT

13. Menyimpan Log dari Penurunan Jaringan di Iptables
Jika kalian ingin log paket turun pada interface eth0, anda dapat menggunakan perintah berikut :
#iptables -A INPUT -i eth0 -j LOG --log-prefix "IPtables dropped packets:"

          Anda dapat mengubah nilai setelah "--log-prefix" dengan sesuatu pilihan anda. Pesan login /var/log/messages dan anda dapat mencarinya dengan memasukkan perintah :
 #grep "iptables menjatuhkan paket:" /var/log/messages

14. Memblokir Akses MAC Adress tertentu pada Iptables
Jika tadi kita memblokir IP Addresnya kan IP Address dapat berubah ubah dalam jaringan agar kita terjauh dari ancaman HACKER langsung saja kita masukkan mac addresnya agar terjauh dari gangguan bahaya yang mengintai :D. Untuk langkahnya memblokir MACnya anda bisa melakukan langkah berikut :
#iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP

          Tentu saja disini kita perlu mengubah mac yang "00:00:00:00:00:00" dengan MAC yang anda ingin blokir dalam Iptables. Maka nanti pemilik MAC tersebut akan terblokir dari sistem kalian :D.

15. Membatasi Jumlah Sambungan yang terhubung per IP Address
Jika anda tidak ingin memiliki terlalu banyak koneksi yang bersamaan didirikan dari alamat IP tunggal yang diberikan port yang anda dapat menggunakan perintah dibawah ini :
#iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT

        Perintah diatas memungkinkan tidak lebih dari 3 sambungan per klien. Tentu saja, anda dapat mengubah nomor port untuk mencocokannya layanan yang berbeda. Juga --connlimit-above harus diubah agar sesuai kebutuhan anda.

16. Mencari peraturan yang terdapat di Iptables
       Buat kalian yang mudah lupa tentang peraturan yang telah anda konfigurasi pada Iptables dan anda ingin mencari peraturan itu jika sewaktu-waktu ingin merubahnya peraturannya dari settingan IPtables. Cara mudah untuk mencarinya anda bisa menggunakan cara berikut :
#iptables -L $table -v -n | grep $string

          Dalam contoh diatas, anda perlu mengubah $table dengan tabel yang sebenarnya dimana anda ingin mencarinya dan $string dengan string yang sebenarnya anda cari.
Contohnya :
#iptables -L INPUT -v -n | grep 192.168.0.100

17. Menetapkan atau Membuat chain baru di Iptables
Pada Iptables sendiri anda bisa membuat chain dengan sendiri seperti INPUT, OUTPUT dan juga FORWARD. Dengan chain yang anda inginkan, untuk pembuatan chain anda bisa memasukkan perintah :
#iptables -N custom-filter
Kemudian cek chain yang telah kalian buat dengan memasukkan perintah :
#iptables -L
Chain custom-filter (0 references)
target prot opt source destination

18. Melihat Alur Peraturan di dalam Iptables
Untuk anda yang ingin melihat apa saja aturan yang telah anda konfigurasi anda bisa memasukkan perintah berikut untuk mengeceknya :
#iptables -F
Dan jika anda ingin melihat dari tabel tertentu anda bisa memasukkan perintah :
#iptables -t nat -F

          Anda dapat mengubah "nat" dengan tabel yang ingin anda lihat.

19. Penyimpan Pengaturan Iptables pada File
Buat kalian administrator, anda harus sering memback-up data karena daata anda bisa hilang kapan saja jika terjadi gangguan. Jika anda ingin menyimpan aturan firewall anda, anda dapat menggunakan perintah iptables-save. Anda dapat menggunakan perintah berikut untuk menyimpan aturan dalam bentuk file :
#iptables-save > -/iptables.rules
        
        Disini anda bebeas ingin menyimpan konfigurasinya letak dimana dan ingin diberi nama apa karena pemberian nama itu penting untuk membermudah nantinya untuk dicari.

20. Mengembalikan Pengaturan Iptables di File
Jika tadi anda kita menyimpan konfigurasi di File Iptables yang nggak mungkin lah kalau cuma bisa menyimpan namun tidak bisa mengembalikan file tersebut :D. Jika kalian ingin mengembalikan/restore file anda yang telah di simpan tadi masukkan perintah iptables-restore. Untuk lebih jelasnya bisa masukkan perintah berikut :
#iptables-restore < -/iptables.rules

       Sesuaikan dengan nama file iptables yang anda simpan tadi dan tempat penyimpanannya tadi dimana, pastinya berbeda dengan sintak di atas.

21. Pengaturan Iptables untuh keperluan PCI
Beberapa administrator sistem mungkin diperlukan untuk mengkonfigurasi server mereka untuk menjadi compliant PCI. Ada banyak persyaratan oleh vendor kepatuhan PCI yang berbeda, tetapi ada beberapa yang umum.
Dalam banyak kasus yang terjadi, anda akan perlu memiliku lebih dari satu alamat IP. Anda akan perlu menerapkan aturan di bawah untuk alamat IP situs atau alamat IP Cadanganlah untuk lebih mudahnya. Perlu ketelitian dan anda harus hati-hati dalam penggunaan aturan ini, anda harus yakin untuk mengguanakan peraturan ini dengan cara menggunakan seperti berikut :
#iptables -I INPUT -d SITE -p tcp -m multiport --dports 21,25,110,143,465,587,993,995 -j DROP

Jika Anda menggunakan cPanel atau panel kontrol yang sama, Anda mungkin perlu untuk memblokir port itu juga. Berikut adalah contoh sintak penggunaannya :
#iptables -I in_sg -d DEDI_IP -p tcp -m multiport --dports  2082,2083,2095,2096,2525,2086,2087 -j DROP

Catatan : Untuk memastikan Anda memenuhi persyaratan PCI vendor Anda, memeriksa laporan mereka dengan hati-hati dan menerapkan aturan yang diperlukan. Dalam beberapa kasus, Anda mungkin perlu untuk memblokir lalu lintas UDP pada port tertentu juga.


22. Mengijinkan Pembuatan dan Hubungan Koneksi
Sebagai lalu lintas jaringan yang terpisah pada masuk dan keluar, Anda akan ingin memungkinkan didirikan dan terkait lalu lintas masuk. Untuk koneksi masuk melakukannya dengan :
#iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Untuk koneksi yang keluar :
#iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

23. Membuang atau Menghentikan Paket yang valid di Iptables
Ini mungkin untuk memiliki beberapa paket jaringan ditandai sebagai tidak valid. Beberapa orang mungkin lebih memilih untuk log paket tersebut, tetapi yang lain lebih memilih untuk menghentikan paket tersebut. Untuk menghentikan valid paket, Anda dapat menggunakan perintah :
#iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

24. Memblokir Koneksi pada Interface Network di Iptables
Beberapa sistem mungkin memiliki lebih dari satu antarmuka atau interface dalam jaringan. Anda dapat membatasi akses ke interface jaringan atau koneksi blok dari alamat IP tertentu.
Sebagai contoh:
#iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP

         Disini anda tinggal merubah "xxx.xxx.xxx.xxx" sesuai alamat IP yang ingin anda blokir koneksi. Dan pada interface eth0 bisa anda rubah sesuai interface mana yang ingin anda setting agar IP tersebut tidak bisa mengakses.

25. Menonaktifkan Email keluar melalui Iptables
Pada settingan Iptables ini anda juga bisa menonaktifkan bagian port mana yang dimatikan jadi tidak sembarangan bisa keluar dari sistem anda. Jika sistem Anda tidak harus mengirim email apapun, Anda dapat memblokir port keluar pada port SMTP. Sebagai contoh Anda dapat menggunakan ini :
#iptables -A OUTPUT -p tcp --dport 25,456,587 -j REJECT

G. KESIMPULAN
       IPTABLES merupakan Firewall yang cukup kuat bahwa anda dapat dengan mudah mendapatkan keuntungan dari IPTABLES. Sangat penting untuk setiap sistem administrator untuk menguasai IPTABLES setidaknya mengerti atau paham mengenai dasar-dasar IPTABLES. Jika ingin mengetahui lebih rinci lagi tentang IPTABLES anda bisa ketikkan perintah berikut pada terminal :
#man iptables
25 Aturan Penggunaan IPtables Firewall pada Linux yang harus kalian ketahui - BLC TELKOM

H. REFERENSI
http://www.tecmint.com/linux-iptables-firewall-rules-examples-commands/
https://translate.google.com

SEMOGA BERMANFAAT

2 Comments for "25 Aturan Penggunaan IPtables Firewall pada Linux yang harus kalian ketahui - BLC TELKOM"

avatar

Makasih bang informasinya :D
Keren, rapi juga :D

avatar

Sama-sama mbak :-bd
Kunjungi yang lainnya juga di Blog ini :-bd