Suojaa Linux-järjestelmän SSH-yhteys suojaamaan järjestelmääsi ja tietojasi. Sekä järjestelmänvalvojien että kotikäyttäjien on karkaistava ja suojattava Internet-tietokoneita, mutta SSH voi olla monimutkaista. Tässä on kymmenen helppoa nopeaa voittoa, jotka auttavat suojaamaan SSH-palvelinta.
SSH-tietoturvan perusteet
SSH tarkoittaa Suojattu kuori . Nimeä "SSH" käytetään vaihdettavasti joko itse SSH-protokollaa tai ohjelmistotyökaluja varten, joiden avulla järjestelmänvalvojat ja käyttäjät voivat muodostaa suojattuja yhteyksiä etätietokoneisiin kyseisen protokollan avulla.
SSH-protokolla on salattu protokolla, joka on suunniteltu antamaan suojattu yhteys epävarmaan verkkoon, kuten Internetiin. SSH Linuxissa on rakennettu kannettavaan versioon OpenSSH projekti. Se toteutetaan a klassinen asiakas-palvelin-malli , jossa SSH-palvelin hyväksyy yhteydet SSH-asiakkailta. Asiakasta käytetään yhteyden muodostamiseen palvelimeen ja näyttö istunnon etäkäyttäjälle. Palvelin hyväksyy yhteyden ja suorittaa istunnon aikana.
Oletuskokoonpanossaan SSH-palvelin kuuntelee saapuvia yhteyksiä Transmission Control Protocol ( TCP ) portti 22. Koska tämä on standardoitu, tunnettu satama , se on kohteen uhka toimijat ja haitalliset botit .
Uhkailijat näyttävät botteja, jotka skannaavat useita IP-osoitteita etsimään avoimia portteja. Sitten portit tutkitaan, onko haavoittuvuuksia, joita voidaan hyödyntää. Ajattelu: "Olen turvassa, pahojen pojat voivat kohdistaa minua isompiin ja parempiin kohteisiin", on väärä päättely. Botit eivät valitse tavoitteita ansioiden perusteella; he etsivät järjestelmällisesti järjestelmiä, joita he voivat rikkoa.
Nimeät itsesi uhriksi, jos et ole turvannut järjestelmääsi.
Turvakitka
Turvakitka on ärsytys - missä tahansa määrin -, jonka käyttäjät ja muut kokevat, kun toteutat turvatoimia. Meillä on pitkät muistot ja voimme muistaa, että olemme esittäneet uusia käyttäjiä tietokonejärjestelmään ja kuulleet heidän kysyvän kauhistuneella äänellä, ovatko he Todella piti antaa salasana joka kerta he kirjautuivat sisään keskusyksikköön. Se - heille - oli turvakitkaa.
(Muuten, salasanan keksiminen hyvitetään Fernando J.Corbató , toinen luku tietojenkäsittelijöiden pantheonissa, joiden yhdistetty työ vaikutti olosuhteisiin, jotka johtivat Unix .)
Turvatoimenpiteiden käyttöönotto edellyttää yleensä jonkinlaista kitkaa jollekin. Yritysten omistajien on maksettava siitä. Tietokoneen käyttäjien on ehkä muutettava tuttuja käytäntöjään tai muistettava toinen joukko todennustietoja tai lisättävä ylimääräisiä vaiheita yhteyden muodostamiseksi. Järjestelmänvalvojilla on tehtävää uusien turvatoimenpiteiden toteuttamiseksi ja ylläpitämiseksi.
Kovettaminen ja lukitseminen Linux- tai Unix-tyyppiseen käyttöjärjestelmään voivat päästä mukaan hyvin nopeasti. Tässä esitämme joukon helppoja toteuttaa vaiheita, jotka parantavat tietokoneen turvallisuutta ilman kolmannen osapuolen sovelluksia ja ilman kaivamista palomuurisi läpi.
Nämä vaiheet eivät ole viimeinen sana SSH-suojauksessa, mutta ne vievät sinut kauas eteenpäin oletusasetuksista ja ilman liikaa kitkaa.
Käytä SSH-protokollaversiota 2
Vuonna 2006 SSH-protokolla päivitettiin versiosta 1 versioon versio 2 . Se oli merkittävä päivitys. Erityisesti salauksen ja tietoturvan suhteen tapahtui niin paljon muutoksia ja parannuksia, että versio 2 ei ole taaksepäin yhteensopiva version 1 kanssa. Voit estää yhteyksiä version 1 asiakkailta määrittämällä, että tietokone hyväksyy yhteydet vain version 2 asiakkailta.
Voit tehdä niin muokkaamalla
/ etc / ssh / sshd_config
tiedosto. Teemme tämän paljon tässä artikkelissa. Aina kun sinun on muokattava tätä tiedostoa, tätä komentoa käytetään:
sudo gedit / etc / ssh / sshd_config
Lisää rivi:
Pöytäkirja 2
Ja tallenna tiedosto. Aloitamme SSH-daemon-prosessin uudelleen. Jälleen, teemme tämän paljon tässä artikkelissa. Tätä komentoa käytetään kussakin tapauksessa:
sudo systemctl käynnistä sshd uudelleen
Tarkistetaan, että uusi asetus on voimassa. Hyppäämme toiseen koneeseen ja yritämme SSH: tä testikoneellemme. Ja käytämme
-1
(protokolla 1) vaihtoehto pakottaa
ssh
komento käyttää protokollaversiota 1.
ssh -1 [email protected]
Hienoa, yhteyspyyntömme hylättiin. Varmista, että voimme edelleen muodostaa yhteyden protokollaan 2. Käytämme
-2
(protokolla 2) mahdollisuus todistaa tosiasia.
ssh -2 [email protected]
Se, että SSH-palvelin pyytää salasanaamme, on positiivinen osoitus siitä, että yhteys on muodostettu ja olet vuorovaikutuksessa palvelimen kanssa. Itse asiassa, koska nykyaikaiset SSH-asiakkaat käyttävät oletusarvoisesti protokollaa 2, meidän ei tarvitse määrittää protokollaa 2, kun asiakkaamme on ajan tasalla.
ssh [email protected]
Ja yhteys on hyväksytty. Joten vain heikommat ja vähemmän turvalliset protokolla 1 -yhteydet hylätään.
Vältä porttia 22
Portti 22 on SSH-yhteyksien vakioportti. Jos käytät toista porttia, se lisää järjestelmääsi hieman turvaa hämäryyden kautta. Hämäryyden kautta tapahtuvaa turvallisuutta ei koskaan pidetä todellisena turvatoimenpiteenä, ja olen vastustanut sitä muissa artikkeleissa. Itse asiassa jotkut älykkäämpiä hyökkäysrobotteja tutkivat kaikki avoimet portit ja määrittelevät, mitä palvelua heillä on, sen sijaan, että luottaisivat yksinkertaiseen porttiluetteloon ja olettaen, että ne tarjoavat tavanomaisia palveluja. Epätyypillisen portin käyttö voi kuitenkin auttaa vähentämään melua ja huonoa liikennettä portissa 22.
Määritä epätyypillinen portti muokkaamalla SSH-määritystiedostoa:
sudo gedit / etc / ssh / sshd_config
Poista hash # "Port" -rivin alusta ja korvaa "22" valitsemallasi portin numerolla. Tallenna määritystiedosto ja käynnistä SSH-daemon uudelleen:
sudo systemctl käynnistä sshd uudelleen
Katsotaanpa, minkä vaikutuksen sillä on ollut. Toisella tietokoneellamme käytämme
ssh
komento muodostaa yhteys palvelimeemme.
ssh
oletusarvoisesti portin 22 käyttö:
ssh [email protected]
Yhteytemme evätään. Yritetään uudelleen ja määritetään portti 470 käyttäen vaihtoehtoa -p (portti):
ssh -p 479 [email protected]
Yhteytemme hyväksytään.
Suodata yhteydet TCP-kääreillä
TCP Wrappers on helppo ymmärtää pääsynvalvontaluettelo . Sen avulla voit sulkea pois ja sallia yhteydet yhteyspyynnön ominaisuuksien, kuten IP-osoitteen tai isäntänimen, perusteella. TCP-kääreitä tulisi käyttää yhdessä oikein määritetyn palomuurin kanssa eikä niiden sijasta. Erityisessä tilanteessamme voimme kiristää asioita huomattavasti TCP-kääreillä.
TCP-kääreet oli jo asennettu tämän artikkelin tutkimiseen käytettyyn Ubuntu 18.04 LTS -laitteeseen. Se oli asennettava Manjaro 18.10: een ja Fedora 30: een.
Asenna Fedoraan käyttämällä tätä komentoa:
sudo yum asenna tcp_wrappers
Asenna Manjarossa käyttämällä tätä komentoa:
sudo pacman -Syu TCP-kääreet
Mukana on kaksi tiedostoa. Yhdellä on sallittu luettelo ja toisella hylätty luettelo. Muokkaa kieltolistaa seuraavilla tavoilla:
sudo gedit /etc/hosts.deny
Tämä avaa
gedit
editori, johon on ladattu deny-tiedosto.
Sinun on lisättävä rivi:
KAIKKI: KAIKKI
Ja tallenna tiedosto. Tämä estää kaikki käyttöoikeudet, joita ei ole valtuutettu. Meidän on nyt valtuutettava yhteydet, jotka haluat hyväksyä. Tätä varten sinun on muokattava sallittu tiedosto:
sudo gedit /etc/hosts.allow
Tämä avaa
gedit
editorissa, johon on ladattu salli tiedosto.
Olemme lisänneet SSH-daemon-nimen,
SSHD
Ja sen tietokoneen IP-osoite, jonka sallimme muodostaa yhteyden. Tallenna tiedosto ja katsotaanpa, ovatko rajoitukset ja käyttöoikeudet voimassa.
Ensinnäkin yritämme muodostaa yhteyden tietokoneesta, jota ei ole
hosts.allow
tiedosto:
Yhteys evätään. Yritämme nyt muodostaa yhteyden laitteesta IP-osoitteeseen 192.168.4.23:
Yhteytemme hyväksytään.
Tässä esimerkkimme on hieman julma - vain yksi tietokone voi muodostaa yhteyden. TCP-kääreet ovat melko monipuolisia ja joustavampia kuin tämä. Se tukee isäntänimet, jokerit ja aliverkon peitteet hyväksyä yhteyksiä IP-osoitealueilta. Sinua kannustetaan tutustu man-sivuun .
Hylkää yhteyspyynnöt ilman salasanoja
Vaikka se on huono käytäntö, Linux-järjestelmänvalvoja voi luoda käyttäjätilin ilman salasanaa. Tämä tarkoittaa, että kyseisen tilin etäyhteyspyynnöillä ei ole salasanaa. Nämä yhteydet hyväksytään, mutta niitä ei todisteta.
SSH: n oletusasetukset hyväksyvät yhteyspyynnöt ilman salasanoja. Voimme muuttaa sitä hyvin helposti ja varmistaa, että kaikki yhteydet todennetaan.
Meidän on muokattava SSH-määritystiedostoa:
sudo gedit / etc / ssh / sshd_config
Selaa tiedostoa, kunnes näet rivin, jossa lukee "#PermitEmptyPasswords no." Poista hash
#
rivin alusta ja tallenna tiedosto. Käynnistä SSH-daemon uudelleen:
sudo systemctl käynnistä sshd uudelleen
Käytä SSH-avaimia salasanojen sijaan
SSH-avaimet tarjoavat turvallisen tavan kirjautua SSH-palvelimeen. Salasanat voidaan arvata, haljeta tai raakapakko . SSH-avaimet eivät ole avoimia tällaisille hyökkäyksille.
Kun luot SSH-avaimet, luot avainparin. Yksi on julkinen avain ja toinen yksityinen avain. Julkinen avain on asennettu palvelimille, joihin haluat muodostaa yhteyden. Yksityinen avain, kuten nimestä voi päätellä, pidetään suojattuna omalla tietokoneellasi.
SSH-avainten avulla voit muodostaa yhteyksiä ilman salasanaa, jotka ovat - väärin - turvallisempia kuin salasanan todennusta käyttävät yhteydet.
Kun teet yhteyspyynnön, etätietokone käyttää julkisen avaimen kopiota luodakseen salatun viestin, joka lähetetään takaisin tietokoneellesi. Koska se salattiin julkisella avaimellasi, tietokoneesi voi purkaa sen salauksen yksityisellä avaimellasi.
Tietokone poimii sitten viestistä joitain tietoja, etenkin istunnon tunnuksen, salaa sen ja lähettää sen takaisin palvelimelle. Jos palvelin voi purkaa sen salauksen julkisella avaimellasi ja jos viestin sisällä olevat tiedot vastaavat palvelimen sinulle lähettämiä tietoja, yhteys vahvistetaan tulevan sinulta.
Tässä SSH-avaimilla varustettu käyttäjä muodostaa yhteyden palvelimeen 192.168.4.11. Huomaa, että heiltä ei pyydetä salasanaa.
ssh [email protected]
SSH-avaimet ansaitsevat artikkelin itselleen. Kätevästi meillä on yksi sinulle. Tässä kuinka luoda ja asentaa SSH-avaimia .
LIITTYVÄT: Kuinka luoda ja asentaa SSH-avaimia Linux-kuoresta
Poista salasanan todennus kokonaan käytöstä
Tietenkin SSH-avainten käytön looginen laajennus on, että jos kaikki etäkäyttäjät pakotetaan ottamaan ne käyttöön, voit poistaa salasanan todennuksen kokonaan käytöstä.
Meidän on muokattava SSH-määritystiedostoa:
sudo gedit / etc / ssh / sshd_config
Selaa tiedostoa, kunnes näet rivin, joka alkaa "#PasswordAuthentication yes". Poista hash
#
rivin alusta, vaihda "kyllä" arvoon "ei" ja tallenna tiedosto. Käynnistä SSH-daemon uudelleen:
sudo systemctl käynnistä sshd uudelleen
Poista X11-edelleenlähetys käytöstä
X11-edelleenlähetyksen avulla etäkäyttäjät voivat suorittaa graafisia sovelluksia palvelimeltasi SSH-istunnon aikana. Uhkatoimijan tai haitallisen käyttäjän käsissä GUI-käyttöliittymä voi helpottaa heidän pahanlaatuisia tarkoituksiaan.
Tavallinen mantra kyberturvallisuudessa on, että jos sinulla ei ole uskollista syytä sille, että se kytketään päälle, sammuta se. Teemme niin muokkaamalla SSH-määritystiedostoa:
sudo gedit / etc / ssh / sshd_config
Selaa tiedostoa, kunnes näet rivin, joka alkaa "# X11Forwarding no." Poista hash
#
rivin alusta ja tallenna tiedosto. Käynnistä SSH-daemon uudelleen:
sudo systemctl käynnistä sshd uudelleen
Aseta tyhjäkäynnin aikakatkaisuarvo
Jos tietokoneeseesi on muodostettu vakiintunut SSH-yhteys eikä siinä ole ollut toimintaa jonkin aikaa, se voi aiheuttaa turvallisuusriskin. On mahdollista, että käyttäjä on lähtenyt työpöydältä ja on kiireinen muualla. Kuka tahansa muu, joka ohittaa työpöydänsä, voi istua alas ja alkaa käyttää tietokonettaan ja SSH: n kautta tietokonettasi.
Aikakatkaisurajan asettaminen on paljon turvallisempaa. SSH-yhteys katkeaa, jos passiivinen jakso vastaa aikarajaa. Jälleen kerran muokkaamme SSH-määritystiedostoa:
sudo gedit / etc / ssh / sshd_config
Selaa tiedostoa, kunnes näet rivin, joka alkaa "#ClientAliveInterval 0" Poista hash
#
muuta rivin alusta numero 0 haluamaasi arvoon. Olemme käyttäneet 300 sekuntia, mikä on 5 minuuttia. Tallenna tiedosto ja käynnistä SSH-daemon uudelleen:
sudo systemctl käynnistä sshd uudelleen
Aseta salasanayrityksille raja
Rajan määrittäminen todennusyritysten määrälle voi auttaa estämään salasanan arvaamisen ja raa'an voiman hyökkäykset. Määritetyn määrän todennuspyyntöjä käytettäessä käyttäjä irrotetaan SSH-palvelimesta. Oletusarvoisesti rajaa ei ole. Mutta se korjataan nopeasti.
Jälleen meidän on muokattava SSH-määritystiedostoa:
sudo gedit / etc / ssh / sshd_config
Selaa tiedostoa, kunnes näet rivin, joka alkaa "#MaxAuthTries 0". Poista hash
#
muuta rivin alusta numero 0 haluamaasi arvoon. Olemme käyttäneet täällä kolmea. Tallenna tiedosto, kun teit muutokset ja käynnistä SSH-daemon uudelleen:
sudo systemctl käynnistä sshd uudelleen
Voimme testata tämän yrittämällä muodostaa yhteyden ja syöttää tarkoituksella väärän salasanan.
Huomaa, että MaxAuthTries-numero näytti olevan yksi enemmän kuin käyttäjän sallittujen kokeiden määrä. Kahden huonon yrityksen jälkeen testikäyttäjämme katkaistaan. Tämä oli MaxAuthTries asetettu kolmeen.
Poista juurilokitunnukset käytöstä
On huono käytäntö kirjautua pääkäyttäjänä Linux-tietokoneellesi. Sinun tulee kirjautua normaalina käyttäjänä ja käyttää
sudo
suorittaa toimintoja, jotka edellyttävät pääkäyttöoikeuksia. Vielä enemmän, sinun ei pitäisi antaa juuren kirjautua SSH-palvelimeesi. Vain tavallisten käyttäjien tulisi sallia muodostaa yhteys. Jos heidän on suoritettava hallinnollinen tehtävä, heidän tulisi käyttää
sudo
liian. Jos sinun on sallittava pääkäyttäjän kirjautua sisään, voit ainakin pakottaa hänet käyttämään SSH-avaimia.
Viimeisen kerran meidän on muokattava SSH-määritystiedostoa:
sudo gedit / etc / ssh / sshd_config
Selaa tiedostoa, kunnes näet rivin, joka alkaa "#PermitRootLogin kiellon salasana" Poista hash
#
rivin alusta.
- Jos haluat estää juuria kirjautumasta lainkaan, korvaa "tilt-password" sanalla "no".
- Jos aiot antaa rootin kirjautua sisään, mutta pakottaa heidät käyttämään SSH-avaimia, jätä "kielto-salasana" paikoilleen.
Tallenna muutokset ja käynnistä SSH-daemon uudelleen:
sudo systemctl käynnistä sshd uudelleen
Lopullinen askel
Tietenkin, jos et tarvitse SSH: tä lainkaan tietokoneellasi, varmista, että se on poistettu käytöstä.
sudo systemctl lopettaa sshd
sudo systemctl poista käytöstä sshd
Jos et avaa ikkunaa, kukaan ei voi kiivetä sisään.