Hetzner Cloud Firewall, Hetzner Cloud üzerindeki sunuculara gelen ve sunuculardan çıkan ağ trafiğini, Hetzner'in kendi altyapısında süzen ücretsiz bir ağ güvenlik duvarıdır. Hetzner'in tanımıyla firewall, sunucuya istediğiniz gelen ve giden trafiği sınırlamak için kullanılır: hangi IP adreslerinin, hangi protokol ve portla sunucunuza ulaşabileceğini kurallarla belirlersiniz. Kurallar sunucunun işletim sistemine değil, Hetzner'in ağ katmanına uygulanır; yani paket sunucunuza varmadan önce elenir.
Bu yazıda Hetzner Cloud Firewall'ın nasıl çalıştığını, kural yapısını (yön, protokol, port, kaynak IP), sunuculara ve label selector'lara nasıl bağlandığını, belgelenen limitleri ve API ile örnek kullanımı anlatıyoruz. Güvenlik duvarının genel mantığı için önce güvenlik duvarı (firewall) nedir yazısına, saldırı türleri ve katmanlı koruma için DDoS koruma rehberi yazısına bakabilirsiniz.
Hetzner Cloud Firewall ne işe yarar?

Bir VPS kurduğunuzda sunucunun genel (public) IP adresi internete açıktır. SSH, veritabanı ya da yönetim paneli gibi servisler dışarıya açık kalırsa tarama ve kaba kuvvet denemelerine hedef olur. Hetzner Cloud Firewall ile sunucuya yalnızca izin verdiğiniz trafiğin ulaşmasını sağlarsınız. Örneğin web sunucusunda 80 ve 443 portlarını herkese, SSH portunu yalnızca ofis IP aralığınıza açabilirsiniz.
- Ağ seviyesinde süzme: Kurallar Hetzner altyapısında uygulanır, sunucudaki işletim sistemi yapılandırmasından bağımsızdır.
- Merkezi yönetim: Bir firewall birden çok sunucuya uygulanabilir; kuralı bir kez değiştirirsiniz, bağlı tüm sunucular etkilenir.
- Label ile otomatik uygulama: Belirli bir label'a sahip her sunucuya firewall kendiliğinden uygulanır.
- Ücretsiz: Hetzner belgesinde "We do not charge for our Cloud Firewalls" ifadesiyle Cloud Firewall için ücret alınmadığı belirtilir (3 Kasım 2026 itibarıyla resmi sayfada).
Nasıl çalışır: stateful ve izin listesi mantığı
Hetzner'in SSS sayfasına göre Cloud Firewall stateful çalışır: sunucunun dışarıya başlattığı bir bağlantının dönüş trafiğine otomatik olarak izin verilir, bunun için ayrıca gelen kural yazmanız gerekmez. Belge, FTP, SIP ve PPTP gibi bazı eski protokollerde ek portların açılması gerekebileceğini de not eder.
Kurallar bir izin listesidir. Hetzner yalnızca neye izin verileceğini tanımlamanıza izin verir; "şu trafiği düşür" diye ayrı bir kural yazılamaz, kurallara uymayan her şey düşürülür. Bu nedenle kuralların sırası da önemli değildir. Varsayılan davranış şöyledir:
| Yön | Hiç kural yoksa | Kural eklenirse |
|---|---|---|
| Gelen (in) | Tüm gelen trafik engellenir (DROP) | Yalnızca kurallara uyan trafik geçer |
| Giden (out) | Tüm giden trafiğe izin verilir (ACCEPT) | Giden trafik de varsayılan olarak engellenir, yalnızca kurala uyan geçer |
Bir sunucuya birden fazla firewall uygulanabilir; bu durumda tüm firewall'ların kuralları birleştirilerek uygulanır. Kural değişiklikleri yalnızca yeni bağlantı denemelerine etki eder, mevcut bağlantılar kapanana kadar açık kalır.
Kural yapısı: yön, protokol, port ve IP

