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 SSH okos használata

Modul 2: SSH és kulcsok · Olvasási idő: 10 perc

Tanulási cél: A lecke után Ön a mindennapokban kényelmesen használja az SSH-t egy saját konfigurációs fájllal, fájlokat másol scp és rsync segítségével, és egy alagúton keresztül eléri az adatbázist anélkül, hogy az adatbázisportot meg kellene nyitnia az internet felé.

Kulcsfogalmak: ~/.ssh/config, Host, HostName, User, IdentityFile, scp, rsync, sftp, port forwarding (porttovábbítás), -L, alagút, ProxyJump, ServerAliveInterval, másik portszám, kulcs visszavonása

Kevesebb gépelés a ~/.ssh/config segítségével

Néhány hét után ezt naponta több tucatszor begépeli:

anna@laptop:~$ ssh -i ~/.ssh/id_ed25519 anna@192.0.2.10

Egy kliensoldali konfigurációs fájllal ez rövidebb lesz, és kevesebbet hibázik. A fájl az Ön saját számítógépén található: ~/.ssh/config (Windows esetén: C:\Users\anna\.ssh\config, kiterjesztés nélkül).

Host web1
    HostName 192.0.2.10
    User anna
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60

Host test
    HostName test.example.com
    User anna
    Port 2222

Ezután egyszerűen ennyi:

anna@laptop:~$ ssh web1
anna@web1:~$

Mit csinálnak az egyes sorok?

  • A Host az Ön által választott becenév. Ezt írja a ssh, a scp és a rsync után.
  • A HostName a valódi cím: egy IP-cím vagy egy név, amely szerepel a DNS-ben.
  • A User és a Port a felhasználónév és a port, így ezeket már nem kell fejben tartania.
  • Az IdentityFile megadja a kulcsot. Hasznos, ha több kulcsa van; e sor nélkül az ssh az alapértelmezett kulcsait próbálja ki.
  • A ServerAliveInterval 60 60 másodpercenként egy apró életjelet küld. Sok otthoni router és wifihálózat néhány perc után megszakítja a csendes kapcsolatot; így a munkamenete nyitva marad.

Itt is az első érték számít, ugyanúgy, mint a szerveren. Az általános szabályokat, például a Host * blokkot, ezért a fájl aljára tegye.

Fájlok másolása: scp, rsync és sftp

Az scp egy fájlt másol, ugyanabban a formában, mint a cp, csak host: elé írva:

anna@laptop:~$ scp backup.sql web1:/home/anna/
anna@laptop:~$ scp web1:/var/log/nginx/error.log .

Az rsync okosabb mappák és nagy adatmennyiség esetén: csak azt küldi át, ami megváltozott, és egy megszakadt másolást folytatni tud. Mindkét oldalon telepítve kell lennie (apt install rsync).

anna@laptop:~$ rsync -avz --progress ./site/ web1:/var/www/example.com/

Figyeljen a ./site/ utáni perjelre: perjellel az rsync a mappa tartalmát másolja, perjel nélkül magát a mappát (ekkor /var/www/example.com/site/ lesz az eredmény). Kétség esetén először próbálja ki a --dry-run kapcsolóval, és legyen nagyon óvatos a --delete kapcsolóval, amely a fogadó oldalon mindent töröl, ami Önnél nem létezik.

Az sftp és az olyan grafikus programok, mint a FileZilla vagy a WinSCP, ugyanazt az SSH-kapcsolatot és ugyanazt a kulcsot használják. Külön FTP-szerverre tehát nincs szükség. Régimódi FTP-szervert VPS-en nem ajánlunk: a hagyományos FTP titkosítatlanul küldi át a jelszavát a hálózaton.

Alagút nyitott port helyett

Talán ez az SSH leghasznosabb képessége. Tegyük fel, hogy a szerverén egy PostgreSQL-adatbázis fut, és a laptopjáról egy grafikus programmal szeretné elérni. Nagy a kísértés, hogy megnyissa az 5432-es portot az internet felé. Ne tegye: a nyitott adatbázisportok az adatvédelmi incidensek egyik leggyakoribb okai (10.2. lecke), és a tanfolyam később kívülről ellenőrzi, hogy zárva vannak-e (Z5.1. feladat).

A helyi porttovábbítással (local port forwarding) az SSH alagutat hoz létre:

anna@laptop:~$ ssh -L 5432:127.0.0.1:5432 web1

Ezt így olvassa: „figyelj a laptopomon az 5432-es porton, és mindent, ami oda beérkezik, küldj át az SSH-kapcsolaton a 127.0.0.1:5432 címre, a szerver szemszögéből nézve”. Amíg ez a munkamenet nyitva van, az adatbázisprogramját a saját laptopján a localhost cím 5432-es portjához csatlakoztatja, és a szerveren lévő adatbázishoz jut el.

Miért olyan jó ez?

  • Az adatbázis a szerveren csak a 127.0.0.1 címen figyel, és kívülről elérhetetlen.
  • A kapcsolatot az SSH titkosítja, akkor is, ha maga az adatbázis nem használ titkosítást.
  • Csak az fér hozzá, aki SSH-n be tud jelentkezni. Vagyis a már meglévő erős védelmét használja.

Ha a laptopján már fut valami az 5432-es porton, válasszon bal oldalon egy másik számot: -L 15432:127.0.0.1:5432, és csatlakozzon a 15432-es portra. Ha az alagutat a ~/.ssh/config fájlba írja, mindig kéznél lesz:

Host web1-db
    HostName 192.0.2.10
    User anna
    LocalForward 15432 127.0.0.1:5432

A ssh -N web1-db kapcsolóval csak az alagutat kapja meg, parancssor nélkül.

