Prijeđite na sadržaj

Postavke kolačića

Za svaku vrstu odaberite koje kolačiće dopuštate. Svoj odabir uvijek možete promijeniti putem poveznice Postavke kolačića na dnu svake stranice. Izjava o privatnosti

Nužni

Uvijek uključeni

Potrebni za prijavu, čuvanje košarice i pamćenje Vaših odabira. Uvijek su uključeni.

Koji kolačići?
  • weboke_sessie, weboke_klant, weboke_remember: Vaša sesija i to da ostanete prijavljeni
  • weboke_basket: Vaša košarica
  • wkBtwIncl: prikaz cijena s PDV-om ili bez njega
  • wok_cookies: Vaš odabir kolačića, 12 mjeseci

Mjeri koji oglas dovodi do posjeta ili narudžbe, kako ne bismo plaćali oglase koji ništa ne donose.

Koji kolačići?
  • Google Ads putem Google Tag Managera (_gcl_au, _gcl_aw), do 90 dana
  • OpenAI Ads, oglasi u ChatGPT-u
  • wok_aff: preko kojeg ste partnera došli k nama (partnerski program), 60 dana

4,6

Država i jezik

Svaka država ima vlastitu stranicu, s cijenama i PDV-om te države.

Pogledajte

Pametno korištenje SSH-a

Modul 2: SSH i ključevi · Vrijeme čitanja: 10 minuta

Cilj učenja: Nakon ove lekcije moći ćete SSH svakodnevno praktično koristiti uz vlastitu konfiguracijsku datoteku, kopirati datoteke pomoću scp i rsync te kroz tunel doći do baze podataka, a da priključak baze podataka ne mora biti otvoren prema internetu.

Ključni pojmovi: ~/.ssh/config, Host, HostName, User, IdentityFile, scp, rsync, sftp, port forwarding (prosljeđivanje priključaka), -L, tunel, ProxyJump, ServerAliveInterval, drugi broj priključka, opoziv ključa

Manje tipkanja uz ~/.ssh/config

Nakon nekoliko tjedana ovo ćete tipkati desetke puta dnevno:

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

S konfiguracijskom datotekom za klijent to postaje kraće i rjeđe ćete griješiti. Datoteka se nalazi na Vašem vlastitom računalu: ~/.ssh/config (Windows: C:\Users\anna\.ssh\config, bez ekstenzije).

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

Sada je dovoljno samo:

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

Što rade ti redovi?

  • Host je nadimak koji sami odaberete. Upisujete ga iza ssh, scp i rsync.
  • HostName je stvarna adresa: IP adresa ili naziv koji postoji u DNS-u.
  • User i Port su korisničko ime i priključak, tako da ih više ne morate pamtiti.
  • IdentityFile određuje ključ. Korisno je ako imate više ključeva; bez ovog reda ssh isprobava Vaše zadane ključeve.
  • ServerAliveInterval 60 svakih 60 sekundi šalje mali znak života. Mnogi kućni usmjerivači i Wi-Fi mreže prekidaju neaktivnu vezu nakon nekoliko minuta; ovako Vaša sesija ostaje otvorena.

I ovdje vrijedi prva vrijednost, kao i na poslužitelju. Opća pravila poput Host * zato stavite na dno datoteke.

Kopiranje datoteka: scp, rsync i sftp

scp kopira datoteku, u istom obliku kao cp, ali s host: ispred:

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

rsync je pametniji kod mapa i velikih količina podataka: šalje samo ono što se promijenilo i može nastaviti prekinuto kopiranje. Mora biti instaliran na obje strane (apt install rsync).

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

Pazite na kosu crtu iza ./site/: s kosom crtom rsync kopira sadržaj mape, bez nje kopira samu mapu (tada dobivate /var/www/example.com/site/). Ako niste sigurni, najprije pokušajte s --dry-run i budite vrlo oprezni s --delete, koji na strani primatelja briše sve što kod Vas ne postoji.

sftp i grafički programi poput FileZille ili WinSCP-a koriste istu SSH vezu i isti ključ. Zaseban FTP poslužitelj stoga nije potreban. Zastarjeli FTP poslužitelj na VPS-u ne preporučujemo: obični FTP šalje Vašu lozinku mrežom nešifrirano.

Tunel umjesto otvorenog priključka

Ovo je možda najkorisnije što SSH može. Zamislite: na Vašem poslužitelju radi PostgreSQL baza podataka. S prijenosnog računala želite joj pristupiti grafičkim programom. Velika je napast otvoriti priključak 5432 prema internetu. Nemojte to činiti: otvoreni priključci baza podataka jedan su od najvećih uzroka curenja podataka (lekcija 10.2), a tečaj će kasnije izvana provjeriti jesu li zatvoreni (zadatak Z5.1).

Uz lokalno prosljeđivanje priključaka (local port forwarding) SSH stvara tunel:

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

Čitajte to ovako: "slušaj na mom prijenosnom računalu na priključku 5432 i sve što tamo stigne pošalji kroz SSH vezu na 127.0.0.1:5432, gledano s poslužitelja". Dok je ta sesija otvorena, svoj program za bazu podataka povezujete s localhost priključak 5432 na vlastitom prijenosnom računalu i tako stižete do baze podataka na poslužitelju.

Zašto je to tako dobro?

  • Baza podataka na poslužitelju sluša samo na 127.0.0.1 i izvana je nedostupna.
  • Vezu šifrira SSH, čak i ako sama baza podataka nema šifriranje.
  • Pristup ima samo onaj tko se može prijaviti putem SSH-a. Dakle, koristite snažnu zaštitu koju već imate.

