Hogyan védjük az SSH-kapcsolatot a CentOS 7 rendszerben

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.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.