GRE tünellerini kullanarak ortak konumlu sunucuları DDoS saldırılarından koruma


Bir bilgisayarda yazarak hacker

Büyük ölçüde çevrimiçi satışlara ve işlemlere güvenen herhangi bir şirket için, e-ticaret web sitelerini hedef alan artan sayıda siber saldırı, artan bir endişe kaynağıdır.

E-ticaret web siteleri, dağıtılmış hizmet reddi (DDoS) ve kaba kuvvet saldırıları gibi saldırılara karşı savunmasızdır ve bu, meşru müşterilerden gelen değerli iş trafiğinin kaybına veya kullanıcılarınızın hassas bilgilerinin tehlikeye atılmasına yol açabilir.

Neyse ki, sunucularınız genel yönlendirme kapsülleme (GRE) tüneli kullandığında uzaktan başka bir koruma katmanı elde edebilirsiniz. Böyle bir tünel, sunucularınız veya ağınız ile bir temizleme merkezi arasında özel bir bağlantı kurulmasına yardımcı olur.

Bu, koruma sağlayıcının tüm gelen trafiğinizi kötü amaçlı etkinliklere karşı taramasına ve potansiyel tehditleri sunucularınıza ulaşmadan önce engellemesine olanak tanır.

Gelen trafiğiniz tarandıktan sonra, tüm güvenli trafik GRE tüneli aracılığıyla işlenmek üzere ağınıza veya sunucularınıza iletilir. Sunucunuzun yanıtı, GRE tüneli aracılığıyla temizleme merkezine ve oradan da müşteriye gönderilir.

Küresel bir güvenlik sağlayıcısı olan Gcore ile birlikte, GRE tünellerinin ne olduğunu ve verilerinizi güvende tutmaya nasıl yardımcı olduklarını açıklayacağız. Ardından, bir GRE tüneli aracılığıyla Gcore’un temizleme merkezine güvenli ve sorunsuz bir bağlantı kurmak için veri merkezinizdeki yönlendiricilerinizi ve ana bilgisayarlarınızı nasıl yapılandıracağınız konusunda size yol gösterecektir.

Makale özellikle, bir Cisco yönlendirici veya bir Linux ana bilgisayarında internet üzerinden iletişim kurmak için bir GRE tünel arayüzünün nasıl kurulacağını açıklayacaktır.

GRE Tüneli Nedir ve Nasıl Çalışır?

Genel yönlendirme kapsülleme (GRE) tüneli, bir İnternet Protokolü (IP) ağı üzerinden sanal noktadan noktaya bağlantılar içindeki çeşitli ağ katmanı protokollerini kapsüllemek için GRE protokolünü kullanan bir ağ bağlantısıdır. Uzak sitelerin, sanki her ikisi de doğrudan birbirine veya aynı fiziksel ağ altyapısına bağlıymış gibi tek bir ağa bağlanmasını sağlar.

GRE genellikle özel bir ağı halka açık internet üzerinden genişletmek için kullanılır ve uzaktaki kullanıcıların özel ağdaki kaynaklara güvenli bir şekilde erişmesine olanak tanır.

GRE tünelleri ve VPN’ler aynı gibi gelebilir. Bununla birlikte, GRE tünelleri, yönlendirme protokolü reklamı ve video konferans uygulamaları gibi eylemler için gerekli olan çok noktaya yayın trafiğini aktarabilir veya iletebilirken, bir VPN yalnızca tek noktaya yayın trafiğini aktarabilir.

Ek olarak, GRE tünelleri üzerindeki trafik varsayılan olarak şifrelenmez, ancak VPN’ler IPsec protokol paketi aracılığıyla farklı şifreleme yöntemleri sağlar ve trafikleri uçtan uca şifrelenebilir.

Yine de çoğu site üzerinden iletilen trafik, tüm iletişimler için TLS/SSL gibi şifreleme standartlarını kullanır.

Bir GRE tünelini, iki farklı ağı (ör. şirketinizin özel ağı ve Gcore’un temizleme merkezi ağı) birbirine bağlayan bir “tünel” veya “metro” olarak düşünebilirsiniz. Tıpkı bir metro tünelinin insanların farklı istasyonlar arasında seyahat etmesine izin vermesi gibi, GRE tüneli de verilerin farklı ağlar arasında seyahat etmesine izin verir.

Bu benzetmedeki “tren”, tünelden gönderilen bir veri paketidir. Bu paketler “kapsüllenir” veya bir GRE başlığı ile sarılır; bu, bir metro treninin ön ve arka tarafında bir varış noktasına sahip olmasına benzer şekilde, ağa paketlerin nereden geldiğini ve nereye gittiklerini söyler.

Paketler “hedef istasyona” ulaştığında, GRE başlığı kaldırılır ve orijinal paketler amaçlanan varış noktalarına gönderilir. Bu şekilde veriler, sanki özel bir ağdaymış gibi halka açık internet üzerinden güvenli ve gizli bir şekilde seyahat edebilir.

