2024. április 19., péntek

Gyorskeresés

SSH szerver beállítása Kali linuxon

Írta: | Kulcsszavak: Kali . SSH . IT . hack . IT Sec . server

[ ÚJ BEJEGYZÉS ]

Maga az SSH (azaz Secure Shell) egy protokoll, amit egy helyi és egy távoli számítógép közötti biztonságos csatorna kiépítésére fejlesztettek ki. Bővebben ITT olvashattok róla. Két fő verziója van, az SSH-1 és az SSH-2. Ebben a cikkben bemutatom hogyan kell létrehozni ezt Kali linuxon open-SSH Server használatával, valamint pár alap biztonsági lépést mutatok be.

1. Telepítsük az openSSH-server-t

apt-get install openssh-server

Egyből le is ellenőrizhetjük telepítés után, hogy működik-e

service ssh start

Viszont ezzel van egy kis probléma. Az oké, hogy most elindítjuk, de minden újraindítás után meg kell tennünk ezt a műveletet. Ezt ha ki akarjuk kerülni akkor a következő lépésben részletezem a megoldását. Aki ezt nem szeretné, lépjen a 3. lépésre

2. SSH szerver indítása bootoláskor

Első lépésként töröljük az SSH futtatási szintjeit

update-rc.d -f ssh remove

Majd töltsük be az SSH alapértértelmezéseit a futtatási szintbe

update-rc.d -f ssh defaults

Ellenőrizzük, hogy sikerrel jártunk-e

chkconfig ssh

Így kell kinéznie a parancssorunknak, ha mindent jól csináltunk

Mostmár rajtavan a gépünkön az openssh-server. Itt az ideje konfigurálni! Ám mielőtt hozzáfognánk, előbb nézzük át, mi mit jelent és hol találjuk.

/etc/ssh/sshd_config Openssh szerver konfigurációs file
/etc/ssh/ssh_config Openssh kliens konfigurációs file
~/.ssh/ felhasználók ssh konfigurációs mappája
~/.ssh/authorized_keys vagy ~/.ssh/authorized_keys publikus kulcsok (RSA ill. DSA) listája amit a felhasználók használnak a belépéshez
/etc/nologin ha van ilyenünk, akkor az sshd elutasítja, hogy bárki belépjen, kivétel ez alól a root felhasználó
/etc/hosts.allow és /etc/hosts.deny hozzáférés-vezérlő listák

*3. Alapértelmezett kulcs megváltoztatása
Ez a lépés azért fontos, mert minden linux rendszer egy előre meghatározott SSH kulcsot használ. Ez mindenkinél ugyanaz, ha a rendszer verziószáma megegyezik, ergo mindenki aki ugyanolyan rendszert használ, képes egy MITM (Man in the Middle) támadást indítani. Ezt ugyebár senki se akarja, Tehát:

Mozgassuk át az alapértelmezett Kali kulcsokat egy új helyre a következő parancsokkal:

cd /etc/ssh/
mkdir default_kali_keys
mv ssh_host_* default_kali_keys/

Ha ez megvan, generáljuk újra a kulcsokat:

dpkg-reconfigure openssh-server

ellenőrizzük, hogy az SSH kulcs hash-ek különböznek

md5sum ssh_host_*

Hasonlítsuk össze az eredeti hasheket az újakkal. Ha mindent jól csináltunk, akkor látható a különbség

cd default_kali_keys/
md5sum *

Indítsuk újra a szerverünket:

service ssh restart

4. Hibaelhárítás
Mivel a kulcsot úgy módosítottuk, hogy közben be voltunk jelentkezve, ezért ezt a hibaüzenetet kapjuk:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
26:65:52:75:81:71:a8:c5:4c:ad:b6:81:78:58:18:af.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.

Figyelmeztet a már említett MITM támadás valószínűségére, de mi épp ezért változtattuk megy a kulcsot. Default key esetén ez az üzenet nem jelenik meg, és nem is fogjuk észrevenni a MITM támadásokat. Szimplán törölni kell a sorokat a knows_hosts file-ból:

leafpad /root/.ssh/known_hosts

mentés és kilépés

*sshd_config file módosítások
Fontos, mielőtt elkezdenénk szerkeszteni, állítsuk le a szerverünket.

