Webová agentúra » Digitálne správy » Ako uzamknúť server SSH

Ako uzamknúť server SSH

SSH, čo je skratka pre Secure Shell, nie je v predvolenom nastavení príliš bezpečné, pretože sa rozhodlo pre základné overenie hesla bez ďalších obmedzení. Ak naozaj chcete uzamknúť server, budete musieť vykonať ďalšiu konfiguráciu.

Nepovoliť pripojenia pomocou hesla: použite kľúče SSH

Prvá vec, ktorú musíte urobiť, je úplne sa zbaviť autentifikácie heslom a prejsť na používanie kľúčov SSH. Kľúče SSH sú formou šifrovania verejného kľúča; máte verejný kľúč, ktorý slúži ako vaše používateľské meno a súkromný kľúč, ktorý slúži ako vaše heslo (okrem toho, že toto heslo má 2 znakov). Váš súkromný kľúč je uložený na vašom disku, ale je zašifrovaný pomocou prístupovej frázy a ssh agenta. Keď pristupujete k SSH na serveri, namiesto vyžiadania hesla sa agent ssh pripojí k serveru pomocou vašich kľúčov.

Aj keď už používate kľúče SSH, mali by ste sa uistiť, že vaše pripojenia pomocou hesla sú vypnuté, pretože sa navzájom nevylučujú.

Generujte kľúče SSH

Môžete vygenerovať nový kľúč SSH pomocou ssh-keygen nástroj, štandardne nainštalovaný na väčšine systémov Unix.

ssh-keygen

Toto vás požiada o prístupovú frázu na zašifrovanie súboru lokálneho kľúča. Nepoužíva sa na autentifikáciu so serverom, ale musí byť vždy utajený.

ssh-keygen uloží váš súkromný kľúč do ~/.ssh/id_rsaa tiež uloží váš verejný kľúč ~/.ssh/id_rsa.pub. Súkromný kľúč zostáva na vašom pevnom disku, ale verejný kľúč sa musí nahrať na server, aby server mohol overiť vašu identitu a overiť, či máte oprávnenie na prístup k tomuto serveru.

Server vedie zoznam oprávnených používateľov, zvyčajne uložených v ~/.ssh/authorized_keys. Úložisko kľúčov môžete do tohto súboru pridať manuálne alebo môžete použiť ssh-copy-id pomôcka:

ssh-copy-id -i ~ / .ssh / id_rsa.pub užívateľ @ hostiteľ

vymeniť user@host s vlastným užívateľským menom a názvom servera. Budete vyzvaní, aby ste sa znova prihlásili pomocou starého hesla, po ktorom by ste už nemali byť vyzvaní na jeho zadanie a môžete prihlasovanie heslom vypnúť.

Zakázať prihlásenie pomocou hesla SSH

Teraz, keď máte prístup na server pomocou svojich kľúčov, môžete úplne zakázať autentifikáciu heslom. Uistite sa, že autentifikácia kľúčom funguje, inak budete zablokovaní na svojom serveri.

Na serveri otvorte /etc/ssh/sshd_config vo svojom obľúbenom textovom editore a nájdite riadok začínajúci na:

#Overenie hesla

Chcete odstrániť komentár (odstrániť hashtag) a nahradiť „áno“ „nie“:

HesloAuthentication no

Potom reštartujte sshd s:

systémový reštart sshd

Mali by ste byť požiadaní o opätovné prihlásenie a ak je váš súbor kľúča nesprávny, nebudete vyzvaní na zadanie hesla.

Ak chcete, môžete tiež vynútiť autentifikáciu verejným kľúčom, ktorá zablokuje všetky ostatné metódy autentifikácie. Pridajte nasledujúce riadky do /etc/ssh/sshd_config:

AuthenticationMethods publickey PubkeyAutentifikácia áno

a reštartujte sshd.

Uzamknite útočníkov pomocou denyhosts

denyhosts je nástroj na zabránenie opakovaným neúspešným pokusom o prihlásenie cez SSH, podobne ako vás telefón zamkne po príliš veľa pokusoch. Štandardne nie je nainštalovaný, takže ho budete musieť nainštalovať zo správcu balíkov vašej distribúcie. Pre systémy založené na Debiane, ako je Ubuntu, by to bolo:

sudo apt-get install denyhosts -y

Po inštalácii ho aktivujte pomocou:

sudo systemctl povoliť denyhosts

denyhosts by sa mal teraz spustiť automaticky, ale budete chcieť pridať svoju IP adresu na bielu listinu pre prípad, že by ste sa z nej vymkli. Vždy to môžete skúsiť znova z inej adresy IP, ale ušetrí vám to trochu problémov.

Sprístupniť /etc/hosts.allowa na koniec súboru pridajte:

sshd: vaša-ip-adresa

vymeniť your-ip-address s vašou IP adresou.

V predvolenom nastavení je denyhosts uzamkne sa po jednom neúspešnom pokuse pre užívateľov root a piatich neúspešných pokusoch pre ostatných užívateľov. Toto správanie môžete zmeniť úpravou /etc/denyhosts.conf.

