Pereiti prie turinio

Slapukų nustatymai

Pasirinkite, kokių rūšių slapukus leidžiate. Pasirinkimą bet kada galite pakeisti per „Slapukų nustatymai“ kiekvieno puslapio apačioje. Privatumo pareiškimas

Būtinieji

Visada įjungti

Reikalingi prisijungti, išsaugoti krepšelį ir įsiminti Jūsų pasirinkimus. Jie visada įjungti.

Kokie slapukai?
  • weboke_sessie, weboke_klant, weboke_remember: Jūsų sesija ir prisijungimo išlaikymas
  • weboke_basket: Jūsų krepšelis
  • wkBtwIncl: kainų rodymas su PVM arba be PVM
  • wok_cookies: Jūsų slapukų pasirinkimas, 12 mėnesių

Matuoja, kuri reklama atveda prie apsilankymo ar užsakymo, kad nemokėtume už neveiksmingas reklamas.

Kokie slapukai?
  • Google Ads per Google Tag Manager (_gcl_au, _gcl_aw), iki 90 dienų
  • OpenAI Ads, reklamos ChatGPT
  • wok_aff: per kurį partnerį atėjote pas mus (partnerių programa), 60 dienų

4,6

Šalis ir kalba

Kiekviena šalis turi savo svetainę su tos šalies kainomis ir PVM.

Peržiūrėti

Saugus SSH serverio nustatymas

2 modulis: SSH ir raktai · Skaitymo laikas: 12 min.

Mokymosi tikslas: Po šios pamokos galėsite išjungti prisijungimą slaptažodžiu ir root prisijungimą slaptažodžiu, patikrinti, kuris nustatymas iš tikrųjų galioja, ir tai padaryti neužrakindami savęs už durų.

Pagrindinės sąvokos: sshd, sshd_config, sshd_config.d, galioja pirmoji reikšmė, PasswordAuthentication, KbdInteractiveAuthentication, PermitRootLogin, AuthenticationMethods, AllowUsers, sshd -t, sshd -T, antroji sesija, cloud-init, ssh.socket

Pirmiausia apsauginis tinklas

Šioje pamokoje uždarysite duris, pro kurias turite praeiti ir patys. Dėl vienos rašybos klaidos galite nebepatekti į serverį. Todėl prieš pradėdami visada pasirūpinkite:

  1. Du raktai veikia (pamoka 2.1), ir naujame lange patikrinote, kad prisijungimas raktu pavyksta.
  2. Momentinė kopija (snapshot) Jūsų VPS. WebOké ją galite sukurti VPS ekrane, kitų teikėjų ji taip pat vadinama snapshot arba image. Jei kas nors nepavyks, ją atkursite.
  3. Teikėjo konsolė Jums žinoma: per ją pateksite į serverį be SSH.
  4. Dabartinė SSH sesija lieka atvira iki pat pabaigos. Vykstanti sesija veikia toliau, net jei pakeičiate nustatymus ar perkraunate paslaugą. Kiekvieną pakeitimą tikrinate antrame lange.

Kur yra nustatymai

SSH serveris vadinasi sshd. Jo nustatymai yra faile /etc/ssh/sshd_config. Debian ir Ubuntu sistemose šio failo viršuje yra tokia eilutė:

