SSH- yhteyksien suojaaminen auttaa suojaamaan Linux-järjestelmääsi ja tietojasi. Järjestelmänvalvojien ja kotikäyttäjien on myös suojattava Internetiin päin olevat tietokoneet. Tässä on 10 helppoa tapaa suojata SSH - palvelimesi .
Joitakin perusasioita SSH-suojauksesta
SSH tulee sanoista Secure Shell. SSH-protokollan tai ohjelmistotyökalun avulla järjestelmänvalvojat ja käyttäjät voivat muodostaa suojattuja yhteyksiä etätietokoneisiin käyttämällä tätä protokollaa.
SSH-protokolla on salattu protokolla, joka on suunniteltu tarjoamaan suojattu yhteys suojaamattomassa verkossa, kuten Internetissä. SSH Linuxissa on rakennettu OpenSSH-projektin kannettavaan versioon. Se on toteutettu klassisessa asiakas-palvelin-mallissa, jossa SSH-palvelin hyväksyy yhteydet SSH-asiakkailta. Asiakasta käytetään yhteyden muodostamiseen palvelimeen ja istunnon paljastamiseen etäkäyttäjille. Palvelin hyväksyy yhteyden ja aloittaa istunnon.
Oletuskokoonpanossaan SSH-palvelin "kuuntelee" saapuvia yhteyksiä Transmission Control Protocol (TCP) -portissa 22. Koska tämä on standardoitu ja suosittu portti, se on toimijoiden uhkien ja haitallisten robottien kohde.
Haitalliset toimijat käynnistävät botteja, jotka skannaavat IP-osoitteita ja etsivät avoimia portteja. Sitten se etsii näistä porteista hyödynnettävissä olevia haavoittuvuuksia. Ajatteleminen, olen turvassa, on monia suurempia ja parempia kohteita kuin minä, pahiksien kohteeksi on täysin väärin. Nämä robotit eivät valitse kohteitaan minkään kriteerin perusteella, he vain etsivät tapaa tunkeutua järjestelmään.
Sinusta tulee uhri, jos et suojaa järjestelmääsi.
Turvallisuus Kitka
Turvakitkapiste on mikä tahansa tilanne, jossa päätehtävän suorittaminen estetään tai viivästyy turvallisuusvaatimusten vuoksi.
Turvakitka aiheuttaa epämukavuutta (millä tahansa tasolla) käyttäjille ja muille, kun otat käyttöön turvatoimenpiteitä. Tietokonejärjestelmien uudet käyttäjät saattavat olla huolissaan siitä, joutuvatko he todella syöttämään salasanan joka kerta kun he kirjautuvat keskuskoneeseen. Heille tämä on myös eräänlainen turvallisuuskitka.
Turvatoimenpiteiden käyttöönotto sisältää usein joillekin ihmisille jonkinlaista kitkaa. Yritysten omistajien on maksettava näistä toimenpiteistä. Tietokoneen käyttäjät saattavat joutua muuttamaan tottumuksiaan tai muistamaan erilaisia todennustietoja, mikä lisää vaiheita yhteyden muodostamiseksi. Järjestelmänvalvojilla on lisätyötä uusien suojaustoimenpiteiden toteuttamiseksi ja ylläpitämiseksi.
Linux- tai Unix-tyyppisen käyttöjärjestelmän kiristäminen ja lukitseminen voi olla nopeaa. Tässä esitetyt suojaustoimenpiteet ovat joukko helposti noudatettavia vaiheita, jotka parantavat tietokoneen turvallisuutta ilman, että tarvitaan kolmannen osapuolen sovelluksia ja syvää palomuuria .
Käytä SSH-protokollan versiota 2
Vuonna 2006 SSH-protokolla päivitettiin versiosta 1 versioon 2. Tämä on merkittävä päivitys. On monia muutoksia ja parannuksia, erityisesti salauksessa ja suojauksessa, eikä versio 2 ole taaksepäin yhteensopiva version 1 kanssa. Voit estää yhteyksien muodostamisen version 1 asiakkailta määrittämällä tietokoneet hyväksymään vain versiosta 2 tulevat yhteydet.
Voit tehdä tämän muokkaamalla /etc/ssh/sshd_config-tiedostoa käyttämällä seuraavaa komentoa:
sudo gedit /etc/ssh/sshd_config

