SSH-i turvamine hõlmab paljusid võimalikke tehnikaid, kuid mitte kõik pole iga keskkonna jaoks võrdselt praktilised. Selle artikli soovitused on laialdaselt tunnustatud suure mõjuga meetodid, mis tasakaalustavad rakendamise lihtsuse ja tugeva kaitse. Need pärinevad selliste organisatsioonide nagu NIST, CERT ja OpenSSH projekti standarditest ning kajastavad põhiprintsiipe, mida SSL.com rakendab ka digitaalsete sertifikaatide turvamisel – võtmete kaitsmine, tugeva krüptimise kasutamine ja privilegeeritud juurdepääsu piiramine.
Kui olete need põhilised parimad tavad seadistanud, saate vastavalt vajadusele uurida täiustatud taktikaid, nagu sertifikaadipõhine SSH, pordi koputamine või SSH üle VPN-i.
1. Kasutage paroolide asemel võtmepõhist autentimist
Mis see on:
Asendate parooliga sisselogimised krüptograafilise avaliku/privaatvõtmepaariga. Avalik võti läheb teie serverisse, samas kui privaatvõti jääb teie kohalikku masinasse.
Miks see on turvalisem:
- Paroolid on vastuvõtlikud toore jõu rünnakutele
- Ründaja peab sissemurdmiseks füüsiliselt hankima teie privaatvõtme, mis on palju raskem kui parooli ära arvamine
Kuidas rakendada:
Looge võtmepaar
Linuxis või macOS-is avage terminal ja käivitage:
ssh-keygen -t ed25519
Lisaturvalisuse tagamiseks (kui ed25519 pole teie keskkonnas saadaval) võite kasutada järgmist.
ssh-keygen -t RSA -b 4096
Kopeerige avalik võti oma serverisse
Saate oma avaliku võtme hõlpsaks ülekandmiseks kasutada käsku ssh-copy-id (Linuxis/macOS-is):
ssh-copy-id kasutaja@serveri_aadress
Kui ssh-copy-id pole saadaval, lisage faili id_ed25519.pub (või id_rsa.pub) sisu käsitsi serveri faili ~/.ssh/authorized_keys.
Keela parooli autentimine
Määrake failis /etc/ssh/sshd_config:
Parooli autentimise nr
Taaskäivitage SSH teenus:
sudo systemctl restart ssh
Nii nagu digitaalsete sertifikaatide haldamine, tagab SSH-võtmepõhine autentimine, et ühenduse saab luua ainult õige privaatvõtmega inimene.
2. Keela juursisselogimine
Mis see on:
Takistage juurkasutaja sisselogimine otse SSH kaudu.
Miks see on turvalisem:
- Juurkontol on piiramatud õigused ja see on ründajatele atraktiivne sihtmärk
- Otsese juurjuurdepääsu keelamine sunnib ründajaid arvama mitte ainult võtit või parooli, vaid ka kehtivat kasutajanime
Kuidas rakendada:
Otsige üles või lisage failis /etc/ssh/sshd_config:
PermitRootLogin nr
Taaskäivitage SSH:
sudo systemctl restart ssh
See samm kitsendab tõhusalt teie rünnakupinda, eemaldades kõige võimsama konto hõlpsasti kättesaadavast.
3. Jõustage tugevat krüptimist ja MAC-algoritme
Mis see on:
SSH võimaldab teil määrata, milliseid šifreid ja sõnumi autentimiskoode (MAC) kasutada andmete krüptimiseks ja andmete terviklikkuse kontrollimiseks.
Miks see on turvalisem:
- Vanemad või nõrgad algoritmid (nt DES, RC4) võivad olla krüptograafiliste rünnakute suhtes haavatavad
- Kaasaegsete šifrite (nt AES-256) ja tugevate MAC-ide (nt HMAC-SHA2) kasutamine aitab hoida teie seansi andmed konfidentsiaalsena ja võltsimiskindlana.
Kuidas rakendada:
Lisage või värskendage oma šifri/MAC-loendit kaustas /etc/ssh/sshd_config:
Šifrid aes256-ctr, aes192-ctr, aes128-ctr
MAC-id hmac-sha2-256, hmac-sha2-512
Taaskäivitage SSH:
sudo systemctl restart ssh
SSH krüptograafia ajakohasena hoidmine on sama oluline kui turvaliste protokollide ja šifrite kasutamise tagamine. TLS.
4. Hoidke SSH-d (ja oma süsteemi) värskendatuna
Mis see on:
Tagada, et OpenSSH saab koos ülejäänud operatsioonisüsteemiga regulaarselt turvapaigad.
Miks see on turvalisem:
- Aegunud tarkvara sisaldab sageli teadaolevaid turvaauke
- Ründajad sihivad sageli vanemaid versioone, millel on parandamata rünnakud
Kuidas rakendada:
Debiani või Ubuntu-põhistes süsteemides:
sudo apt-get update && sudo apt-get upgrade
CentOS-i, Fedora või RHEL-põhiste süsteemide puhul:
sudo yum uuendus
Kui kasutate võrguseadmetes või muus riistvaras SSH-d, kontrollige kindlasti ka püsivara värskendusi.
5. Rakendage kahe- või mitmefaktoriline autentimine (2FA/MFA)
Mis see on:
Lisab täiendava turvakihi, nõudes lisaks paroolile või võtmele midagi (nt telefoni ühekordset koodi).
Miks see on turvalisem:
- Isegi kui ründajad saavad teie SSH-võtme kätte, vajavad nad sisselogimiseks teist tegurit
- Aitab kaitsta volikirja varguse eest
Kuidas rakendada:
Installige ja konfigureerige MFA tööriist
Näiteks Google Authenticator saab installida Linuxi serveritesse ja seadistada PAM (Pluggable Authentication Modules) moodulina. Järgige oma distributsioonile vastavaid paigaldusjuhiseid.
Redigeeri /etc/pam.d/sshd ja /etc/ssh/sshd_config
- Lubage Google Authenticator või mõni muu MFA moodul
- Määra ChallengeResponseAuthentication jah ja AuthenticationMethods avalik võti, interaktiivne klaviatuur (või mis tahes kombinatsioon, mis sobib teie keskkonnaga)
Taaskäivitage SSH:
sudo systemctl restart ssh
6. Lubage logimine ja jälgimine
Mis see on:
Jäädvustage SSH-i sisselogimissündmusi, jälgige kahtlast tegevust ja saate teateid, kui midagi on valesti.
Miks see on turvalisem:
- Sissetungikatsed on sageli logides nähtavad korduvate ebaõnnestunud sisselogimiste või volitamata toimingutena
- Varajane tuvastamine tähendab, et saate kiiresti reageerida – IP-de blokeerimine või konfiguratsioonide muutmine enne kahju tekkimist
Kuidas rakendada:
Suurendage logi paljusõnalisust
Määrake failis /etc/ssh/sshd_config:
LogiLevel SUURNE
Koondlogid
- Tööriistad nagu syslog, rsyslogvõi syslog-of aitab logisid koguda ja tsentraliseerida
- A SIEM (turvainfo ja sündmuste haldamise) lahendus võib pakkuda täiustatud analüüsi ja hoiatusi
Kasutage sissetungi ennetamise tööriistu
fail2ban kontrollib logifaile ja keelab IP-d, millel on pahatahtlikud märgid, näiteks liiga palju paroolitõrkeid.
7. Rakendage juurdepääsu kontrolle ja piiranguid
Mis see on:
Piirake, kes ja kust saab SSH-ga ühenduse luua, vältides volitamata või liigseid sissetulevaid päringuid.
Kuidas seda teha:
Tulemüüri piirangud
Lubage SSH ainult teadaolevatelt või usaldusväärsetelt IP-aadressidelt. Näiteks Linuxis koos ufw-ga:
sudo ufw luba alates 192.168.1.0/24 mis tahes porti 22
Pordi seadistamine
SSH-i käivitamine mittestandardses pordis (nt 2222) võib vähendada automaatse kontrollimise katseid. See ei asenda tõelisi turvameetmeid, kuid võib müra vähendada.
Kasutaja/grupi piirangud
Määrake failis /etc/ssh/sshd_config:
AllowUsers alice bob
or
AllowGroups sshadmins
8. Kasutage SSH-võtme paroole ja turvalist võtmesalvestust
Mis see on:
Krüpteerige oma privaatvõti parooliga, nii et isegi kui teie arvuti on ohus, pole võti ise kohe kasutatav.
Miks see on turvalisem:
- Varastatud võtmefail ilma paroolita võib anda kohese juurdepääsu
- Paroolid toimivad teie kohaliku võtme täiendava krüpteerimiskihina
Kuidas rakendada:
Määrake võtme loomise ajal parool
ssh-keygen -t ed25519
(Teil palutakse sisestada parool.)
Kaitske oma võtmefaile
Piirake oma .ssh-kausta ja võtmefailide õigusi.
chmod 700 ~ / .ssh
chmod 600 ~/.ssh/id_ed25519
Kaaluge riistvara turbemooduleid (HSM) või märke
Suuremate organisatsioonide puhul võib võtmehoidmiseks spetsiaalse riistvara kasutamine vähendada tarkvarapõhise varguse või pahavara riske.
Järeldus
SSH-turvalisus taandub kaitsekihtidele. Rakendades võtmepõhist autentimist, keelates otsese juurjuurdepääsu, kasutades tugevat krüptimist, püsides ajakohasena, nõudes mitmefaktorilist autentimist, jälgides logisid, piirates juurdepääsu ja kaitstes oma võtmeid paroolidega, katete kõige levinumad (ja kõige tõsisemad) riskid.
Need meetmed on kooskõlas sama laiema turbefilosoofiaga, mida SSL.com pooldab digitaalseid sertifikaate: kaitske krüptograafilisi võtmeid, kasutage tugevat krüptimist, piirake privilegeeritud juurdepääsu ja jälgige oma süsteeme valvsalt. Kui olete need põhilised parimad tavad paika pannud, saate oma turbeasendi veelgi kohandamiseks uurida täpsemaid valikuid, nagu SSH sertifikaadid, pordi koputamine või SSH käitamine VPN-i kaudu.