Pāriet uz saturu

Sīkdatņu iestatījumi

Izvēlieties, kāda veida sīkdatnes atļaujat. Savu izvēli varat jebkurā laikā mainīt sadaļā Sīkdatņu iestatījumi katras lapas apakšā. Privātuma politika

Nepieciešamās

Vienmēr ieslēgtas

Vajadzīgas, lai pieteiktos, saglabātu grozu un atcerētos Jūsu izvēles. Tās vienmēr ir ieslēgtas.

Kuras sīkdatnes?
  • weboke_sessie, weboke_klant, weboke_remember: Jūsu sesija un pieteikšanās saglabāšana
  • weboke_basket: Jūsu grozs
  • wkBtwIncl: cenu rādīšana ar PVN vai bez PVN
  • wok_cookies: Jūsu sīkdatņu izvēle, 12 mēneši

Mēra, kura reklāma noved pie apmeklējuma vai pasūtījuma, lai mēs nemaksātu par reklāmām, kas neko nedod.

Kuras sīkdatnes?
  • Google Ads ar Google Tag Manager (_gcl_au, _gcl_aw), līdz 90 dienām
  • OpenAI Ads, reklāmas ChatGPT
  • wok_aff: caur kuru partneri nonācāt pie mums (partneru programma), 60 dienas

4,6

Valsts un valoda

Katrai valstij ir sava vietne ar attiecīgās valsts cenām un PVN.

Skatīt

SSH servera droša iestatīšana

2. modulis: SSH un atslēgas · Lasīšanas laiks: 12 min.

Mācīšanās mērķis: Pēc šīs nodarbības Jūs varēsiet izslēgt pieteikšanos ar paroli un root pieteikšanos ar paroli, pārbaudīt, kurš iestatījums tiešām ir spēkā, un izdarīt to tā, lai pats nepaliktu ārpus servera.

Pamatjēdzieni: sshd, sshd_config, sshd_config.d, noteicošā ir pirmā vērtība, PasswordAuthentication, KbdInteractiveAuthentication, PermitRootLogin, AuthenticationMethods, AllowUsers, sshd -t, sshd -T, otrā sesija, cloud-init, ssh.socket

Vispirms drošības tīkls

Šajā nodarbībā Jūs aizverat durvis, pa kurām pašam jāiet iekšā. Viena drukas kļūda var nozīmēt, ka vairs nevarat pieslēgties. Tāpēc pirms darba sākšanas vienmēr pārliecinieties par šo:

  1. Divas atslēgas darbojas (nodarbība 2.1), un Jūs jaunā logā esat pārbaudījuši, ka pieteikšanās ar atslēgu izdodas.
  2. Momentuzņēmums (snapshot) no Jūsu VPS. WebOké to var izveidot VPS ekrānā, citiem pakalpojumu sniedzējiem to arī sauc par snapshot vai image. Ja kaut kas noiet greizi, Jūs to atjaunojat.
  3. Konsoli pie sava pakalpojumu sniedzēja Jūs pazīstat: tur var piekļūt bez SSH.
  4. Jūsu pašreizējā SSH sesija paliek atvērta līdz pašām beigām. Aktīva sesija turpina darboties, ja maināt iestatījumus vai pārlādējat pakalpojumu. Katru izmaiņu Jūs pārbaudāt otrā logā.

Kur atrodas iestatījumi

SSH serveri sauc par sshd. Tā iestatījumi atrodas /etc/ssh/sshd_config. Debian un Ubuntu sistēmās šī faila augšpusē ir šāda rinda:

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

Tātad visi faili ar .conf mapē sshd_config.d tiek nolasīti pirms pārējā galvenā faila, alfabētiskā secībā. Tas ir ērti: savus iestatījumus Jūs ierakstāt atsevišķā failā un galveno failu neaiztiekat, tāpēc pakotnes atjauninājums Jūsu izmaiņas neskar.