Ağ Ana Bilgisayarlarınızı GRE Tüneli için Yapılandırma

Artık bir GRE tünelinin ne olduğunu anladığınıza göre, sonraki birkaç bölüm size veri merkezinizdeki bir Cisco yönlendiricide ve bir Linux sunucusunda tünel arayüzlerini nasıl kuracağınızı gösterecektir. Ayrıca, bu tünel arayüzlerinde özel IP adreslerini nasıl yapılandıracağınız ve bağlantıları nasıl test edeceğiniz gösterilecektir.

Cisco Router’da GRE Tüneli Yapılandırma

İlk olarak, aşağıdaki şemada görüldüğü gibi, halka açık internet üzerinden bir GRE tüneli aracılığıyla Gcore’un temizleme merkezine bağlantı kurmak için Cisco yönlendiricinizi kuracaksınız:

Yukarıdaki şemada, her iki yönlendiricinin de ilgili ISP’leri aracılığıyla doğrudan internete bağlanmak ve etkileşimde bulunmak için kullanabilecekleri fiziksel genel IP’leri vardır. Ayrıca her iki uçtaki yönlendiricilerin arkasında özel bir ağ ve tünel arayüzleri için özel IP’ler vardır (istemci yönlendiricisi için 192.168.1.1 ve temizleme merkezi yönlendiricisi için 192.168.1.2).

İnternet üzerinden halka açık bir bağlantı aracılığıyla, sanki her cihazdaki iki tünel arabirimi fiziksel olarak doğrudan aynı ağa bağlıymış gibi, tünel arabirimindeki özel IP’ler kullanılarak özel bir bağlantı kurulur.

Öncelikle, doğrudan bir konsol kablosuyla veya yapılandırdıysanız SSH aracılığıyla yönlendiricinize bağlanın ve aşağıdaki komutla genel yapılandırma moduna girin:

bash
CR1# configure terminal

Artık bir sanal tünel arabirimi oluşturabilirsiniz. Tünel arayüzü istediğiniz herhangi bir sayı olabilir. Aşağıdaki örnek 77’yi kullanır ve ayrıca sizi arayüz yapılandırma moduna yerleştirir:

CR1(config)# interface tunnel 77

Ardından, az önce oluşturduğunuz tünel arayüzünü CR1 yönlendirici için özel IP adresiyle yapılandırın:

CR1(config if)# ip address 192.168.1.1 255.255.255.0

Tünel kaynağını veya tünelin yönlendiricinizden bağlantı kurduğu arabirimi ayarlayın. Aşağıdaki örnekte kaynak, istemci yönlendiricinin genel IP’sidir, 3.3.3.1:

CR1(config if)# tunnel source 3.3.3.1

Ayrıca tünel hedefini de yapılandırmanız gerekir; bu durumda, temizleme merkezinin yönlendiricisinin genel IP adresi, üzerinden o yönlendiricinin özel tünel arayüzüne bağlanırsınız:

CR1(config if)# tunnel destination 4.4.4.1

