Mine sisu juurde

Küpsiste seaded

Vali iga liigi kohta, milliseid küpsiseid lubad. Oma valikut saad alati muuta iga lehe allosas oleva lingi „Küpsiste seaded“ kaudu. Privaatsuspoliitika

Vajalikud

Alati sees

Vajalikud sisselogimiseks, ostukorvi säilitamiseks ja sinu valikute meelespidamiseks. Need on alati sees.

Millised küpsised?
  • weboke_sessie, weboke_klant, weboke_remember: sinu seanss ja sisselogituks jäämine
  • weboke_basket: sinu ostukorv
  • wkBtwIncl: hindade näitamine koos käibemaksuga või ilma
  • wok_cookies: sinu küpsisevalik, 12 kuud

Mõõdab, milline reklaam viib külastuse või tellimuseni, et me ei maksaks reklaamide eest, mis midagi ei anna.

Millised küpsised?
  • Google Ads Google Tag Manageri kaudu (_gcl_au, _gcl_aw), kuni 90 päeva
  • OpenAI Ads, reklaamid ChatGPT-s
  • wok_aff: millise partneri kaudu meie juurde jõudsid (partnerprogramm), 60 päeva

4,6

Riik ja keel

Igal riigil on oma sait, selle riigi hindade ja käibemaksuga.

Vaata

Esimene SSH-sisselogimine

Moodul 1: Sinu esimene server · Lugemisaeg: 10 minutit

Õpieesmärk: Pärast seda õppetundi oskad esimest korda SSH-ga oma serverisse sisse logida ja kontrollida serveri sõrmejälge enne, kui seda usaldad. Samuti tead, mida teha, kui saad hoiatuse, et serveri identiteet on muutunud.

Põhimõisted: SSH, klient ja server, port 22, versioonibänner, hostivõti (host key), sõrmejälg (SHA256), known_hosts, trust on first use, "REMOTE HOST IDENTIFICATION HAS CHANGED", PowerShell ja Terminal

Mis on SSH

SSH (Secure Shell) on krüpteeritud ühendus, millega haldad serverit eemalt. Trükid käske oma arvutis, aga need käivitatakse serveris. Kõik, mis liinil liigub, ka sinu parool, on krüpteeritud.

Ühendusel on kaks poolt:

  • SSH-klient sinu enda arvutis: programm ssh. macOS-is ja Linuxis on see vaikimisi olemas. Windows 10-s (alates versioonist 1809) ja Windows 11-s on OpenSSH klient Windowsi osa, seda kasutad PowerShellis või Windows Terminalis. Kui see puudub, lisa see menüüst Sätted, Valikulised funktsioonid, "OpenSSH klient". Aknaga programmid nagu PuTTY töötavad samuti, kuid selles kursuses kasutame ssh.
  • SSH-server VPS-is: programm sshd (OpenSSH-ist). Vaikimisi kuulab see porti 22.

Sisselogimine

Logid sisse kasutajanime ja serveri aadressiga:

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

Või nimega, kui oled selle DNS-i lisanud (õppetund 7.1):

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

Esimesel korral näed midagi sellist:

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])?

See on selle õppetunni kõige tähtsam hetk. Ära trüki pimesi yes.

Hostivõti ja sõrmejälg

Igal SSH-serveril on üks või mitu hostivõtit (host keys): võtmepaarid, millega server tõestab, kes ta on. Avalikud osad asuvad serveris kaustas /etc/ssh/, näiteks /etc/ssh/ssh_host_ed25519_key.pub. Iga ühenduse ajal näitab server, et tal on olemas salajane osa.

Sõrmejälg on sellise avaliku võtme lühike kokkuvõte (räsi). OpenSSH näitab vaikimisi SHA256-kuju: SHA256:, millele järgneb 43 märki.

Küsimus "Are you sure you want to continue connecting?" tähendab: sinu arvuti ei tunne seda serverit veel. Kes tagab, et suhtled oma VPS-iga, mitte kellegagi, kes liiklust pealt kuulab? Mitte keegi, kui sa ise sõrmejälge usaldusväärse allikaga ei võrdle.

See allikas on teenusepakkuja konsool (õppetund 1.2). Seal ei suhtle sa serveriga üle võrgu. Logi konsooli sisse ja küsi sõrmejälge:

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

Kui see ühtib täpselt sellega, mida klient näitab, trüki yes. Võid yes asemel kleepida ka sõrmejälje enda, siis võrdleb ssh selle sinu eest. Kui see erineb, peatu ja uuri põhjust (vale IP-aadress, server on uuesti paigaldatud või midagi tõsisemat).

Pane tähele tüüpi: klient nimetab tüübi (ED25519, ECDSA või RSA). Võrdle sama tüüpi sõrmejälge. Paljud tõmmised näitavad sõrmejälgi ka esimesel käivitusel konsoolis (cloud-init), selliste ridade vahel nagu BEGIN SSH HOST KEY FINGERPRINTS.

known_hosts ja trust on first use

Kui trükid yes, näed:

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

Klient salvestab võtme faili ~/.ssh/known_hosts (Windowsis C:\Users\<naam>\.ssh\known_hosts). Edaspidi võrdleb ta igal ühendusel automaatselt. Seda mudelit nimetatakse trust on first use (TOFU): esimesel korral pead ise kontrollima, edaspidi valvab klient.

