Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 12603|Svar: 2

[linux] Se, hvordan min linux beskytter mod SYN-angreb

[Kopier link]
Opslået på 12/12/2015 00.04.58 | | | |

Da jeg ankom til virksomheden i morges, følte jeg mig ret langsom, da jeg loggede ind på virksomhedens officielle hjemmeside, loggede ind på serveren for at tjekke adgangsstatus på den officielle hjemmeside:

[root@web ~]# netstat -anp |awk '{print $6}'|sort|uniq -c |sort -rn

     172 GRUNDLAGT

     59 CONNECTED

    589 SYN_RECV

     15 STREAM

SYN er faktisk så høj, fortsæt med at spore den SYN, der sendes af de IP'er:

[root@tweb ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | Uniq -c | sort -nr | mere

570 x.x.x.x   

(IP'en er ikke skrevet, det er en IP til Shandong Zaozhuang Unicom), men denne ene IP har sendt så mange SYN-anmodningsforbindelser, og samtidig tilstedeværelse af vores webserver er ikke særlig høj, så normale brugeranmodninger kan ikke besvares, og siden kan ikke åbnes. Fordi hardware-firewallen administreres af gruppens IT-afdeling, har jeg ingen myndighed, så jeg kan kun tage nogle foranstaltninger på den lokale server for delvist at afbøde SYN-angrebet.

Først og fremmest, lad os tale om angrebsprincippet i SYN:

I TCP/IP-protokollen leverer TCP-protokollen pålidelige forbindelsestjenester ved at bruge et trevejs-håndtryk til at etablere en forbindelse.

Første håndtryk: Når en forbindelse etableres, sender klienten en syn-pakke (syn=j) til serveren og går ind i SYN_SEND-tilstanden, mens den venter på, at serveren bekræfter.

Det andet håndtryk: Når serveren modtager SYN-pakken, skal den bekræfte kundens SYN (ack=j+1) og også sende en SYN-pakke (syn=k), det vil sige SYN+ACK-pakke, hvorefter serveren går ind i SYN_RECV-tilstanden.

Tredje håndtryk: Klienten modtager SYN+ACK-pakken fra serveren og sender bekræftelsespakken ACK (ack=k+1) til serveren. Efter tre håndtryk begynder klienten og serveren at sende data.


Hvis brugeren indleder en forbindelsesanmodning med serveren for at give hånd for anden gang og ikke svarer serveren, vil serveren fortsætte med at vente på brugerens bekræftelse. Så vi foretager følgende ændringer direkte fra SYN-forbindelsen:

Tjek standard SYN-konfigurationen i Linux:

[root@web ~]# sysctl -a | greb _syn

net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_synack_retries = 5

net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog er længden af SYN-køen, og en forøgelse af SYN-køen kan rumme flere netværksforbindelser, der venter på at blive forbundet. tcp_syncookies er en kontakt, der tænder for SYN-cookiefunktionen, som kan forhindre delvise SYN-angreb. tcp_synack_retries og tcp_syn_retries definerer antallet af genopsamlingsforbindelser for SYN'en og reducerer standardparametrene for at kontrollere antallet af SYN-forbindelser så meget som muligt.

Følgende er de parametre, jeg har ændret, som kan justeres alt efter den faktiske situation på min server:

[root@web ~]# mere /etc/rc.d/rc.local

#!/bin/sh

# Dette scrip{filter}t vil blive udført *efter* alle de andre init scrip{filter}ts.

# Du kan lægge dine egne initialiseringsting her, hvis du ikke gør

# vil lave det fulde Sys V-stil init-ting.

tryk /var/lock/subsys/local

ulimit -HSn 65535

/usr/local/apache2/bin/apachectl start

#####

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_synack_retries=3

sysctl -w net.ipv4.tcp_syn_retries=3

For at konfigurationen kan træde i kraft straks uden at genstarte serveren, kan den udføres

#sysctl -w net.ipv4.tcp_max_syn_backlog=2048

#sysctl -w net.ipv4.tcp_syncookies=1

#sysctl -w net.ipv4.tcp_synack_retries=3

#sysctl -w net.ipv4.tcp_syn_retries=3

Nogle kan lide at bruge adgangskontrollister til at forhindre SYN-angreb, hvilket bremser SYN-angreb til en vis grad:

Syn-floodangreb

#iptables -A INPUT -p tcp --syn -m grænse --grænse 1/s -j ACCEPTER

--begrænser 1/s begrænser antallet af syn-samtidighed til 1 gang per sekund

Anti-port scanning

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m grænse --limit 1/s -j ACCEPTER

Dødens ping

# iptables -A FORWARD -p icmp --icmp-type echo-request -m grænse --grænse 1/s -j ACCEPTER

#>iptables-save >/etc/sysconfig/iptables

For at se, #iptables -L

ACCEPTER TCP -- hvor som helst hvor som helst TCP-flag: FIN,SYN,RST,ACK/SYN grænse: gennemsnit 1/sek burst 5

ACCEPTER TCP – hvor som helst hvor som helst TCP-flag: FIN,SYN,RST,ACK/RST grænse: gennemsnit 1/sek burst 5

ACCEPTER icmp -- hvor som helst hvor som helst icmp ekkoanmodningsgrænse: gennemsnit 1/sek burst 5

Tjek syn-forbindelsen igen:

[root@web ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | Uniq -c | sort -nr | mere

     20 10.92.10.220

      1 125.43.36.199

Antallet af SYN-forbindelser er åbenlyst faldet.






Tidligere:"Beklager, du installerer ikke en ægte app, installatøren kan ikke fortsætte med at udføre discuz"-løsning
Næste:SC Create opretter en Windows-systemtjeneste
Opslået på 13/12/2015 10.53.04 |
Sikke et stærkt look
Opslået på 14/12/2015 15.55.43 |
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com