Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 12603|Vastaus: 2

[linux] Katso, miten Linuxini suojaa SYN-hyökkäyksiltä

[Kopioi linkki]
Julkaistu 12.12.2015 0.04.58 | | | |

Kun saavuin yritykselle tänä aamuna, tunsin oloni melko hitaaksi, kun kirjauduin yrityksen viralliselle verkkosivustolle, kirjauduin palvelimelle tarkistaakseni virallisen verkkosivuston käyttöoikeuden:

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

     172 PERUSTETTU

     59 YHDISTETTY

    589 SYN_RECV

     15 VIRTA

SYN on itse asiassa niin korkea, että jatka näiden IP-osoitteiden lähettämän SYN:n jäljittämistä:

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

570 x.x.x.x   

(IP-osoite ei ole kirjoitettu, se on Shandong Zaozhuang Unicomin IP), mutta tämä yksi IP on lähettänyt niin monta SYN-pyyntöyhteyttä, ja verkkopalvelimemme samanaikaisuus ei ole kovin suuri, joten tavallisia käyttäjäpyyntöjä ei voida vastata eikä sivua voi avata. Koska laitteistopalomuuria hallinnoi ryhmän IT-osasto, minulla ei ole valtuuksia, joten voin tehdä vain joitakin toimenpiteitä paikallisella palvelimella osittain SYN-hyökkäyksen lieventämiseksi.

Ensiksi puhutaan SYN:n hyökkäysperiaatteesta:

TCP/IP-protokollassa TCP-protokolla tarjoaa luotettavia yhteyspalveluita käyttämällä kolmisuuntaista kädenpuristusta yhteyden muodostamiseen.

Ensimmäinen kättely: Yhteyden muodostamisessa asiakas lähettää syn-paketin (syn=j) palvelimelle ja siirtyy SYN_SEND-tilaan, odottaen palvelimen vahvistusta.

Toinen kättely: Kun palvelin vastaanottaa SYN-paketin, sen on vahvistettava asiakkaan SYN (ack=j+1) ja lähetettävä myös SYN-paketti (syn=k), eli SYN+ACK-paketti, jolloin palvelin siirtyy SYN_RECV-tilaan.

Kolmas kättely: Asiakas vastaanottaa palvelimelta SYN+ACK-paketin ja lähettää vahvistuspaketin ACK (ack=k+1) palvelimelle. Kolmen kättelyn jälkeen asiakas ja palvelin alkavat lähettää dataa.


Jos käyttäjä aloittaa yhteyspyynnön palvelimelle vain kättelläkseen toistamiseen eikä vastaa palvelimelle, palvelin odottaa käyttäjän vahvistusta. Teemme siis seuraavat muutokset suoraan SYN-yhteydestä:

Tarkista oletus-SYN-asetus Linuxissa:

[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 on SYN-jonon pituus, ja SYN-jonon pituuden kasvattaminen voi mahdollistaa enemmän verkkoyhteyksiä, jotka odottavat yhdistämistä. tcp_syncookies on kytkin, jolla SYN-evästetoiminto voidaan kytkeä päälle, mikä voi estää osittaiset SYN-hyökkäykset. tcp_synack_retries ja tcp_syn_retries määrittelevät SYN:n uudelleenyritysyhteyksien määrän ja vähentävät oletusparametreja hallitakseen SYN-yhteyksien määrää mahdollisimman paljon.

Seuraavat ovat parametrit, joita olen muuttanut ja joita voi muokata palvelimeni todellisen tilanteen mukaan:

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

#!/bin/sh

# Tämä scrip{filter}t suoritetaan *kaikkien muiden init scrip{filter}t:ien jälkeen.

# Voit laittaa omat alustustavarasi tänne, jos et tee sitä

# haluan tehdä täyden Sys V -tyylisen init-jutun.

kosketa /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

Jotta konfiguraatio astuisi voimaan välittömästi ilman palvelimen uudelleenkäynnistystä, se voidaan suorittaa

#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

Jotkut käyttävät pääsynhallintalistoja estääkseen SYN-hyökkäyksiä, mikä hidastaa SYN-hyökkäyksiä jonkin verran:

Syn flood -hyökkäys

#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

--limit 1/s rajoittaa syn samanaikaisuuden määrän yhteen kertaan sekunnissa

Anti-port skannaus

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j HYVÄKSY

Kuoleman ping

# iptables -A FORWARD -p icmp --icmp-tyyppinen kaikupyyntö -m limit --limit 1/s -j ACCEPT

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

Katsoa, #iptables -L

HYVÄKSY tcp -- missä tahansa missä tcp liputtaa: FIN, SYN, RST, ACK/SYN raja: keskimäärin 1/sekunti burst 5

HYVÄKSY tcp -- missä tahansa missä tcp liputtaa: FIN, SYN, RST, ACK/RST raja: keskimäärin 1/sekunti burst 5

HYVÄKSY icmp -- missä tahansa missä tahansa icmp echo-request -rajoitus: keskimäärin 1/sekunti burst 5

Tarkista syn-yhteys uudelleen:

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

     20 10.92.10.220

      1 125.43.36.199

Tietenkin SYN-yhteyksien määrä on vähentynyt.






Edellinen:"Valitettavasti et asenna aitoa sovellusta, asennusohjelma ei voi jatkaa discuzin suorittamista" kiertotie
Seuraava:SC Create luo Windows-järjestelmäpalvelun
Julkaistu 13.12.2015 10.53.04 |
Mikä voimakas katse
Julkaistu 14.12.2015 15.55.43 |
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com