
Gatekeeper, ilk açık kaynaklı DoS koruma sistemidir. Herhangi bir en yüksek bant genişliğine ölçeklendirilmek üzere tasarlanmıştır, böylece hem bugünün hem de yarının DoS saldırılarına dayanabilir. Gatekeeper’ın coğrafi olarak dağıtılmış mimarisine rağmen, gelen trafik üzerinde uygulanması gereken tüm kararları tanımlayan ağ politikası merkezileştirilmiştir. Bu merkezileştirilmiş politika, ağ operatörlerinin çok yüksek gecikme süresi (örneğin dağıtılmış veri tabanları) altında geçerli olmayacak dağıtılmış algoritmalardan yararlanmasına ve aynı anda birden çok çok vektörlü DoS saldırısıyla mücadele etmesine olanak tanır.
Gatekeeper’ın hedef kullanıcıları, kurumların, hizmet ve içerik sağlayıcıların, kurumsal ağların vb. ağ operatörleridir. Bireysel İnternet kullanıcıları tarafından kullanılması amaçlanmamıştır.
Daha fazla bilgi için Gatekeeper wiki’sine bakın .
Hugepages Yapılandırması Nasıl Kurulur
DPDK, büyük sayfaların kullanılmasını gerektirir; dev sayfaların montajına ilişkin talimatlar gereksinim belgelerinde mevcuttur . Birçok sistemde aşağıdaki büyük sayfalar kurulumu yeterlidir:
$ echo 256 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
Seçenek 1: Paketleri Alın
Gatekeeper için Debian paketleri projenin Yayınlar sayfasında mevcuttur.
Düzenlemek
Paketler indirildikten sonra aşağıdaki komutlarla yüklenebilirler:
$ tar -zxvf gatekeeper-ubuntu-18.04-packages.tar.gz$ cd gatekeeper-ubuntu-18.04-packages$ sudo dpkg -i libgkrte-*.deb \ libgkdpdk-dev_*_amd64.deb \ gatekeeper-dpdk_*_amd64.deb \ gatekeeper-dpdk-dev_*_amd64.deb \ gatekeeper-dpdk-igb-uio-dkms_*_amd64.deb \ gatekeeper-dpdk-rte-kni-dkms_*_amd64.deb \ gatekeeper-bird_*_amd64.deb \ gatekeeper_*_amd64.deb
Paket gatekeeper-dpdk-dev, paket kurulumu ve çekirdek yükseltmeleri sırasında ilgili çekirdek modüllerini oluşturan DKMS paketlerinin bir bağımlılığıdır.
Ağ Bağdaştırıcılarını Yapılandırma
Dosyayı düzenleyin /etc/gatekeeper/envvarsve DPDK’ya bağlanacak ağ bağdaştırıcılarının adlarını girin. Örneğin:
GATEKEEPER_INTERFACES="eth0 eth1"
Alternatif olarak, arabirimlerin PCI adresleri belirtilebilir:
GATEKEEPER_INTERFACES="0000:00:07.0 0000:00:08.0"
Aynı dosyada, isteğe bağlı olarak değişkende Çevresel Soyutlama Katmanı seçeneklerini ve .DPDK_ARGSGATEKEEPER_ARGS
nasıl çalıştırılır
Gatekeeper’ı başlatmak ve yeniden başlatmalarda otomatik olarak başlatılmasını sağlamak için aşağıdaki komutları çalıştırın.
$ sudo systemctl start gatekeeper$ sudo systemctl enable gatekeeper
Seçenek 2: Kaynak
Yükleme Bağımlılıklarından Derleme
Aşağıdaki yazılım bağımlılıklarını yükleyin:
$ sudo apt-get update$ sudo apt-get -y -q install git clang devscripts doxygen hugepages \build-essential linux-headers-`uname -r` libmnl0 libmnl-dev \libkmod2 libkmod-dev libnuma-dev libelf1 libelf-dev libc6-dev-i386 \autoconf flex bison libncurses5-dev libreadline-dev
Not: Derlemek ve çalıştırmak için hem libmnl0ve hem de gereklidir , ancak yalnızca yalnızca çalıştırmak için gereklidir . Derlemek ve çalıştırmak için hem ve hem de gereklidir , ancak yalnızca yalnızca çalıştırmak için gereklidir . en son DPDK’yı derlemek ve NUMA sistemlerini desteklemek için gereklidir. Paket , DPDK’yı ELF dosyalarından BPF programlarını okuma desteğiyle derlemek için gereklidir, ancak yalnızca onu çalıştırmak için gereklidir. Paket , klasördeki BPF programlarını derlemek için gereklidir . , , , ve paketleri BIRD içindir . Paket , Gatekeeper Debian paketleri oluşturmak için kullanılır .libmnl-devgatekeeperlibmnl0gatekeeperlibkmod2libkmod-devgatekeeperlibkmod2gatekeeperlibnuma-devlibelf-devlibelf1libc6-dev-i386bpf/autoconfflexbisonlibncurses5-devlibreadline-devdevscripts
DPDK’yı kullanmak için tüm çevresel gereksinimlere sahip olduğunuzdan emin olun .
Klon Deposu
Gatekeeper bağımlılıklarını içeren alt modüller dahil olmak üzere Gatekeeper deposunu klonlayın:
$ git clone --recursive http://github.com/AltraMayor/gatekeeper.git
Klon seçeneğini kullanmazsanız , bağımlılıkları içeren alt modülleri dizin --recursiveiçinden almanız gerekir :gatekeeper
$ git submodule init$ git submodule update
derlemek
Bu bölüm Gatekeeper’ın manuel olarak nasıl oluşturulacağını açıklar. Debian paketleri oluşturmak istiyorsanız, Paketler nasıl oluşturulur bölümüne bakın .
Dizindeyken gatekeeperkurulum komut dosyasını çalıştırın:
$ . setup.sh
Bu komut dosyası DPDK, LuaJIT ve BIRD’yi derler ve gerekli çekirdek modüllerini yükler. Ayrıca, arabirim adlarını ve ilgili PCI adreslerini dosyaya kaydeder, lua/if_map.luaböylece arabirim adları Gatekeeper yapılandırma dosyalarında kullanılabilir.
Ayrıca iki çevresel değişken belirler: RTE_SDKve RTE_TARGET. Derlemeden önce ayarlanmaları gerekir gatekeeper.
Kurulum komut dosyasını çalıştırdıktan sonra, çevresel değişkenleri kabuğunuzun tercihler dosyasına kaydetmek isteyebilirsiniz. Örneğin, Bash’de şunları yapabilirsiniz:
$ echo "export RTE_SDK=${RTE_SDK}" >> ${HOME}/.profile$ echo "export RTE_TARGET=${RTE_TARGET}" >> ${HOME}/.profile
Aksi takdirde, her giriş yaptığınızda bu çevresel değişkenleri yeniden ayarlamanız gerekecektir.
DPDK derlenip değişkenler ayarlandıktan gatekeepersonra derlenebilir:
$ make
Ağ Bağdaştırıcılarını Yapılandırma
Ağ bağdaştırıcılarının kullanılmadan önce gatekeeperDPDK’ya bağlanması gerekir. Bunun için scripti kullanabilirsiniz dependencies/dpdk/usertools/dpdk-devbind.py. Örneğin:
$ sudo dependencies/dpdk/usertools/dpdk-devbind.py --bind=uio_pci_generic enp131s0f0
enp131s0f0Bu komut, arabirimi sürücüye bağlar, uio_pci_genericböylece çerçeveler çekirdek yerine doğrudan DPDK’ya iletilebilir. Bu bağlamanın yukarıdaki adımlarda Gatekeeper ayarlandıktan sonra gerçekleşmesi gerektiğini unutmayın, böylece bağlı arabirim lua/if_map.lua.
Nasıl Çalıştırılır
Derlendikten gatekeeperve ortam doğru şekilde yapılandırıldıktan sonra şunu çalıştırın:
$ sudo build/gatekeeper [EAL OPTIONS] -- [GATEKEEPER OPTIONS]
Nerede [EAL OPTIONS]çift çizgiden önce belirtilir ve DPDK’nın Çevresel Soyutlama Katmanı için parametreleri temsil eder ve [GATEKEEPER OPTIONS]çift çizgiden sonra belirtilir ve Gatekeeper’a özgü seçenekleri temsil eder .
DPDK’daki cihaz ve bellek yapılandırması dahil olmak üzere sistemin erken yapılandırması stdout’a kaydedilecektir. Gatekeeper başlatıldığında, tüm bilgiler Gatekeeper günlüğüne gönderilir.
Paketler nasıl oluşturulur
Gatekeeper Debian paketleri aşağıdaki komutlarla oluşturulabilir. Depo kökünden çalıştırılmaları amaçlanmıştır ve git alt modüllerinin çekildiğini ve yukarıda belirtildiği gibi yapı bağımlılıklarının kurulduğunu varsayarlar. Gatekeeper ve alt modüller, paket oluşturma işlemi sırasında otomatik olarak derlenecektir.
$ tar --exclude-vcs -Jcvf ../gatekeeper_1.0.0.orig.tar.xz -C .. gatekeeper$ debuild -uc -us
Gatekeeper paketi üst dizinde mevcut olacaktır.