Ugrás a tartalomhoz

Sütibeállítások

Típusonként válassza ki, mely sütiket engedélyezi. Választását bármikor módosíthatja a Sütibeállítások linken, amely minden oldal alján megtalálható. Adatvédelmi nyilatkozat

Szükséges

Mindig bekapcsolva

A bejelentkezéshez, a kosár megőrzéséhez és a választásai megjegyzéséhez szükségesek. Ezek mindig be vannak kapcsolva.

Milyen sütik?
  • weboke_sessie, weboke_klant, weboke_remember: a munkamenet és a bejelentkezve maradás
  • weboke_basket: a kosár
  • wkBtwIncl: az árak megjelenítése ÁFÁ-val vagy anélkül
  • wok_cookies: a sütiválasztás, 12 hónap

Méri, melyik hirdetés vezet látogatáshoz vagy rendeléshez, hogy ne fizessünk hatástalan hirdetésekért.

Milyen sütik?
  • Google Ads a Google Tag Manageren keresztül (_gcl_au, _gcl_aw), legfeljebb 90 napig
  • OpenAI Ads, hirdetések a ChatGPT-ben
  • wok_aff: melyik partnerünk ajánlására érkezett (partnerprogram), 60 nap

4,6

Ország és nyelv

Minden országnak saját oldala van, az adott ország áraival és ÁFA-jával.

Megtekintés

Az első SSH-bejelentkezés

Modul 1: Az első szervere · Olvasási idő: 10 perc

Tanulási cél: A lecke után Ön először be tud jelentkezni SSH-val a szerverére, ellenőrizni tudja a szerver ujjlenyomatát, mielőtt megbízna benne, és tudja, mit kell tennie, ha figyelmeztetést kap arról, hogy a szerver azonosítója megváltozott.

Kulcsfogalmak: SSH, kliens és szerver, 22-es port, verziószalag (banner), host key, ujjlenyomat (SHA256), known_hosts, trust on first use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell és Terminal

Mi az SSH?

Az SSH (Secure Shell) az a titkosított kapcsolat, amellyel egy szervert távolról kezelhet. Ön a saját számítógépén gépel, a parancsok pedig a szerveren futnak le. Minden, ami a vonalon áthalad, a jelszava is, titkosítva van.

A kapcsolatnak két oldala van:

  • az SSH-kliens az Ön számítógépén: ez a ssh program. macOS-en és Linuxon alapból megtalálható. Windows 10 (1809-es verziótól) és Windows 11 alatt az OpenSSH-kliens a Windows része; PowerShellben vagy a Windows Terminalban használhatja. Ha hiányzik, a Beállítások, Választható szolgáltatások, „OpenSSH-ügyfél” menüpontban adhatja hozzá. Az ablakos programok, például a PuTTY, szintén működnek, de ebben a tanfolyamban a ssh programot használjuk.
  • az SSH-szerver a VPS-en: ez a sshd program (az OpenSSH része). Alapértelmezés szerint a 22-es porton figyel.

Bejelentkezés

Egy felhasználónévvel és a szerver címével jelentkezik be:

PS C:\Users\anna> ssh root@192.0.2.10

Vagy egy névvel, ha azt már beállította a DNS-ben (7.1. lecke):

anna@laptop:~$ ssh root@web1.example.com

Az első alkalommal valami ilyesmit lát:

The authenticity of host '192.0.2.10 (192.0.2.10)' can't be established.
ED25519 key fingerprint is SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Ez a lecke legfontosabb pillanata. Ne gépelje be vakon, hogy yes.

A host key és az ujjlenyomat

Minden SSH-szervernek van egy vagy több host keye: ezek olyan kulcspárok, amelyekkel a szerver igazolja, kicsoda. A nyilvános részek a szerveren a /etc/ssh/ helyen találhatók, például /etc/ssh/ssh_host_ed25519_key.pub. A szerver minden kapcsolatnál megmutatja, hogy birtokában van a titkos résznek.

Az ujjlenyomat egy ilyen nyilvános kulcs rövid összefoglalása (hash-e). Az OpenSSH alapértelmezés szerint az SHA256-os formát mutatja: SHA256:, majd 43 karakter.

