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]] | ||