Cara Mencegah Serangan DDoS dengan Nginx

Serangan Denial of Service atau “DDoS” Terdistribusi menyerang sumber daya server melalui taktik komunikasi digital yang kejam. Jenis-jenis serangan ini adalah serangan terorganisir dunia komputer. Banyak aksi anti-suka yang mengganggu bergabung untuk menciptakan ancaman yang cukup hebat untuk menghentikan server berpengalaman di jalurnya. Yang terburuk, ada beberapa cara untuk melakukan perang web gerilya seperti melawan server yang tidak curiga. Untungnya, server dapat dikonfigurasi untuk melawan balik.

Nginx, sistem server yang sangat populer untuk mesin Unix, hadir dengan fungsionalitas bawaan yang cukup untuk sangat membatasi efektivitas serangan DDoS.

Berikut adalah beberapa opsi efektif untuk menangani ancaman semacam itu di server yang didukung Nginx:

Cadangkan File Konfigurasi Anda

Sebelum Anda mengubah pengaturan apa pun, pastikan Anda membuat cadangan cepat dari konfigurasi server Anda. Perintah berikut berfungsi untuk ini:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

Salin Konfigurasi Nginx

Setelah selesai, Anda siap untuk melanjutkan.

Memeriksa Lalu Lintas

Mengawasi lalu lintas server Anda membuatnya lebih mudah untuk mengoptimalkan keamanan dan menerapkan taktik tambahan di telepon. Nginx memiliki modul yang dibuat khusus untuk ini.

Mengatur Halaman Status

Nginx biasanya dilengkapi dengan modul bernama "stub status" (http_stub_status_module) yang memungkinkan fungsi semacam ini diintegrasikan ke dalam lingkungan server Anda dengan lebih mudah. Pertama, periksa menggunakan perintah berikut:

Nginx Cari Modul

Atau pipa di atas untuk menangkap agar lebih cepat:

nginx -V 2>&1 | grep -o with-http_stub_status_module

Modul Nginx Grep

Jika output Anda terlihat seperti output di atas, Anda senang melakukannya; jika tidak, Anda perlu menginstal ulang atau mengkompilasi ulang instalasi Nginx Anda dengan modul yang disertakan.

Menyiapkan laman status yang dapat Anda periksa sederhana, tetapi Anda juga harus membatasi akses ke hanya minimum (mesin Anda) agar tetap aman. Mulailah dengan membuka file konfigurasi utama server Anda yang ditemukan di "/etc/nginx/nginx.conf."

File Konfigurasi Nginx

Buka dan tambahkan kode berikut ke "http direktif" untuk mengaktifkan modul, menggantikan info Anda sendiri daripada "localhost," "/ status_page" dan "127.0.0.1":

Note: Anda memerlukan hak sudo untuk mengubah file ini.

Kode Status Nginx

Sekarang coba konfigurasi Anda:

Konfigurasi Tes Nginx

Jika semuanya baik-baik saja, kirim sinyal muat ulang kepada server Anda:

sudo systemctl reload nginx

Nginx Reload Server

Untuk mengakses halaman status Anda, kunjungi lokasi server_name Anda diikuti dengan "/ status_page" di browser web atau dengan menggunakan alat baris perintah seperti curl. (Ini membantu jika cache browser Anda tidak diperbarui secara otomatis.) Berikut ini adalah perintah curl untuk mengakses halaman dalam contoh kami:

curl localhost/status_page

Status Nginx Curl

Di browser, di atas terlihat seperti gambar berikut.

Status Peramban Nginx

Periksa Log Akses

Jika Anda melihat lalu lintas tidak normal saat memeriksa halaman status yang dikonfigurasi di atas, mungkin merupakan ide bagus untuk memeriksa log akses server. Ini dapat ditemukan di "/var/log/nginx/access.log." Log ini mencantumkan metode HTTP yang digunakan, tanggal / waktu upaya akses, agen pengguna dan halaman yang diakses.

Log Akses Nginx

Membatasi Koneksi

Di antara banyak taktik berguna yang patut dicoba untuk mencegah serangan DDoS, salah satu yang paling sederhana dan paling efektif adalah membatasi tingkat lalu lintas masuk.

Idealnya, Anda harus membatasi akses yang cukup untuk mencegah bot jahat mengalahkan server Anda dengan harga yang tidak manusiawi sambil mempertahankan harga yang wajar untuk klien manusia. Di Nginx, ini bisa dilakukan dengan arahan limit_req_zone dan limit_req. Kode berikut menetapkan batasan memori dan laju untuk digunakan di lokasi mana pun yang dikonfigurasi untuk ditampilkan oleh server Anda:

"Zone" menentukan nama dan ukuran (dalam Megabytes dalam kasus ini) dari ruang di memori tempat permintaan pengguna disimpan. “Nilai” menetapkan jumlah total permintaan yang akan diterima Nginx setiap detik (10 dalam contoh ini). Pikirkan kode ini sebagai aturan dan kode yang mengikuti penggunaan aturan itu:

Kode di atas sebenarnya sedikit lebih dari sekadar menerapkan aturan pembatasan kami; itu juga menambahkan antrian kecil hingga dua puluh permintaan untuk menangani dengan lembut koneksi yang sah yang muncul sedikit lebih cepat dari biasanya, melebihi aturan dan antrian menghasilkan kesalahan 503 untuk klien. Inilah yang terlihat seperti kedua arahan di nginx.conf:

Kode Batas Nginx

Daftar Hitam Alamat IP

Jika Anda bisa mendapatkan alamat IP yang DDoSing server Anda, Anda dapat dengan mudah daftar hitam dan drop koneksi yang berasal dari alamat IP ini.

Tambahkan kode berikut ke arahan server Anda:

Memblokir permintaan ke file tertentu

Jika serangan DDoS menargetkan file tertentu di server Anda – misalnya, file xmlrpc.php di WordPress (ini adalah file yang sangat ditargetkan di sebagian besar server WordPress) – Anda dapat memblokir semua permintaan untuk itu. Tambahkan kode ini ke direktif server Anda:

Ikuti prosedur di atas, dan Anda akan dapat membatasi sebagian besar serangan DDoS. Pastikan untuk memeriksa Dokumentasi Nginx untuk opsi keamanan tambahan, Anda dapat menempatkannya.

Apakah artikel ini bermanfaat? ya Tidak

Pos terkait

Back to top button