DDOS saldırısı altında sunucu - IP'ler nasıl bulunur?


20

Sunucum DDOS saldırıları altında ve bunu yapan IP'yi engellemek istiyorum, saldırganın IP'sini belirlemek için hangi günlükleri aramalıyım?


2
Sunucunun saldırı altında olduğunu nasıl belirlediniz? Bu belirlemeyi yapmak için bir çeşit TCP oturum tablosuna (Windows'ta netstat) bakmanız gerekiyor ve bunu yaparken sunucunuza bağlanan ana makinelerin ip adreslerini göreceksiniz, bu da sorunuzu yapacak tartışma.
joeqwerty

Yanıtlar:


43
tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more

En iyi IP adreslerine bir göz atın. Herhangi biri diğerlerinden öne çıkarsa, bunlar güvenlik duvarına olanlar olacaktır.

netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more

Bu, bağlantı noktası 80'e bağlanan herhangi bir IP olup olmadığını görmek için şu anda etkin olan bağlantılara bakacaktır. IP adresi 45. sütunda başlamayabileceğinden, cut -c 45'i değiştirmeniz gerekebilir. web sunucunuz, bu da onu alır.

Bunlardan hiçbirinin norm dışı aşırı IP göstermemesi ihtimaline karşı, size saldıran bir botnetiniz olduğunu ve ne yaptıklarını görmek için günlüklerde belirli desenleri aramanız gerektiğini varsaymanız gerekir. Wordpress sitelerine karşı yaygın bir saldırı:

GET /index.php? HTTP/1.0

Web sitenizin erişim günlüklerine bakarsanız, aşağıdakilere benzer bir şey yapabilirsiniz:

cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more

size en sık kullanılan URL'leri gösterir. Sitenin tamamını yüklemek yerine belirli bir komut dosyasını kullandıklarını görebilirsiniz.

cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more

sık kullanılan UserAgent'ları görmenizi sağlar. Saldırılarında tek bir UserAgent kullanıyor olabilirler.

İşin püf noktası, normal trafiğinizde bulunmayan saldırı trafiğiyle ortak bir şey bulmak ve ardından iptables, mod_rewrite veya webhost'unuzla yukarı akış yoluyla filtrelemektir. Slowloris ile vuruluyorsanız, Apache 2.2.15 şimdi Slowloris'e karşı daha iyi koruma sağlamak için bazı ayarları yapılandırmanıza izin veren reqtimeout modülüne sahiptir.


Çok teşekkürler, kesinlikle bu haftasonuna bakacağım.
Webnet

mükemmel. çok yararlı ve sadece harika .... devam et ve tanrı seni korusun. Allinonescript.com ( allinonescript.com ) Tüm Dünyadaki Geliştiriciler Bilgi edinir.
Vadivel S

Access_log'unuzu doğru bir şekilde ayarladığınız sürece: tail -n 10000 / var / log / httpd / access_log | cut -f 1 -d '' | sort | uniq -c | sort -nr | daha fazlası Bu çalışmalıdır. Benim için çalıştı,
dustbuster

7

FYI - ISS'nizle birlikte çalışıp çalışmayacağınızı görmek için ISP'nizle birlikte çalışmalısınız.


4

Burada bazı iyi ipuçları. Bunu da eklerdim:

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 ""}'\''

Bunu bir takma ad altına yerleştirin (nn, örneğin). Bu size daha yerleşik bağlantıları olan ips'in "grafiksel" bir perspektifini verecektir.

Bu yardımcı olur umarım.

Bu işe yaramadı olanlar için ben Ubuntu altında benim için çalışır böylece sözdizimi sabit var:

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 ""}'

3

DOS saldırılarını kontrol etmek için favori günlük dosyalarım / var / log / secure (Redhat / Centos / Fedora .... altında) ve /var/log/auth.log (ubuntu, debian ... altında). Çoğu zaman sözlüğe dayalı saldırılar olmak üzere, saldırganın kaynak IP'sinden başarısız oturum açma girişimleri görürsünüz.


1

sunucumu korumak için basit bir betik Fail2Ban kullanıyorum

/ var / log / pwdfail veya / var / log / apache / error_log gibi günlük dosyalarını tarar ve çok fazla şifre hatası yapan IP'yi yasaklar. IP adresini reddetmek için güvenlik duvarı kurallarını günceller.

http://www.fail2ban.org/wiki/index.php/Main_Page


0

Hangi dağıtım?

Bence günlük /var/log/apache2/access.log altında Ubuntu ile ... Muhtemelen Debian.

Updatedb dosyasını sudo olarak çalıştırın, ardından komut satırından access.log dosyasını bulun.

DÜZENLEME: Sanırım bu sadece sayfalar isteyerek veya doğrudan bağlantı noktası 80 üzerinden size isabet ederse olacak. Başka bağlantı noktalarına isabet ederse, orada ihtiyacınız olan bilgileri görmeyeceksiniz. ve bu işlem için bağlantı günlüklerine göz atın.


0

Belirli bir bağlantı noktasından şüpheleniyorsanız $ tcpdump -vv bağlantı noktası X'in hangi adres olduğunu görmek için tcpdump kullanabilirsiniz


0

Dağıtılmış bir DOS altındaysanız, kesinlikle engellenecek birden fazla IP var ve IP'ler sahte olabilir, ISS'nize mfinni'nin dediği gibi sormanız daha iyidir . Ayrıca bu sunucunuza karşı bir DOS daha fazla olabilir ama gerçek saldırı tespit edilmesini gizlemek için bir yem olabilir, bu yüzden maruz kalan tüm hizmetlerin güncel yazılım tarafından çalıştırıldığını kontrol edin. Ayrıca ilginizi çekebilir mod_dosevasive for apache.


2
IP'lerin web saldırıları için taklit edilmesi çok zor. Geçerli bir web bağlantısı bir syn / ack anlaşması gerektirdiğinden, sahte IP adresinin sahte saldırı sitesinden çalışması için yükünüz için doğru sıra numarası ile sahte IP adresine sahip olacağı kadar şanslı olmanız gerekir. UDP / ICMP trafiği bağlantısızdır ve sahte paketlere izin verir, ancak çoğu ana bilgisayar bu paketleri engeller.
user6738237482

0

Öncelikle DOS türünü belirlemelisiniz. Bazı saldırılar çok gizli ancak etkilidir (slowloris), bazıları o kadar ağırdır ki bir ISS'yi aşağı indirebilir (ICMP, ISS kaynağınızdan daha yüksek bir bant genişliğinden kaynaklanır).

DOS türünü belirledikten sonra, ISS'nizi arayın ve trafiği filtreleyip filtreleyemeyeceklerini sorun.

ICMP taşkınlarını o kadar ağır gördüm ki, akış yukarı ISP'den hedef IP'yi bir BGP topluluğu aracılığıyla filtrelemesini istemek zorunda kaldık.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.