Iptables: Difference between revisions

No edit summary
 
Line 3: Line 3:


Ketika sebuah paket cocok dengan aturan, paket tersebut diberi target, yang dapat berupa rantai lain atau salah satu dari nilai khusus berikut:
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.
*'''ACCEPT''' - Akan mengizinkan paket untuk melewatinya.
*'''DROP''' - Tidak akan membiarkan paket lewat.
*'''DROP''' - Tidak akan membiarkan paket lewat.
Line 10: Line 11:
*'''FORWARD''' - Menyaring paket-paket yang masuk yang akan diteruskan ke tempat lain.
*'''FORWARD''' - Menyaring paket-paket yang masuk yang akan diteruskan ke tempat lain.
*'''OUTPUT''' - Memfilter paket yang keluar dari server Anda.
*'''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]]).
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==
==Option Dasar iptables==
Berikut adalah beberapa option dasar yang sering digunakan dalam mengkonfigurasi iptables.
Berikut adalah beberapa option dasar yang sering digunakan dalam mengkonfigurasi iptables.
*<code>-A</code> Tambahkan rule / aturan ini ke rantai aturan yang ada. Rantai yang valid adalah <code>INPUT</code>, <code>FORWARD</code> and <code>OUTPUT</code>. Kita biasanya lebih banyak menggunakan rantai <code>INPUT</code> yang berdampak pada traffic yang masuk.
*<code>-A</code> Tambahkan rule / aturan ini ke rantai aturan yang ada. Rantai yang valid adalah <code>INPUT</code>, <code>FORWARD</code> and <code>OUTPUT</code>. Kita biasanya lebih banyak menggunakan rantai <code>INPUT</code> yang berdampak pada traffic yang masuk.
*<code>-L</code> memperlihatkan daftar aturan / rule yang ada iptables.
*<code>-L</code> memperlihatkan daftar aturan / rule yang ada iptables.
Line 36: Line 40:
*'''-I''' Insert / masukan aturan. Butuh dua (2) option, yaitu, rantai aturan yang mana, dan nomor aturan. Jadi <code>-I INPUT 5</code> akan memasukan ke rantai INPUT dan menjadikannya aturan nomor 5 di daftar.
*'''-I''' Insert / masukan aturan. Butuh dua (2) option, yaitu, rantai aturan yang mana, dan nomor aturan. Jadi <code>-I INPUT 5</code> akan 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 <code>-v</code>.
*'''-v''' Menampilkan lebih banyak informasi di layar. Sangat membantu jika ada beberapa aturan yang tampak mirip jika di tampilkan tanpa <code>-v</code>.
==Cara==
==Cara==
Itu mungkin terlihat seperti banyak, tetapi sangat sederhana ketika Anda memecahnya. Pertama, aturan ini dimulai dengan <code>-A</code> karena akan ditambahkan ke aturan iptables Anda.
Itu mungkin terlihat seperti banyak, tetapi sangat sederhana ketika Anda memecahnya. Pertama, aturan ini dimulai dengan <code>-A</code> karena akan ditambahkan ke aturan iptables Anda.
Line 50: Line 55:


Akhirnya, ada flag <code>-j</code>. Ini memberi tahu iptable tindakan mana yang harus "dilompati". Dalam hal ini harus MENERIMA lalu lintas yang memenuhi kondisi sebelumnya.
Akhirnya, ada flag <code>-j</code>. Ini memberi tahu iptable tindakan mana yang harus "dilompati". Dalam hal ini harus MENERIMA lalu lintas yang memenuhi kondisi sebelumnya.
==Installasi==
==Installasi==
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
sudo apt-get update
sudo apt-get update
</syntaxhighlight><syntaxhighlight lang="shell">
</syntaxhighlight>
 
<syntaxhighlight lang="shell">
sudo apt-get install iptables
sudo apt-get install iptables
</syntaxhighlight>
</syntaxhighlight>
*Periksa status konfigurasi iptables saat ini dengan menjalankan:
*Periksa status konfigurasi iptables saat ini dengan menjalankan:
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
sudo iptables -L -v
sudo iptables -L -v
</syntaxhighlight>Di sini, opsi <code>-L</code> digunakan untuk membuat daftar semua aturan, dan <code>-v</code> adalah untuk menampilkan info dalam format yang lebih detail. Di bawah ini adalah contoh outputnya:<syntaxhighlight lang="shell">
</syntaxhighlight>
 
Di sini, opsi <code>-L</code> digunakan untuk membuat daftar semua aturan, dan <code>-v</code> adalah untuk menampilkan info dalam format yang lebih detail. Di bawah ini adalah contoh outputnya:
 
<syntaxhighlight lang="shell">
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target    prot opt in out  source destination
pkts bytes target    prot opt in out  source destination
Line 68: Line 82:
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target    prot opt in out  source destination
pkts bytes target    prot opt in out  source destination
</syntaxhighlight>Sekarang akan menginstal [[Firewall|firewall]] [[Linux]]. Pada saat ini, dapat melihat bahwa semua rantai diatur ke <code>ACCEPT</code> dan tidak memiliki aturan. Ini tidak aman karena paket apa pun dapat masuk tanpa penyaringan.
</syntaxhighlight>
 
Sekarang akan menginstal [[Firewall|firewall]] [[Linux]]. Pada saat ini, dapat melihat bahwa semua rantai diatur ke <code>ACCEPT</code> dan tidak memiliki aturan. Ini tidak aman karena paket apa pun dapat masuk tanpa penyaringan.
 
==Mematikan Iptables==
==Mematikan Iptables==
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
sudo iptables -F
sudo iptables -F
Line 76: Line 94:
==Contoh==
==Contoh==
*Memblokir sebuah website, disini memakai contoh Facebook
*Memblokir sebuah website, disini memakai contoh Facebook
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
sudo iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP
sudo iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP
</syntaxhighlight><syntaxhighlight lang="shell">
</syntaxhighlight>
 
<syntaxhighlight lang="shell">
sudo iptables -A OUTPUT -p tcp -d facebook.com -j DROP
sudo iptables -A OUTPUT -p tcp -d facebook.com -j DROP
</syntaxhighlight>
</syntaxhighlight>
Line 87: Line 108:
*[https://www.maketecheasier.com/secure-linux-desktop-with-iptables/ maketecheasier.com]
*[https://www.maketecheasier.com/secure-linux-desktop-with-iptables/ maketecheasier.com]
*[https://musaamin.web.id/cara-setting-firewall-dengan-iptables-di-linux/ musaamin.web.id]
*[https://musaamin.web.id/cara-setting-firewall-dengan-iptables-di-linux/ musaamin.web.id]
[[Category:Security]][[Category:Linux]]
 
[[Category:Security]]
[[Category:Linux]]
[[Category:Software]]
[[Category:Software]]
[[Category:Firewall]]
[[Category:Firewall]]