Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 12603|Risposta: 2

[Linux] Guarda come il mio Linux protegge dagli attacchi SYN

[Copiato link]
Pubblicato su 12/12/2015 00:04:58 | | | |

Quando sono arrivato in azienda stamattina, mi sono sentito piuttosto lento quando ho effettuato l'accesso al sito ufficiale dell'azienda, ho effettuato l'accesso al server per controllare lo stato di accesso del sito ufficiale:

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

     172 FONDAZIONE

     59 COLLEGATI

    589 SYN_RECV

     15 STREAM

Il SYN è in realtà così alto, continua a tracciare il SYN inviato da quegli IP:

[root@tweb ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | Ordina | uniq -c | Ordina -nr | di più

570 x.x.x.x   

(L'IP non è scritto, è un IP di Shandong Zaozhuang Unicom), ma questo singolo IP ha inviato così tante connessioni di richiesta SYN, e la concorrenza del nostro server web non è molto alta, quindi le richieste normali degli utenti non possono essere corrispondenti e la pagina non può essere aperta. Poiché il firewall hardware è gestito dal dipartimento IT del gruppo, non ho autorità, quindi posso prendere solo alcune misure sul server locale per mitigare parzialmente l'attacco SYN.

Prima di tutto, parliamo del principio di attacco di SYN:

Nel protocollo TCP/IP, il protocollo TCP fornisce servizi di connessione affidabili utilizzando una stretta di mano a tre vie per stabilire una connessione.

Prima stretta di mano: Quando si stabilisce una connessione, il client invia un pacchetto syn (syn=j) al server ed entra nello stato SYN_SEND, aspettando la conferma del server.

La seconda stretta di mano: Quando il server riceve il pacchetto SYN, deve confermare il SYN del cliente (ack=j+1) e inviare anche un pacchetto SYN (syn=k), cioè pacchetto SYN+ACK, momento in cui il server entra nello stato SYN_RECV.

Terzo handshake: Il client riceve il pacchetto SYN+ACK dal server e invia il pacchetto di conferma ACK (ack=k+1) al server. Dopo tre strette di mano, client e server iniziano a trasmettere dati.


Se l'utente avvia una richiesta di connessione con il server solo per stringersi la mano per la seconda volta e non risponde al server, il server continuerà ad attendere la conferma dell'utente. Quindi apportiamo le seguenti modifiche direttamente dalla connessione SYN:

Controlla la configurazione SYN predefinita su Linux:

[root@web ~]# sysctl -a | grep _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 è la lunghezza della coda SYN, e aumentare la lunghezza della coda SYN può accogliere più connessioni di rete in attesa di essere connesse. tcp_syncookies è un interruttore per attivare la funzione cookie SYN, che può prevenire attacchi SYN parziali. tcp_synack_retries e tcp_syn_retries definiscono il numero di connessioni di ritentativo per il SYN e riducono i parametri predefiniti per controllare il numero di connessioni SYN il più possibile.

Di seguito sono riportati i parametri che ho modificato, che possono essere modificati in base alla situazione reale del mio server:

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

#!/bin/sh

# Questo scrip{filter}t verrà eseguito *dopo* tutti gli altri scrip{filter}ts di init.

# Puoi mettere qui dentro le tue cose di inizializzazione se non lo fai

# voglio fare tutto il materiale in stile Sys V init.

touch /var/lock/subsys/locale

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

Per far sì che la configurazione entri in vigore immediatamente senza riavviare il server, può essere eseguita

#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

Alcune persone amano usare le liste di controllo accessi per prevenire attacchi SYN, il che rallenta in una certa misura gli attacchi SYN:

Attacco a inondazione sinica

#iptables -A INPUT -p tcp --syn -m limite ---limite 1/s -j ACCETTA

--limite 1/s limita il numero di concorrenza sinologica a 1 volta al secondo

Scansione anti-porta

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST limite --limite 1/s -j ACCETTA

Segnale della morte

# iptables -A FORWARD -p icmp --icmp-type echo-request -m limite ---limite 1/s -j ACCETTA

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

Per vedere, #iptables -L

ACCETTA tcp -- ovunque ovunque ovunque tcp flag: FIN, SYN, RST, ACK/SYN limite: media 1/sec burst 5

ACCETTA tcp -- ovunque ovunque ovunque tcp flag: FIN, SYN, RST, ACK/RST limite: media 1/sec burst 5

ACCETTA icmp -- ovunque ovunque limite richiesta eco ICMP: media 1/s burst 5

Controlla di nuovo la connessione syn:

[root@web ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | Ordina | uniq -c | Ordina -nr | di più

     20 10.92.10.220

      1 125.43.36.199

Ovviamente il numero di connessioni SYN è diminuito.






Precedente:"Mi dispiace, non stai installando un'app autentica, l'installatore non può continuare a eseguire dispositivi"
Prossimo:SC Create crea un servizio di sistema Windows
Pubblicato su 13/12/2015 10:53:04 |
Che sguardo potente
Pubblicato su 14/12/2015 15:55:43 |
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com