Cara Blokir Akses Berdasarkan geoIP di Rocky Linux

Terakhir diupdate: 7 Mei 2025

Hai, Sobat Jagoan! Salah satu tindakan pencegahan mengamankan akses server dari internet adalah membatasi aksesnya berdasarkan letak geografis. Praktik ini umumnya digunakan untuk mencegah akses dari negara yang tidak relevan dengan layanan atau pengguna server, karena sering kali lalu lintas asing yang tidak dikenal bisa menjadi sumber serangan seperti brute force, spam, atau port scanning. Dengan membatasi akses hanya dari negara tertentu, kamu bisa mengurangi risiko keamanan dan memperkuat kontrol terhadap siapa saja yang bisa menjangkau server kamu.

Prasyarat

  1. Memiliki hosting VPS Rocky Linux aktif
  2. Pastikan firewalld sudah terinstal dan aktif. Lihat cara installnya pada Cara Setting Firewall di Rocky Linux
  3. Memiliki akses member area

Step 1: Buat Koneksi SSH VPS

Pertama, buat koneksi SSH ke VPS kamu melalui terminal. Jika menggunakan sistem operasi Windows, kamu bisa menggunakan PuTTY.

Detail informasi awal layanan kamu bisa diakses pada Informasi Awal Layanan VM

Step 2: Menginstal dan Konfigurasi xtables-addons

Install dependensi yang dibutuhkan. Tapi perbarui dulu package sistem dulu.

				
					sudo dnf update -y
sudo dnf install epel-release -y
sudo yum install gcc gcc-c++ kernel-modules kernel-core kernel-headers kernel-devel perl-Net-CIDR-Lite perl-Text-CSV_XS elfutils-libelf-devel iptables-services pkg-config -y
				
			

Step 3: Download dan ekstrak xtables-addons

xtables-addons adalah kumpulan modul tambahan untuk iptables. Di dalamnya tedapat xt_geoip untuk filtering berdasarkan lokasi geografis

				
					# Masuk ke direktori /tmp untuk mengunduh file
cd /tmp/

# Mengunduh xtables-addons
wget -c https://inai.de/files/xtables-addons/xtables-addons-3.27.tar.xz

# Mengekstrak file yang diunduh
tar -xvf xtables-addons-3.27.tar.xz

# Masuk ke direktori xtables-addons-3.27
cd xtables-addons-3.27

				
			

Step 4: Edit file xt_geoip (opsional tapi disarankan)

Pada artikel ini hanya ingin mengompilasi modul xt_geoip dan mengabaikan yang lainnya, kamu bisa melakukan modifikasi pada file Kbuild. Ini bersifat opsional.

				
					vi extensions/Kbuild
				
			

Tekan huruf ‘i’ untuk masuk mode edit. Kemudian edit menjadi seperti ini:

2-file xt_geoip-blokir-akses-geoIP-rocky-linux-iptables

Simpan dan keluar dengan tekan Esc lalu ketikkan :wq dan Enter.

Step 5: Compile dan Install xtables-addons

Sebelum melanjutkan compilasi, pastikan bahwa xtables terinstal dan bisa ditemukan oleh pkg-config.

				
					pkg-config --modversion xtables
				
			

Kalau belum terinstal, instal dulu peket yang diperlukan untuk kompilasi xtables-addons.  Kamu kembali ke terminal root dulu dengan command:

				
					#kembali ke root
cd

#install dependensi
sudo dnf install iptables-devel -y
				
			

Lalu, kamu jalankan lagi perintah cek xtables sebelumnya nanti akan ditampilkan versi xtables.

Contoh output:

[root@tutorial ~]# pkg-config –modversion xtables

1.8.5

Kalau xtables sudah terinstal, jalankan command untuk mengcompile. Pastikan sudah masuk ke direktori xtables-addons pada step ke 3 sebelumnya.

				
					#Jalankan konfigurasi
./configure

#Kompilasi modul
make

#Install modul
make install
				
			

Kalau muncul error seperti ini saat menjankan perintah compile:

make[2]: *** /lib/modules/4.18.0-553.16.1.el8_10.x86_64/build: No such file or directory. Stop.

Itu artinya versi kernel-devel yang terinstal tidak cocok dengan kernel yang sedang digunakan. Kamu periksa versi kernel yang digunakan dengan command:

				
					#mengecek kernel yang digunakan
uname -r
				
			

Contoh output:

kernel-devel-4.18.0-553.16.1.el8_10.x86_64

Lalu, periksa versi kernel devel (kernel yang terinstal) dengan command:

				
					rpm -q kernel-devel
				
			

Contoh output:

kernel-devel-4.18.0-553.51.1.el8_10.x86_64

Kalau tidak sama, install kernel yang sesuai dengan versi kernel yang digunakan. Jadi, jalankan command dibawah ini agar sama dengan kernel yang digunakan.

				
					sudo dnf install kernel-devel-4.18.0-553.16.1.el8_10.x86_64
				
			

Ingat ya, versinya harus sama persis dengan hasil uname -r