Lisää seuraava rivi:
Protocol 2

Tallenna tiedosto ja käynnistä sitten SSH-daemon-prosessi uudelleen seuraavalla komennolla:
sudo systemctl restart sshd

Testaa uutta asennusta toiminnassa vaihtamalla toiseen koneeseen ja yrittämällä SSH:ta testikoneeseen. Käytämme -1 (protokolla 1) -vaihtoehtoa pakottaaksemme ssh-komennon käyttämään protokollaversiota 1.
ssh -1 [email protected]

Yhteyspyyntö hylätty. Varmista, että voit edelleen muodostaa yhteyden protokollaan 2. Käytämme testaukseen -2:ta (protokolla 2).
ssh -2 [email protected]

Se, että SSH-palvelin pyytää salasanaa, on positiivinen merkki siitä, että yhteys on muodostettu ja olet vuorovaikutuksessa palvelimen kanssa. Nykyaikaiset SSH-asiakkaat käyttävät oletuksena protokollaa 2, meidän ei tarvitse määrittää protokollaa 2, jos asiakas on ajan tasalla.
ssh [email protected]

Yhteys on hyväksytty.
Vältä porttia 22
Portti 22 on vakioportti SSH-yhteyksille. Jos käytetään toista porttia, se lisää järjestelmääsi jonkin verran Security Through Obscurity (STO) -toimintoa. Epäselvyyden kautta tapahtuvaa turvallisuutta ei pitäisi koskaan pitää todellisena turvatoimena. Itse asiassa jotkut älykkäämmät hyökkäysbotit tutkivat kaikki avoimet portit ja päättävät, mitä palvelua ne tarjoavat sen sijaan, että luottaisivat yksinkertaiseen hakuluetteloon porteista ja olettaisivat, että ne tarjoavat palvelun. Mutta epästandardin portin käyttö voi auttaa vähentämään portin 22 huonoa liikennettä.
Muokkaa SSH-määritystiedostoa edellä kuvatulla tavalla, jos haluat määrittää ei-standardin portin.

Poista # porttirivin alusta ja korvaa numero 22 valitsemallasi numerolla. Tallenna asetustiedosto ja käynnistä SSH-daemon uudelleen.
Toisessa tietokoneessa käytämme ssh-komentoa yhteyden muodostamiseen palvelimeen. Oletusarvoinen ssh-komento käyttää porttia 22:
ssh [email protected]

Yhteys evätty. Yritä uudelleen ja määritä portti 470 käyttämällä -p (portti) -vaihtoehtoa:
ssh -p 479 [email protected]

Yhteys vahvistettu.
Liitä suodatin TCP-kääreillä
TCP-kääreet ovat helposti ymmärrettävä kulunvalvontaluettelo. Sen avulla voit estää ja sallia yhteydet yhteyspyynnön ominaisuuksien, kuten IP-osoitteen tai isäntänimen, perusteella. TCP-kääreitä tulee käyttää oikein määritetyn palomuurin kanssa, ei sen sijaan.
TCP Wrappers on esiasennettu Ubuntu 18.04 LTS -koneisiin . Se on asennettava Manjaro 18.10:een ja Fedora 30:een.
Asenna Fedoraan käyttämällä seuraavaa komentoa:
sudo yum install tcp_wrappers

Asenna Manjaroon käyttämällä tätä komentoa:
sudo pacman -Syu tcp-wrappers

Mukana on kaksi tiedostoa, yksi tiedosto sisältää sallittujen luettelon ja yksi tiedosto sisältää estoluettelon. Muokkaa estoluetteloa käyttämällä seuraavaa komentoa:
sudo gedit /etc/hosts.deny

Yllä oleva komento avaa gedit-editorin, jossa tiedosto kieltäytyy latautumasta.

