Konfiguriranje in zavarovanje strežnika Debian Linux: 2. del
Spletna agencija » Digitalne novice » Zaščita in spremljanje strežnika Debian Linux

Zaščita in spremljanje strežnika Debian Linux

Najprej se bomo lotili varnosti strežnika! Bistveno je, da se zaščitite z najmanj skripti, ki romajo po omrežju in iščejo majhen stroj, kot je naš, za preoblikovanje v botnet.

požarni zid

Eternetna kartica strežnika je neposredno povezana z internetom. Zato je strežnik sam tisti, ki deluje kot požar. Za to poglavje predlagam, da dobite preprost skript, ki ga bomo namestili. To deluje na naslednji način:

  • Blokiramo ves dohodni promet
  • Odhodni promet pustimo prost. Natakar gre kamor hoče.
  • Pooblastimo ping
  • Preprečite sin flood
  • Preprečite skeniranje vrat
  • Končno odprete dve osnovni storitvi: SSH in HTTP

Ta skript boste morali spremeniti, ko bo nova storitev implementirana na vašem računalniku. Za to morate poznati vrata poslušanja in protokol (TCP in/ali UDP).

Če ste na primer namestili strežnik za glasovni klepet, kot je mumble, posluša vrata 64738 v TCP in UDP. Nato morate v skript dodati naslednje vrstice

Skratka, ne dam več razlage. V Googlu boste našli tisto, kar potrebujete, ko boste to potrebovali.

Namestili smo skript. Če že nimate nameščenega GIT-a, ga morate vnesti

Dobimo kodo

Postavimo se v datoteko

Skript kopiramo v init.d

Naredimo ga izvedljivo

Postavimo ga ob zagonu

In končno ga lansiramo

Zaščita proti vdorom

Stroji, ki so izpostavljeni internetu, so nenehno tarča poskusov brutalne sile in napadov DOS. Da se zaščitimo, bomo postavili majhen program, imenovan Fail2Ban.

Kot opomnik, Fail2Ban je program, napisan v pythonu in je na voljo v večini repozitorijev Linuxa, katerega cilj je preprečiti napade s surovo silo. Fail2ban bere dnevnike iz različnih strežnikov (SSH, Apače, FTP…) Če želite preveriti ponavljajoče se napake pri preverjanju pristnosti in dodati pravilo iptables za prepoved izvornega naslova IP.

namestitev

Za pravilno uporabo Fail2Ban je treba narediti več sprememb:

  • Fail2ban se mora zagnati PO skriptu požarnega zidu v initd. Kako to storiš? spremeniti morate skript /etc/init.d/fail2ban in dodati ime skripta požarnega zidu v oznake LSB v Required-Start. Torej, če je skript požarnega zidu v svojih oznakah LSB imenovan "myfirewall", bi morale oznake LSB fail2ban izgledati takole:

  • Privzeto so zapori fail2ban nekoliko preveč permisivni, spremeniti jih je treba tako, da je število poskusov manjše in čas prepovedi daljši. To se zgodi v /etc/fail2ban/jail.conf, tukaj je primer conf:

  • V tej isti konfiguracijski datoteki bomo spremenili kontaktni e-poštni naslov

  • In končno, še vedno v tej konfiguracijski datoteki, spremenimo privzeto dejanje, tako da Fail2Ban pošlje e-pošto s popolnim poročilom o prepovedanem naslovu.

  • Težava pri fail2ban je, da ne vztraja pri prepovedanih ip-jih… Ko ponovno zaženemo, so slabi fantje v redu in jim je spet odprta vrstica. Če želite obdržati prepovedane ips, morate spremeniti datoteko /etc/fail2ban/action.d/iptables-multiport.conf, ki določa (med drugim) dejanja v primeru prepovedi in v primeru zagona fail2ban. V primeru prepovedi dodamo ip v besedilno datoteko. Na začetku fail2ban preberemo to besedilno datoteko in prepovemo vse IP-je, ki jih vsebuje.

  • Druga dobra stvar, če imate več strežnikov, je, da veste, kdo pošilja pošto. Za to uredimo datoteko /etc/fail2ban/action.d/sendmail-whois-lines.conf. Kar se mene tiče, sem za 3 dejanja (actionstart, actionstop in actionban) spremenil vrednost med oglatimi oklepaji, kjer je zapisano »[Fail3Ban]« z imenom mojega strežnika.

