Cara Menggunakan Firewall Linux (iptables)
Disini akan dijelaskan cara menggunakan Firewall Linux, yaitu iptables. Entah itu Anda seorang geek Linux pemula atau administrator, ada beberapa hal yang bisa Anda lakukan dengan iptables. Bacalah artikel ini untuk mengetahuinya lebih lanjut.
sudo apt-get install iptables
Input – Chain yang digunakan untuk koneksi masuk. Contohnya, jika seseorang mencoba untuk melakukan SSH ke komputer Anda, iptables akan mencoba mencocokan alamat IP dan memberikan port pada input chain.
Forward – Chain yang digunakan untuk koneksi masuk yang tidak dihantarkan secara lokal.
Ada cara yang bisa Anda lakukan untuk memeriksa apakah sistem Anda menggunakan/membutuhkan forward chain.
Output – Chain yang digunakan untuk koneksi keluar.
Untuk mengetahui apakah pengaturan yang sedang digunakan, jalankan perintah iptables -L
Pada gambar diatas, chain digunakan untuk menerima sambungan.
Jika Anda ingin menerima sambungan secara default, Anda dapat menggunakan perintah dibawah ini:
iptables –policy INPUT ACCEPT
iptables –policy OUTPUT ACCEPT
iptables –policy FORWARD ACCEPT
dengan menggunakan pengaturan accept, Anda dapat menggunakan Firewall Linux ini untuk menolak alamat IP atau port tertentu, disamping menerima sambungan lainnya.
Jika Anda ingin menolak semua sambungan dan ingin menentukan sambungan apa saja yang ingin Anda lakukan secara manual, Anda harus merubah pengaturan default dari chain menjadi drop. Cara ini hanya dapat berguna untuk server yang memiliki informasi sensitif, dan hanya digunakan alamat IP yang sama untuk terhubung kepada server tersebut.
iptables –policy INPUT DROP
iptables –policy OUTPUT DROP
iptables –policy FORWARD DROP
Accept – Menerima sambungan.
Drop – Mengacuhkan sambungan.
Reject – Menolak sambungan, dan mengirimkan pesan eror.
Menggunakan Firewall Linux Keempat: Menerima Atau Memblokir Sambungan Tertentu
Setelah chain dikonfigurasi sepenuhnya, sekarang Anda dapat mengkonfigurasi iptables untuk menerima atau memblokir alamat IP, rentang alamat IP, dan port tertentu. Dibawah ini, akan digunakan pengaturan DROP, tetapi Anda bisa mengubahnyam nejadi ACCEPT atau REJECT, tergantung dari kebutuhan Anda, dan bagaimanakah Anda mengkonfigurasi chain.
Catatan: Pada beberapa contoh dibawah, akan digunakan perintah iptables –A untuk menambahkan rule kepada chain yang ada. Iptables akan memulai dari daftar teratas dan menyortir setiap rule sampai iptables mendapatkan rule yang cocok. Jika Anda ingin memasukkan satu rule diatas rule lainnya, gunakan perintah -I [chain] [angka] untuk menentukan angka yang harus ada dalam daftar.
Sambungan Dari Satu Alamat IP Tertentu
Perintah menggunakan Firewall Linux dibawah ini digunakan untuk memblokir semua sambungan dari alamat IP 10.10.10.10.
iptables -A INPUT -s 10.10.10.10 -j DROP
Sambungan Dari Rentang Alamat IP
Perintah menggunakan Firewall Linux dibawah ini, digunakan untuk memblokir semua alamat IP dalam rentang IP 10.10.10.0/24, dan Anda dapat menggunakan netmask atau notasi slash standar untuk menentukan rentang alamat IP.
iptables -A INPUT -s 10.10.10.0/24 -j DROP
atau
iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP
Sambungan ke Port Tertentu
Contoh dibawah ini digunakan untuk memblokir sambungan SSH dari 10.10.10.10.
iptables -A INPUT -p tcp –dport ssh -s 10.10.10.10 -j DROP
Anda bisa mengubah “ssh” dengan protokol atau port lainnya. Bagian “-p tcp” pada kode memberitahukan kepada iptables jenis protokol apakah yang digunakan oleh sambungan tersebut. Jika Anda memblokir protokol UDP, dan bukan TCP, gunakan “-p udp”.
Contoh dibawah ni digunakan untuk memblokir sambungan SSH dari alamt IP manapun:
iptables -A INPUT -p tcp –dport ssh -j DROP
Fungsi Connection States
Seperti yang telah disinggung sebelumnya, ada banyak protokol yang membutuhkan komunikasi dua arah. Contohnya, jika Anda ingin membolehkan sambungan SSH ke sistem, chain input dan output membutuhkan rule untuk menambahkan sambungan tersebut. tetapi, bagaimanakah jika Anda ingin membolehkan SSH yang hanya berasal dari sistem Anda saja? Apakah menambahkan rule output chain juga akan membolehkan sambungan SSH keluar?
Maka dari itu, digunakan fungsi connetion states, dimana Anda memiliki kemampuan untuk membolehkan komunikasi dua arah, tetapi hanya membolehkan satu sambungan saja untuk dibuat. Contohnya pada perintah dibawah ini, dimana sambungan SSH yang berasal dari 10.10.10.10 dibolehkan, tetapi sambungan SSH ke 10.10.10.10 tidak dibolehkan. Meskipun begitu, sistem diperbolehkan untuk mengirimkan informasi melalui SSH, sepanjang sesi telah dibangun sebelumnya, yang membuat komunikasi SSH dapat dimungkinkan antara dua host.
iptables -A INPUT -p tcp –dport ssh -s 10.10.10.10 -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -d 10.10.10.10 -m state –state ESTABLISHED -j ACCEPT
Pada Ubuntu:
sudo /sbin/iptables-save
Pada Red Hat / CentOS:
/sbin/service iptables save
Atau
/etc/init.d/iptables save
iptables -L
Menambahkan opsi “-v” akan memberikan Anda informasi packet dan byte, dan menambahkan opsi “-n” akan membuat semua daftar terlihat secara numerik. Dengan kata lain, nama host, protokol, dan jaringan akan didaftarkan sebagai angka.
Untuk menghapus semua rule yang telah dikonfigurasi, Anda apat menggunakan perintah flush, yaitu:
iptables -F
Menggunakan Firewall Linux: Menginstal iptables, Konfigurasi dan Pengaturan Lebih Lanjut
iptables sebenarnya sudah terinstal pada setiap distribusi Linux. Untuk melakukan update/instal, gunakan perintah ini:sudo apt-get install iptables
Menggunakan Firewall Linux Pertama: Penjelasan Jenis Chains
iptables menggunakan tiga chains berbeda: input, forward, dan output.Input – Chain yang digunakan untuk koneksi masuk. Contohnya, jika seseorang mencoba untuk melakukan SSH ke komputer Anda, iptables akan mencoba mencocokan alamat IP dan memberikan port pada input chain.
Forward – Chain yang digunakan untuk koneksi masuk yang tidak dihantarkan secara lokal.
Ada cara yang bisa Anda lakukan untuk memeriksa apakah sistem Anda menggunakan/membutuhkan forward chain.
Output – Chain yang digunakan untuk koneksi keluar.
Menggunakan Firewall Linux Kedua: Pengaturan Default Chain
Sebelum Anda mengkonfigurasi pengaturan tertentu, Anda harus menentukan apakah default behavior dari ketiga chain tersebut. Dengan kata lain, Anda harus menentukan apakah yang harus dilakukan iptables jika sebuah sambungan tidak cocok dengan aturan yang ada.Untuk mengetahui apakah pengaturan yang sedang digunakan, jalankan perintah iptables -L
Pada gambar diatas, chain digunakan untuk menerima sambungan.
Jika Anda ingin menerima sambungan secara default, Anda dapat menggunakan perintah dibawah ini:
iptables –policy INPUT ACCEPT
iptables –policy OUTPUT ACCEPT
iptables –policy FORWARD ACCEPT
dengan menggunakan pengaturan accept, Anda dapat menggunakan Firewall Linux ini untuk menolak alamat IP atau port tertentu, disamping menerima sambungan lainnya.
Jika Anda ingin menolak semua sambungan dan ingin menentukan sambungan apa saja yang ingin Anda lakukan secara manual, Anda harus merubah pengaturan default dari chain menjadi drop. Cara ini hanya dapat berguna untuk server yang memiliki informasi sensitif, dan hanya digunakan alamat IP yang sama untuk terhubung kepada server tersebut.
iptables –policy INPUT DROP
iptables –policy OUTPUT DROP
iptables –policy FORWARD DROP
Menggunakan Firewall Linux Ketiga: Respon Sambungan Tertentu
Setelah Anda menggunakan Firewall Linux dan mengkonfigurasi default chain, Anda bisa mulai menambahkan rule untuk iptables agar program ini tahu apakah yang harus dilakukan saat sambungan dari alamat IP atau port tertentu terjadi. Pada artikel ini, akan digunakan 3 perintah paling dasar yang paling sering digunakan.Accept – Menerima sambungan.
Drop – Mengacuhkan sambungan.
Reject – Menolak sambungan, dan mengirimkan pesan eror.
Menggunakan Firewall Linux Keempat: Menerima Atau Memblokir Sambungan Tertentu
Setelah chain dikonfigurasi sepenuhnya, sekarang Anda dapat mengkonfigurasi iptables untuk menerima atau memblokir alamat IP, rentang alamat IP, dan port tertentu. Dibawah ini, akan digunakan pengaturan DROP, tetapi Anda bisa mengubahnyam nejadi ACCEPT atau REJECT, tergantung dari kebutuhan Anda, dan bagaimanakah Anda mengkonfigurasi chain.
Catatan: Pada beberapa contoh dibawah, akan digunakan perintah iptables –A untuk menambahkan rule kepada chain yang ada. Iptables akan memulai dari daftar teratas dan menyortir setiap rule sampai iptables mendapatkan rule yang cocok. Jika Anda ingin memasukkan satu rule diatas rule lainnya, gunakan perintah -I [chain] [angka] untuk menentukan angka yang harus ada dalam daftar.
Sambungan Dari Satu Alamat IP Tertentu
Perintah menggunakan Firewall Linux dibawah ini digunakan untuk memblokir semua sambungan dari alamat IP 10.10.10.10.
iptables -A INPUT -s 10.10.10.10 -j DROP
Sambungan Dari Rentang Alamat IP
Perintah menggunakan Firewall Linux dibawah ini, digunakan untuk memblokir semua alamat IP dalam rentang IP 10.10.10.0/24, dan Anda dapat menggunakan netmask atau notasi slash standar untuk menentukan rentang alamat IP.
iptables -A INPUT -s 10.10.10.0/24 -j DROP
atau
iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP
Sambungan ke Port Tertentu
Contoh dibawah ini digunakan untuk memblokir sambungan SSH dari 10.10.10.10.
iptables -A INPUT -p tcp –dport ssh -s 10.10.10.10 -j DROP
Anda bisa mengubah “ssh” dengan protokol atau port lainnya. Bagian “-p tcp” pada kode memberitahukan kepada iptables jenis protokol apakah yang digunakan oleh sambungan tersebut. Jika Anda memblokir protokol UDP, dan bukan TCP, gunakan “-p udp”.
Contoh dibawah ni digunakan untuk memblokir sambungan SSH dari alamt IP manapun:
iptables -A INPUT -p tcp –dport ssh -j DROP
Fungsi Connection States
Seperti yang telah disinggung sebelumnya, ada banyak protokol yang membutuhkan komunikasi dua arah. Contohnya, jika Anda ingin membolehkan sambungan SSH ke sistem, chain input dan output membutuhkan rule untuk menambahkan sambungan tersebut. tetapi, bagaimanakah jika Anda ingin membolehkan SSH yang hanya berasal dari sistem Anda saja? Apakah menambahkan rule output chain juga akan membolehkan sambungan SSH keluar?
Maka dari itu, digunakan fungsi connetion states, dimana Anda memiliki kemampuan untuk membolehkan komunikasi dua arah, tetapi hanya membolehkan satu sambungan saja untuk dibuat. Contohnya pada perintah dibawah ini, dimana sambungan SSH yang berasal dari 10.10.10.10 dibolehkan, tetapi sambungan SSH ke 10.10.10.10 tidak dibolehkan. Meskipun begitu, sistem diperbolehkan untuk mengirimkan informasi melalui SSH, sepanjang sesi telah dibangun sebelumnya, yang membuat komunikasi SSH dapat dimungkinkan antara dua host.
iptables -A INPUT -p tcp –dport ssh -s 10.10.10.10 -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp –sport 22 -d 10.10.10.10 -m state –state ESTABLISHED -j ACCEPT
Menggunakan Firewall Linux Kelima: Menyimpan Perubahan
Perubahan rule dalam menggunakan Firewall Linux akan dihapuskan jika services iptables mengalami restart, kecuali jika Anda menjalankan perintah untuk menyimpan semua perubahan. Perintah tersebut bisa berbeda, tergantung dari distribusi yang Anda gunakan:Pada Ubuntu:
sudo /sbin/iptables-save
Pada Red Hat / CentOS:
/sbin/service iptables save
Atau
/etc/init.d/iptables save
Menggunakan Firewall Linux Keenam: Perintah Lainnya
Menampilkan daftar dari rule iptables yang telah dikonfigurasi:iptables -L
Menambahkan opsi “-v” akan memberikan Anda informasi packet dan byte, dan menambahkan opsi “-n” akan membuat semua daftar terlihat secara numerik. Dengan kata lain, nama host, protokol, dan jaringan akan didaftarkan sebagai angka.
Untuk menghapus semua rule yang telah dikonfigurasi, Anda apat menggunakan perintah flush, yaitu:
iptables -F
Posting Komentar untuk "Cara Menggunakan Firewall Linux (iptables)"