SSH Biztonság 5 Lépésben
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.