Hetzner Cloud API referansında her kural şu alanlardan oluşur:
| Alan | Açıklama |
|---|---|
| direction | in (gelen) veya out (giden). Zorunlu. |
| protocol | tcp, udp, icmp, esp veya gre. Zorunlu. |
| port | Yalnızca tcp ve udp için. Tek port (80) ya da tire ile aralık (1024-5000). |
| source_ips | Gelen kurallarda izin verilen IPv4/IPv6 adresleri, CIDR gösterimiyle, en fazla 100 blok. |
| destination_ips | Giden kurallarda izin verilen hedef adresler, CIDR gösterimiyle, en fazla 100 blok. |
| description | İsteğe bağlı açıklama, en fazla 255 karakter. |
Tüm IPv4 adresleri için 0.0.0.0/0, tüm IPv6 adresleri için ::/0 kullanılır. Tek bir host için IPv4'te /32, IPv6'da /128 yazılır. SSS sayfasına göre desteklenen protokoller TCP, UDP, ICMP, ESP ve GRE'dir; IPIP gibi diğer protokoller firewall bağlıyken düşürülür ve GRE yalnızca IPv4 üzerinde çalışır.
Firewall'ı sunuculara ve label selector'a uygulama
Bir firewall iki şekilde uygulanır: doğrudan bir sunucuya (type: server) ya da bir label selector'a (type: label_selector). Label selector kullandığınızda, Hetzner belgesindeki ifadeyle "bir sunucu firewall'ın label selector yapılandırmasına uyuyorsa firewall bu sunucuya otomatik olarak uygulanır". Örneğin env=prod label'ı taşıyan her yeni sunucu, oluşturulur oluşturulmaz aynı kurallarla korunur. API referansına göre doğrudan eklenen kaynaklar, label selector ile eklenenlere göre önceliklidir ve label eşleşmesindeki değişikliklerin işlenmesi birkaç saniye sürebilir.
Firewall yalnızca genel ağ arayüzü olan Hetzner Cloud sunucularına uygulanabilir. Yalnızca özel ağa bağlı bir sunucuya uygulamaya çalışırsanız API private_net_only_server hatası döner. SSS sayfasına göre Cloud Firewall şu an Hetzner Cloud Load Balancer'lara ve özel Cloud Network trafiğine uygulanamaz. Ayrıca Hetzner, label tabanlı uygulamada genel IP'si olmayan veya limiti aşan sunucuların atlanabileceğini belirtir; sonucu kontrol etmenizi önerir.
Belgelenen limitler

