Ubuntu 22 de IP Adresini Yurtdışından Erişime Kapatmak

Ubuntu 22 üzerinde belirli bir IP adresine yalnızca Türkiye’den erişim sağlamak ve yurtdışı erişimini engellemek için aşağıdaki adımları izleyebilirsin:

1. GeoIP Veritabanını Kur

Öncelikle GeoIP tabanlı IP filtrelemesi yapabilmek için gerekli xtables-addons paketini yükle:

sudo apt update
sudo apt install xtables-addons-common

2. GeoIP Verilerini İndir

Ülkelere göre IP aralıklarını kullanabilmek için GeoIP veritabanını indir ve sistemde oluştur:

sudo mkdir -p /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip

3. UFW Yerine Iptables Kullan

UFW (Uncomplicated Firewall), GeoIP desteği sunmadığı için doğrudan iptables kullanmak gerekir. Öncelikle UFW’yi devre dışı bırak:

sudo ufw disable

4. Iptables Üzerinden GeoIP Kuralı Ekle

Sadece Türkiye’den gelen trafiğe izin vermek için şu kuralı ekle:

sudo iptables -I INPUT -m geoip --src-cc TR -j ACCEPT

Tüm diğer ülke IP’lerini engellemek için ise:

sudo iptables -I INPUT -m geoip --src-cc ! TR -j DROP

5. Kuralları Kalıcı Hale Getir

Yapılandırdığın kuralların sistem yeniden başlatıldığında da geçerli kalması için iptables-persistent aracını kullan:

sudo apt install iptables-persistent
sudo netfilter-persistent save

6. Kuralları Test Et

Engellemenin doğru çalıştığından emin olmak için Türkiye dışındaki bir VPN üzerinden erişimi test et. Erişim engellenmişse yapılandırma başarılı demektir.

GeoIP Verilerini Otomatik Güncelleme

GeoIP verileri zamanla güncellendiği için, haftalık olarak otomatik yenilenmesini sağlayabilirsin.

1. Güncelleme Betiğini Oluştur

Bir bash betiği hazırlayarak veritabanının otomatik güncellenmesini sağla:

sudo nano /usr/local/bin/update_geoip.sh

Aşağıdaki komutları dosyaya ekle:

#!/bin/bash
/usr/lib/xtables-addons/xt_geoip_dl
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip

2. Betiğe Çalıştırma İzni Ver

sudo chmod +x /usr/local/bin/update_geoip.sh

3. Cron Görevi Oluştur

Her pazartesi sabah 03:00’te veritabanının otomatik güncellenmesi için bir cron işi ekle:

sudo crontab -e

Dosyanın sonuna şu satırı ekle:

0 3 * * 1 /usr/local/bin/update_geoip.sh

4. Cron Servisini Yeniden Başlat

sudo service cron restart

5. Kurulumu Test Et

Betiği manuel olarak çalıştırarak test et:

sudo /usr/local/bin/update_geoip.sh

Bu yapılandırma, yalnızca Türkiye IP’lerinden erişime izin verirken yurtdışı bağlantılarını tamamen engeller. Aynı zamanda, sistemin güncel IP veritabanını düzenli olarak korumasını sağlar — güvenlik ve erişim kontrolünü uzun vadede daha istikrarlı hale getirir.