Belirli ülkelerden gelen trafiği engelleyebilir miyim?
Kısa cevap
Evet. En yaygın yol, Source IP koşulunda Source IP Type = Country seçip koşulu HTTP vService'te Block, L7 TCP vService'te TCP Connection Management aksiyonuna bağlamaktır; "yalnızca Türkiye" gibi bir izin kuralı için koşulun olumsuz (NOT) hâli kullanılır. Bir koşul tek ülke seçer; birden fazla ülke için koşullar or ile birleştirilir ya da tek bir Dynamic List koşulu kullanılır. Bot/DDoS koruması açık vService'lerde L7 DDoS Protection → Country Control, vService'ten bağımsız olarak ağ katmanında Firewall kuralının Country kaynağı aynı işi görür.
Sorun: Belirli Ülkelerden Gelen Trafik İstenmiyor
Lisans ya da mevzuat kısıtları, saldırıların belirli ülkelerden yoğunlaşması ya da hizmetin yalnızca belirli bir ülkeye sunulması nedeniyle bazı ülkelerden gelen trafiğin engellenmesi ya da yalnızca belirli ülkelere izin verilmesi gerekir. TR7 istemcinin ülkesini kaynak IP adresinden, cihazdaki coğrafi IP veritabanıyla belirler (IP Intelligence & Reputation). Kullanıcıyı engellemek yerine başka sunuculara göndermek için yönlendirme kullanılır: İstemcinin ülkesine / şehrine göre farklı backend'e yönlendirebilir miyim?
Çözüm: Dört Yöntem
Yöntemler birbirinin alternatifidir; aynı trafiğe birden fazlasının birlikte uygulanması gerekmez.
| Durumunuz | Uygun yöntem |
|---|---|
| HTTP ya da L7 TCP vService'te engelleme ya da yalnızca bir ülkeye izin | Yöntem 1: Source IP (Country) koşulu + aksiyon |
| vService'te Bot/DDoS koruması açık; ülke kuralını limitlerle aynı yerde tutmak istiyorum | Yöntem 2: L7 DDoS Protection → Country Control |
| Ağ katmanında, vService kurallarından bağımsız engelleme | Yöntem 3: Firewall (Country) |
| Komut satırından | Yöntem 4: WEB-CLI |
Yöntem 1: Source IP (Country) Koşulu + Aksiyon Önerilen
- Nasıl çalışır Koşula uyan istekler Kurum Servisine gitmeden aksiyonla karşılanır: HTTP'de Block (varsayılan 403) ya da bilgi sayfası için Show Content, L7 TCP'de TCP Connection Management. Koşulun olumsuz hâli seçilirse listedeki ülke dışındaki herkes engellenir.
- Nerede açılırLoad Balancer → Conditions · Load Balancer → Actions · vService → Details → Actions
- Gereksinim Kurum Servisi tarafında değişiklik yoktur
- vService tipi HTTP · L7 TCP (Network vService'te Actions alanı yoktur)
Adım adım yapılandırma
Load Balancer → Conditions ekranında Add tıklanır (nasıl eklenir).
Condition Name girilir; Criteria = Source IP, Source IP Type = Country seçilir ve Country listesinden ülke seçilir. Form Turkey seçili açılır; listenin başında yerel ağlar için Local Networks girişi vardır. Alan tek ülke alır; engellenecek her ülke için ayrı koşul oluşturulur.
Çok sayıda ülke
Tek koşulda çok sayıda ülke için Criteria = Dynamic List seçilir: Key to search alanında fx ile Client country değişkeni seçilir, Search Method = Exact match yapılır ve List alanına her satıra iki harfli bir ülke kodu (ör. RU) yazılır. Condition protocol vService tipine göre (HTTP ya da TCP) seçilir. Kalan adımlar aynıdır.
Add tıklanır; koşul listeye eklenir. Birden fazla ülke için 1–3. adımlar her ülke için tekrarlanır (Add & Repeat formu açık tutar).
Load Balancer → Actions ekranında Add tıklanır (nasıl eklenir).
Action Name girilir ve vService tipine göre Action Type seçilir:
| vService | Action type | Ayar |
|---|---|---|
| HTTP | Block | Execution Level = On Request, Deny Type = Standard, Status Code varsayılan 403 |
| HTTP, engellenenlere sayfa gösterilecekse | Show Content | Content Page (varsayılan Access Denied Page) ve Status Code; Status code varsayılanı 200 olduğundan 403 ya da 451 seçilir. Kendi sayfası için: Content Pages profili nedir; kendi HTML sayfamı nasıl hazırlarım? |
| L7 TCP | TCP Connection Management | Action = Reject ya da Silent Drop (TCP seviyesinde bağlantıyı reddetmek veya sessizce düşürmek mümkün mü (TCP Connection Management)?) |
Conditions alanında 3. adımdaki koşullar seçilir ve aynı grupta or ile birleştirilir. "Yalnızca bu ülke" için koşulun olumsuz hâli (listede !KoşulAdı olarak görünür) seçilir (Bir koşulu olumsuz ("şu değilse") olarak kullanabilir miyim?). İsteğe bağlı olarak Hit Counter açılır.
Add tıklanır; aksiyon listeye eklenir.
Load Balancer → Load Balancer vService List ekranında vService seçilip Edit tıklanır.
Details altındaki Actions alanında aksiyon seçilir. Aksiyonlar listedeki sırayla işlenir; isteği engelleyen aksiyondan sonrakiler çalışmaz (aksiyon sıralaması).
Save tıklanır; kural ayrı bir dağıtım adımı olmadan uygulanır. Aksiyon vService'e eklenmedikçe çalışmaz. Cluster kurulumunda varsayılan auto-sync ile değişiklik eş cihaza da otomatik gönderilir; Manual Sync Mode açıksa eş cihaza elle gönderilir.
Doğrulama
Engellenen ülkedeki bir adresten istek gönderilir (L7 TCP'de nc -v ile bağlanılır).
Komut: curl -sI https://www.example.com/
HTTP/1.1 403 ForbiddenHit Counter açıksa vService Dashboard'unda Action Hits sekmesine bakılır; HTTP vService'te HTTP Logs ekranında engellenen istekler 403 durum koduyla görünür.
Aksiyonun sayacı artarYöntem 2: L7 DDoS Protection → Country Control
- Nasıl çalışırL7 DDoS Protection kartının Country Control bloğunda Limit alanı boş bırakılan kural satırı üyelik kuralı olur: seçilen ülkelerden gelen her isteğe aksiyon doğrudan uygulanır. Satırlar yukarıdan aşağıya değerlendirilir, eşleşen ilk satır kararı verir.
- Nerede açılır Left Monitor Panel → Bot/DDoS Protected vServices → vService → Bot/DDoS Management → L7 DDoS Protection → Country Control
- Gereksinim Bot/DDoS lisansı; vService'te L7 DDoS & Threat Protection açık; L7 DDoS Protection Active
- vService tipi HTTP · L7 TCP (L7 TCP'de aksiyon Silent Drop ya da Bandwidth limit olabilir)
Adım adım yapılandırma
Koruma vService'te açık değilse vService'in düzenleme formunda Details altındaki L7 DDoS & Threat Protection kutusu işaretlenip Save tıklanır (iki yol). Koruma açıldığında L7 DDoS Protection Monitor, IP Reputation Protection ise Active modunda başlar (başlangıç modları).
Left Monitor Panel → Bot/DDoS Protected vServices → vService → Bot/DDoS Management sekmesinde L7 DDoS Protection kartının Edit bağlantısı tıklanır.
DDoS Protection = Active seçilip Edit tıklanır. Monitor modunda kurallar yalnızca olay üretir, trafik engellenmez.
L7 DDoS Protection kartındaki Country Control bloğunun sağ üstündeki kalem ikonu tıklanır; Edit - Country Control penceresi açılır (Edit ekranı).
Rules alanında + Add tıklanır; satır Each remaining (individually), Request, limit 2000 ve Block değerleriyle açılır.
Match = In set (listedekileri engelle) ya da Not in set (yalnızca listedekilere izin) seçilir ve Countries alanında ülkeler işaretlenir. Limit alanındaki değer silinir; etiket Limit (empty = direct action on every match) olur. Action = Block (Response status code varsayılan 403) seçilir; L7 TCP'de Silent Drop seçilir. Engellenmemesi gereken ülkeler için Exempt Countries kullanılabilir.
Edit tıklanır; ayrı bir dağıtım adımı olmadan uygulanır.
Doğrulama
Bot/DDoS Event Logs ekranında kayıt seçilir; önizlemenin L7 DDoS sekmesine bakılır.
Country Control kaynaklı engelleme kaydıEngellenen ülkedeki bir adresten istek gönderilir.
Komut: curl -sI https://www.example.com/
HTTP/1.1 403 ForbiddenYöntem 3: Network → Firewall (Country)
- Nasıl çalışır Ağ katmanında, belirli bir porta gelen trafik kaynak ülkeye göre düşürülür. Kullanıcı Firewall kuralları vService dinleme portları için otomatik üretilen izinlerden önce değerlendirilir (kural değerlendirme sırası).
- Nerede açılırNetwork → Firewall → Add
- Gereksinim Firewall düzenleme yetkisi
- vService tipi HTTP · L7 TCP (vService'ten bağımsız, route table başına)
Adım adım yapılandırma
Network → Firewall ekranında Add tıklanır (nasıl eklenir).
Route Table (varsayılan DEFAULT; vService'in route table'ı), Interface, Protocol = TCP ve Destination port = vService portu seçilir. Source = Country seçilir; alan Local Networks ile dolu gelir, yerine istenen ülke seçilir. "Yalnızca bu ülke" için alanın yanındaki anahtar is false yapılır. Rule = DENY seçilir.
Kural kaydedilir ve hemen uygulanır; yeni kural listenin en altına eklenir, gerekiyorsa Order ile yukarı taşınır.
Yönetim erişimi
Kapsamı geniş tutulan bir DENY kuralı (ör. Protocol = All) yönetim trafiğini de düşürebilir; kural Destination port ile dar tutulur ve uygularken ikinci bir yönetim oturumu açık tutulur (iyi uygulamalar).
Doğrulama
Engellenen ülkedeki bir adresten vService portuna bağlanılır.
Komut: nc -vz -w 5 203.0.113.10 443
Bağlantı zaman aşımına uğrarYöntem 4: WEB-CLI
- Nasıl çalışır Yöntem 1'deki koşul, aksiyon ve bağlama WEB-CLI komutlarıyla yapılır.
- Nerede açılır WEB-CLI →
lb condition·lb action·lb service - Gereksinim WEB-CLI erişimi
- vService tipi HTTP (örnek Block aksiyonuyla)
Adım adım yapılandırma
Ülke iki harfli koduyla yazılır (koşul ölçütleri):
lb condition add criteria src_ip srcIpType country country RU --name ulke-ru--cond alanı koşulun adını değil kimliğini alır. Kimlik listeden okunur:
lb condition list<koşul-kimliği> yerine 2. adımdaki kimlik yazılır (aksiyon örnekleri); Status code varsayılan 403'tür:
lb action add type deny name ulke-engeli --cond <koşul-kimliği>Birden fazla ülke koşulu --cond '<kimlik-1> or <kimlik-2>', "yalnızca bu ülke" kuralı --cond '!<kimlik>' biçiminde yazılır.
lb service show <vService>Çıktıdaki rules.0, rules.1 … satırları vService'te tanımlı aksiyonlardır.
--rules.N o sıradaki mevcut aksiyonun yerine geçer; bu yüzden yeni aksiyon ilk boş sıraya yazılır. vService'te hiç aksiyon yoksa sıra 0'dır; iki aksiyon varsa --rules.2 kullanılır:
lb service update id <vService> --rules.0 ulke-engeliDoğrulama
vService kaydı yeniden görüntülenir.
Komut: lb service show <vService>
rules satırlarında ulke-engeliSık Yapılan Hatalar
- TR7 CDN ya da proxy arkasındayken Trusted proxy tanımlamamak. Koşul proxy'nin adresinin ülkesini değerlendirir; HTTP vService'te önce Trusted Proxy ile gerçek istemci IP'si çözülür. Firewall kuralı ise her zaman bağlantının kaynak adresine bakar.
- Country Control'ü Monitor modunda bırakmak. Monitor modunda kurallar yalnızca olay üretir; engelleme için DDoS Protection = Active yapılır.
- "Yalnızca Türkiye" kuralında yerel ağları unutmak. İç ağ ve izleme trafiği de ülke dışı sayılır; Country listesinin başındaki Local Networks girişiyle ikinci bir koşul oluşturulur ve olumsuz hâli aynı gruba and ile eklenir (Country Control'de Local Networks Not in set listesine eklenir).
- Koşulsuz Block eklemek. Conditions alanı boş bırakılan Block aksiyonu bütün trafiği engeller.
- WEB-CLI'da
--condalanına koşul adını yazmak. Alan koşulun kimliğini bekler; kimliklb condition listile alınır. - WEB-CLI'da
--rules.0ile mevcut aksiyonu ezmek. Dolu bir sıraya yazılan aksiyon oradaki aksiyonun yerine geçer; öncelb service showile ilk boş sıra bulunur. - Konumun her zaman doğru olduğunu varsaymak. Mobil ve VPN kullanıcılarında ülke bilgisi yanıltıcı olabilir; coğrafi veritabanı IP DB paketiyle güncel tutulur.
Dokümantasyonda nasıl yapılır
