Kang Asu
Gatekeeper - Sistem Perlindungan DDoS Sumber Terbuka Pertama
Gatekeeper adalah sistem perlindungan DoS open source pertama . Ini dirancang untuk menskalakan ke bandwidth puncak apa pun, sehingga dapat menahan serangan DoS baik hari ini maupun besok. Terlepas dari arsitektur Gatekeeper yang terdistribusi secara geografis , kebijakan jaringan yang menjelaskan semua keputusan yang harus diterapkan pada lalu lintas masuk bersifat terpusat. Kebijakan terpusat ini memungkinkan operator jaringan untuk memanfaatkan algoritme terdistribusi yang tidak akan dapat dijalankan di bawah latensi yang sangat tinggi (mis. Database terdistribusi) dan untuk melawan beberapa serangan DoS multi-vektor sekaligus.
Pengguna Gatekeeper yang dimaksud adalah operator jaringan institusi, penyedia layanan dan konten, jaringan perusahaan, dll. Ini tidak dimaksudkan untuk digunakan oleh pengguna Internet individu.
Untuk informasi lebih lanjut, lihat wiki Gatekeeper .
Cara Mengatur
Konfigurasi Hugepages
DPDK membutuhkan penggunaan halaman pelukan; instruksi untuk memasang hugepages tersedia dalam dokumentasi persyaratan . Pada banyak sistem, pengaturan hugepages berikut sudah cukup:
$ echo 256 | sudo tee /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
Opsi 1: Dapatkan Paket
Paket Debian untuk Gatekeeper tersedia di halaman Rilis proyek .
Install
Setelah paket diunduh, mereka dapat diinstal dengan perintah di bawah ini:
$ 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
The gatekeeper-dpdk-dev
paket ketergantungan dari paket DKMS, yang membangun modul-modul kernel masing-masing selama instalasi paket dan kernel upgrade.
Konfigurasikan Adaptor Jaringan
Edit /etc/gatekeeper/envvars
file dan masukkan nama adapter jaringan yang akan diikat ke DPDK. Sebagai contoh:
GATEKEEPER_INTERFACES="eth0 eth1"
Alternatifnya, alamat PCI antarmuka dapat ditentukan:
GATEKEEPER_INTERFACES="0000:00:07.0 0000:00:08.0"
Dalam file yang sama, Anda dapat secara opsional menentukan opsi Lapisan Abstraksi Lingkungan dalam DPDK_ARGS
variabel dan opsi khusus Gatekeeper di GATEKEEPER_ARGS
.
Bagaimana cara menjalankannya
Jalankan perintah di bawah ini untuk memulai Gatekeeper dan untuk memastikannya dimulai secara otomatis saat reboot.
$ sudo systemctl start gatekeeper
$ sudo systemctl enable gatekeeper
Opsi 2: Bangun dari Ketergantungan Penginstalan Sumber
Instal dependensi perangkat lunak berikut:
$ 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
Catatan: Kedua libmnl0
dan libmnl-dev
diperlukan untuk mengkompilasi dan menjalankan gatekeeper
, tetapi hanya libmnl0
diperlukan untuk hanya menjalankan gatekeeper
. Kedua libkmod2
dan libkmod-dev
yang diperlukan untuk mengkompilasi dan menjalankan gatekeeper
, tetapi hanya libkmod2
diperlukan untuk hanya menjalankan gatekeeper
. libnuma-dev
diperlukan untuk menyusun DPDK terbaru dan untuk mendukung sistem NUMA. Paket libelf-dev
diperlukan untuk menyusun DPDK dengan dukungan membaca program BPF dari file ELF, tetapi hanya libelf1
diperlukan untuk menjalankannya. Paket libc6-dev-i386
tersebut diperlukan untuk mengkompilasi program BPF di dalam folder bpf/
. The autoconf
, flex
, bison
, libncurses5-dev
, dan libreadline-dev
paket adalah untuk BIRD. The devscripts
paket digunakan untuk membangun Gatekeeper Debian paket.
Untuk menggunakan DPDK, pastikan Anda memiliki semua persyaratan lingkungan .
Gandakan Repositori
Clone repositori Gatekeeper, termasuk submodul yang berisi dependensi Gatekeeper:
$ git clone --recursive http://github.com/AltraMayor/gatekeeper.git
Jika Anda tidak menggunakan --recursive
opsi klon, Anda perlu mendapatkan submodul yang berisi ketergantungan dari dalam gatekeeper
direktori:
$ git submodule init
$ git submodule update
Menyusun
Bagian ini menjelaskan bagaimana membangun Gatekeeper secara manual. Jika Anda ingin membuat paket Debian, lihat bagian Cara membuat paket .
Saat berada di gatekeeper
direktori, jalankan skrip pengaturan:
$ . setup.sh
Skrip ini mengkompilasi DPDK, LuaJIT, dan BIRD, dan memuat modul kernel yang diperlukan. Selain itu, ini menyimpan nama antarmuka dan alamat PCI masing-masing di file lua/if_map.lua
sehingga nama antarmuka dapat digunakan di file konfigurasi Gatekeeper.
Ini juga menetapkan dua variabel lingkungan: RTE_SDK
dan RTE_TARGET
. Mereka harus diatur sebelum gatekeeper
akan dikompilasi.
Setelah menjalankan skrip pengaturan, Anda mungkin ingin menyimpan variabel lingkungan di file preferensi shell Anda. Misalnya, di Bash, Anda dapat melakukan:
$ echo "export RTE_SDK=${RTE_SDK}" >> ${HOME}/.profile
$ echo "export RTE_TARGET=${RTE_TARGET}" >> ${HOME}/.profile
Jika tidak, setiap kali Anda login, Anda perlu mengatur variabel lingkungan ini lagi.
Setelah DPDK dikompilasi dan variabel ditetapkan, gatekeeper
dapat dikompilasi:
$ make
Konfigurasikan Adaptor Jaringan
Sebelum gatekeeper
dapat digunakan, adaptor jaringan harus terikat ke DPDK. Untuk ini, Anda dapat menggunakan skrip dependencies/dpdk/usertools/dpdk-devbind.py
. Sebagai contoh:
$ sudo dependencies/dpdk/usertools/dpdk-devbind.py --bind=uio_pci_generic enp131s0f0
Perintah ini mengikat antarmuka enp131s0f0
ke uio_pci_generic
driver sehingga frame dapat diteruskan langsung ke DPDK, bukan ke kernel. Perhatikan bahwa pengikatan ini harus dilakukan setelah Gatekeeper disiapkan dalam langkah-langkah di atas sehingga antarmuka terikat muncul di daftar antarmuka di lua/if_map.lua
.
Bagaimana Menjalankan
Setelah gatekeeper
dikompilasi dan lingkungan dikonfigurasi dengan benar, jalankan:
$ sudo build/gatekeeper [EAL OPTIONS] -- [GATEKEEPER OPTIONS]
Di mana [EAL OPTIONS]
ditentukan sebelum tanda hubung ganda dan mewakili parameter untuk Lapisan Abstraksi Lingkungan DPDK dan [GATEKEEPER OPTIONS]
ditentukan setelah tanda hubung ganda dan mewakili opsi khusus Penjaga Gerbang .
Konfigurasi awal sistem, termasuk konfigurasi perangkat dan memori di DPDK, akan dicatat ke stdout. Setelah Gatekeeper di-boot, semua informasi di-output ke log Gatekeeper.
Bagaimana membangun paket
Paket Gatekeeper Debian dapat dibangun dengan perintah di bawah ini. Mereka dimaksudkan untuk dijalankan dari root repositori dan menganggap submodul git telah ditarik, dan dependensi build telah diinstal, seperti yang diinstruksikan di atas. Gatekeeper dan submodul akan secara otomatis dikompilasi selama proses pembuatan paket.
$ tar --exclude-vcs -Jcvf ../gatekeeper_1.0.0.orig.tar.xz -C .. gatekeeper
$ debuild -uc -us
Paket Gatekeeper akan tersedia di direktori induk.
Regards
Kang Asu
No comments:
Post a Comment
# Silahkan berkomentar, bertanya dan kritik dengan sopan
# Disini anda boleh menyisipkan Link di kolom komentar
# Tetapi akan saya moderasi atau Review terlebih dahulu tiap komentar
# Jangan sampai komentar anda mengandung SPAM.
# Terima Kasih - Regards Muhammad Sobri Maulana