Ak ste sa náhodou zamkli, budete musieť zastaviť denyhosts a odstráňte svoju IP adresu z niekoľkých miest:

  • /etc/hosts.deny
  • /var/lib/denyhosts/hosts
  • /var/lib/denyhosts/hosts-restricted
  • /var/lib/denyhosts/hosts-root
  • /var/lib/denyhosts/hosts-valid
  • /var/lib/denyhosts/users-hosts

reštart denyhosts a mali by ste byť schopní sa znova pripojiť.

SSH prístup k bielej listine

Hoci vynútenie kľúčov SSH pomocou denyhosts je pravdepodobne dostatočná bezpečnosť, môžete na bielu listinu uviesť konkrétne IP adresy. Väčšina predajcov serverov poskytuje nástroje na to z webového rozhrania. Ak je to možnosť, budete chcieť pridať na bielu listinu odtiaľ, a nie zo servera SSH, pretože stále budete môcť zmeniť adresu IP na bielej listine v prípade, že sa z nej vymknete.

Ak to nie je možné, budete musieť nakonfigurovať manuálne /etc/hosts.deny blokovať všetku komunikáciu od neoprávnených hostiteľov.

Dôležitá poznámka: Ak zadáte svoj domov na bielu listinu, váš ISP vám nemusí dať statickú IP adresu a vaša IP adresa sa môže kedykoľvek zmeniť. Musíte sa uistiť, že sa to nestane skôr, ako zakážete všetky ostatné adresy IP alebo pridáte viacero adries ako zálohu, alebo jednoducho tento krok preskočíte.

Sprístupniť /etc/hosts.allow a uistite sa, že vaša IP adresa je v súbore:

sshd: vaša-ip-adresa

Ak áno, môžete pokračovať a odmietnuť všetky ostatné pripojenia:

echo 'sshd: ALL' >> /etc/hosts.deny

reštart sshd a mali by ste vidieť svoje zmeny.

Môžete tiež nakonfigurovať server proxy pred serverom SSH

Ak nechcete, aby bol váš server SSH vystavený internetu, ale potrebujete k nemu pristupovať z viacerých adries IP, môžete nakonfigurovať proxy server, ktorý bude spravovať pripojenie. Môže to byť ďalší cloudový server alebo dokonca krabica spustená vo vašom dome.

Server SSH by mal byť nakonfigurovaný tak, aby akceptoval iba pripojenia z proxy servera, a server proxy by mal akceptovať pripojenia odkiaľkoľvek. Proxy server môžete nakonfigurovať, ako chcete, ale bude fungovať aj jednoduché pripojenie netcat. Majte na pamäti, že tento proxy server bude jediným prístupovým bodom pre váš server SSH, takže ak proxy zlyhá, budete zablokovaní, pokiaľ nemáte záložnú adresu.

Nepovoliť prihlásenie root

Namiesto toho vytvorte nového používateľa a udeľte mu privilégium sudo. V skutočnosti je to to isté, ale je tu jeden zásadný rozdiel: Potenciálni útočníci budú musieť poznať názov vášho používateľského účtu, aby vôbec mohli začať útočiť na váš server, pretože to nebude také jednoduché ako root@yourserver.

Okrem bezpečnosti je vo všeobecnosti dobrou politikou Unixu nebyť prihlásený ako root stále, pretože root nevytvára protokoly ani výzvy pri prístupe k chráneným zdrojom.

Vytvorte nového používateľa na serveri SSH:

adduser myfancyusername

a nastavte heslo pre tohto používateľa:

passwd myfancyusername

S týmto heslom sa neprihlásite, pretože budete vždy používať kľúče SSH, ale je to povinné. V ideálnom prípade to odlíšte od hesla používateľa root.

Pridať tohto používateľa do /etc/sudoers na udelenie oprávnení správcu:

echo 'myfancyusername ALL = (ALL) ALL' >> / etc / sudoers

Prepnúť na tohto používateľa pomocou su myfancyusernamea overte, či sa môžete vrátiť k používateľovi root s sudo su (ktorý nevyžaduje root heslo). Ak môžete, máte prístup k sudo.

Teraz chcete zablokovať prihlásenie root. In /etc/ssh/sshd_config, budete chcieť zmeniť:

#PermitRootLogin áno

Odstráňte hasstag a nahraďte „áno“ „nie“:

PermitRootLogin no

reštart sshd a váš server by mal blokovať všetky požiadavky na pripojenie ako root.

Nakonfigurujte dvojfaktorové overenie

Je to určite prehnané, ale ak ste paranoidní z toho, že niekto zadá vaše súkromné ​​kľúče SSH, môžete svoj server SSH nakonfigurovať tak, aby používal 2FA.

Najjednoduchší spôsob, ako to urobiť, je použiť aplikáciu Google Authenticator so zariadením so systémom Android alebo iOS, hoci SSH podporuje mnoho dvojfaktorových metód. S aplikáciou Google Authenticator dostanete QR kód, ktorý môžete naskenovať z mobilnej aplikácie Google Authenticator a prepojiť tak svoj telefón so serverom, a tiež dostanete niekoľko záložných kódov na obnovenie v prípade straty telefónu. Neukladajte tieto kódy na svojom hlavnom počítači, inak v skutočnosti nejde o dva faktory.

★ ★ ★ ★ ★