Isäntäliiketoiminnassa tai jos isännöit omia palvelimiasi ja paljastat ne Internetille, järjestelmien suojaaminen hyökkääjiä vastaan on oltava etusijalla.
mod_security (avoimen lähdekoodin tunkeutumisen havaitsemis- ja estämismoottori verkkosovelluksille, joka integroituu saumattomasti verkkopalvelimeen) ja mod_evasive ovat kaksi erittäin tärkeää työkalua, joilla voidaan suojata verkkopalvelin raa'alta voimalta tai (D) DoS -hyökkäyksiltä.
mod_evasive, kuten nimestä voi päätellä, tarjoaa väistämättömiä ominaisuuksia hyökkäyksen aikana ja toimii sateenvarjona, joka suojaa verkkopalvelimia tällaisilta uhilta.
Tässä artikkelissa keskustelemme siitä, miten ne asennetaan, määritetään ja otetaan käyttöön Apachen kanssa RHEL/CentOS 8 ja 7 yhtä hyvin kuin Fedora. Lisäksi simuloimme hyökkäyksiä varmistaaksemme, että palvelin reagoi sen mukaisesti.
Tämä edellyttää, että järjestelmään on asennettu LAMP -palvelin. Jos ei, tarkista tämä artikkeli ennen kuin jatkat.
Sinun on myös määritettävä iptables palomuurin oletuskäyttöliittymänä sen sijaan palomuuri jos juokset RHEL/CentOS 8/7 tai Fedora. Teemme tämän voidaksemme käyttää samaa työkalua molemmissa RHEL/CentOS 8/7 ja Fedora.
Aloita pysäyttämällä ja poistamalla käytöstä palomuuri:
# systemctl pysäyttää palomuurin. # systemctl poista palomuuri käytöstä.
Asenna sitten iptables-palvelut paketti ennen käyttöönottoa iptables:
# yum update && yum asentaa iptables-services. # systemctl ottaa iptables käyttöön. # systemctl käynnistää iptables. # systemctl -tilan iptables.
Sen lisäksi, että LAMP -asetus on jo käytössä, sinun on myös tehtävä se Ota EPEL -arkisto käyttöön sisään RHEL/CentOS 8/7 kummankin paketin asentamiseksi. Fedoran käyttäjien ei tarvitse ottaa repoa käyttöön, koska epel on jo osa Fedora -projektia.
# yum update && yum install mod_security mod_evasive CentOS/RHEL 8 # dnf install https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-1.el8.noarch.rpm. # dnf --enablerepo = raven-extras asentaa mod_evasive.
Kun asennus on valmis, löydät molempien työkalujen kokoonpanotiedostot /etc/httpd/conf.d.
# ls -l /etc/httpd/conf.d.
Nyt näiden kahden moduulin integroimiseksi Apache ja anna sen ladata ne käynnistyksen yhteydessä, varmista, että seuraavat rivit näkyvät sivun ylätason osassa mod_evasive.conf ja mod_security.confvastaavasti:
LoadModule evasive20_module modules/mod_evasive24.so. LoadModule security2_module modules/mod_security2.so.
Ota huomioon, että modules/mod_security2.so ja modules/mod_evasive24.so ovat suhteellisia polkuja /etc/httpd hakemistosta moduulin lähdetiedostoon. Voit tarkistaa tämän (ja muuttaa sitä tarvittaessa) luetteloimalla /etc/httpd/modules hakemisto:
# cd/etc/httpd/modules. # pwd. # ls -l | grep -Ei '(kiertävä | turvallisuus)'
Käynnistä sitten Apache uudelleen ja varmista, että se latautuu mod_evasive ja mod_security:
# systemctl käynnistä httpd uudelleen
Vedä ladattujen staattisten ja jaettujen moduulien luettelo.
# httpd -M | grep -Ei '(kiertävä | turvallisuus)'
Muutamalla sanalla, a Ydinsääntö (alias CRS) tarjoaa verkkopalvelimelle ohjeita siitä, miten toimia tietyissä olosuhteissa. Kehittäjäyritys mod_security tarjoaa ilmaisen CRS nimeltään OWASP (Avaa Web -sovellusten suojausprojekti) ModSecurity CRS, joka voidaan ladata ja asentaa seuraavasti.
1. Lataa OWASP CRS tähän tarkoitukseen luotuun hakemistoon.
# mkdir/etc/httpd/crs-tecmint. # cd/etc/httpd/crs-tecmint. # wget -c https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.2.0.tar.gz -Oi mestari.
2. Selvitä CRS tiedosto ja muuta hakemiston nimi.
# tar xzf master. # mv owasp-modsecurity-crs-3.2.0 owasp-modsecurity-crs.
3. Nyt on aika määrittää mod_security. Kopioi mallitiedosto säännöillä (owasp-modsecurity-crs/modsecurity_crs_10_setup.conf.example) toiseen tiedostoon ilman .esimerkki laajennus:
# cd owasp-modsecurity-crs/ # cp crs-setup.conf.esimerkki crs-setup.conf.
ja kerro Apache käyttääksesi tätä tiedostoa yhdessä moduulin kanssa lisäämällä seuraavat rivit verkkopalvelimen päämääritystiedostoon /etc/httpd/conf/httpd.conf tiedosto. Jos valitsit pakkauksen purkamisen toisesta hakemistosta, sinun on muokattava polkuja Sisällytä direktiivit:
Sisällytä crs-tecmint/owasp-modsecurity-crs/crs-setup.conf Sisällytä crs-tecmint/owasp-modsecurity-crs/rules/*. Conf.
Lopuksi on suositeltavaa luoda oma määritystiedosto /etc/httpd/modsecurity.d hakemistoon, johon sijoitamme räätälöidyt direktiivimme (nimeämme sen tecmint.conf seuraavassa esimerkissä) sen sijaan, että muuttaisit CRS tiedostot suoraan. Tämä helpottaa TPJ: ien päivittämistä uusien versioiden julkaisun yhteydessä.
SecRuleEngine Päällä SecRequestBodyAccess Päällä SecResponseBodyAccess Päällä SecResponseBodyMimeType teksti/tavallinen teksti/html-teksti/xml-sovellus/octet-stream SecDataDir/tmp.
Voit viitata SpiderLabsin ModSecurity GitHub arkisto, josta saat täydellisen selittävän oppaan mod_security kokoonpanodirektiivit.
mod_evasive on määritetty käyttämällä direktiivejä in /etc/httpd/conf.d/mod_evasive.conf. Koska paketin päivityksen aikana ei ole päivitettäviä sääntöjä, emme tarvitse erillistä tiedostoa mukautettujen direktiivien lisäämiseksi, toisin kuin mod_security.
Oletusarvo mod_evasive.conf tiedostossa on seuraavat direktiivit käytössä (huomaa, että tätä tiedostoa kommentoidaan voimakkaasti, joten olemme poistaneet kommentit korostaaksesi alla olevat kokoonpanodirektiivit):
DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10.
Selitys direktiiveistä:
Voit kokeilla näitä arvoja, jotta verkkopalvelimesi pystyy käsittelemään tarvittavan määrän ja tyyppistä liikennettä.
Vain pieni varoitus: jos näitä arvoja ei ole asetettu oikein, olet vaarassa estää lailliset vierailijat.
Voit myös harkita muita hyödyllisiä ohjeita:
Jos sinulla on sähköpostipalvelin käynnissä, voit lähettää varoitusviestejä Apachen kautta. Huomaa, että sinun on myönnettävä apache -käyttäjälle SELinux -lupa lähettää sähköpostiviestejä, jos SELinux on asetettu pakottamaan. Voit tehdä sen juoksemalla
# setsebool -P httpd_can_sendmail 1.
Lisää seuraavaksi tämä direktiivi mod_evasive.conf tiedosto muiden direktiivien kanssa:
DOSEmailNotify [sähköposti suojattu]
Jos tämä arvo on asetettu ja sähköpostipalvelimesi toimii oikein, sähköposti lähetetään määritettyyn osoitteeseen aina, kun IP -osoite tulee mustalle listalle.
Tämä vaatii kelvollisen järjestelmäkomennon argumenttina,
DOSSystemCommand
Tämä direktiivi määrittää komennon, joka on suoritettava aina, kun IP -osoite tulee mustalle listalle. Sitä käytetään usein yhdessä komentosarjan komentosarjan kanssa, joka lisää palomuurisäännön estämään kyseisestä IP -osoitteesta tulevat yhteydet.
Kun IP -osoite tulee mustalle listalle, meidän on estettävä siitä tulevat yhteydet. Käytämme seuraavaa komentotiedostoa, joka suorittaa tämän työn. Luo hakemisto nimeltä scripts-tecmint (tai minkä tahansa valitsemasi nimen) /usr/local/bin ja tiedosto nimeltä ban_ip.sh tuossa hakemistossa.
#!/bin/sh. # IP, joka estetään, kuten mod_evasive havaitsee. IP = $ 1. # Täysi polku iptablesiin. IPTABLES = "/sbin/iptables" # mod_evasive -lukitushakemisto. MOD_EVASIVE_LOGDIR =/var/log/mod_evasive. # Lisää seuraava palomuurisääntö (estä kaikki $ IP: stä tuleva liikenne) $ IPTABLES -I INPUT -s $ IP -j DROP. # Poista lukitustiedosto tulevia tarkastuksia varten. rm -f "$ MOD_EVASIVE_LOGDIR"/dos -"$ IP"
Meidän DOSSystemCommand direktiivin pitäisi kuulua seuraavasti:
DOSSystemCommand "sudo /usr/local/bin/scripts-tecmint/ban_ip.sh %s"
Yllä olevalla rivillä %s edustaa rikkovaa IP -osoitetta mod_evasive.
Huomaa, että kaikki tämä ei toimi, ellet anna käyttäjälle käyttöoikeuksia apache suorittaaksemme skriptimme (ja vain sen!) ilman päätelaitetta ja salasanaa. Kuten tavallista, voit vain kirjoittaa visudo pääkäyttäjänä /etc/sudoers tiedosto ja lisää sitten seuraavat 2 riviä alla olevan kuvan mukaisesti:
apache ALL = NOPASSWD: /usr/local/bin/scripts-tecmint/ban_ip.sh. Oletusasetukset: apache!
TÄRKEÄ: Oletussuojakäytännönä voit suorittaa vain sudo terminaalissa. Koska tässä tapauksessa meidän on käytettävä sudo ilman tty, meidän on kommentoitava seuraavassa kuvassa korostettu rivi:
#Oletusarvot edellyttävät kauniita.
Käynnistä lopuksi verkkopalvelin uudelleen:
# systemctl käynnistä httpd uudelleen.
On olemassa useita työkaluja, joiden avulla voit simuloida ulkoista hyökkäystä palvelimellesi. Voit vain googlettaa "työkaluja ddos -hyökkäysten simulointiin”Löytää useita niistä.
Huomaa, että sinä ja vain sinä olet vastuussa simulaatiosi tuloksista. Älä edes ajattele simuloidun hyökkäyksen käynnistämistä palvelimelle, jota et isännöi omassa verkossa.
Jos haluat tehdä saman jonkun muun isännöimän VPS: n kanssa, sinun on varoitettava isännöintipalveluntarjoajaasi asianmukaisesti tai pyydettävä lupa, että tällainen liikennetulva kulkee heidän verkkojensa läpi. Tecmint.com ei ole missään tapauksessa vastuussa teoistasi!
Lisäksi simuloidun DoS-hyökkäyksen käynnistäminen vain yhdeltä isännältä ei ole todellinen hyökkäys. Jotta voit simuloida tällaista, sinun on kohdistettava palvelimesi useilta asiakkailta samanaikaisesti.
Testiympäristömme koostuu a CentOS 7 palvelin [IP 192.168.0.17] ja Windows -isäntä, josta aloitamme hyökkäyksen [IP 192.168.0.103]:
Toista alla oleva video ja seuraa yksinkertaisessa DoS -hyökkäyksessä esitettyjä järjestyksiä:
Sitten iptables estää loukkaavan IP: n:
Kanssa mod_security ja mod_evasive käytössä, simuloitu hyökkäys aiheuttaa prosessori ja RAM kokeilla tilapäistä käyttöhuippua vain muutaman sekunnin ajan, ennen kuin lähde -IP -osoitteet ovat mustalla listalla ja palomuuri estää ne. Ilman näitä työkaluja simulaatio varmasti kaataa palvelimen erittäin nopeasti ja tekee siitä käyttökelvottoman hyökkäyksen aikana.
Haluaisimme kuulla, aiotko käyttää (tai olet käyttänyt) näitä työkaluja. Odotamme aina kuulevamme sinusta, joten älä epäröi jättää kommenttisi ja mahdolliset kysymyksesi alla olevan lomakkeen avulla.
https://www.modsecurity.org/