Seepärast on see esimene kontroll nii tähtis: kui usaldad vale võtit, ei hoiata klient sind enam kunagi.

Kui töötad ise Debiani või Ubuntuga arvutis, on nimed failis known_hosts vaikimisi räsitud (HashKnownHosts yes failis /etc/ssh/ssh_config), nii et loetavaid IP-aadresse sa seal ei näe. Windowsis ja macOS-is on need loetavad. Otsimine töötab kõikjal nii:

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"

Mõnikord näed sellist hoiatust:

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

Server näitab teist võtit, kui sinu klient tunneb. ssh keeldub siis ühendust loomast. Põhjusi on kahte sorti:

TavalineKahtlane
Paigaldasid VPS-i uuesti (uued hostivõtmed)Sa ei muutnud midagi, aga võti on ikkagi teine
IP-aadress anti teisele serverileOled võõras wifivõrgus
Vahetasid hostivõtmed teadlikult väljaKonsooli sõrmejälg erineb sellest, mida klient praegu näeb

Kui põhjus on tavaline, kontrolli konsoolis uuesti sõrmejälge ja eemalda alles seejärel vana rida:

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

Järgmisel ühendusel saad uuesti esimese korra küsimuse ja kontrollid jälle. Ära kunagi pane seadetesse StrictHostKeyChecking no, et hoiatusest lahti saada: nii lülitad välja just selle kaitse, millest kõik sõltub.

Versioonibänner

Enne kui midagi krüpteeritakse, saadavad klient ja server teineteisele ühe tekstirea: versioonibänneri. See on kõigile internetis nähtav. Näed seda käsuga ssh -v:

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

Server ütleb siin, millist protokolli (2.0) ja tarkvara ta kasutab. Debian ja Ubuntu lisavad lõppu paketi versiooni. See pole saladus, mida peaksid peitma: ründajad proovivad niikuinii kõike ja end kaitsed uuendustega (moodul 4), mitte teistsuguse bänneriga. Kasulik on see küll: bänneri järgi näed väljastpoolt, kas su server tõesti uuendatud versiooni kasutab.

AlmaLinuxis ja Rocky Linuxis

Sisselogimine ja sõrmejäljed töötavad samamoodi. Teenuse nimi on sshd, mitte ssh (systemctl status sshd). Bänneris pole distributsiooni nime, ainult OpenSSH versioon.

Kokkuvõte

  • SSH on krüpteeritud ühendus sinu serverisse; ssh on klient, sshd server pordil 22.
  • Esimesel ühendusel näitab klient hostivõtme sõrmejälge. Võrdle seda konsoolis käsu ssh-keygen -lf väljundiga, enne kui trükid yes.
  • Klient salvestab võtme faili ~/.ssh/known_hosts ja hoiatab edaspidi ise (trust on first use).
  • "REMOTE HOST IDENTIFICATION HAS CHANGED" on pärast uuesti paigaldamist tavaline, muidu kahtlane. Eemalda vana rida ainult pärast kontrolli, käsuga ssh-keygen -R.
  • Versioonibänner on avalik; kaitse tuleb uuendustest, mitte peitmisest.

Test (quiz)

1. Millega võrdled sõrmejälge, mida ssh esimesel ühendusel näitab?



2. Mida teeb ~/.ssh/known_hosts?



3. Paigaldasid VPS-i uuesti ja saad teate "REMOTE HOST IDENTIFICATION HAS CHANGED". Milline on õige järjekord?



4. Miks on trust on first use puhul esimene kontroll nii tähtis?



5. Mida näitab SSH-serveri versioonibänner?



Ülesanne

Ülesanne Z1.3: Sinu serveri SSH-bänner ja sõrmejälg. Sisesta oma serveri aadress, bännerist pärit tarkvara versioon (näiteks OpenSSH_9.6p1) ja ED25519-sõrmejälg, mille küsisid konsoolis käsuga ssh-keygen -lf. Programm loob ühe ühenduse sinu SSH-porti, loeb bänneri ja hostivõtme ning võrdleb. Sisse see ei logi.

Ülesanne Z1.3: Sinu serveri SSH-bänner ja sõrmejälg

Me ei logi sisse ega proovi ühtegi parooli ega võtit. Kõigepealt näita, et server on sinu oma: klõpsa "Näita minu koodi" ja pane oma hostinime veebiserverisse fail /.well-known/weboke-cursus-<code>.txt, milles on ainult see kood. Laadime selle otse alla igalt IP-aadressilt, mida kontrollime (IPv4 ja IPv6 eraldi); TXT-kirje siin ei loe. Kontroll tuleb aadressilt heavy.webawere.nl (185.158.167.16 ja 2a07:ae80:100:0:185:158:167:16), mitte meie veebiserverist. Ainult registreerunud õppijatele; ühe serveri kohta kuni 6 kontrolli tunnis. Selle ülesande juures loome ühe ühenduse ja loeme ainult serveri bännerit ja võtit; sinu logisse ei teki ühtegi sisselogimiskatset.





Seda, mida sisestad, ja mida leiame, me ei salvesta. Su brauser jätab meelde su vastused ja selle, kas sooritasid ülesande. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et sul oli ülesanne (peaaegu) õige; ka selle saad sealt kustutada.

Loe edasi

Hetk…

Seadista oma domeenid

Määra iga domeeni jaoks nimeserverid, seos sinu majutusega ja kes saab omanikuks.

Laadin sinu domeene…