Cara mencegah Serangan DDoS pada Nginx dengan Hardening
Cara mencegah serangan ddos pada Nginx
Cara mencegah serangan ddos di nginx, pelajari cara memblokir Serangan DDoS tertentu dengan Nginx Web server dengan konfigurasi perlindungan ddos nginx ini, ini akan membantu server Anda untuk mencegah dan memblokir Serangan DDoS umum tertentu, dengan konfigurasi dan pengerasan Nginx Anda dapat memblokir beberapa serangan di server Anda.
Alexhost menawarkan Perlindungan Anti-DDoS gratis terhadap beberapa serangan tertentu, Anda dapat menggunakan Server VPS atau Server Khusus kami, kami menawarkan Perlindungan Anti-DDoS gratis, namun kapasitas mitigasi, metode, pemfilteran akan berbeda berdasarkan lokasi yang Anda pilih.
Persyaratan:
Nginx (Anda harus sudah menginstal Nginx di server Anda saat ini)
Beberapa Pengetahuan (diperlukan untuk mengetahui cara menggunakan perintah dasar Linux dan cara mengakses beberapa file Nginx, pengetahuan diharapkan)
Server VPS atau Server Khusus (Anda dapat menggunakan VM di hos lokal Anda)
Perlindungan DDoS (dari Penyedia Hosting Anda diperlukan untuk dapat memitigasi Serangan DDoS yang lebih kompleks)
Linux (distribusi apa pun yang dapat diinstal Nginx)
Nginx (Anda mungkin perlu membaca dokumentasi Nginx mereka untuk menguji dan memeriksa apakah masih dapat diandalkan)
Keterbatasan: Tutorial ini bukanlah “antipeluru” untuk melindungi dari semua Serangan DDoS, tutorial ini mungkin akan membatasi serangan dengan memblokir beberapa jenis serangan umum dan membantu server Anda tetap online. Ada beberapa batasan terhadap beberapa Serangan DDoS, Anda akan membutuhkan Penyedia Hosting Anda menawarkan beberapa jenis Perlindungan DDoS untuk memblokir dan mencegah, konfigurasi ini tidak dapat melindungi dari semua serangan terhadap server Anda. Konfigurasi ini untuk mencegah dan memblokir beberapa serangan, tetapi tidak akan memblokir semua serangan tanpa Perlindungan DDoS dari Hosting Anda.
Peringatan: Alexhost tidak menyarankan Anda untuk menggunakan konfigurasi ini pada server produksi Anda, kami sarankan untuk mengujinya terlebih dahulu sebelum melakukan apa pun. Alexhost tidak bertanggung jawab atas segala jenis masalah yang mungkin timbul dari konfigurasi ini. Terapkan keamanan server yang baik, sebelum menerapkan apa pun, cadangkan semua yang perlu Anda pulihkan. Silakan baca Dokumentasi Nginx untuk Perlindungan DDoS untuk memahami cara kerjanya.
Cegah Serangan DDoS dengan mengeraskan Nginx
Mengonfigurasi Nginx untuk perlindungan dan pengerasan DDoS terhadap lapisan serangan umum melibatkan penerapan berbagai strategi untuk memitigasi dan mencegah serangan. Berikut ini adalah panduan tentang cara mengonfigurasi Nginx untuk meningkatkan keamanan dan mempelajari Cara mencegah serangan ddos pada nginx dengan mengeraskan server web Anda:
- Perbarui Nginx: Pastikan Anda menggunakan versi stabil terbaru dari Nginx untuk mendapatkan manfaat dari tambalan dan peningkatan keamanan terbaru.
- Batasi Koneksi: Gunakan modul limit_conn untuk membatasi jumlah koneksi dari satu alamat IP. Ini membantu mencegah serangan DDoS membebani server Anda dengan terlalu banyak koneksi simultan.
http { limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=1r/s; server { limit_req zone=req_limit_per_ip burst=5; # Other server configurations... } }
Daftar Putih/Daftar Hitam IP: Gunakan arahan izinkan dan tolak untuk membuat daftar putih alamat IP tepercaya dan memblokir alamat IP berbahaya.
nginx
http { # Whitelist trusted IP addresses allow 192.168.1.0/24; deny all; # Other server configurations... }
Menerapkan Firewall Aplikasi Web (WAF): Memanfaatkan modul pihak ketiga seperti ModSecurity dengan Nginx untuk mendeteksi dan memblokir lalu lintas HTTP yang berbahaya.
Aktifkan HTTPS: Enkripsi komunikasi antara klien dan server menggunakan HTTPS untuk mencegah penyadapan data dan serangan man-in-the-middle.
Nonaktifkan Modul yang Tidak Digunakan: Nonaktifkan modul Nginx yang tidak diperlukan untuk mengurangi permukaan serangan dan meningkatkan kinerja.
nginx
./configure --without-http_autoindex_module --without-http_ssi_module
- Menyetel Konfigurasi Nginx: Optimalkan parameter konfigurasi Nginx seperti proses pekerja, koneksi pekerja, dan batas waktu berdasarkan kemampuan perangkat keras server Anda dan lalu lintas yang diharapkan.
- Pemantauan dan Pencatatan: Memantau log server secara teratur untuk aktivitas yang mencurigakan dan menyiapkan sistem peringatan untuk memberi tahu administrator tentang potensi serangan.
- Menerapkan Layanan Perlindungan DDoS: Pertimbangkan untuk menggunakan layanan atau peralatan perlindungan DDoS khusus di depan Nginx, seperti Cloudflare, AWS Shield, atau Akamai.
- Pencadangan Rutin: Pastikan pencadangan data penting secara teratur untuk meminimalkan dampak serangan yang berhasil.
Ingatlah bahwa keamanan adalah proses yang berkelanjutan, dan sangat penting untuk selalu mengikuti perkembangan praktik dan ancaman keamanan terbaru agar dapat secara efektif melindungi peladen Anda dari potensi serangan.
Konfigurasi perlindungan ddos Nginx:
#Tentukan zona untuk melacak koneksi dari setiap IP
http { limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m; # Define a zone to track requests from each IP limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s; server { listen 80; server_name example.com; # Rate limit requests limit_req zone=req_limit_per_ip burst=20; # Limit maximum number of connections from a single IP limit_conn conn_limit_per_ip 20; # Deny requests with large request bodies to mitigate against some types of attacks client_body_buffer_size 1k; client_header_buffer_size 1k; client_max_body_size 1k; large_client_header_buffers 2 1k; # Enable Gzip compression to save bandwidth gzip on; gzip_comp_level 5; gzip_min_length 256; gzip_proxied any; gzip_vary on; # Add security headers to enhance security add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; add_header X-Frame-Options "SAMEORIGIN"; add_header Referrer-Policy "same-origin"; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # Block common vulnerable User-Agents if ($http_user_agent ~* (wget|curl) ) { return 403; } # Block access to hidden files location ~ /\. { deny all; } # Block access to certain file types location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php_ { deny all; return 403; } # Whitelist your IP for administrative access location /admin { allow your_admin_ip; deny all; } # Deny access to certain directories location ~ /(system|vendor) { deny all; return 403; } # Proxy pass requests to your application server location / { proxy_pass http://your_backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } }
Konfigurasi ini melakukan hal berikut:
- Pembatasan Laju: Membatasi jumlah permintaan dari setiap alamat IP hingga 10 permintaan per detik dengan ledakan 20 permintaan.
- Pembatasan Koneksi: Membatasi jumlah maksimum koneksi dari setiap alamat IP hingga 20.
- Pembatasan Ukuran Badan Permintaan: Membatasi ukuran badan permintaan untuk memitigasi serangan yang mengirimkan badan permintaan berukuran besar.
- Kompresi Gzip: Mengaktifkan kompresi gzip untuk menghemat bandwidth.
- Header Keamanan: Menambahkan header keamanan untuk meningkatkan keamanan.
- Memblokir Agen Pengguna yang Rentan: Memblokir permintaan dari Agen-Pengguna yang rentan.
- Memblokir File Tersembunyi: Memblokir akses ke file dan direktori tersembunyi.
- Memutihkan Akses Admin: Mengizinkan akses ke area admin hanya dari alamat IP Anda.
- Menolak Akses ke Direktori Tertentu: Memblokir akses ke direktori sensitif seperti sistem dan vendor.
- Proxy Pass: Meneruskan permintaan ke server aplikasi Anda.
Pastikan untuk menyesuaikan konfigurasi sesuai dengan kebutuhan spesifik Anda, seperti nama domain, alamat server backend, dan alamat IP administratif. Selain itu, pantau log server Anda secara teratur dan sesuaikan konfigurasi seperlunya untuk beradaptasi dengan ancaman yang terus berkembang.
Konfigurasi yang disediakan dimaksudkan untuk ditambahkan ke berkas nginx.conf atau disertakan dari berkas konfigurasi terpisah. Berikut ini adalah panduan langkah demi langkah tentang tempat menambahkan konfigurasi:
- Temukan berkasnginx.conf: Tergantung pada instalasi Nginx Anda, berkas nginx.conf mungkin terletak di direktori yang berbeda. Lokasi yang umum termasuk /etc/nginx/nginx.conf, /usr/local/nginx/conf/nginx.conf, atau /etc/nginx/sites-available/default.
- Buka berkasnginx.conf: Anda dapat membuka berkas ini menggunakan editor teks atau editor teks baris perintah seperti nano, vim, atau emacs.
- Tambahkan konfigurasi di dalam blokhttp: Di dalam blok http, yang mendefinisikan pengaturan server HTTP, Anda akan menambahkan konfigurasi yang disediakan. Biasanya, Anda akan menemukan blok http di dekat bagian atas berkas nginx.conf.
- Rekatkan konfigurasi yang disediakan: Rekatkan seluruh konfigurasi yang disediakan sebelumnya di dalam blok http. Pastikan Anda mengganti nilai placeholder seperti example.com, your_admin_ip, dan your_backend_server dengan nilai yang sebenarnya.
- Simpan dan keluar dari berkas: Setelah menambahkan konfigurasi, simpan berkas nginx.conf dan keluar dari editor teks.
- Menguji konfigurasi Nginx: Sebelum memulai ulang Nginx, sebaiknya Anda menguji konfigurasi untuk mengetahui adanya kesalahan sintaksis.
- Anda dapat melakukan ini dengan menjalankan perintah berikut:
nginx -t
Jika tidak ada kesalahan sintaksis, Anda akan melihat pesan yang mengindikasikan bahwa tes file konfigurasi berhasil.
Mulai ulang Nginx: Terakhir, mulai ulang Nginx untuk menerapkan perubahan. Anda dapat melakukan ini dengan perintah berikut:
sudo service nginx restart
- Jika Anda tidak menggunakan sistem dengan systemd, Anda dapat menggunakan perintah yang berbeda untuk memulai ulang Nginx.
Dengan mengikuti langkah-langkah ini, Anda akan menambahkan konfigurasi yang disediakan ke server Nginx Anda, meningkatkan keamanannya dengan perlindungan DDoS dan langkah-langkah keamanan lainnya, tutorial ini akan membantu Andacara mencegah serangan ddos pada nginx dengan mengonfigurasi Nginx.