Nykyään palvelimen nostaminen isännöinnille on muutaman minuutin ja muutaman hiiren napsautuksen asia. Mutta heti laukaisun jälkeen hän joutuu vihamieliseen ympäristöön, koska hän on avoin koko Internetille kuin viaton tyttö rokkaridiskossa. Skannerit löytävät sen nopeasti ja havaitsevat tuhansia automaattisesti ohjelmoituja botteja, jotka tutkivat verkkoa etsiessään haavoittuvuuksia ja virheellisiä määrityksiä. On olemassa muutamia asioita, jotka sinun tulee tehdä heti käynnistämisen jälkeen varmistaaksesi perussuojauksen.
Ensimmäinen askel on luoda itsellesi ei-root-käyttäjä. Pointti on, että käyttäjä root ehdottomat oikeudet järjestelmässä, ja jos annat hänelle etähallinnan, teet puolet hakkerin työstä jättäen hänelle kelvollisen käyttäjätunnuksen.
Siksi sinun on luotava toinen käyttäjä ja poistettava etähallinta SSH:n kautta root-käyttäjälle.
Uusi käyttäjä käynnistetään komennolla useradd:
useradd [options] <username>
Sitten sille lisätään salasana komennolla passwd:
passwd <username>
Lopuksi tämä käyttäjä on lisättävä ryhmään, jolla on oikeus suorittaa korotettuja komentoja sudo. Linux-jakelusta riippuen nämä voivat olla erilaisia ryhmiä. Esimerkiksi CentOS:ssä ja Red Hatissa käyttäjä lisätään ryhmään wheel:
usermod -aG wheel <username>
Ubuntussa se lisätään ryhmään sudo:
usermod -aG sudo <username>
Avaimet SSH-salasanojen sijaan
Raaka voima tai salasanavuodot ovat tavallinen hyökkäysvektori, joten on parasta poistaa salasanatodennus käytöstä SSH:ssa (Secure Shell) ja käyttää sen sijaan avaintodennusta.
SSH-protokollan toteuttamiseen on olemassa erilaisia ohjelmia, kuten LSH и pisarakarhu, mutta suosituin on OpenSSH. OpenSSH-asiakkaan asentaminen Ubuntuun:
Käynnistä daemon automaattisesti jokaisessa käynnistyksessä:
sudo systemctl enable sshd
On huomattava, että OpenSSH:n palvelinosa sisältää asiakasosan. Eli läpi openssh-server voit muodostaa yhteyden muihin palvelimiin. Lisäksi asiakaskoneeltasi voit käynnistää SSH-tunnelin etäpalvelimelta kolmannen osapuolen isännälle, jolloin kolmannen osapuolen isäntä pitää etäpalvelinta pyyntöjen lähteenä. Erittäin kätevä ominaisuus järjestelmän peittämiseen. Katso lisätietoja artikkelista "Käytännön vinkkejä, esimerkkejä ja SSH-tunneleita".
Asiakaskoneessa ei yleensä ole järkevää asentaa täysimittaista palvelinta, jotta estetään mahdollisuus etäyhteyden muodostamiseen tietokoneeseen (turvallisuussyistä).
Joten uudelle käyttäjällesi sinun on ensin luotava SSH-avaimet tietokoneelle, josta pääset palvelimeen:
ssh-keygen -t rsa
Julkinen avain tallennetaan tiedostoon .pub ja näyttää satunnaisten merkkien sarjalta, joka alkaa ssh-rsa.
Luo sitten rootin alta SSH-hakemisto palvelimelle käyttäjän kotihakemistoon ja lisää tiedostoon julkinen SSH-avain authorized_keys, käyttämällä tekstieditoria, kuten Vim:
Asiakaspuolella sinun on määritettävä todennuksen salaisen avaimen sijainti:
ssh-add DIR_PATH/keylocation
Nyt voit kirjautua sisään palvelimelle käyttäjätunnuksella tällä avaimella:
ssh [username]@hostname
Valtuutuksen jälkeen voit kopioida tiedostoja scp-komennolla, apuohjelmalla sshfs tiedostojärjestelmän tai hakemistojen etäliitämiseen.
Yksityisestä avaimesta kannattaa tehdä useita varmuuskopioita, koska jos poistat salasanatodennuksen käytöstä ja menetät sen, et pääse kirjautumaan omalle palvelimellesi ollenkaan.
Kuten edellä mainittiin, SSH:ssa sinun on poistettava root-todennus käytöstä (tämä on syy, miksi aloitimme uuden käyttäjän).
CentOS/Red Hatista löydämme linjan PermitRootLogin yes asetustiedostossa /etc/ssh/sshd_config ja muuta se:
PermitRootLogin no
Ubuntussa lisää rivi PermitRootLogin no asetustiedostoon 10-my-sshd-settings.conf:
Kun olet varmistanut, että uusi käyttäjä todentaa avaimellaan, voit poistaa salasanatodennuksen käytöstä salasanavuodon tai raa'an voiman riskin välttämiseksi. Nyt hyökkääjän on saatava yksityinen avain päästäkseen palvelimelle.
CentOS/Red Hatista löydämme linjan PasswordAuthentication yes asetustiedostossa /etc/ssh/sshd_config ja muuta se näin:
PasswordAuthentication no
Ubuntussa lisää rivi PasswordAuthentication no arkistoida 10-my-sshd-settings.conf:
Katso ohjeet kaksivaiheisen todennuksen käyttöönotosta SSH:n kautta täällä.
Palomuuri
Palomuuri varmistaa, että vain suoraan sallimiesi porttien liikenne kulkee palvelimelle. Tämä suojaa muiden palveluiden kanssa vahingossa käyttöön otettujen porttien hyväksikäytöltä, mikä vähentää huomattavasti hyökkäyspinta-alaa.
Ennen palomuurin asentamista sinun on varmistettava, että SSH sisältyy poissulkemisluetteloon eikä sitä estä. Muuten emme pysty muodostamaan yhteyttä palvelimeen palomuurin käynnistämisen jälkeen.
Ubuntu-jakelun mukana tulee mutkaton palomuuri (ufw) ja CentOS/Red Hat - firewalld.
Työkalut Fail2Ban analysoi palvelimen lokit ja laskee pääsyyritysten määrän kustakin IP-osoitteesta. Asetukset määrittelevät säännöt, kuinka monta pääsyyritystä sallitaan tietyllä aikavälillä - minkä jälkeen tämä IP-osoite estetään tietyksi ajaksi. Sallitaan esimerkiksi 5 epäonnistunutta SSH-todennusyritystä 2 tunnin sisällä ja estetään sitten annettu IP-osoite 12 tunniksi.
SSH:n lisäksi Fail2Ban voi suojata muita palveluita nginx- tai Apache-verkkopalvelimella.
Automaattiset tietoturvapäivitykset
Kuten tiedät, kaikista ohjelmista löytyy jatkuvasti uusia haavoittuvuuksia. Tietojen julkaisemisen jälkeen hyödynnöt lisätään suosittuihin exploit-paketteihin, joita hakkerit ja teini-ikäiset käyttävät massiivisesti tutkiessaan kaikkia palvelimia peräkkäin. Siksi on erittäin tärkeää asentaa tietoturvapäivitykset heti, kun ne ilmestyvät.
Ubuntu Serverin automaattiset tietoturvapäivitykset ovat oletuksena käytössä, joten lisätoimia ei tarvita.
CentOS/Red Hatissa sinun on asennettava sovellus dnf-automaatti ja käynnistä ajastin:
SSH kehitettiin vuonna 1995 korvaamaan telnet (portti 23) ja ftp (portti 21), joten ohjelman tekijä Tatu Iltonen valittu portti 22 oletuksena, ja IANA on hyväksynyt sen.
Luonnollisesti kaikki hyökkääjät ovat tietoisia siitä, missä portissa SSH toimii - ja skannaavat sen yhdessä muiden standardiporttien kanssa selvittääkseen ohjelmistoversion, tarkistaakseen tavalliset root-salasanat ja niin edelleen.
Vakioporttien vaihtaminen - hämärtäminen - useita kertoja vähentää roskaliikenteen määrää, lokien kokoa ja palvelimen kuormitusta sekä vähentää myös hyökkäyspintaa. Vaikka jotkut kritisoi tätä menetelmää "suojaa epäselvyyden kautta" (turvallisuus epäselvyyden kautta). Syynä on, että tämä tekniikka on perustavanlaatuinen arkkitehtoninen suojelu. Siksi esimerkiksi US National Institute of Standards and Technology in "Palvelimen suojausopas" ilmaisee avoimen palvelinarkkitehtuurin tarpeen: "Järjestelmän turvallisuuden ei pitäisi perustua sen komponenttien toteutuksen salaisuuteen", asiakirjassa sanotaan.
Teoriassa oletusporttien muuttaminen on vastoin avoimen arkkitehtuurin käytäntöä. Mutta käytännössä haitallisen liikenteen määrä itse asiassa vähenee, joten tämä on yksinkertainen ja tehokas toimenpide.
Portin numero voidaan määrittää muuttamalla direktiiviä Port 22 asetustiedostossa / Etc / ssh / sshd_config. Se ilmoitetaan myös parametrilla -p <port> в sshd. SSH-asiakasohjelma ja ohjelmat sftp tukee myös vaihtoehtoa -p <port>.
Parametri -p <port> voidaan käyttää portin numeron määrittämiseen, kun yhdistetään komennolla ssh linuxissa. SISÄÄN sftp и scp parametria käytetään -P <port> (iso P). Komentorivikäsky ohittaa kaikki asetustiedostojen arvot.
Jos palvelimia on useita, lähes kaikki nämä toimet Linux-palvelimen suojaamiseksi voidaan automatisoida komentosarjassa. Mutta jos on vain yksi palvelin, on parempi hallita prosessia manuaalisesti.
Mainonnan oikeuksista
Tilaa ja aloita heti! VDS:n luominen millä tahansa kokoonpanolla ja millä tahansa käyttöjärjestelmällä minuutissa. Maksimikokoonpano antaa sinun tulla täyteen - 128 CPU-ydintä, 512 Gt RAM-muistia, 4000 Gt NVMe. eeppinen 🙂