Az SSH a Linux-kiszolgálókhoz való csatlakozáshoz és azok adminisztrációjához használt fő protokoll. Emiatt ez az egyik leggyakrabban támadott port, amikor rosszindulatú szereplők megpróbálnak hozzáférni a szerveréhez. Ebben a cikkben néhány módszert tárgyalunk, amelyekkel biztonságosabbá teheti SSH-kapcsolatát.
Megjegyzés: Az OVHcloud termékétől függően az alábbi lépések egy része már megtörténhetett. Ha ez a helyzet, egyszerűen folytassa a következő lépéssel. Emellett a cikkben szereplő lépések feltételezik, hogy SSH-kulcsok használatával hitelesíti magát a kiszolgálóján. Ha ehelyett jelszót használ, a cikk egyes lépései nem fognak működni.
Előfeltételek
- Hogyan használjunk SSH kulcsokat
- CentOS 7 rendszert futtató kiszolgáló
Témák
- Új Sudo felhasználó létrehozása
- SSH démon módosítása Konfiguráció
Új Sudo felhasználó létrehozása
A legjobb gyakorlat mindig a root hitelesítés letiltása SSH-n keresztül, mivel ezt a felhasználónevet próbálják a legtöbben feltörni. Ezért az első dolog, amit a szerverünk biztonsága érdekében tenni akarunk, hogy létrehozunk egy új sudo felhasználót az SSH-hoz. Ehhez írjuk be a következő parancsot, a piros felhasználónevet pedig cseréljük le az általunk választott felhasználónévre:
# adduser username
A következő lépésben állítsunk be egy jelszót a felhasználóhoz:
# passwd username
Kövessük a felszólítást a jelszó létrehozásához és megerősítéséhez. Most az új felhasználónknak sudo jogosultságokat szeretnénk adni, hogy root felhasználóvá válhassunk, és futtathassuk a rendszergazdai jogosultságokat igénylő parancsokat. Ezt a következő parancs megadásával tehetjük meg.
# usermod -aG wheel username
Végül engedélyezni akarjuk, hogy új felhasználónk a root felhasználónak már megadott SSH nyilvános kulcs segítségével hitelesítse magát. Egy egyszerű rsync paranccsal átmásolhatjuk a nyilvános kulcsot az új felhasználónk authorized_keys fájljába.
# rsync --archive --chown=username:username ~/.ssh /home/username
A következő lépés előtt jelentkezzen ki, és győződjön meg arról, hogy az új felhasználóként képes hitelesíteni magát a kiszolgálón SSH segítségével. Ha nem tud bejelentkezni az új felhasználóként, akkor is be tud jelentkezni root felhasználóként; erősítse meg, hogy minden parancsot helyesen írt be, és próbáljon meg újra bejelentkezni az új felhasználóként.
A SSH démon konfigurációjának módosítása
Mivel SSH kulcsokat és egy új felhasználót használunk a szerverünkön való hitelesítéshez, soha nem szeretnénk, ha bárki jelszóval vagy a root felhasználónévvel jelentkezne be. Ehhez először az OpenSSH démon konfigurációs fájljához kell navigálnunk. Ehhez nyissuk meg a fájlt egy tetszőleges szövegszerkesztőben a következő paranccsal:
$ sudo vi /etc/ssh/sshd_config
Három változtatást szeretnénk végrehajtani ebben a fájlban. Először is, meg akarjuk változtatni azt a portot, amelyen az OpenSSH a kéréseket hallgatja.
Figyelmeztetés: Ha van aktív tűzfalad, akkor engedélyezned kell a forgalmat az általad választott porton keresztül, különben kizárod magad a szerveredből. Ha mégis kizárja magát a szerveréről, IPMI vagy KVM segítségével visszanyerheti a hozzáférést. Ha többet szeretne megtudni, kérjük, olvassa el a Getting Started with IPMI cikket.
A fájl tetején egy olyan szakasz látható, amely alapértelmezés szerint így néz ki:
#Port 22#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::
A “Port” szakaszhoz tegyen megjegyzést, és válasszon bármilyen érvényes portszámot, mint a következő példában. Példánkban az 12345-ös portot használjuk.
Port 12345#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::
Következő lépésként görgess lefelé a # Authentication:
részhez. Öt opciót fog látni, amelyek alapértelmezés szerint a következőképpen jelennek meg:
#LoginGraceTime 2m#PermitRootLogin yes
PermitRootLogin yes#StrictModes#MaxAuthTries 6#MaxSessions 10
Itt a “PermitRootLogin” melletti “yes”-t “no”-ra akarjuk változtatni. Ez a következőképpen fog megjelenni:
#LoginGraceTime 2m
#PermitRootLogin yesPermitRootLogin no#StrictModes#MaxAuthTries 6#MaxSessions 10
Most egy kicsit lejjebb kell görgetnünk az sshd_config fájlban, hogy elvégezzük az utolsó módosításunkat – a jelszavas hitelesítés letiltását. Egy olyan részt fog látni, amely alapértelmezés szerint így néz ki:
# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication yes
A “PasswordAuthentication” melletti “yes”-t “no”-ra akarjuk változtatni. Ez így fog megjelenni:
# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords no
PasswordAuthentication no
Mentés és kilépés a fájlból. Végül újra kell indítanunk az OpenSSH-t, hogy a módosítások hatályba lépjenek. Ezt a következő parancs beírásával tehetjük meg:
$ sudo systemctl restart sshd.service
Nézzük át egy pillanatra, hogy mit is csináltunk itt. Megváltoztattuk a portszámot, amelyet az SSH-kérések fogadására használunk. Ezután letiltottuk az SSH-hozzáférést a root felhasználó vagy bármely olyan felhasználó számára, aki jelszóval próbál hitelesíteni. Ha ezt helyesen tettük, akkor a következő parancs már nem fog működni a szerverre való bejelentkezéshez.
$ ssh [email protected]
A bejelentkezéshez most már meg kell adnunk azt a portszámot, amelyet az SSH-kérések fogadására használunk. Ez azt jelenti, hogy mostantól kezdve a következő parancsot kell használnunk, a “-p” melletti számot a korábban kiválasztott portszámmal helyettesítve:
$ ssh -p 12345 [email protected]
Győződjünk meg róla, hogy ez a parancs működik, az előző pedig nem. Ha igen, akkor minden készen áll arra, hogy biztonságosan hozzáférjen a szerveréhez SSH-n keresztül.
Következtetés
Mivel annyi rossz szereplő használja az internetet, soha nem volt még ilyen fontos, hogy biztosítson minden lehetséges belépési pontot a szerveréhez. Azzal, hogy követte ezt az útmutatót, segítette a Linux szerverek leggyakoribb belépési pontjának biztonságát.