Privzeto je aktiven samo zapor SSH. Na koncu konfiguracijske datoteke /etc/fail2ban/jail.conf boste našli vnaprej konfiguriran seznam zapornikov. Če jih želite aktivirati, morate samo spremeniti stanje spremenljivke »omogočeno«. Če na primer naknadno namestimo spletni strežnik, bomo tako aktivirali ustrezen zapor

Ostaja le še ponovni zagon programa, da se upoštevajo spremembe

Zaščita pri skeniranju vrat

To je eden od prvih korakov za vdor v stroj na internetu: skeniranje vrat.

Ta tehnika je sestavljena iz skeniranja odprtih vrat na ciljnem stroju. Vsako od njegovih vrat ustreza dostopnim storitvam. Heker lahko nato v eni od zadevnih storitev poišče napako za vdor v vaš sistem. Izvedli bomo orodje za preprečevanje tega skeniranja.

Namestitev portsentry

Konfiguracija se izvede v datoteki /etc/portsentry/portsentry.conf. Tukaj vam pokažem samo vrstice za spreminjanje

Znova zaženemo storitev, da upoštevamo

Test iz odjemalca Linux. Bodite previdni, ta ukazna vrstica bo prepovedala IP, ki je povzročil napad.

Za odstranitev prepovedi odstranimo cesto.

Nato uredimo datoteko /etc/hosts.deny in izbrišemo vrstico z ustreznega ip-ja, ki je videti takole

Strežnik je trenutno dovolj zaščiten. Drugi zaščitni ukrepi bodo vzpostavljeni, ko bo storitev vzpostavljena.

Prešli bomo na zadnji korak konfiguracije strežnika: spremljanje.

V tej fazi strežnik deluje dobro in ima minimalno varnost. Toda kaj se zgodi, če iz nekega razloga ena od storitev pade? V tem zadnjem poglavju se bomo osredotočili na del spremljanja strežnika.

Spremljanje in nadzor trdega diska

Trdi disk je osrednji organ namenskega strežnika. Sčasoma se lahko pojavijo majhna poslabšanja, ki vodijo do izgube podatkov ali nestabilnosti sistema.

Če imate tako kot jaz strežnik Kimsufi pri OVH, morate vedeti, da ste odgovorni za spremljanje trdega diska naprave. V primeru okvare slednjega boste morali obvestiti gostitelja, da bo lahko zamenjal del.

Ideja je torej preveriti stanje strežniškega diska, da bi diagnosticirali morebitno težavo, ki bi lahko vodila do preventivne zamenjave diska. Za to bomo uporabili protokol SMART. SMART je tehnologija, ki je implementirana v trde diske in tako omogoča nenehno zbiranje informacij o zdravju opreme.

Kot običajno se namestitev izvede prek upravitelja paketov

Disk bomo identificirali z ukazom fdik -l.

fdisk

Disk je torej nda. Običajno je to sda, če imate v strežniku samo en disk.

Hiter majhen ročni test

Naročilo se mora vrniti

Če ukaz ne vrne "PASSED", pomeni, da disk poda orožje v levo.

Zdaj bomo preverili, kaj je izvedljivo s SMART-om vašega diska.

Kar daje za disk mojega osebnega strežnika

pametne sposobnosti

Zanimiva vrstica je “Self-test supported”. Pogon lahko samostojno diagnosticira.

Ta vrstica vam daje tudi predstavo o predvidenih časih testiranja. Za kratek test (kratek) je v mojem primeru minuta. 43 minut za dolgo (podaljšano).

Začeli bomo samo s hitrim testom

Rezultat nas prosi, da počakamo minuto.

Na koncu te minute si lahko ogledamo rezultat z ukazom:

