Server absichern: Linux und Co. richtig konfigurieren
Serveri turvaline konfigureerimine on administraatorite üks olulisemaid ülesandeid. See kehtib nii isehaldatavate serverite kui ka renditud riistvara puhul. Sellised meetmed nagu paroolikaitse, tugevad SSH-seaded ja regulaarne tarkvarauuendamine moodustavad tervikliku turvapaketi.
Kes vastutab turvalise serveri konfigureerimise eest?
Oma serveri haldamine pakub konfiguratsiooni osas maksimaalset vabadust. Sobivaks alternatiiviks on juurkasutajaõigustega serverid, mida paljud teenusepakkujad pakuvad ja mis annavad juurkasutajaõigused. Mõlemal juhul lasub vastutus selliste oluliste ülesannete eest nagu paigaldamine, struktuuri loomine ja hooldus täielikult rentijal. Vead juurkasutajaõigustega serveri haldamisel võivad põhjustada tõsiseid probleeme. Õigete protseduuride järgimine loob aga ideaalse aluse usaldusväärse, suure jõudlusega ja turvalise serveri jaoks.
Kuidas oma serverit samm-sammult turvaliseks muuta
Sõltumata sellest, kas soovite turvata Windows-, Ubuntu- või Debian-serverit, aitavad mitmed üldised sammud luua tugeva turvalisuse aluse. Allpool on kokku võetud kõige olulisemad sammud.
1. samm: Viige läbi minimaalne installatsioon
Juba enne, kui hakkate rakendama kaitsemeetmeid ja seadistama oma serverit, saate mõjutada oma projekti tulevast turvalisust. Sõltumata sellest, kas kasutate Windows- või Linux-operatsioonisüsteemi, järgige paigaldamise ajal järgmist põhimõtet: teie server peaks sisaldama ainult seda tarkvara, mida on vaja selle ülesannete täitmiseks.
Põhjuseks on see, et iga installitud rakendus kujutab endast potentsiaalset turvariski ja võib mõjutada süsteemi jõudlust negatiivselt. Haavatavuste vähendamiseks installige ainult vajalikud süsteemikomponendid ja kasutage ainult kontrollitud kolmandate osapoolte tarkvara.
2. samm: Määra tugev parool
Pärast installimist peaksite esimesena määrama tugeva admin-parooli (Windows) või root-parooli (Linux). Vaikimisi pole parooli määratud, mistõttu jääb administraatori konto blokeerituks, kuni te parooli sisestate. Enamik operatsioonisüsteeme palub teil kohe pärast installimist luua parooliga konto, mida kasutatakse administraatori või root-kasutajana sisselogimiseks.
Kui olete rentinud Linuxi serveri teenusepakkujalt ja saanud olemasoleva root-kasutajanime, vahetage parool kohe ära. Logige serverisse sisse SSH kaudu ja sisestage terminali järgmine käsk:
passwdbashPärast turvalise parooli seadistamist tuleb see kinnitada. Valige võimalikult pikk parool, mis sisaldab nii tähti, erimärke kui ka numbreid. Samuti on soovitatav kasutada paroolihaldurit, et parooli turvaliselt salvestada ja vajaduse korral hõlpsasti kätte saada.
3. samm: SSH-pordi muutmine
Vaikimisi kasutab SSH-juurdepääs TCP/UDP-porti 22, mis on süsteemi paigaldamise käigus eelnevalt seadistatud. Häkkerid suunavad oma automatiseeritud sisselogimiskatseid sageli just sellele portile. Volitamata juurdepääsu riski vähendamiseks määrake krüpteeritud kaugühenduste jaoks teine port.
Selleks redigeeri SSH-i konfiguratsioonifaili sshd_config mõne tekstiredaktori abil. Näiteks nano-redaktori kasutamiseks käivita järgmine käsk:
nano /etc/ssh/sshd_configbashOtsi rida, mille pealkiri on „Port“, ja asenda portinumber 22 soovitud numbriga. Pane tähele, et erinevate teenuste jaoks on reserveeritud mitmed teised standardportid (nt port 80 HTTP-le).
Enne kui failis sshd_config tehtud muudatused jõustuvad, tuleb SSH-teenus uuesti käivitada. Debianis saab seda teha käsuga etc/init.d/ssh restart. Ubuntu kasutajad peaksid teenuse uuesti käivitama käsuga service ssh restart.
4. samm: Keela SSH-sisselogimine administraatori kontode puhul
Serveri turvalisuse täiendamiseks on soovitatav keelata SSH-sisselogimine root- või administraatori kontol. Vastasel juhul, kui ründaja saab parooli kätte, võib ta seda kontot kasutada kaugjuurdepääsuks.
Enne selle meetme rakendamist veenduge, et oleks olemas vähemalt üks teine konto, millega saab serveriga ühendust luua, et vältida enda väljalukustamist. Linuxi süsteemides looge selline konto järgmise käsuga:
useradd -g users -d /home/user1 -m -s /bin/bash user1bashSee loob näidiskasutajakonto nimega „user1”. Seejärel määra kontole turvaline parool:
passwd user1bashKontrollige, kas loodud kasutajakontoga sisselogimine toimib. Kui see õnnestub, jätkake põhiülesandega: root-konto keelamine. Avage SSH-konfiguratsioonifail sshd_config uuesti oma eelistatud tekstiredaktoris. Leidke kirje PermitRootLogin yes ja asendage see PermitRootLogin no. Pärast SSH-teenuse taaskäivitamist ei ole root-konto kaugjuurdepääs enam võimalik.
Konfiguratsioonifaili AllowGroups kirje abil saate määrata ka, millistel kasutajatel on lubatud SSH-ühendus luua. Selleks looge lihtsalt grupp (addgroup) ja lisage sellesse soovitud kasutajad (adduser). Seejärel märkige valitud grupi nimi lahtrisse sshd_config (nt AllowGroups ssh_users).
5. samm: SSH-sisselogimiste kohta e-posti teavituste seadistamine
Sõltumata sellest, milliseid konkreetseid meetmeid te SSH-juurdepääsu turvalisuse tagamiseks võtate, peaksite pärast seda pidevalt jälgima kõiki kaugjuurdepääsu tegevusi. See tagab, et saate veenduda, et teie serveri SSH-teenus on nõuetekohaselt turvatud, ning avastada volitamata juurdepääsukatseid varakult, mis võimaldab teil asjakohaselt reageerida. Lihtne shell-skript võib pärast iga edukat kaugjuurdepääsu teie serverile saata automaatselt teavituse teie e-posti aadressile.
Siin on näidisskript /opt/shell-login.sh Linuxile, mille saad ise lihtsalt koostada:
#!/bin/bash
echo "Login on $(hostname) on $(date +%Y-%m-%d) at $(date +%H:%M)"
echo "User: $USER"
echo
fingertxtSeejärel lisage faili /etc/profile järgmine rida:
/opt/shell-login.sh | mailx -s "SSH login on the server" youremail@example.comtxtSee sissekanne tagab, et skript käivitatakse ja saadetakse teavituskiri määratud aadressile iga kord, kui toimub SSH-sisselogimine. Selleks tuleb skriptile määrata õigused 755 (lugemis- ja käivitamisõigused kõigile kasutajatele ning kirjutusõigused omanikule). Saate need õigused määrata järgmise käsuga:
chmod 755 /opt/shell-login.shbash6. samm: Blokeeri kasutamata pordid
Avatud pordid ei kujuta endast üldjuhul märkimisväärset turvariski, kuna need on vajalikud suhtlemiseks erinevate teenuste ja rakendustega. Näiteks on pordid 80 ja 443 vajalikud HTTP- ja HTTPS-ühenduste jaoks, samuti teie valitud SSH-port. Need liidesed võivad aga muutuda turvaaukudeks, kui nendega seotud programmid sisaldavad turvaprobleeme, mida ründajad võivad ära kasutada.
Kui olete teinud minimaalse süsteemiinstallatsiooni ja paigaldanud vaid piiratud arvu kolmandate osapoolte rakendusi, peaks vajalike lisaportide arv olema väike. Serveri rünnakute eest kaitsmiseks peaksite tulemüüri seadetes blokeerima kõik mittevajalikud avatud pordid. Enamik suuremaid operatsioonisüsteeme sisaldab vaikimisi pakettfiltreerimistarkvara, näiteks iptables. Selle tööriistaga saate määrata reegleid andmeliikluse reguleerimiseks, sealhulgas lubatud ja blokeeritud pordid.
7. samm: Uuendage tarkvara regulaarselt
Rakendusteteadaolevad turvaaugud kõrvaldatakse tavaliselt kiiresti uuenduste abil. Jälgides oma operatsioonisüsteemi ja installitud rakenduste uuendusi ning paigaldades need viivitamatult, tagate oma serverile optimaalse kaitse. Enamik serverisüsteeme pakub ka funktsioone, mis laadivad alla ja paigaldavad kriitilised turbeuuendused automaatselt taustal.
Näiteks kui te turvate Windows-serverit, võimaldab Windows Update’i sektsioon seadistada automaatsete värskenduste jaoks konkreetseid reegleid. See hõlmab määramist, millal ja kui tihti värskendusi kontrollitakse, kas need tuleks kohe installida ning millal süsteem peaks taaskäivituma. Linuxi süsteemid pakuvad selliseid tööriistu nagu apt-listchanges või apticron shell-skript, mis teavitavad teid iga päev uute kättesaadavate tarkvarapakettide olemasolust ja laadivad need alla. Lisaks võivad automaatset installimist hallata sellised skriptid nagu unattended-upgrades.
Isegi kui kasutate automaatset uuendamisprotsessi, jälgige kindlasti, millised uuendused on lõpule viidud. See aitab tuvastada ja kõrvaldada vigu, mis võivad uuendamise käigus tekkida.
8. samm: Windows- ja Linux-serverite kaitsmine jõuvõttega rünnakute eest
Üks lihtsamaid ja levinumaid rünnakumeetodeid on jõuvõttega rünnak. Sellise rünnaku puhul kasutavad häkkerid tööriistu, et korduvalt proovida parooli ära arvata. Rakendades tugevaid paroolihaldustavasid, saate oluliselt vähendada selle meetodi õnnestumise tõenäosust.
Kui teie server pakub teenuseid, mis nõuavad kasutajate sisselogimist, ei saa te siiski eeldada, et kõik kasutajad järgivad tugevate paroolide kasutamise tavasid. Analüüsitööriistad aitavad seda riski vähendada: sellised lahendused nagu Fail2ban (Linux/POSIX-süsteemid) või RdpGuard (Windows) jälgivad serveri logifaile, tuvastavad ebatavalist käitumist ja blokeerivad kahtlased IP-aadressid. Te saate määrata, mitu ebaõnnestunud katset enne blokeerimist lubatakse, ning blokeerimise kestuse.
9. samm: Kasutage seirevahendeid
Serveri turvalisuse tagamiseks on äärmiselt oluline veenduda, et riist- ja tarkvara toimiksid omavahel ettenähtud viisil. See ei ole ühekordne ülesanne, vaid pidev kohustus, mis nõuab pidevat tähelepanu. Arvestades erinevate süsteemiprotsesside suurt arvu, on soovitatav kasutada järelevalvetööriistu juba algusest peale. Need tööriistad jälgivad kogu serveri tegevust ja teavitavad teid kõrvalekalletest.
Selleks otstarbeks sobiv lihtne ja hõlpsasti seadistatav programm on Monit, mida saab paljudes Linuxi distributsioonides paigaldada pakettide halduri kaudu. See avatud lähtekoodiga rakendus (GNU-AGPL litsents) suudab jälgida protsesse, faile, pilveteenuseid, hostisid, programme või skripte, samuti süsteemiressursse, nagu protsessori ja mälu kasutamine. Põhjalikumaks jälgimiseks võite kaaluda Nagios’t, avatud lähtekoodiga tööriista, mis on saadaval Linuxile ja Windowsile. Nagios’t saab laiendada ka Nagios’e pistikprogrammide abil.
10. samm: Varukoopiate seadistamine
Soovitatud seadistamisjuhised parandavad oluliselt teie serveri turvalisust. Siiski ei suuda isegi parimad seadistused ja hoolikas hooldus tagada 100% kaitset. Terviklik varundamisstrateegia on teie turvasüsteemi oluline osa, mis võimaldab teil andmete kaotuse korral faile taastada.
Varukoopiate loomiseks ja taastamiseks on saadaval palju töökindlaid vahendeid. Üks tasuta võimalus on avatud lähtekoodiga sünkroniseerimisvahend rsync, mis on ühilduv enamiku levinumate platvormidega (macOS, Windows, Linux). See vahend hoiab varukoopia reaalajas ajakohasena, peegeldades kõiki originaalandmetes tehtud muudatusi.
Lisaks serveri üldisele varundamisele veenduge, et varundate ka oma andmebaasid.
Varuandmete maksimaalse turvalisuse tagamiseks hoidke varukoopiaid välistel andmekandjatel (nt kaasaskantavatel kõvaketastel, lisaserveritel), mitte turvataval serveril.