ssh

SSH Biztonság 5 Lépésben

Security 2022. jan 19.

Mostanában többször látom felmerülő témaként az SSH szerverek biztonságát. Ezért összegyűjtöttem pár pontban azokat a dolgokat, amikre érdemes figyelni.

Ezen cikk nem taglalja az SSH használatának alapjait, de a későbbiekben elképzelhető, hogy lesz ilyen, ha van rá igény. :)

Mitől kell megvédeni az SSH-t?

Az internet tele van botokkal, amik arra lettek programozva, hogy felkutassanak SSH szervereket, és betörjenek rendszereinkbe. A legtöbb botot könnyű hatástalanítani, de nem árt védekezni az intelligensebb, esetleg emberi támadókkal szemben is, ha szerverünk ki van engedve a világhálóra.

1. Ne használj elavult SSH protokollt!

Sokan nem is tudnak az SSH 2-es protokollról, és még napjainkban is 1-est használnak, pedig azt már 2006-ban leváltotta a 2-es. A protokoll visszafele nem kompatibilis, tehát arra is garanciát ad, hogy csak a biztonságosabb protokollra konfigurált klienssel lehet fellépni.

Első körben nyissuk meg az sshd_config fájlt egy tetszőleges szövegszerkesztőben. Én vimet használok, de ez téged ne zavarjon.

sudo vim /etc/ssh/sshd_config

Írjuk a configba a Protocol 2 sort.

#	$OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

Protocol 2

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

Ezt a fájlt még ne zárd be, mert a későbbiekben fogsz még benne turkálni. :)

2. Állítsd át a portot!

A legtöbb botban hardcode-olva van a port, általában a két legnépszerűbb a 22 és a 2222, ezért ezeket semmiképp ne használjuk, ha nem szeretnénk, hogy folyamatosan kopogjanak. Ha már ott van a fájl tetején, akkor írd is át egy tetszőleges portra pl: Port 6486. Érdemes 10000 feletti portot választani, mert az nmap csak akkor scannel felette, ha kapcsolóval arra kérik.

3. Használj kulcspárokat jelszók helyett!

A jelszavas azonosítás legnagyobb hibája, hogy törhető, és te nem akarod, hogy folyamatosan brute-oljanak, és azt sem, hogy esetlegesen egy gyenge jelszó esetén fel is törjék azt.

Első lépésben kapcsold ki a jelszavas azonosítást.

PasswordAuthentication no

Ezentúl senki sem tud belépni jelszóval a szerverre, de nem kell ünnepelni, mert van még dolog bőven.

A következő lépéshez szükséged lesz az ssh-keygen nevű programra kulcspárod elkészítéséhez. Ezt azon a gépen tedd meg, amivel csatlakozni szeretnél a szerveredre. ed25519 kulcspár készítéséhez a következőt kell beírnod a kis terminálodba:

ssh-keygen -t ed25519

A -t kapcsolóval a kulcsot generáló algoritmus típusát lehet megválasztani és ezzel, hogy milyen kriptográfiai eljárással legyen megejtve a kulccsere. Ez lehet: dsa, ecdsa, ecdsa-sk, ed25519, ed25519-sk, vagy rsa.

A parancs kimenete ehhez hasonlónak kell lennie:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/dovahkiin0424/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/dovahkiin0424/.ssh/id_ed25519
Your public key has been saved in /home/dovahkiin0424/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:4BgGSsyTkCu/EM+wnv7zGnWMBEjahFOKI+e4EMlh604 dovahkiin0424@h4xR
The key's randomart image is:
+--[ED25519 256]--+
|*O*.             |
|X%o..            |
|X=+ o..          |
|B* ..+o.         |
|+E. .o.oS        |
|*.+ . .          |
|oo.o             |
| o...            |
|...o+.           |
+----[SHA256]-----+

Fog kérni egy jelszót a kulcshoz, hogy biztos, csak te tudd használni, arra az esetre, ha illetéktelen kezekbe kerülne a kulcsod, de semmi sem törhetetlen, szóval érdemes erős jelszót és titkosítást választani.

Következő lépésként át kell juttatni a public key-edet a szerverre.

A következő paranccsal ezt könnyedén meg is tehetjük:

ssh-copy-id username@server_ip

4. Korlátozd a jelszókérésnél a próbálkozási lehetőségeket!

Tudom, hogy azt gondolod, hogy értelmetlen, mert jelszóval nem tudnak már belépni, de a kulcsos belépésnél még mindig van jelszó, amire szintén érdemes figyelni, szóval a biztonság kedvéért szilárdítunk rajta egy kicsit. Jó esetben még nem zártad be az sshd_config-ot, ha mégis akkor szégyelld magad, mert nem hallgattál rám az 1. pontban, és nyisd meg újra.

Keresd meg a #MaxAuthTries 6 sort, és szerkeszd erre: MaxAuthTries 3

5. Kapcsold ki a root logint!

Már csak egy lépés van hátra, és az a root login kikapcsolása. Ez egy fontos lépés, mert leginkább a root useredet fogják támadni, a botok és az emberek egyaránt.

Keresd meg a #PermitRootLogin prohibit-password sort, és írd át PermitRootLogin no-ra.

Zárszó

Most már elmenthetjük, és bezárhatjuk az sshd config fájlt, majd a változtatások érvényesítéséhez indítsuk újra a szolgáltatást a következő módon:
sudo systemctl restart sshd

Remélem tanultál valami hasznosat, ha tetszett a cikk, oszd meg ismerőseiddel, és látogasd meg a discord szerverünket.

Tagek