block-ip

Blokir IP dari Negara Tertentu dengan GeoIP dan Iptables

Dalam dunia administrasi server, menjaga keamanan jaringan adalah prioritas utama bagi sobat server. Salah satu cara efektif untuk melindungi server dari ancaman yang mungkin datang dari lokasi geografis tertentu adalah dengan blokir IP dari negara tertentu dengan GeoIP dan Iptables. Hal ini sangat berguna untuk mencegah serangan siber, termasuk Distributed Denial of Service (DDoS) yang sering kali berasal dari negara-negara yang diketahui sebagai sumber lalu lintas berbahaya.

Artikel ini akan membahas langkah-langkah memblokir lalu lintas IP dari negara tertentu dengan menggunakan basis data GeoIP dan iptables, serta memberikan panduan bagi sobat server yang ingin mengimplementasikan fitur ini di server Linux.

Prasyarat

Sebelum sobat server memulai, pastikan bahwa modul GeoIP telah diinstal bersama dengan iptables-addons. Modul ini adalah basis data yang menghubungkan alamat IP dengan lokasi geografis, memungkinkan sobat server untuk menyaring lalu lintas berdasarkan negara.

iptables, utilitas firewall baris perintah yang populer di sistem Linux, bekerja dengan prinsip rantai kebijakan. Saat lalu lintas masuk ke server, iptables memeriksa daftar aturan yang ada, dan jika menemukan kecocokan, ia mengambil tindakan yang sesuai, baik itu menerima, menolak, atau menghapus lalu lintas tersebut. Dengan modul xt_geoip (yang merupakan bagian dari xtables-addons), sobat server dapat mengonfigurasi firewall untuk memblokir atau menerima lalu lintas dari negara tertentu berdasarkan alamat IP.

Langkah Persiapan: Upgrade dan Instalasi Dependensi

Sebelum memulai, penting bagi sobat server untuk memastikan sistem Linux yang digunakan sudah ter-update dan semua dependensi telah terinstal. Berikut ini adalah perintah yang perlu dijalankan tergantung pada distribusi Linux yang sobat server gunakan.

Sistem Berbasis Debian (Debian, Ubuntu)

Untuk pengguna Debian atau Ubuntu, jalankan perintah berikut untuk memperbarui sistem dan menginstal dependensi yang dibutuhkan:

apt-get update && apt-get upgrade
apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config

Setelah itu, konfigurasi dengan menjalankan:

./configure

Sistem Berbasis RedHat (CentOS, RHEL, Fedora)

Untuk pengguna CentOS, RHEL, atau Fedora, sobat server dapat menggunakan perintah berikut:

yum update
yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS

Setelah instalasi selesai, lanjutkan dengan:

make

Instalasi xtables-addons

Langkah berikutnya adalah menginstal xtables-addons, yang merupakan komponen penting untuk memanfaatkan modul xt_geoip. Sobat server dapat mengunduh paket terbaru dari situs resmi proyek xtables-addons menggunakan perintah wget.

  1. Unduh dan Ekstrak Paket:
   wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/xtables-addons-2.13.tar.xz
   tar xf xtables-addons-2.13.tar.xz
   cd xtables-addons-2.13
  1. Kompilasi dan Instal: Setelah file diunduh dan diekstrak, sobat server perlu mengompilasi dan menginstal paket dengan menjalankan perintah berikut:
   ./configure
   make
   make install

Distribusi Berbasis RedHat: Pengaturan SeLinux

Jika sobat server menggunakan distribusi berbasis RedHat seperti CentOS, RHEL, atau Fedora, SeLinux biasanya diaktifkan secara default. Sobat server perlu menyesuaikan kebijakan SeLinux agar modul xt_geoip dapat dimuat dengan benar.

Jalankan perintah berikut untuk mengizinkan SeLinux memuat modul:

chcon -vR --user=system_u /lib/modules/$(uname -r)/extra/*.ko
chcon -vR --type=lib_t /lib64/xtables/*.so

Instalasi Database GeoIP

Modul xt_geoip memerlukan basis data GeoIP yang dapat diunduh dari MaxMind. Sobat server harus mengonversi basis data ini menjadi format biner yang dapat dikenali oleh xt_geoip.

  1. Unduh dan Bangun Basis Data:
   cd geoip
   ./xt_geoip_dl
   ./xt_geoip_build GeoIPCountryWhois.csv
  1. Pindahkan Basis Data ke Direktori yang Tepat: Setelah basis data siap, pindahkan ke direktori /usr/share/xt_geoip/:
   mkdir -p /usr/share/xt_geoip/
   cp -r {BE,LE} /usr/share/xt_geoip/

Menggunakan Iptables untuk Memblokir Lalu Lintas Negara Tertentu

Setelah sobat server menyelesaikan semua pengaturan, kini saatnya menggunakan iptables untuk memblokir lalu lintas yang berasal dari negara tertentu. Sobat server dapat menggunakan kode ISO dua huruf (ISO3166) untuk menunjuk negara. Misalnya, RU untuk Rusia, US untuk Amerika Serikat, dan CN untuk China.

  1. Blokir Lalu Lintas Masuk dari Negara Tertentu: Untuk memblokir lalu lintas yang berasal dari Kanada (CA) dan Amerika Serikat (US), gunakan perintah berikut:
   iptables -I INPUT -m geoip --src-cc CA,US -j DROP
  1. Blokir Semua Lalu Lintas Non-AS: Jika sobat server ingin hanya menerima lalu lintas dari Amerika Serikat dan memblokir semua yang lainnya, jalankan:
   iptables -I INPUT -m geoip ! --src-cc US -j DROP
  1. Blokir Lalu Lintas Keluar ke Negara Tertentu: Untuk memblokir lalu lintas yang ditujukan ke China (CN), gunakan perintah berikut:
   iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

Menggunakan Firewalld untuk Memblokir Lalu Lintas Negara

Jika sobat server menggunakan firewalld sebagai frontend untuk iptables, sobat server dapat menggunakan perintah berikut untuk mencapai hasil yang sama:

  1. Blokir Lalu Lintas dari Kanada dan AS:
   firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip --src-cc CA,US -j DROP
  1. Blokir Semua Lalu Lintas Non-AS:
   firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -m geoip ! --src-cc US -j DROP
  1. Blokir Lalu Lintas Keluar ke China:
   firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -m geoip --dst-cc CN -j DROP

Kesimpulan

Dengan menggunakan basis data GeoIP dan alat firewall seperti iptables atau firewalld, sobat server bisa mengontrol lalu lintas masuk dan keluar berdasarkan lokasi geografis IP. Ini sangat berguna untuk menghindari ancaman dari negara-negara yang sering kali menjadi sumber serangan. Pastikan selalu memperbarui basis data GeoIP agar tetap akurat dalam memblokir atau mengizinkan lalu lintas dari negara tertentu.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top