Server saya berada di bawah serangan DDOS dan saya ingin memblokir IP yang melakukannya, log apa yang harus saya cari untuk menentukan IP penyerang?
Server saya berada di bawah serangan DDOS dan saya ingin memblokir IP yang melakukannya, log apa yang harus saya cari untuk menentukan IP penyerang?
Jawaban:
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more
Lihatlah alamat IP teratas. Jika ada yang menonjol dari yang lain, itu akan menjadi firewall.
netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more
Ini akan melihat koneksi yang sedang aktif untuk melihat apakah ada IP yang terhubung ke port 80. Anda mungkin perlu mengubah cut -c 45- karena alamat IP mungkin tidak dimulai pada kolom 45. Jika seseorang melakukan banjir UDP untuk server web Anda, ini akan mengambilnya juga.
Jika tidak satu pun dari ini menunjukkan IP yang berlebihan, Anda perlu berasumsi bahwa Anda memiliki botnet yang menyerang Anda dan perlu mencari pola tertentu dalam log untuk melihat apa yang mereka lakukan. Serangan umum terhadap situs wordpress adalah:
GET /index.php? HTTP/1.0
Jika Anda melihat melalui log akses untuk situs web Anda, Anda mungkin dapat melakukan sesuatu seperti:
cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more
yang akan menunjukkan kepada Anda URL yang paling sering ditabrak. Anda mungkin menemukan bahwa mereka memukul skrip tertentu daripada memuat seluruh situs.
cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more
akan memungkinkan Anda untuk melihat UserAgents umum. Ada kemungkinan bahwa mereka menggunakan UserAgent tunggal dalam serangan mereka.
Caranya adalah menemukan sesuatu yang sama dengan lalu lintas serangan yang tidak ada dalam lalu lintas normal Anda dan kemudian menyaringnya melalui iptables, mod_rewrite atau upstream dengan hosting Anda. Jika Anda mendapatkan hit dengan Slowloris, Apache 2.2.15 sekarang memiliki modul reqtimeout yang memungkinkan Anda untuk mengkonfigurasi beberapa pengaturan untuk melindungi dengan lebih baik terhadap Slowloris.
Beberapa tips bagus di sini. Saya juga menambahkan ini:
netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''
Letakkan ini di bawah alias (nn, misalnya). Ini akan memberi Anda perspektif "grafis" dari ips dengan koneksi yang lebih mapan.
Semoga ini membantu.
Bagi mereka yang tidak bisa menjalankan ini, saya telah memperbaiki sintaksnya sehingga berjalan di Ubuntu:
netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'
File log favorit saya untuk memeriksa serangan DOS adalah / var / log / secure (di bawah Redhat / Centos / Fedora ....) dan /var/log/auth.log (di bawah ubuntu, debian ...). Anda akan melihat upaya login gagal yang dilakukan dari IP sumber penyerang, sebagian besar kali serangan berbasis kamus.
untuk melindungi server saya, saya menggunakan Fail2Ban skrip sederhana
memindai file log seperti / var / log / pwdfail atau / var / log / apache / error_log dan melarang IP yang membuat terlalu banyak kegagalan kata sandi. Ini memperbarui aturan firewall untuk menolak alamat IP.
Distro yang mana?
Saya pikir log tersebut di bawah /var/log/apache2/access.log dengan Ubuntu ... Mungkin juga Debian.
Jalankan updatedb sebagai sudo kemudian cari access.log dari baris perintah.
EDIT: Saya percaya meskipun ini hanya akan terjadi jika mereka memukul Anda baik dengan meminta halaman atau langsung melalui port 80. Jika mereka memukul port lain Anda tidak akan melihat info yang Anda butuhkan di sana Anda harus memeriksa dan melihat proses mana yang berjalan di port itu dan lihat log koneksi untuk proses itu.
Jika Anda berada di bawah DOS terdistribusi pasti ada lebih dari satu IP untuk diblokir dan IP mungkin dipalsukan, Anda lebih baik meminta ISP Anda seperti kata mfinni . Juga ini mungkin lebih dari DOS terhadap server Anda, tetapi umpan untuk menyembunyikan serangan nyata dari terdeteksi, jadi periksa bahwa semua layanan Anda yang terbuka dijalankan oleh perangkat lunak terbaru. Anda mungkin juga tertarik dengan mod_dosevasive untuk apache.
Pertama, Anda harus menentukan jenis DOS. Beberapa serangan sangat tersembunyi tetapi efektif (slowloris), beberapa di antaranya sangat berat sehingga dapat menurunkan ISP (ICMP membanjiri dari bandwidth yang lebih tinggi daripada sumber ISP Anda).
Setelah Anda menentukan jenis DOS, hubungi ISP Anda dan tanyakan apakah mereka dapat menyaring lalu lintas.
Saya telah melihat banjir ICMP begitu berat sehingga kami harus meminta ISP hulu untuk menyaring IP tujuan melalui komunitas BGP.