Lalu hapus kernel versi lama. Misalnya:

				
					sudo rpm -e kernel-devel-4.18.0-553.51.1.el8_10.x86_64
				
			

Setelah itu, kembali ke direktori xtables-addons pada step ke 3 sebelumnya dan jalankan command:

				
					make clean
				
			

Sampai di sini, kamu bisa mulai compile ulang xtables_addons.

Step 6: Aktifkan Modul xt_geoip

				
					sudo modprobe xt_geoip
				
			

Step 7: Buat Direktori xt_geoip

				
					sudo mkdir -p /usr/share/xt_geoip
cd /usr/share/xt_geoip

				
			

Step 8: Download Database GeoIP

  • Dari MaxMind (perlu akun dan license key). Sebelumnya, MaxMind adalah penyedia database GeoIP resmi. Kamu perlu membuat akun terlebih dahulu di https://www.maxmind.com lalu generate license key.
				
					wget -q -O GeoLite2-Country-CSV.zip "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=MASUKKAN_LICENSE_KEY&suffix=zip"
unzip GeoLite2-Country-CSV.zip
cp GeoLite2-Country-CSV*/GeoLite2-Country-Blocks-IPv4.csv .

				
			

Ganti MASUKKAN_LICENSE_KEY dengan milikmu dari maxmind.com

  • Dari DB-IP (alternatif gratis). Jika kamu tidak ingin menggunakan MaxMind atau kesulitan membuat akun, kamu bisa pakai DB-IP, meskipun datanya tidak seakurat MaxMind.
				
					wget -O dbip-country-lite.csv.gz "https://download.db-ip.com/free/dbip-country-lite-$(date +'%Y-%m').csv.gz"
gunzip dbip-country-lite.csv.gz

				
			

Kemudian, compile database GeoIP.

				
					/tmp/xtables-addons-3.27/geoip/xt_geoip_build -D /usr/share/xt_geoip/ GeoLite2-Country-Blocks-IPv4.csv
				
			

Gunakan file dbip-country-lite.csv jika kamu ingin memakai DB-IP.

Step 9: Buat Rule iptables Berdasarkan Negara

				
					# Izinkan localhost
iptables -A INPUT -s 127.0.0.0/8 -j ACCEPT

# Izinkan IP server kamu, misalnya
iptables -A INPUT -s 203.0.0.0 -j ACCEPT

# Blokir selain dari Indonesia
iptables -A INPUT -m geoip ! --src-cc ID -p tcp -m multiport --dport 80,110,143,443,465,587,993,995,7071 -j DROP

# Contoh: Izinkan juga Singapura
iptables -A INPUT -m geoip ! --src-cc ID,SG -p tcp -m multiport --dport 80,110,143,443,465,587,993,995,7071 -j DROP

				
			

Step 10: Simpan Rule dan Aktifkan Otomatis Ketika Booting

				
					sudo service iptables save
sudo systemctl enable iptables
sudo systemctl restart iptables
				
			

Output:

1-simpan rule-blokir-akses-geoIP-rocky-linux-iptables

Step 11: Cek Apakah xt_geoip Aktif

				
					lsmod | grep xt_geoip
				
			

Outputnya:
[root@tutorial xt_geoip]# lsmod | grep xt_geoip
xt_geoip 16384 2

Step 12: Cek dan Uji Akses

Sekarang kamu bisa testing akses Zimbra dari country code yang diizinkan dan tidak diizinkan. Kamu juga bisa gunakan tools berikut untuk mengecek portnya: https://mxtoolbox.com/TCPLookup.aspx

atau yang ini https://www.yougetsignal.com/tools/open-ports/

Itulah cara memblokir akses berdasarkan GeoIP di Rocky Linux. Dengan langkah-langkah di atas, kamu bisa memperkuat keamanan server dan meminimalkan potensi ancaman dari negara-negara yang tidak perlu mengakses servermu. Pastikan untuk selalu mengecek IP yang perlu diizinkan agar layanan tetap berjalan lancar. Selamat mencoba dan semoga server kamu makin aman!

Kalau ada yang masih bikin bingung, jangan ragu hubungi Tim Support Jagoan Hosting ya, Sob!

Related Posts
Cara Install PostgreSQL di Rocky Linux

Hai, Sob! PostgreSQL adalah database open-source yang powerful dan banyak digunakan untuk aplikasi berbasis web. Biasanya PostgreSQL di-install di Rocky Read more

Cara Install SFTP Server di Rocky Linux

Hai, Sob! SFTP (SSH File Transfer Protocol) adalah cara aman buat transfer file antara komputer lokal dan server. Berbeda dari Read more

Cara Install PHP dan PHP-FPM di Rocky Linux

Hai, Sob! Kalau kamu ingin menjalankan aplikasi berbasis PHP di Rocky Linux, kamu butuh dua komponen utama: PHP itu sendiri Read more

Cara Install Nginx di Rocky Linux

Hai, Sob! Nginx adalah web server alternatif yang ringan dan cepat dari Apache yang sering digunakan untuk melayani banyak permintaan Read more

Scroll To Top