рдиреЗрдЯрд╕реНрдЯреИрдЯ рдФрд░ рдЖрдИрдкреАрдЯреИрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЗрд╖реНрдЯрддрдо рдбреАрдбреАрдУрдПрд╕ рд╕реБрд░рдХреНрд╖рд╛

рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ DDoS рдЬреИрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ рддреБрд░рдВрдд рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдХрднреА рднреА рдПрдХ рд▓рд┐рдирдХреНрд╕реЙрдЗрдб рдирд╣реАрдВ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдЗрд╕рд▓рд┐рдП рдиреАрдЪреЗ рд╕рдм рдХреБрдЫ рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рддрд░реНрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рддрдереНрдпреЛрдВ рдкрд░ рдирд╣реАрдВ, рд╕рд╛рде рд╣реА рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рдПрдХ рд╕реЗ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рд▓реЗрдЦреЛрдВ рдХреА рднреАрдбрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрджрдиреЗ рдФрд░ рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рдкрд╛рдпрд╛ рдХрд┐ рд░рдХреНрд╖рд╛ рдореЗрдВ рдХреНрдпрд╛ рдорджрдж рдорд┐рд▓реЗрдЧреАред рд▓реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ http ddoS рдХреЛ nmbx рдФрд░ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 50mb рд╕реЗ рдлреНрд▓рд┐рдк рдХрд░рдиреЗ рдХреА рдПрдХ рд╕рд░рд▓ рдФрд░ рдкреНрд░рднрд╛рд╡реА рд╡рд┐рдзрд┐ рдФрд░ (D) DoS Deflate рдиреЗ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЦреИрд░, рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рд╕реБрдзрд╛рд░ рдХреА рд╡рд┐рдзрд┐ рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреБрдж рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджрд┐рдпрд╛ред

рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрд▓реЗрдХреНрд╕рдИ рдХреБрдЬрд╝рдорд┐рди рдХрд╛ рд▓реЗрдЦ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ nginx`a рд▓реЙрдЧ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рд▓реЙрдЧ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрд░реНрдерд╛рддреН, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 50 рд╕реЗ рдЕрдзрд┐рдХ рдЧрд┐рдЧ рдХреЗ рд▓реЙрдЧ рдмрдирд╛рдП рдЧрдП рдереЗ, рд╕рд╛рде рд╣реА рдЕрдиреБрд░реЛрдз "GET / HTTP / 1.1" рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди "GET / HTTP / 1.0", рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реНрд╡рдпрдВ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ (127.0.0.1) рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ, рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рд╛рд░ рдРрд╕рд╛ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореБрдХреБрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░, рдЖрдИрдкреА рдФрд░ рдЙрдирдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдлрд┐рд░ рдПрдХ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рджрд┐рдЦрддреА рд╣реИ, рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ (рдореЗрд░реЗ рдкрд╛рд╕ 20 рд╣реИ), рддреЛ рдЗрди рдЖрдИрдкреАрдУрдВ рдХреЛ iptables рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред

рдореИрдВрдиреЗ рдХрд╛рдо рдХреЗ рдкреВрд░реЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИрдВ, рдФрд░ рдореЗрд░реА рдЕрдХреНрд╖рдорддрд╛ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рдерд╛ рдХрд┐ рдХрд╣рд╛рдВ рдФрд░ рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдЕрдм рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдЬрд╣рд╛рдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрдЧреА
 mkdir /usr/local/ddos 

рдЗрд╕рдореЗрдВ рд╣рдо ddos.sh рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдмрджрд▓рддреЗ рд╣реИрдВ:
 chmod 0755 /usr/local/ddos/ddos.sh 

рдЗрд╕реЗ рд▓рд┐рдЦреЗрдВ:

 #!/bin/sh #          ddos.iplist   tmp netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n > /tmp/ddos.iplist #     cat /dev/null > /tmp/iptables_ban.sh #  DROP   50    awk '{if ($1 > 20) {print "/sbin/iptables -I INPUT -p tcp --dport 80 -s " $2 " -j DROP" }}' /tmp/ddos.iplist >> /tmp/iptables_ban.sh #      ,        iptables echo "/sbin/iptables -L INPUT -v -n > /tmp/iptables.log" >> /tmp/iptables_ban.sh #     bash /tmp/iptables_ban.sh #    cat /dev/null > /var/log/ddos/error.log [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` 


рд╡рд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рд╣реИред рдЕрдм crontab рдЪрд▓рд╛рдПрдВ, рдореБрдЭреЗ рдХрдорд╛рдВрдб рдкрд╕рдВрдж рд╣реИ:
 EDITOR=mcedit crontab -e 

рдпрд╛ рдмрд╕
 crontab -e 

рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдирдпрд╛ рдХрд╛рд░реНрдп рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рд╣рд░ 10 рдорд┐рдирдЯ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ:
 */10 * * * * /bin/sh /usr/local/ddos/ddos.sh 


рдореИрдВрдиреЗ nginx`a рд╕реЗ /etc/logrotate.d/nginx рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЙрдЧ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЛ рднреА рдмрджрд▓ рджрд┐рдпрд╛ рддрд╛рдХрд┐ рдорд▓реНрдЯреА-рдЧрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рди рдмрдиреЗрдВ
 /var/log/nginx/*.log { daily size 20M missingok rotate 150 compress delaycompress notifempty create 640 root adm sharedscripts postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` endscript } 


рдФрд░ рд╣рд░ рдШрдВрдЯреЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдореБрдХреБрдЯ рдореЗрдВ рдПрдХ рдФрд░ рдХрд╛рд░реНрдп рд▓рд┐рдЦрд╛
 0 * * * * /usr/sbin/logrotate /etc/logrotate.conf 


рдЦреИрд░, рдЕрдзрд┐рдХ рдЖрд░рд╛рдо рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рджрд┐рди рдореЗрдВ рдПрдХ рдмрд╛рд░, рдлрд┐рд░ рд╕реЗ рдореБрдХреБрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛:
 0 4 * * * /sbin/reboot 


Crontab -l рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдиреМрдХрд░реА рд╕реВрдЪреА рдЙрддреНрдкрд╛рджрди:
 */10 * * * * /bin/sh /usr/local/ddos/ddos.sh 0 * * * * /usr/sbin/logrotate /etc/logrotate.conf 0 4 * * * /sbin/reboot 


рдореИрдВрдиреЗ рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рддрд╣рдд рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзреАрди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рд╕реЗ рдкрд╣рд▓реЗ рд░реВрдЯ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ:
 */10 * * * * root /bin/sh /usr/local/ddos/ddos.sh 


рдЙрд╕рдиреЗ рд╕рднреА рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рд░рдкреЗрдХреНрд╖ рдмрдирд╛ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реНрдг рдкрде рдХреЗ рдмрд┐рдирд╛ рд╕рднреА рдЯреАрдореЛрдВ рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдХреГрдкрдпрд╛ рдХреЛрдб рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рди рджреЗрдЦреЗрдВ, рдЬреИрд╕реЗ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЦреБрдж рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдХрд┐рдпрд╛ рдерд╛)

Source: https://habr.com/ru/post/In204508/


All Articles