Sinun on lisättävä rivi:
ALL : ALL
Ja tallenna tiedosto. Tämä rivi estää kaiken luvattoman käytön. Nyt meidän on myönnettävä käyttöoikeudet yhteyksille, jotka haluat hyväksyä. Voit tehdä tämän muokkaamalla käyttöoikeustiedostoa:
sudo gedit /etc/hosts.allow

Yllä oleva komento avaa gedit-editorin, jossa on ladattava tiedosto.

Olemme lisänneet SSH-daemonin nimen, SSHD:n ja yhteyden muodostamisen mahdollistavan tietokoneen IP-osoitteen. Tallenna tiedosto ja katso, ovatko rajoitukset ja käyttöoikeudet voimassa.
Ensin yrität muodostaa yhteyden tietokoneelta, joka ei ole hosts.allow-tiedostossa:

Yhteys evätty. Yritämme muodostaa yhteyden koneelta, jonka IP-osoite on 192.168.4.23:

Yhteys hyväksytty.
Tässä esimerkissä vain yksi kone voi muodostaa yhteyden. TCP-kääreet ovat melko joustavia, ne tukevat isäntänimiä, yleismerkkejä ja aliverkon peitteitä yhteyksien hyväksymiseksi IP-osoitealueilta.
Hylkää yhteyspyynnöt ilman salasanaa
Vaikka se ei ole hyvä, Linux-järjestelmänvalvojat voivat luoda käyttäjätilejä ilman salasanoja. Tämä tarkoittaa, että salasanaa ei vaadita etäyhteyksiin tältä tililtä. Nämä yhteydet hyväksytään, mutta niitä ei todeta.
SSH:n oletusasetus hyväksyy yhteyspyynnöt ilman salasanaa. Voimme muuttaa sen helposti ja varmistaa, että kaikki nämä yhteydet on todennettu.
Sinun on muokattava SSH-määritystiedostoa.

Vieritä tiedostoa alaspäin, kunnes näet rivin, jossa lukee #PermitEmptyPasswords no . Poista # rivin alusta ja tallenna tiedosto. Käynnistä SSH-daemon uudelleen.
Käytä SSH-avaimia salasanojen sijaan
SSH-avaimet tarjoavat turvallisen tavan kirjautua sisään SSH-palvelimelle. Salasanat voidaan murtaa, arvata tai raa'alla pakolla . SSH-avaimet eivät ole alttiita tämän tyyppisille hyökkäyksille.
Kun luot SSH-avainta, luot avainparin. Toinen on julkinen avain ja toinen yksityinen avain. Julkinen avain on asennettu palvelimille, joihin haluat muodostaa yhteyden. Yksityinen avain säilytetään turvallisesti tietokoneellasi.
SSH-avaimet mahdollistavat yhteyksien muodostamisen ilman salasanaa, mikä on turvallisempaa kuin salasanatodennusta käyttävät yhteydet.
Yhteyspyyntöä tehdessään etätietokone käyttää kopiota julkisesta avaimesta luodakseen salatun viestin, joka lähetetään takaisin tietokoneelle. Koska se on salattu julkisella avaimella, tietokone voi purkaa sen salauksen yksityisellä avaimella.
Sitten tietokone poimii viestistä joitakin tietoja, salaa sen ja lähettää sen takaisin palvelimelle. Jos palvelin voi purkaa sen salauksen kopiolla julkisesta avaimesta. Jos viestin tiedot vastaavat palvelimen sinulle lähettämiä tietoja, yhteys vahvistetaan.
Tässä käyttäjä muodostaa yhteyden palvelimeen osoitteessa 192.168.4.11 SSH-avaimella. Huomaa, että heitä ei kehoteta antamaan salasanaa.
ssh [email protected]

Poista salasanatodennus kokonaan käytöstä
Voit poistaa salasanatodennuksen kokonaan käytöstä, jos käytät SSH-avaimia. Meidän on muokattava SSH-määritystiedostoa.