Az "Are you sure you want to continue connecting?" kérdés azt jelenti: a számítógépe még nem ismeri ezt a szervert. Ki garantálja, hogy valóban az Ön VPS-ével beszél, és nem valakivel, aki elfogja a forgalmat? Senki, hacsak Ön össze nem veti az ujjlenyomatot egy megbízható forrással.

Ez a forrás a szolgáltatója konzolja (1.2. lecke). Ott nem a hálózaton keresztül kommunikál a szerverrel. Jelentkezzen be a konzolba, és kérdezze le az ujjlenyomatot:

root@web1:~# ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:Xq3aTnPpC0m1o4cJ2kVqY8mWb7rZs5dLfE6hUyN9tKs root@web1 (ED25519)

Ha ez pontosan megegyezik azzal, amit a kliens mutat, gépelje be: yes. A yes helyett magát az ujjlenyomatot is beillesztheti; ekkor a ssh végzi el Ön helyett az összehasonlítást. Ha eltér, álljon meg, és derítse ki, miért (rossz IP-cím, újratelepített szerver, vagy valami komolyabb).

Figyeljen a típusra: a kliens megnevezi a típust (ED25519, ECDSA vagy RSA). Mindig azonos típusú ujjlenyomatokat hasonlítson össze. Sok image az első indításkor a konzolra is kiírja az ujjlenyomatokat (cloud-init), például a BEGIN SSH HOST KEY FINGERPRINTS sorok között.

known_hosts és trust on first use

Ha begépeli, hogy yes, ezt látja:

Warning: Permanently added '192.0.2.10' (ED25519) to the list of known hosts.

A kliens elmenti a kulcsot a ~/.ssh/known_hosts fájlba (Windowson C:\Users\<naam>\.ssh\known_hosts). Ettől kezdve minden kapcsolatnál automatikusan összehasonlít. Ezt a modellt trust on first use (TOFU, bizalom az első használatkor) néven ismerjük: az első alkalommal Önnek kell ellenőriznie, utána a kliens őrködik.

Ezért olyan fontos az első ellenőrzés: ha egy rossz kulcsban bízik meg, a kliens ezután soha többé nem fog figyelmeztetni.

Ha Ön maga is Debiant vagy Ubuntut futtató számítógépen dolgozik, a known_hosts fájlban a nevek alapértelmezés szerint hash-elve szerepelnek (HashKnownHosts yes a /etc/ssh/ssh_config fájlban), így ott nem lát olvasható IP-címeket. Windowson és macOS-en olvashatóan szerepelnek. A keresés mindenhol így működik:

anna@laptop:~$ ssh-keygen -F 192.0.2.10
# Host 192.0.2.10 found: line 3
|1|kP9...= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...

"REMOTE HOST IDENTIFICATION HAS CHANGED"

Előfordulhat, hogy ezt a figyelmeztetést látja:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
...
Host key verification failed.

A szerver más kulcsot mutat, mint amit a kliense ismer. A ssh ilyenkor megtagadja a kapcsolódást. Kétféle ok lehetséges:

NormálisGyanús
Újratelepítette a VPS-t (új host keyek)Semmit nem változtatott, mégis más a kulcs
Az IP-címet egy másik szerver kapta megIdegen wifihálózaton van
Szándékosan lecserélte a host keyeketA konzolban látható ujjlenyomat eltér attól, amit a kliens most lát

Ha van normális magyarázat, ellenőrizze újra az ujjlenyomatot a konzolban, és csak utána törölje a régi sort:

anna@laptop:~$ ssh-keygen -R 192.0.2.10
# Host 192.0.2.10 found: line 3
/home/anna/.ssh/known_hosts updated.

A következő kapcsolódáskor ismét megkapja az első alkalommal látott kérdést, és újra ellenőriz. Soha ne állítsa be a StrictHostKeyChecking no opciót a beállításaiban, csak hogy eltüntesse a figyelmeztetést: ezzel éppen azt a védelmet kapcsolja ki, amelyről szó van.

A verziószalag (banner)

Mielőtt bármi titkosításra kerülne, a kliens és a szerver egy-egy sor szöveget küld egymásnak: ez a verziószalag (banner). Ezt az interneten bárki láthatja. A ssh -v paranccsal tekintheti meg:

anna@laptop:~$ ssh -v root@192.0.2.10 2>&1 | grep "remote software"
debug1: Remote protocol version 2.0, remote software version OpenSSH_9.6p1 Ubuntu-3ubuntu13.5