Egy köztes szerveren át: ProxyJump

Előfordul, hogy egy szervert csak egy másikon keresztül lehet elérni, például egy nyilvános IP-cím nélküli adatbázisszervert a webszervere mögött. A ProxyJump az első szerveren keresztül továbbugrik a másodikra:

Host db1
    HostName 10.0.0.5
    User anna
    ProxyJump web1

A különbség az agent forwardinghoz képest (2.1. lecke): ProxyJump esetén a titkosítás végig a laptopja és a db1 között zajlik. A köztes szerver csak továbbítja a csomagokat, és nem tudja használni az Ön kulcsát.

Másik portszám: igen vagy nem?

Sok útmutató azt javasolja, hogy az SSH-t tegye át egy másik portra, például a 2222-esre. Mit ér ez valójában?

  • Csökkenti a zajt: a legtöbb automatizált jelszótalálgatás csak a 22-es portot próbálja. A naplója nyugodtabb lesz.
  • Nem jelent védelmet. Egy szkenner, amely minden portot végignéz, a verziós bannere alapján másodperceken belül megtalálja az SSH-t.

Kulcsokkal és kikapcsolt jelszavas bejelentkezéssel (2.2. lecke) a port a biztonság szempontjából alig számít. Ha mégis váltani szeretne, tegye a helyes sorrendben: nyissa meg az új portot a tűzfalon, az SSH figyeljen mindkét porton, teszteljen egy második ablakban, és csak ezután zárja be a régi portot. Ubuntu 24.04 és újabb esetén ehhez a systemctl daemon-reload és a systemctl restart ssh.socket is hozzátartozik (2.2. lecke). Ne feledje, hogy a szolgáltatójának is lehet tűzfala.

Hozzáférés visszavonása

Egy volt kollégának vagy egy webfejlesztőnek kulcsa volt a szerverén, és már nem dolgozik Önnek? A hozzáférés visszavonása egyszerű, ha nyilvántartja:

  1. Nézze meg az összes kulcsot: ssh-keygen -lf ~/.ssh/authorized_keys, és ezt tegye meg minden felhasználónál (a /root/.ssh/authorized_keys esetében is).
  2. Törölje az illető sorát.
  3. Ha saját felhasználói fiókot használt, zárolja azt (3.1. lecke), és nézze meg, hogy tagja volt-e a sudo csoportnak (3.2. lecke).
  4. Ha látott jelszavakat, például egy adatbázisjelszót egy konfigurációs fájlban, azokat is cserélje le.

Egy hagyományos kulcsnak nincs lejárati dátuma. Amit nem töröl, az továbbra is működik, akár évekkel később is. Ha valakinek ideiglenes hozzáférést ad, a authorized_keys fájlban a sora elé beírhatja a expiry-time="20261231" opciót; e dátum után a szerver elutasítja a kulcsot.

Összefoglalás

  • A saját számítógépén lévő ~/.ssh/config szerverenként tárolja a nevet, a felhasználót, a portot és a kulcsot; a Host * az aljára kerül.
  • scp az egyes fájlokhoz, rsync a mappákhoz (figyeljen a perjelre és a --delete kapcsolóra), FTP helyett sftp.
  • A ssh -L segítségével titkosított alagúton éri el az adatbázist, miközben az adatbázisport kívülről zárva marad.
  • A ProxyJump biztonságosan ugrik át egy köztes szerveren; jobb, mint az agent forwarding.
  • Egy másik portszám csökkenti a zajt, de nem véd. A nem törölt kulcsok továbbra is működnek.

Kvíz

1. Mit csinál a ssh -L 15432:127.0.0.1:5432 web1?



2. Miért jobb egy SSH-alagút az adatbázishoz, mint az 5432-es port megnyitása a tűzfalon?



3. Ön áthelyezi az SSH-t a 2222-es portra. Mi a legfontosabb hatása?



4. A ~/.ssh/config fájl tetején egy Host * blokk áll User root beállítással, lejjebb pedig egy Host web1 blokk User anna beállítással. Melyik felhasználóként jelentkezik be a ssh web1 esetén?



5. Egy webfejlesztőnek saját SSH-kulcsa volt a szerverén, és már nem dolgozik Önnek. Mi az, ami NEM elegendő?



Feladat

O2.3. feladat: SSH-konfiguráció és egy alagút. Hozzon létre a saját számítógépén egy ~/.ssh/config fájlt egy becenévvel a szerveréhez, jelentkezzen be csak a ssh <bijnaam> paranccsal, másoljon át egy fájlt scp vagy rsync segítségével, és hozzon létre egy alagutat -L kapcsolóval egy olyan szolgáltatáshoz, amely a szerverén csak a 127.0.0.1 címen figyel (ha még nincs adatbázisa, használja magának a szervernek a 22-es portját: ssh -L 2200:127.0.0.1:22 <bijnaam>, majd ssh -p 2200 anna@localhost). Válaszoljon a kérdésekre arról, hogy mit csinál az alagút, és miért nem kell megnyitni a portot.

O2.3. feladat: SSH-konfiguráció és egy alagút

Ezt a feladatot saját maga végzi el, senki nem ellenőrzi. Pipálja ki, amit elvégzett, és jelölje meg a feladatot elvégzettként.




A pipái és jegyzetei csak ebben a böngészőben maradnak meg, sehova nem küldjük el őket. Ha bejelentkezett, a Fiókomban csak azt tároljuk, hogy elvégezte a feladatot.

További olvasnivaló

Az alábbi cikkekben leírt lépések a WebOké VPS-eire és paneljeire vonatkoznak; más szolgáltatóknál hasonlóan működik.

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…