Vieritä tiedostoa alaspäin, kunnes näet rivin, joka alkaa sanoilla #PasswordAuthentication kyllä . Poista # rivin alusta, muuta kyllä arvoksi ei ja tallenna tiedosto. Käynnistä SSH-daemon uudelleen.
Poista X11-edelleenlähetys käytöstä
X11-edelleenlähetyksen avulla etäkäyttäjät voivat ajaa graafisia sovelluksia palvelimeltasi SSH-istunnon aikana, mutta huonot toimijat voivat helposti hyödyntää sitä. On parempi sammuttaa se muokkaamalla SSH-määritystiedostoa.

Vieritä tiedostoa alaspäin, kunnes näet rivin #X11Edelleenlähetys ei , poista # rivin alusta ja tallenna tiedosto. Käynnistä SSH-daemon uudelleen.
Aseta tyhjäkäynnin aikakatkaisuarvo
Jos SSH-yhteys muodostetaan tietokoneen kanssa, eikä sillä ole toimintaa pitkään aikaan, tämä voi aiheuttaa turvallisuusriskin.
Siksi sinun tulee asettaa aikaraja. SSH-yhteys katkeaa, jos mitään ei tapahdu aikarajan sisällä. Jälleen kerran meidän on muokattava SSH-määritystiedostoa.

Vieritä tiedostoa alaspäin, kunnes näet rivin, joka alkaa #ClientAliveInterval 0 . Poista # rivin alusta, muuta numero 0 haluamallesi arvolle. Yleensä ihmiset asettavat sen 300 sekuntiin, mikä on 5 minuuttia. Tallenna tiedosto ja käynnistä SSH-daemon uudelleen.
Aseta raja salasanan syöttämiselle
Vahvistusten lukumäärän rajoittaminen voi auttaa estämään salasanan arvaamisen ja raa'an voiman hyökkäyksiä. Määritetyn määrän todennuspyyntöjä jälkeen käyttäjän yhteys SSH-palvelimeen katkaistaan. Oletuksena salasanayritysten lukumäärää ei ole rajoitettu, mutta voit muokata sitä SSH-määritystiedostossa.

Vieritä tiedostoa alaspäin, kunnes näet rivin, joka alkaa #MaxAuthTries 0 . #-merkin poistaminen rivin alusta muuttaa numeron haluttuun arvoon. Voit asettaa sen arvoon 3. Tallenna tiedosto, kun teet muutoksia, ja käynnistä SSH-daemon uudelleen.
Voit testata tämän yrittämällä muodostaa yhteyden ja syöttämällä väärän salasanan.

Huomaa, että MaxAuthTries-luku on suurempi kuin käyttäjälle sallittujen yritysten määrä. Kahden epäonnistuneen yrityksen jälkeen yhteys katkeaa, mikä tarkoittaa, että MaxAuthTries on asetettu arvoon 3.
Poista root-kirjautuminen käytöstä
Älä kirjaudu sisään pääkäyttäjänä, käytä vain normaalina käyttäjänä Linuxissa ja käytä sudoa suorittaaksesi toimintoja, jotka edellyttävät pääkäyttäjän oikeuksia. Älä myöskään anna rootin kirjautua SSH-palvelimelle. Vain tavalliset käyttäjät voivat muodostaa yhteyden. Jos heidän on suoritettava hallinnollinen tehtävä, he voivat käyttää myös sudoa. Jos sinun on sallittava pääkäyttäjän kirjautuminen sisään, voit pakottaa hänet käyttämään SSH-avainta.
Muokkaa asetustiedostoa poistaaksesi pääkäyttäjän kirjautumisen.

Vieritä tiedostoa alaspäin, kunnes näet rivin, joka alkaa sanoilla #PermitRootLogin block-password , poista # rivin alusta.
- Jos haluat estää pääkäyttäjää kirjautumasta sisään, vaihda estää-salasana sanalla no.
- Jos annat rootin kirjautua sisään, mutta pakotat käyttämään SSH-avainta, jätä esto-salasana koskemattomaksi.
Tallenna muutokset ja käynnistä SSH-daemon uudelleen.
Viimeinen askel
Tietenkin, jos et tarvitse SSH:ta tietokoneellasi, sammuta se seuraavalla komennolla:
sudo systemctl stop sshd
sudo systemctl disable sshd
Menestystä toivottaen!