A szerver itt közli, melyik protokollt (2.0) és milyen szoftvert használ. A Debian és az Ubuntu a csomagverziót is hozzáfűzi. Ez nem olyan titok, amelyet el kellene rejtenie: a támadók úgyis mindent kipróbálnak, és Ön frissítésekkel védekezik (4. modul), nem egy másik bannerrel. Hasznos viszont: a bannerből kívülről is látható, hogy a szervere valóban a frissített verziót futtatja-e.

AlmaLinuxon és Rocky Linuxon

A bejelentkezés és az ujjlenyomatok ugyanígy működnek. A szolgáltatás neve sshd a ssh helyett (systemctl status sshd). A banner nem tartalmazza a disztribúció nevét, csak az OpenSSH verzióját.

Összefoglalás

  • Az SSH a szerveréhez vezető titkosított kapcsolat; a ssh a kliens, a sshd a szerver a 22-es porton.
  • Az első kapcsolódáskor a kliens megmutatja a host key ujjlenyomatát. Vesse össze a konzolban futtatott ssh-keygen -lf kimenetével, mielőtt begépeli: yes.
  • A kliens elmenti a kulcsot a ~/.ssh/known_hosts fájlba, és ettől kezdve maga figyelmeztet (trust on first use).
  • A "REMOTE HOST IDENTIFICATION HAS CHANGED" üzenet újratelepítés után normális; egyébként gyanús. Régi sort csak ellenőrzés után töröljön, a ssh-keygen -R paranccsal.
  • A verziószalag nyilvános; a védelmet a frissítések adják, nem az elrejtés.

Kvíz

1. Mivel veti össze azt az ujjlenyomatot, amelyet a ssh az első kapcsolódáskor mutat?



2. Mire szolgál a ~/.ssh/known_hosts?



3. Újratelepítette a VPS-ét, és a "REMOTE HOST IDENTIFICATION HAS CHANGED" üzenetet kapja. Mi a helyes sorrend?



4. Miért olyan fontos trust on first use esetén az első ellenőrzés?



5. Mit mutat egy SSH-szerver verziószalagja (bannere)?



Feladat

Z1.3. feladat: A szerver SSH-bannere és ujjlenyomata. Adja meg a szervere címét, a bannerben szereplő szoftververziót (például OpenSSH_9.6p1) és azt az ED25519-ujjlenyomatot, amelyet a konzolban a ssh-keygen -lf paranccsal kérdezett le. A program egyetlen kapcsolatot létesít az SSH-portjával, beolvassa a bannert és a host keyt, majd összehasonlít. Nem jelentkezik be.

Z1.3. feladat: A szerver SSH-bannere és ujjlenyomata

Nem jelentkezünk be, és nem próbálunk ki jelszót vagy kulcsot. Először igazolja, hogy a szerver az Öné: kattintson a "Kódom megjelenítése" gombra, és helyezzen el egy /.well-known/weboke-cursus-<code>.txt fájlt, amely csak ezt a kódot tartalmazza, a hosztneve webszerverén. A fájlt közvetlenül minden ellenőrzött IP-címről lekérjük (IPv4 és IPv6 külön); TXT-rekord itt nem számít. Az ellenőrzés a heavy.webawere.nl címről érkezik (185.158.167.16 és 2a07:ae80:100:0:185:158:167:16), nem a mi webszerverünkről. Csak bejelentkezett hallgatók számára; szerverenként legfeljebb óránként 6 ellenőrzés. Ennél a feladatnál egyetlen kapcsolatot létesítünk, és csak a szerver bannerét és kulcsát olvassuk ki; a naplójába nem kerül bejelentkezési kísérlet.





Amit beír, és amit találunk, azt nem tároljuk. A böngészője megjegyzi a válaszait és azt, hogy teljesítette e a feladatot. Ha bejelentkezett, a Fiókomban csak azt tároljuk, hogy a feladat (majdnem) helyes volt; ott ezt is törölheti.

További olvasnivaló

Egy pillanat…

Domainek beállítása

Állítsa be domainenként a névszervereket, a tárhelyhez való kapcsolást és azt, hogy ki legyen a tulajdonos.

Domainek betöltése…