Kdo nam daje

=== ZAČETEK RAZDELKA BRANJE PAMETNIH PODATKOV ===
SMART Revizija strukture dnevnika za samotestiranje številka 1
Število Test_Description Status Preostala življenjska doba (ure) LBA_of_first_error
# 1 Kratke hlače brez povezave Opravljeno brez napak 00 % 8867 -
# 2 Kratke hlače brez povezave Opravljeno brez napak 00 % 8863 -

Opravljeno brez napak, tako da je vse v redu! Skratka, to je bil ročni del, da se prepričam, da je vse v redu. Zdaj bomo malo avtomatizirali. Lažje ne bi moglo biti. Smartmontools ima lastnega demona, ki ga morate samo prilagoditi.

Da bi se demon zagnal ob zagonu strežnika, odpakiramo naslednjo vrstico v datoteki / etc / default / smartmontools

Nato uredimo datoteko /etc/smartd.conf.

Ukažemo privzeto vrstico.

Dodamo svoj zapis.

Razlaga parametrov

-a: Spremljajte zdravje diska

-d: Določite vrsto diska

-o: Preizkus brez povezave

-S: Samodejno shranjevanje

-m: naslov ali pošljite opozorilno e-pošto

-M: v testnem načinu, da takoj preverite, ali je pošiljanje pošte v redu

Program zaženemo, da upoštevamo spremembe.

Prejeli bomo testno e-pošto

mail_test_smartmontools

Vse je v redu, ponovno uredimo konfiguracijsko datoteko, da zamenjamo parameter -M takole

Začnemo znova, da upoštevamo in je konec. Naslednje e-poštno sporočilo, ki ga prejme od njega, je treba upoštevati, ker bo to pomenilo, da obstaja težava z diskom.

Majhen nadzor

Pravim "majhen", ker je v smislu nadzora na Linuxu težka artilerija (nagios, centreon, skinken, itd...). Tukaj bomo samo postavili majhno orodje v obliki skripte, ki je nameščeno v cron in se imenuje MotdStat.

Ta mali program naredi dve stvari:

  • Nadziranje majhnega strežnika z e-poštnimi opozorili
  • Pokaži nekaj konstant na ssh povezavi

Tukaj je majhna ideja o tem, kaj orodje ponuja kot prikaz za povezavo SSH

motdstat

Program ni na voljo v uradnih repozitorijih. Tukaj morate dobiti arhiv s spletnega mesta. Če ga želite namestiti, morate prevesti vire.

Testirati

Sporočilo se nato ustvari v datoteki / etc / motd in se mora pojaviti po prijavi v SSH povezavo.

Ta ista ukazna vrstica je dodana v crontab, da se avtomatizira generiranje, na primer vsakih 5 minut.

Uredite crontab

Dodajte naslednjo vrstico in zaprite datoteko

Vsakih 5 minut bo datoteka / etc / motd (motd = sporočilo dneva) posodobljena z najnovejšimi sistemskimi konstantami.

Vsa konfiguracija se zgodi na enem mestu, bodisi v / etc / motdstat, lahko pa navedete naslednje datoteke:

  • fstab_limits : tukaj dodamo particije za spremljanje z omejitvijo, ki jo lahko dosežete pred e-poštnim opozorilom

  • motdstat.conf : Glavna konfiguracija programa. Tu bomo na primer vnesli ciljno e-pošto za opozorila

  • netservice : Nadzor vrat, ki jih je treba poslušati na stroju

  • Postopek : Procesi, ki se morajo izvajati na stroju

Konfiguracijske datoteke so precej preproste, ne bom podrobneje opisal.

V primeru težave, kot je ustavitev storitve ali preseganje praga prostora na disku, vam bo poslano e-poštno sporočilo. V primeru cron zažene skript vsakih 5 minut. Na vas je, da izberete zakasnitev zaznavanja prek vrstice crontab. Upoštevajte pa, da se ob vsakem zagonu skripta v primeru opozorila pošlje e-poštno sporočilo, dokler težave niste rešili.