Taču tam ir sekas, kas daudzus pārsteidz. Failā sshd_config ir spēkā šāds noteikums: katram iestatījumam noteicošā ir pirmā vērtība, ko sshd sastop. Vēlākas rindas ar to pašu iestatījumu tiek ignorētas. Ja Jūs sshd_config beigās ierakstāt PasswordAuthentication no, tas neuzvar failu mapē sshd_config.d, kurā rakstīts yes.

cloud-init slazds

Daudzus VPS attēlus pirmajā palaišanas reizē iestata cloud-init. Atkarībā no tā, kā iestatīts attēls un instalācija, cloud-init izveido failu, piemēram, /etc/ssh/sshd_config.d/50-cloud-init.conf, kurā ir, piemēram:

PasswordAuthentication yes

Tā kā šis fails tiek nolasīts agrāk nekā galvenais fails, pieteikšanās ar paroli ir ieslēgta neatkarīgi no tā, ko ierakstāt sshd_config. Tāpēc nepieņemiet to kā pašsaprotamu, bet pārbaudiet:

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

Ir divi korekti risinājumi: nomainiet šajā failā vērtību uz no vai ierakstiet savus iestatījumus failā, kas alfabētā ir agrāk, piemēram, 00-beveiliging.conf. Fails 99-mijn.conf savukārt nedarbosies, jo tad cloud-init jau būs uzvarējis.

Būtiskie iestatījumi

Izveidojiet savu failu:

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

ar šādu saturu:

# Pieteikšanās tikai ar atslēgu
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password

Ko nozīmē katra rinda?

  • PasswordAuthentication no: serveris vairs nepieņem paroles. OpenSSH noklusējuma vērtība ir yes.
  • KbdInteractiveAuthentication no: "keyboard-interactive" ir otrs veids, kā prasīt paroli, izmantojot PAM. Ja to atstājat ieslēgtu, kāds joprojām var mēģināt paroli, pat ja PasswordAuthentication ir iestatīts uz no. Vecākās rokasgrāmatās šo iestatījumu sauc par ChallengeResponseAuthentication; kopš OpenSSH 8.7 tas ir novecojis cits nosaukums tam pašam. Debian to pēc noklusējuma jau iestata uz no, tomēr ierakstiet to: tā viss ir skaidrs un atbilst arī citās sistēmās.
  • PermitRootLogin prohibit-password: root drīkst pieteikties, bet tikai ar atslēgu. Kopš OpenSSH 7.0 tas ir noklusējums. Stingrāk ir PermitRootLogin no: root vispār nedrīkst pieteikties caur SSH, Jūs piesakāties kā parasts lietotājs un izmantojat sudo (nodarbība 3.2). Iestatiet no tikai tad, kad esat pārliecināti, ka pieteikšanās kā šim lietotājam un sudo darbojas.

Pēc izvēles, ja vēlaties vairāk:

AllowUsers anna
AuthenticationMethods publickey

AllowUsers ielaiž tikai norādītos lietotājus; jebkurš cits vārds tiek noraidīts, pat ja tam ir derīga atslēga. Tas ir ērti, taču neaizmirstiet sevi un neaizmirstiet sarakstu papildināt, kad pievienojat otru administratoru. AuthenticationMethods publickey vienā rindā nosaka, ka derīgas ir tikai atslēgas.

Pārbaudīt, piemērot, kontrolēt

Vispirms ļaujiet sshd pārbaudīt failu. Tas neko nepalaiž un neko nemaina:

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

Ja izvades nav, tas nozīmē: kļūdu nav. Drukas kļūdas gadījumā redzēsiet rindu un failu. Tikai tad pārlādējiet pakalpojumu:

root@web1:~# systemctl reload ssh

Debian un Ubuntu sistēmās pakalpojumu sauc ssh, AlmaLinux un Rocky Linux sistēmās sshd.

Pēc tam pārbaudiet, kura vērtība ir tiešām spēkā. sshd -T parāda pilnu, aprēķināto konfigurāciju, kurā apstrādāti visi Include faili:

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