Include /etc/ssh/sshd_config.d/*.conf

Taigi visi failai su .conf kataloge sshd_config.d nuskaitomi prieš likusią pagrindinio failo dalį, abėcėlės tvarka. Tai patogu: savo nustatymus įrašote į atskirą failą, o pagrindinio failo neliečiate, todėl paketo atnaujinimas Jūsų pakeitimų nepaveiks.

Tačiau tai turi pasekmę, kuri daugelį nustebina. Faile sshd_config galioja taisyklė: kiekvienam nustatymui galioja pirmoji reikšmė, kurią sshd randa. Vėlesnės eilutės su tuo pačiu nustatymu ignoruojamos. Jei sshd_config apačioje įrašysite PasswordAuthentication no, tai nenugalės failo kataloge sshd_config.d, kuriame parašyta yes.

cloud-init spąstai

Daugelį VPS atvaizdų pirmojo paleidimo metu sukonfigūruoja cloud-init. Priklausomai nuo to, kaip nustatyti atvaizdas ir diegimas, cloud-init gali sukurti failą, pavyzdžiui, /etc/ssh/sshd_config.d/50-cloud-init.conf, kuriame būna, pavyzdžiui:

PasswordAuthentication yes

Kadangi šis failas nuskaitomas anksčiau nei pagrindinis, prisijungimas slaptažodžiu lieka įjungtas, kad ir ką įrašytumėte į sshd_config. Todėl nespėliokite, o patikrinkite:

root@web1:~# grep -ri passwordauthentication /etc/ssh/sshd_config /etc/ssh/sshd_config.d/
/etc/ssh/sshd_config:#PasswordAuthentication yes
/etc/ssh/sshd_config.d/50-cloud-init.conf:PasswordAuthentication yes

Yra du tvarkingi sprendimai: pakeiskite to failo reikšmę į no arba savo nustatymus įrašykite į failą, kuris abėcėlėje yra anksčiau, pavyzdžiui, 00-beveiliging.conf. Failas 99-mijn.conf kaip tik neveiks, nes tada cloud-init jau bus laimėjęs.

Svarbūs nustatymai

Sukurkite savo failą:

root@web1:~# nano /etc/ssh/sshd_config.d/00-beveiliging.conf

su tokiu turiniu:

# Prisijungimas tik su raktu
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password

Ką reiškia kiekviena eilutė?

  • PasswordAuthentication no: serveris nebepriima slaptažodžio. OpenSSH numatytoji reikšmė yra yes.
  • KbdInteractiveAuthentication no: „keyboard-interactive“ yra antras būdas paprašyti slaptažodžio, per PAM. Jei paliksite šį nustatymą įjungtą, kas nors vis tiek galės bandyti slaptažodį, net jei PasswordAuthentication nustatytas į no. Senesniuose vadovuose šis nustatymas vadinamas ChallengeResponseAuthentication; nuo OpenSSH 8.7 tai yra pasenęs kitas to paties nustatymo pavadinimas. Debian jį pagal numatytuosius nustatymus jau nustato į no, bet vis tiek jį įrašykite: taip aišku, ir tai tiks ir kitose sistemose.
  • PermitRootLogin prohibit-password: root gali prisijungti, bet tik raktu. Nuo OpenSSH 7.0 tai yra numatytoji reikšmė. Griežtesnė reikšmė yra PermitRootLogin no: root visiškai negali prisijungti per SSH, Jūs jungiatės kaip įprastas naudotojas ir naudojate sudo (pamoka 3.2). Nustatykite no tik tada, kai tikrai žinote, kad prisijungimas tuo naudotoju ir sudo veikia.

Pasirinktinai, norintiems daugiau:

AllowUsers anna
AuthenticationMethods publickey

AllowUsers įleidžia tik nurodytus naudotojus; bet kuris kitas vardas atmetamas, net jei turi galiojantį raktą. Patogu, bet nepamirškite savęs ir nepamirškite papildyti sąrašo, kai pridėsite antrą administratorių. AuthenticationMethods publickey viena eilute nurodo, kad galioja tik raktai.

Testavimas, taikymas, tikrinimas

Pirmiausia leiskite sshd patikrinti failą. Tai nieko nepaleidžia ir nieko nekeičia:

root@web1:~# sshd -t
root@web1:~#

Jokios išvesties reiškia: klaidų nėra. Jei yra rašybos klaida, pamatysite eilutę ir failą. Tik tada perkraukite paslaugą:

root@web1:~# systemctl reload ssh

Debian ir Ubuntu sistemose paslauga vadinasi ssh, AlmaLinux ir Rocky Linux sistemose sshd.

Tada patikrinkite, kuri reikšmė galioja iš tikrųjų. sshd -T parodo visą apskaičiuotą konfigūraciją, kurioje apdoroti visi Include failai:

root@web1:~# sshd -T | grep -Ei 'passwordauth|kbdinteractive|permitrootlogin'
permitrootlogin without-password
passwordauthentication no
kbdinteractiveauthentication no

(without-password yra senas prohibit-password pavadinimas. OpenSSH versijos iki 10.1, pavyzdžiui, Debian 13 ir Ubuntu 24.04, dar rodo seną pavadinimą; naujesnės rodo prohibit-password. Reikšmė ta pati.)

O dabar svarbiausia: testuokite antrame lange, kol pirmasis lieka atviras.

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

Jei tai veikia, sąmoningai pabandykite prisijungti slaptažodžiu. Tai turi nepavykti:

anna@laptop:~$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no anna@192.0.2.10
anna@192.0.2.10: Permission denied (publickey).

Po Permission denied skliaustuose nurodyta, kokius prisijungimo būdus serveris dar siūlo. Jei ten yra tik publickey, viskas gerai. Jei šalia yra password arba keyboard-interactive, kažkur dar galioja kita reikšmė: patikrinkite dar kartą su sshd -T.

Būtent šį sąrašą iš išorės tikrina ir kurso užduotis. Jūsų SSH klientas kiekvieno ryšio metu pirmiausia klausia, kokie būdai leidžiami, siųsdamas „none“ tipo užklausą. Serveris atsako sąrašu, nebandant jokio slaptažodžio ar rakto.

Ubuntu 24.04 ir naujesnės: ssh.socket

Ubuntu nuo 22.10 versijos 22 prievadu klausosi ne pats sshd, o systemd, per ssh.socket. Tik kai gaunamas ryšys, systemd paleidžia SSH paslaugą. Šios pamokos nustatymams tai neturi įtakos: pakanka systemctl reload ssh arba restart ssh.

Tačiau tai svarbu, jei keičiate prievadą arba klausymosi adresą (Port, ListenAddress). Nuo Ubuntu 24.04 systemd šias reikšmes nuskaito iš sshd_config, bet tik po:

root@web1:~# systemctl daemon-reload
root@web1:~# systemctl restart ssh.socket

Jei to pamiršite, serveris toliau klausysis senuoju prievadu. Dar blogiau: jei pirmiausia užkardoje atidarysite naują prievadą, o SSH liks senajame, užrakinsite save už durų. Visada patikrinkite su ss -tlnp | grep ssh, kuriuo prievadu iš tikrųjų klausomasi (pamoka 5.1), ir įtraukite naują prievadą į užkardą prieš uždarydami senąjį. Ar verta naudoti kitą prievadą, skaitykite pamokoje 2.3.

Jei vis dėlto kas nors nepavyksta

Jei nebegalite prisijungti, atidarykite teikėjo konsolę, prisijunkite kaip root (slaptažodžiu, nes konsolė yra „prie serverio prijungta klaviatūra“, o ne SSH) ir atkurkite savo failą:

root@web1:~# mv /etc/ssh/sshd_config.d/00-beveiliging.conf /root/
root@web1:~# systemctl reload ssh

Jei ir tai nepavyksta, atkurkite momentinę kopiją. WebOké VPS ekrane taip pat galite nustatyti naują root slaptažodį; kiti teikėjai dažnai turi panašų mygtuką arba gelbėjimo režimą (rescue).

AlmaLinux ir Rocky Linux

Paslauga vadinasi sshd (systemctl reload sshd). Ir ten viršuje yra Include /etc/ssh/sshd_config.d/*.conf, o sistema į tą katalogą pateikia savų failų; galioja ta pati taisyklė „galioja pirmoji reikšmė“. Jei keičiate prievadą, SELinux taip pat turi leisti tą prievadą (semanage port -a -t ssh_port_t -p tcp 2222), o firewalld jį atidaryti.

Santrauka

  • Faile sshd_config galioja pirmoji reikšmė; failai kataloge sshd_config.d nuskaitomi pirmiausia. Savo nustatymus įrašykite į failą, pavyzdžiui, 00-beveiliging.conf.
  • Nustatykite PasswordAuthentication no ir KbdInteractiveAuthentication no; root tik su raktu (prohibit-password) arba visai ne (no).
  • Prieš perkraudami patikrinkite su sshd -t, o su sshd -T patikrinkite, kuri reikšmė galioja iš tikrųjų; atkreipkite dėmesį į 50-cloud-init.conf.
  • Testuokite antrame lange ir laikykite pirmąją sesiją atvirą. Žinokite, kaip naudotis konsole, ir iš anksto sukurkite momentinę kopiją.
  • Ubuntu 24.04+ kitam prievadui reikia systemctl daemon-reload ir systemctl restart ssh.socket.

Testas (quiz)

1. Failo /etc/ssh/sshd_config apačioje yra PasswordAuthentication no, bet Jūs vis dar galite prisijungti slaptažodžiu. Kokia labiausiai tikėtina priežastis?



2. Kodėl šalia PasswordAuthentication no nustatote ir KbdInteractiveAuthentication no?



3. Ką reiškia PermitRootLogin prohibit-password?



4. Kokia tvarka dirbti saugiausia?



5. Ubuntu 24.04 sistemoje pakeičiate eilutę Port 22 į Port 2222 ir įvykdote systemctl restart ssh. Su ss -tlnp matote, kad vis dar klausomasi 22 prievadu. Ką pamiršote?



Užduotis

Užduotis Z2.2: Prisijungimas slaptažodžiu išjungtas. Išjunkite prisijungimą slaptažodžiu ir keyboard-interactive, kaip aprašyta šioje pamokoje, ir tada leiskite programai patikrinti iš išorės. Įveskite savo serverio IP adresą arba pagrindinio kompiuterio vardą, SSH prievadą (numatytasis 22) ir naudotojo vardą, kuriuo jungiatės patys (pavyzdžiui, anna, ne root ir ne išgalvotą vardą). Programa neprisijungia: ji tik paklausia, kaip ir bet kuris SSH klientas prieš prisijungdamas, kokius prisijungimo būdus Jūsų serveris siūlo tam naudotojui. Teisingas rezultatas: tik publickey.

Užduotis Z2.2: Prisijungimas slaptažodžiu išjungtas

Mes neprisijungiame ir nebandome jokio slaptažodžio ar rakto. Pirmiausia parodykite, kad serveris priklauso Jums: spustelėkite „Rodyti mano kodą“ ir įkelkite failą /.well-known/weboke-cursus-<code>.txt, kuriame yra tik tas kodas, į savo pagrindinio kompiuterio vardo (hostname) žiniatinklio serverį. Jį atsisiunčiame tiesiogiai iš kiekvieno tikrinamo IP adreso (IPv4 ir IPv6 atskirai); TXT įrašas čia netinka. Patikra vykdoma iš heavy.webawere.nl (185.158.167.16 ir 2a07:ae80:100:0:185:158:167:16), o ne iš mūsų žiniatinklio serverio. Tik prisijungusiems kursų dalyviams; vienam serveriui ne daugiau kaip 6 patikros per valandą. Klausiame tik, kokius prisijungimo būdus Jūsų serveris siūlo Jūsų naudotojo vardui, kaip tai daro kiekvienas SSH klientas prieš prisijungdamas. Įrašykite savo naudotoją: nežinomas vardas Jūsų žurnale atsiras kaip „Invalid user“ ir fail2ban jį įskaičiuos kaip vieną bandymą.





Ko, ką įvedate ir ką randame, nesaugome. Jūsų naršyklė atsimena Jūsų atsakymus ir tai, ar užduotį atlikote. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotis buvo atlikta (ar beveik atlikta); ten tai galite ir pašalinti.

Skaitykite daugiau

Šiuose straipsniuose aprašyti veiksmai taikomi WebOké VPS ekranui; kitų teikėjų tai veikia panašiai.

Akimirką…

Nustatykite domenus

Kiekvienam domenui nustatykite vardų serverius, susiejimą su talpinimu ir tai, kas taps valdytoju.

Įkeliami Jūsų domenai…