| Limit | Değer |
|---|---|
| Sunucu başına firewall | En fazla 5 (label selector ile uygulananlar dahil) |
| Tüm projelerde toplam firewall | En fazla 50 |
| Firewall başına kural girdisi (API) | En fazla 50 |
| Firewall başına etkin (effective) kural | En fazla 500 |
| Sunucu başına eşzamanlı aktif bağlantı | En fazla 80000 |
| Sunucu başına yeni bağlantı | Saniyede en fazla 10000 |
| Kural başına CIDR bloğu | En fazla 100 |
Etkin kural, her yön için benzersiz IP önekleri üzerinden hesaplanır. Aynı önek için tanımlanan port ve protokoller tek bir etkin kural sayılır; örneğin aynı kaynak önek için 80 ve 81 portları bir etkin kuraldır.
API ile örnek: firewall oluşturma
Aşağıdaki örnek, Hetzner Cloud API referansındaki POST /firewalls gövdesine göre hazırlanmıştır. SSH yalnızca örnek bir ofis aralığına (198.51.100.0/24, belgeleme amaçlı adres) açılır, HTTP, HTTPS ve ping herkese açıktır; firewall env=prod label'ına sahip tüm sunuculara uygulanır. Token, Hetzner Cloud Console'da proje içindeki Security, API Tokens bölümünden oluşturulur.
curl -X POST -H "Authorization: Bearer $HCLOUD_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "web-firewall",
"labels": {"env": "prod"},
"rules": [
{"description": "SSH yalnızca ofisten", "direction": "in", "protocol": "tcp",
"port": "22", "source_ips": ["198.51.100.0/24"]},
{"description": "HTTP", "direction": "in", "protocol": "tcp",
"port": "80", "source_ips": ["0.0.0.0/0", "::/0"]},
{"description": "HTTPS", "direction": "in", "protocol": "tcp",
"port": "443", "source_ips": ["0.0.0.0/0", "::/0"]},
{"description": "Ping", "direction": "in", "protocol": "icmp",
"source_ips": ["0.0.0.0/0", "::/0"]}
],
"apply_to": [
{"type": "label_selector", "label_selector": {"selector": "env=prod"}}
]
}' \
"https://api.hetzner.cloud/v1/firewalls"Var olan bir firewall'ı tek bir sunucuya bağlamak için apply_to_resources eylemi kullanılır. Bu eylem mevcut kaynak listesini genişletir; firewall, ilgili apply_firewall eylemi başarıyla bittiğinde uygulanmış olur.
curl -X POST -H "Authorization: Bearer $HCLOUD_TOKEN" \
-H "Content-Type: application/json" \
-d '{"apply_to": [{"type": "server", "server": {"id": 42}}]}' \
"https://api.hetzner.cloud/v1/firewalls/{id}/actions/apply_to_resources"hcloud CLI ile
Hetzner Cloud API referansı, aynı işlemler için resmi hcloud komut satırı aracının örneklerini de verir. Aşağıdaki komutlar referanstaki örneklerin aynısıdır:
hcloud firewall create \
--name "Corporate Intranet Protection" \
--label "env=dev" \
--rules-file <(echo '[
{
"description": "Allow port 80",
"direction": "in",
"port": "80",
"protocol": "tcp",
"source_ips": [
"192.0.2.2/32",
"192.0.2.0/24",
"2001:0db8:9a3b:ee58:5ca:990c:8bc9:c03b/128"
]
}
]')
hcloud firewall apply-to-resource $FIREWALL \
--type server \
--server $SERVERKendinizi kilitlememek için
Cloud Firewall ile sunucu içindeki güvenlik duvarı birbirinin alternatifi değil, tamamlayıcısıdır. Hetzner katmanında kaba bir izin listesi tutup, sunucu içinde Ubuntu UFW güvenlik duvarı rehberi ya da nftables ve CrowdSec ile daha ayrıntılı kurallar ve otomatik engelleme kurabilirsiniz. Cloud Firewall yalnızca IP ve port bazında çalışır; uygulama katmanındaki saldırıları (SQL injection, bot trafiği) görmez. Bunlar için ModSecurity veya Coraza gibi bir WAF ya da Cloudflare planlarındaki WAF özellikleri gerekir.
Sık Sorulan Sorular
Hetzner Cloud Firewall ücretli mi?
Hayır. Hetzner belgesine göre Cloud Firewall için ücret alınmaz (3 Kasım 2026 itibarıyla resmi sayfada). Ücretlendirme politikası değişebileceği için güncel belgeye bakmanızı öneririz.
Hetzner Cloud Firewall stateful mu?
Evet. SSS sayfasına göre sunucunun başlattığı bağlantıların dönüş trafiğine otomatik izin verilir. Robot üzerindeki dedicated sunucu firewall'ı ise stateless çalışır; ikisi farklı ürünlerdir.
Belirli bir IP'yi engelleyen kural yazabilir miyim?
Hayır. Cloud Firewall yalnızca izin kuralları kabul eder; kurallara uymayan her şey düşürülür. Tek tek IP engellemek için sunucu içinde nftables, UFW veya Fail2ban ile SSH brute force koruması gibi araçlar kullanılır.
Firewall DDoS saldırılarına karşı korur mu?
Cloud Firewall, izin vermediğiniz port ve adreslere gelen trafiği sunucunuza ulaşmadan düşürür; ancak izin verdiğiniz bir porta (örneğin 443) gelen yoğun saldırı trafiğini ayırt etmez. Saldırı türleri ve katmanlı yaklaşım için DDoS koruma rehberi yazısına bakın.
Load Balancer veya özel ağ trafiğine uygulanır mı?
SSS sayfasına göre şu an hayır. Firewall, genel ağ arayüzü olan Cloud sunucularına uygulanır.
Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.
İlgili içerikler: güvenlik duvarı (firewall) nedir · DDoS koruma rehberi · nftables ve CrowdSec ile sunucu koruma · Ubuntu UFW güvenlik duvarı rehberi · VPS güvenlik sertleştirme · Cloudflare planları