(without-password ir vecais prohibit-password nosaukums. OpenSSH versijas pirms 10.1, piemēram, Debian 13 un Ubuntu 24.04 sistēmās, vēl rāda veco nosaukumu; jaunākas rāda prohibit-password. Nozīme ir tā pati.)

Un tagad pats svarīgākais: pārbaudiet otrā logā, kamēr pirmais paliek atvērts.

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

Ja tas darbojas, apzināti mēģiniet pieteikties ar paroli. Tam jāneizdodas:

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

Aiz Permission denied iekavās redzams, kādas pieteikšanās metodes serveris vēl piedāvā. Ja tur ir tikai publickey, viss ir kārtībā. Ja tur ir arī password vai keyboard-interactive, kaut kur joprojām ir spēkā cita vērtība: vēlreiz pārbaudiet ar sshd -T.

Tieši šo sarakstu no ārpuses pārbauda arī kursa uzdevums. Jūsu SSH klients pie katra savienojuma vispirms jautā, kuras metodes ir atļautas, ar "none" tipa pieprasījumu. Serveris atbild ar sarakstu, nemēģinot ne paroli, ne atslēgu.

Ubuntu 24.04 un jaunākas versijas: ssh.socket

Ubuntu kopš versijas 22.10 portā 22 klausās nevis pats sshd, bet systemd, izmantojot ssh.socket. Tikai tad, kad ienāk savienojums, systemd palaiž SSH pakalpojumu. Šīs nodarbības iestatījumiem tam nav nozīmes: pietiek ar systemctl reload ssh vai restart ssh.

Taču tam ir nozīme, ja maināt portu vai klausīšanās adresi (Port, ListenAddress). Kopš Ubuntu 24.04 systemd nolasa šīs vērtības no sshd_config, bet tikai pēc:

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

Ja to aizmirstat, serveris turpina klausīties vecajā portā. Vēl ļaunāk: ja vispirms pārslēdzat ugunsmūri uz jaunu portu, bet SSH paliek vecajā, Jūs paši sev aizslēdzat piekļuvi. Vienmēr pārbaudiet ar ss -tlnp | grep ssh, kur tiešām notiek klausīšanās (nodarbība 5.1), un atveriet jauno portu ugunsmūrī, pirms aizverat veco. Vai cits ports ir lietderīgs, lasiet nodarbībā 2.3.

Ja tomēr kaut kas noiet greizi

Ja vairs nevarat pieslēgties, atveriet sava pakalpojumu sniedzēja konsoli, piesakieties kā root (ar paroli, jo konsole ir "tastatūra pie servera", nevis SSH) un atsauciet sava faila izmaiņas:

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

Ja arī tas neizdodas, atjaunojiet momentuzņēmumu. WebOké VPS ekrānā var arī iestatīt jaunu root paroli; citiem pakalpojumu sniedzējiem bieži ir līdzīga poga vai glābšanas režīms (rescue).

AlmaLinux un Rocky Linux sistēmās