Bildiğiniz gibi GRE, orijinal paketlere bilgi içeren fazladan başlıklar ekler. Bu, paketin boyutunu standarttan 24 bayt değiştirir [MTU limit](https://en.wikipedia.org/wiki/Maximum\_transmission\_unit) 1.500 bayt, bu da paketlerin düşmesine neden olabilir. Bunu, MTU’yu 24 bayt azaltarak 1.476’ya düşürerek çözebilirsiniz, öyle ki MTU artı ekstra başlıklar 1.500’ün üzerine çıkmayacaktır:

CR1(config if)# ip mtu 1476

Buna göre, değiştirmeniz gerekir [MSS](https://en.wikipedia.org/wiki/Maximum_segment_size) 1.436’daki MTU’dan 40 bayt daha düşük olacak:

CR1(config if)# ip tcp adjust-mss 1436

Şimdi ayrıcalıklı EXEC moduna çıkın ve yönlendiricinizdeki IP yapılandırmasını kontrol edin:

CR1(config if)# end
CR1# show IP interfaces brief

Bunun için yapılandırdığınız IP ile tünel arayüzünü gösteren, aşağıdakine benzer bir çıktınız olmalıdır:

CR1# show IP interface brief
Interface                  IP-Address      	OK? Method   Status                Protocol
GigabitEthernet0/0         3.3.3.1         	YES manual   up                      up      
GigabitEthernet0/1         unassigned      	YES NVRAM    down                    down    
GigabitEthernet0/2         unassigned     	YES NVRAM    administratively down   down    
GigabitEthernet0/3         unassigned      	YES NVRAM    administratively down   down    
Tunnel77                   192.168.1.1     	YES manual   up                      up    

192.168.1.2 özel tünel IP adresini kullanarak uzak yönlendirici SCR1 ile bağlantıyı test edin:

CR1# ping 192.168.1.2

Çıktınız, başarılı bir bağlantıyı onaylayan aşağıdaki resme benzer olmalıdır:

Son olarak, çalışan yapılandırmanızı kaydedin:

CR1# copy running-config startup-config

Yönlendiricinizi bir GRE tüneli aracılığıyla bağlantı kuracak şekilde başarıyla yapılandırdınız.

Bir Linux Sunucusunda GRE Tüneli Yapılandırma

Bu bölümde, tünel arayüzünün nasıl kurulacağı ve GRE tüneli üzerinden uzak sunucuya nasıl bağlantı kurulacağı anlatılmaktadır. Bu özel kurulum, Ubuntu 20 LTS işletim sistemini kullanır.

Aşağıda, bu kurulumun çeşitli yönleri için yapılandırmayı gösteren bir diyagram bulunmaktadır:

Sunucunuzun genel IP adresinden uzak sunucunun IP’sine (bu durumda sırasıyla 13.51.172.192 ve 196.43.196.101) GRE protokolünü kullanarak yeni bir tünel oluşturun:

bash
# ip tunnel add tunnel0 mode gre local 13.51.172.192 remote 196.43.196.101 ttl 255

Bir uygulama güvenlik duvarı veya ağının arkasında bir Amazon EC2 bulut sunucusu veya benzer bir VPC kullanıyorsanız, genel IP trafiği özel IP üzerinden VPC’ye yönlendirildiği için bulut sunucusunun özel IP’sini almanız gerekir.

Aşağıdaki komutun çıktısından da görebileceğiniz gibi, örneğin özel IP’si, VPC’nizin tam nitelikli ana bilgisayar adında tirelenir:

bash
# hostname -f
ip-172-31-38-152.eu-north-1.compute.internal

Artık yerel genel IP 13.51.172.192’yi aşağıda görüldüğü gibi az önce edindiğiniz özel IP 172.31.38.152 ile değiştirerek tüneli oluşturabilirsiniz. Bunu fiziksel bir sunucuda yapıyorsanız bu gerekli değildir.

bash
# ip tunnel add tunnel0 mode gre local 172.31.38.152 remote 196.43.196.101 ttl 255

Ardından, bu örnekte 192.168.0.2/30 olan tünelde kullanılacak özel bir alt ağ eklemeniz gerekir:

bash
# ip addr add 192.168.0.2/30 dev tunnel0

Bu yapıldıktan sonra, artık aşağıdaki komutu kullanarak tünel bağlantısını açabilirsiniz:

bash
# ip link set tunnel0 up

Son olarak, GRE tüneli aracılığıyla başarılı bir bağlantı olduğunu gösteren aşağıdaki çıktıda görüldüğü gibi, uzak sunucunun tünel IP adresine ping atarak uzak sunucunun tünel üzerinden erişilebilir olup olmadığını test edin:

bash
# ping 192.168.0.1 -c4 
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=275 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=275 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=275 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=281 ms

--- 192.168.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 274.661/276.239/280.724/ ms
as

Bu noktada, yönlendirme tablonuza bazı kurallar ekleyerek, tünel üzerinden size ulaşan tüm trafiğin yanıtın tünel üzerinden geri yönlendirilmesini sağlamalısınız. Aşağıdaki komutları kullanın:

bash
// Create the routing table
# echo '100 GRE' >> /etc/iproute2/rt_tables

// Respect the rules for the private subnet via that table
# ip rule add from 192.168.0.0/30 table GRE

// Set the default route to make sure all traffic goes via the tunnel remote server
# ip route add default via 192.168.0.1 table GRE

Bu kadar! Sunucunuzdan bir GRE tüneli aracılığıyla bir temizleme merkezine başarıyla bir bağlantı kurdunuz.

Çözüm

Bu makalede, GRE tünelinin ne olduğunu ve nasıl çalıştığını öğrendiniz. Bir GRE tünelinin, gelen ağ trafiğini Gcore’un temizleme merkezi aracılığıyla yönlendirerek sunucularınızı hizmet reddi saldırıları gibi siber saldırılardan nasıl koruyabileceğine değindik.

Ardından, Cisco yönlendiricinizi veya Linux sunucunuzu kullanarak bir GRE tünel bağlantısını nasıl kuracağınız konusunda size yol gösterdik.

Bu makaleyi, Antarktika hariç tüm kıtalarda çoklu Tb/sn filtreleme kapasitesine sahip güçlü web ve sunucu koruması sağlayıcısı olan Gcore ile işbirliği içinde hazırladık.

Gcore, veri merkezlerindeki sunucuların yanı sıra GRE tünelini kullanarak müşterilerin veri merkezlerindeki sunucuları koruyabilir. Her iki yol da müşterilere 1 ms’den daha kısa gecikmeyle yüksek hacimli saldırılara karşı koruma sağlar.

Sponsorlu ve Gcore tarafından yazılmıştır



Source link