Ako na Vašem prijenosnom računalu nešto već radi na 5432, lijevo odaberite drugi broj: -L 15432:127.0.0.1:5432 i povežite se na priključak 15432. Ako tunel upišete u ~/.ssh/config, uvijek Vam je pri ruci:

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

S ssh -N web1-db dobivate samo tunel, bez naredbenog retka.

Preko posredničkog poslužitelja: ProxyJump

Ponekad nekom poslužitelju možete pristupiti samo preko drugoga, primjerice poslužitelju baze podataka bez javne IP adrese iza Vašeg web-poslužitelja. ProxyJump preko prvog poslužitelja skače na drugi:

Host db1
    HostName 10.0.0.5
    User anna
    ProxyJump web1

Razlika u odnosu na agent forwarding (lekcija 2.1): kod ProxyJumpa šifriranje teče od početka do kraja između Vašeg prijenosnog računala i db1. Posrednički poslužitelj samo prosljeđuje pakete i ne može koristiti Vaš ključ.

Drugi broj priključka: da ili ne?

Mnogi priručnici savjetuju premjestiti SSH na drugi priključak, primjerice 2222. Što to zapravo postiže?

  • Smanjuje šum: većina automatiziranih pokušaja pogađanja isprobava samo priključak 22. Vaš zapisnik postaje mirniji.
  • Nije zaštita. Skener koji prolazi kroz sve priključke pronaći će SSH u nekoliko sekundi po njegovom bannera s verzijom.

S ključevima i isključenom prijavom lozinkom (lekcija 2.2) priključak malo znači za sigurnost. Ako ga ipak želite promijeniti, učinite to pravilnim redoslijedom: otvorite novi priključak u vatrozidu, neka SSH sluša na oba priključka, testirajte u drugom prozoru, a tek onda zatvorite stari priključak. Na Ubuntu 24.04 i novijima tome pripadaju i systemctl daemon-reload i systemctl restart ssh.socket (lekcija 2.2). Ne zaboravite da Vaš pružatelj usluge možda također ima vatrozid.

Opoziv pristupa

Bivši kolega ili web-dizajner imao je ključ na Vašem poslužitelju i više ne radi za Vas? Opoziv pristupa je jednostavan, ako vodite evidenciju:

  1. Pregledajte sve ključeve: ssh-keygen -lf ~/.ssh/authorized_keys, i to učinite za svakog korisnika (i za /root/.ssh/authorized_keys).
  2. Uklonite red te osobe.
  3. Ako je koristio vlastiti korisnički račun, zaključajte ga (lekcija 3.1) i provjerite je li bio u grupi sudo (lekcija 3.2).
  4. Ako je vidio lozinke, primjerice lozinku baze podataka u konfiguracijskoj datoteci, promijenite i njih.

Običan ključ nema datum isteka. Ono što ne uklonite nastavlja raditi, i godinama kasnije. Ako nekome dajete privremeni pristup, ispred njegova reda u authorized_keys možete staviti opciju expiry-time="20261231"; nakon tog datuma poslužitelj odbija ključ.

Sažetak

  • ~/.ssh/config na Vašem računalu za svaki poslužitelj čuva naziv, korisnika, priključak i ključ; Host * ide na dno.
  • scp za pojedinačne datoteke, rsync za mape (pazite na kosu crtu i na --delete), sftp umjesto FTP-a.
  • S ssh -L do baze podataka dolazite kroz šifrirani tunel, dok priključak baze podataka izvana ostaje zatvoren.
  • ProxyJump sigurno skače preko posredničkog poslužitelja; bolje od agent forwardinga.
  • Drugi broj priključka smanjuje šum, ali ne štiti. Ključevi koje ne uklonite nastavljaju raditi.

Kviz

1. Što radi ssh -L 15432:127.0.0.1:5432 web1?



2. Zašto je SSH tunel do baze podataka bolji od otvaranja priključka 5432 u vatrozidu?



3. Premjestite SSH na priključak 2222. Koji je najvažniji učinak?



4. U Vašem ~/.ssh/config na vrhu stoji Host * s User root, a niže Host web1 s User anna. Kao koji se korisnik prijavljujete na ssh web1?



5. Web-dizajner imao je vlastiti SSH ključ na Vašem poslužitelju i više ne radi za Vas. Što NIJE dovoljno?



Zadatak

Zadatak O2.3: SSH config i tunel. Na svom računalu izradite ~/.ssh/config s nadimkom za svoj poslužitelj, prijavite se samo s ssh <bijnaam>, kopirajte datoteku pomoću scp ili rsync i izradite tunel s -L do usluge koja na Vašem poslužitelju sluša samo na 127.0.0.1 (ako još nemate bazu podataka, upotrijebite priključak 22 samog poslužitelja: ssh -L 2200:127.0.0.1:22 <bijnaam> i zatim ssh -p 2200 anna@localhost). Odgovorite na pitanja o tome što tunel radi i zašto priključak ne mora biti otvoren.

Zadatak O2.3: SSH config i tunel

Ovaj zadatak rješavate sami; nitko ga ne provjerava. Označite što ste napravili i označite zadatak kao završen.




Vaše kvačice i bilješke ostaju samo u ovom pregledniku; ne šaljemo ih nikamo. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak završili.

Dodatno štivo

Koraci u ovim člancima vrijede za WebOké VPS-ove i upravljačke ploče; kod drugih pružatelja usluga postupak je sličan.

Trenutak…

Postavite svoje domene

Za svaku domenu odredite nameservere, povezivanje s hostingom i tko postaje vlasnik.

Učitavanje Vaših domena…