Pakalpojumu sauc sshd (systemctl reload sshd). Arī tur augšpusē ir Include /etc/ssh/sshd_config.d/*.conf, un sistēma šajā mapē piegādā savus failus; tas pats noteikums "noteicošā ir pirmā vērtība" ir spēkā. Ja maināt portu, arī SELinux ir jāatļauj šis ports (semanage port -a -t ssh_port_t -p tcp 2222), un firewalld tas jāatver.

Kopsavilkums

  • Failā sshd_config noteicošā ir pirmā vērtība; faili mapē sshd_config.d tiek nolasīti vispirms. Ierakstiet savus iestatījumus failā, piemēram, 00-beveiliging.conf.
  • Iestatiet PasswordAuthentication no un arī KbdInteractiveAuthentication no; root tikai ar atslēgu (prohibit-password) vai vispār ne (no).
  • Pārbaudiet ar sshd -t pirms pārlādēšanas un ar sshd -T, kura vērtība tiešām ir spēkā; pievērsiet uzmanību 50-cloud-init.conf.
  • Pārbaudiet otrā logā un turiet pirmo sesiju atvērtu. Pazīstiet konsoli un iepriekš izveidojiet momentuzņēmumu.
  • Ubuntu 24.04+ citam portam vajag systemctl daemon-reload un systemctl restart ssh.socket.

Tests (quiz)

1. /etc/ssh/sshd_config beigās ir rakstīts PasswordAuthentication no, bet Jūs joprojām varat pieteikties ar paroli. Kāds ir visticamākais iemesls?



2. Kāpēc līdzās PasswordAuthentication no iestata arī KbdInteractiveAuthentication no?



3. Ko nozīmē PermitRootLogin prohibit-password?



4. Kādā secībā strādāt visdrošāk?



5. Ubuntu 24.04 sistēmā Jūs maināt rindu Port 22 uz Port 2222 un izpildāt systemctl restart ssh. Ar ss -tlnp redzat, ka klausīšanās joprojām notiek portā 22. Ko esat aizmirsuši?



Uzdevums

Uzdevums Z2.2: Pieteikšanās ar paroli ir izslēgta. Izslēdziet pieteikšanos ar paroli un keyboard-interactive, kā aprakstīts šajā nodarbībā, un pēc tam ļaujiet programmai pārbaudīt no ārpuses. Ievadiet sava servera IP adresi vai resursdatora nosaukumu, SSH portu (pēc noklusējuma 22) un lietotājvārdu, ar kuru paši piesakāties (piemēram, anna, nevis root vai izdomātu vārdu). Programma nepiesakās: tā tikai jautā, tāpat kā jebkurš SSH klients pirms pieteikšanās, kādas pieteikšanās metodes Jūsu serveris piedāvā šim lietotājam. Pareizs rezultāts: tikai publickey.

Uzdevums Z2.2: Pieteikšanās ar paroli ir izslēgta

Mēs nepiesakāmies un nemēģinām nevienu paroli vai atslēgu. Vispirms parādiet, ka serveris pieder Jums: noklikšķiniet uz "Rādīt manu kodu" un ievietojiet failu /.well-known/weboke-cursus-<code>.txt tikai ar šo kodu sava resursdatora nosaukuma tīmekļa serverī. Mēs to ielādējam tieši no katras pārbaudāmās IP adreses (IPv4 un IPv6 atsevišķi); TXT ieraksts šeit neder. Pārbaude notiek no heavy.webawere.nl (185.158.167.16 un 2a07:ae80:100:0:185:158:167:16), nevis no mūsu tīmekļa servera. Tikai reģistrētiem kursa dalībniekiem; katram serverim ne vairāk kā 6 pārbaudes stundā. Mēs tikai pajautājam, kādas pieteikšanās metodes Jūsu serveris piedāvā Jūsu lietotājvārdam, tāpat kā to pirms pieteikšanās dara jebkurš SSH klients. Ievadiet savu lietotāju: nezināms vārds Jūsu žurnālā parādās kā "Invalid user" un fail2ban to uzskaita kā vienu mēģinājumu.





To, ko ievadāt, un to, ko atrodam, mēs nesaglabājam. Jūsu pārlūkprogramma atceras Jūsu atbildes un to, vai esat izpildījuši uzdevumu. Ja esat pieteikušies, sadaļā Mani kursi saglabājam tikai to, ka uzdevums bija (gandrīz) pareizs; tur to varat arī dzēst.

Vairāk lasīt

Šajos rakstos aprakstītie soļi attiecas uz WebOké VPS ekrānu; citiem pakalpojumu sniedzējiem tas darbojas līdzīgi.

Lūdzu, uzgaidiet…

Iestatiet savus domēnus

Katram domēnam norādiet vārdu serverus, piesaisti hostingam un to, kurš būs turētājs.

Ielādē Jūsu domēnus…