Serangan DDoS (Distributed Denial of Service) , melalui taktik komunikasi digital yang menyalahgunakan, membebankan sumber pelayan. Jenis serangan ini adalah serbuan teratur dalam dunia komputer. Tindakan pembangkang yang tidak terkira banyaknya bergabung untuk mencipta ancaman yang cukup menggerunkan untuk memaksa pelayan dihentikan.
Paling teruk, terdapat banyak cara untuk melancarkan "peperangan" web gerila terhadap tuan rumah sedemikian. Nasib baik, pelayan boleh dikonfigurasikan untuk menahan serangan sedemikian.
Nginx, sistem pelayan yang sangat popular untuk mesin Unix, dilengkapi dengan fungsi terbina dalam yang mencukupi untuk mengehadkan keberkesanan serangan DDoS dengan ketara.
Berikut ialah beberapa pilihan yang berkesan untuk menangani ancaman sedemikian dengan Nginx.
Bagaimana untuk menghalang serangan DDoS dengan Nginx?
Sandarkan fail konfigurasi
Sebelum anda menukar sebarang tetapan, pastikan anda membuat sandaran pantas bagi konfigurasi pelayan anda. Perintah berikut berfungsi untuk tujuan ini:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

Setelah selesai, anda sudah bersedia untuk meneruskan.
Semak lalu lintas
Memantau trafik pada pelayan anda memudahkan untuk mengoptimumkan keselamatan dan melaksanakan strategi tambahan. Nginx mempunyai modul yang dibuat khusus untuk tujuan ini.
Sediakan halaman status
Nginx biasanya datang dengan modul yang dipanggil "status rintisan" (http_stub_status_module), yang membolehkan jenis fungsi ini disepadukan ke dalam persekitaran pelayan dengan mudah. Pertama, uji menggunakan arahan berikut:
nginx -V
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Atau gunakan arahan berikut untuk mencarinya dengan lebih cepat:
nginx -V 2>&1 | grep -o with-http_stub_status_module
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Jika output anda kelihatan seperti di atas, maka semuanya baik-baik saja. Jika tidak, anda perlu memasang atau menyusun semula pemasangan Nginx anda dengan modul yang disertakan.
Menyediakan halaman status yang anda boleh semak adalah mudah, tetapi anda juga perlu mengehadkan akses kepada minimum (komputer sahaja) untuk mengekalkan keselamatan. Mulakan dengan membuka fail konfigurasi utama pelayan yang terdapat di /etc/nginx/nginx.conf.
Buka dan tambah kod berikut pada "arahan http" untuk mendayakan modul, menggantikan maklumat anda sendiri dalam "localhost," "/status_page" dan "127.0.0.1".
server {
listen 80;
listen [::]:80;
server_name localhost;
##
# Status Page Settings
##
location /status_page {
stub_status on;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
Nota : Anda memerlukan keistimewaan sudo untuk mengubah suai fail ini.
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Sekarang, uji konfigurasi anda:
sudo nginx -t
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Jika semuanya baik, hantarkan isyarat tambah nilai kepada pelayan:
sudo systemctl reload nginx
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Untuk mengakses halaman status anda, lawati nama pelayan lokasi diikuti dengan "/status_page" dalam pelayar web atau dengan menggunakan alat baris arahan seperti curl. (Ini berguna jika cache penyemak imbas anda tidak dikemas kini secara automatik). Berikut ialah arahan curl untuk mengakses halaman dalam contoh:
curl localhost/status_page
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Dalam penyemak imbas, output arahan di atas kelihatan seperti imej berikut.
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Semak log akses
Jika anda melihat trafik yang luar biasa semasa menyemak halaman status yang dikonfigurasikan di atas, anda mungkin ingin menyemak log akses pelayan. Log akses pelayan boleh didapati di "/var/log/nginx/access.log". Log menyenaraikan kaedah HTTP yang digunakan, tarikh/masa percubaan akses, ejen pengguna dan halaman yang diakses.
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Had sambungan
Di antara banyak taktik berguna untuk menghalang serangan DDoS yang patut dicuba, salah satu yang paling mudah dan paling berkesan ialah mengehadkan kadar trafik masuk.
Sebaik-baiknya, anda harus mengehadkan akses hanya cukup untuk menghalang bot berniat jahat daripada mengatasi pelayan anda, sambil mengekalkan kadar yang berpatutan. Dalam Nginx, ini boleh dilakukan dengan limit_req_zone dan limit_req directives . Kod berikut menetapkan memori dan kekangan kelajuan untuk digunakan di mana-mana lokasi pelayan anda dikonfigurasikan untuk dipaparkan:
limit_req_zone $binary_remote_addr zone=speedbump:10m rate=10r/s;
"Zon" menentukan nama dan kapasiti (dalam Megabait dalam kes ini) ruang memori tempat permintaan pengguna disimpan. “Kadar” menetapkan jumlah bilangan permintaan yang akan diterima oleh Nginx sesaat (10 permintaan dalam contoh ini). Fikirkan kod ini sebagai peraturan dan yang berikut ialah penggunaan peraturan itu:
limit_req zone=speedbump burst=20;
Kod di atas sebenarnya melakukan lebih daripada sekadar melaksanakan peraturan had. Ia juga menambah baris gilir kecil sehingga 20 permintaan untuk mengendalikan sambungan yang sah dengan anggun, yang menjadikan lebih pantas sedikit daripada biasa, melebihi kedua-dua peraturan dan baris gilir yang mengakibatkan ralat 503 untuk pelanggan. Kedua-dua arahan kelihatan seperti ini dalam nginx.conf:
![Bagaimana untuk mengelakkan serangan DDoS dengan Nginx Bagaimana untuk mengelakkan serangan DDoS dengan Nginx]()
Buat senarai hitam alamat IP
Jika anda mendapat alamat IP yang melakukan serangan DDoS pada pelayan anda, anda hanya boleh menyenaraihitamkannya dan menghapuskan sebarang sambungan yang berasal dari alamat IP ini.
Tambahkan kod berikut pada arahan pelayan anda:
location / {
deny 123.123.123.0/28;
# ...
}
Sekat permintaan untuk fail tertentu
Jika serangan DDoS menyasarkan fail tertentu pada pelayan - contohnya fail xmlrpc.php pada WordPress (ini adalah fail yang biasa disasarkan dalam kebanyakan pelayan WordPress), anda boleh menyekat semuanya. semua keperluan untuknya. Tambahkan kod ini pada arahan pelayan anda:
location /xmlrpc.php {
deny all;
}
Ikuti proses di atas dan anda akan dapat mengehadkan kebanyakan serangan DDoS. Pastikan anda menyemak dokumentasi Nginx untuk pilihan keselamatan tambahan yang boleh anda gunakan.
Semoga anda berjaya.