Biztonsági mentés csinálunk az SSH config file-ról (ha valamit rosszul sülne el)

cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup

1. csak SSH protocol 2-t használjunk
Az SSH 1-es számú protokollja több sebezhető pontot tartalmaz, ezért javallott a mellőzése. az sshd_config file megnyitása után nézzük meg, tartalmazza-e ezt a sor:

Protocol 2

2. Szabjuk meg, ki jelentkezhet be root-ként
Megadjuk, hogy kockasajt és spagetti lehet csak rendszergazdaként belépve. Adjuk hozzá a következőket:

AllowUsers root kockasajt spagetti

Ha viszont azt akarjuk megszabni, hogy senki se részesüljön root jogosultságban (mivel bárki a su ill. sudo paranccsal elérheti a root szintet) módosítsuk ezt a sort erre:

PermitRootLogin no

Természetesen azt is megadhatjuk, hogy paprika ne tudjon bejutni:

DenyUsers paprika

3. Tétlenségi időzóna megszabása
Megadhatunk egy időintervallumot, ami után a tétlen felhasználót kijelentkezteti a rendszer. Esetünkben 180 másodpercet adunk meg (3 perc).

ClientAliveInterval 180
ClientAliveCountMax 0

4. Üres jelszó mellőzése
szimplán ezzel a paranccsal kell kiegészítenünk a file-t:

PermitEmptyPasswords no

5. Alapértelmezett port megváltoztatása
Egy kis plusz biztonság érdekében az előre definiált portot (22) érdemes megváltoztatni. Bármelyiket használhatjuk 10000 és 64000 között.

Keressük meg a következőt:

#Port 22

Majd módosítsuk:

Port 15150

Így kell, hogy kinézzen:

<kép>

Ment, kilép, restart

Legközelebb, ha el akarjuk érni az SSH-t, a következőképp kell próbálkozni:

ssh username@myhostnaname.com -p 15150

username@myhostnaname.com - felhasználónév és host, ahol a host lehet IP vagy FQDN
-p 15150 maga a port, amin keresztül kommunikálni akarunk.

Ez csak néhány általános tipp volt a szerver biztonságosabbá tételéhez. Kifejezetten otthoni felhasználásra ajánlom az openssh-t. Remélem minden érthető és világos volt.
Természetesen a cikk lezárásáról is gondoskodom:

Hozzászólások

(#1) Gdi


Gdi
senior tag

Mindig van szisza a végén? :D

Amugy ha publikus interfészen elérhető az ssh, akkor ajánlott a port megváltoztatásán kívül mást is bedobni (bár a no-root is elég, de akkor meg a te kezed van megkötve). Pl fail2ban. Nekem minden jail: 3 fail login 1 héten belül = 1 év tiltás. Hasznos :)

[ Szerkesztve ]

''Milliárdnyi meggyilkolt csillag sikolya elhal az éj békéjében, és a kétségbeesésnek csak néhány, törékeny, kőbevésett szó áll ellen.''

(#2) Mr.C válasza Gdi (#1) üzenetére


Mr.C
őstag

pont a fail2ban-on gondolkoztam, hogy bele kellene rakni, de azán úgy döntöttem, hogy egyenlőre az sshd_configon belül mutatok 1-2 dolgot...

ja, és igen... szőrcsomók lesznek minden cikkem végén :DD

[ Szerkesztve ]

sudo rm -rf /*

(#3) Buci21


Buci21
addikt

és ebből itt hogyan lesz SFTP share? én eddig csak az sftp miatt nézegettem az SSH-t :R

(#4) lezso6 válasza Buci21 (#3) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Sehogy, mert már az.

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#5) Buci21 válasza lezso6 (#4) üzenetére


Buci21
addikt

hopp :D és hogy csinálok így SFTP sharet? hol adom meg, hogy melyik mappát lehet elérni?

(#6) Mr.C válasza Buci21 (#5) üzenetére


Mr.C
őstag

a home/ftp-nek root jogosultsággal kell rendelkeznie (chmod 0755). ide kell beraknok almappákat és megtölteni file-okkal. Valamint jól jön, ha rendelkezel ú.n. internal-sftp alrendszerrel (Subsystem sftp internal-sftp)

sudo rm -rf /*

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.