Puncte:0

Când să dezactivați contul root pe serverul Ubuntu

drapel jp

Am configurat Ubuntu 20.xx ca server web în cloud furnizat de Digital Ocean și doresc să instalez Node, Express, Mongo și, eventual, NginX. În mai multe articole se menționează dezactivarea utilizatorului root pentru a îmbunătăți securitatea și a crea un nou utilizator cu acces de administrare. În ordine, am creat un utilizator nou și apoi l-am folosit pentru a configura toate aplicațiile, dar am avut probleme cu nginx.

Ar trebui să folosesc utilizatorul root pentru a configura mai întâi toate aplicațiile și să permit aplicațiilor să ruleze sub root? Apoi creați un al doilea utilizator admin cu acces ssh și apoi dezactivați ssh pentru root?

UPDATE1: Vă mulțumim tuturor pentru asistență, am actualizat întrebarea și am adăugat o instalare în cloud.

UPDATE2:

Multumesc pentru explicatia detaliata. Dupa cum am inteles eu:

  1. Un utilizator Sudo are aceleași privilegii ca și root
  2. Un utilizator Sudo poate fi urmărit cine a efectuat acțiuni (de relevanță atunci când sunt vizați mai mulți utilizatori)
  3. Aplicațiile web (node, pm2, mongo) pot fi instalate ORI cu cont root și/sau conturi de utilizator sudo, deoarece aceste aplicații ar trebui să ruleze cu propriile conturi de utilizator implicite.
  4. Dezactivați ssh root în timp util pentru a vă proteja împotriva atacurilor de forță brută
Puncte:3
drapel cn

Pe o instalare în stoc de Ubuntu Server pe bare metal sau pe o VM auto-găzduită, utilizatorul root este deja dezactivat. NU activați root. Utilizați Ubuntu așa cum a fost conceput pentru a fi utilizat.

Pe o instalare în cloud din Ubuntu, nu ești instalarea; containerul/VM-ul finit vă este predat. Utilizatorii cloud au adesea un prompt de rădăcină funcțional astfel încât să poată crea utilizatori admin sudo. Sfat: După ce creați acești utilizatori și le instalați cheile SSH, dezactivați autentificarea rădăcină (și toate datele de conectare cu parole) pentru a vă proteja sistemul de atacatori.

Dacă întâmpinați o problemă cu nginx, vă rugăm să deschideți o nouă întrebare în special despre acea problemă.

Orange Juice Jones avatar
drapel jp
Folosesc imaginea Digital Ocean și root este activat. Există un articol care explică cum să creați un utilizator nou și să dezactivați root - https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04
Orange Juice Jones avatar
drapel jp
Întrebarea este ce cont ar trebui utilizat pentru a instala și rula Node.Js Mongo și PM2. Mulțumiri
user10489 avatar
drapel in
Întrebarea dvs. de comentariu (și originalul) arată o lipsă fundamentală de înțelegere a motivului pentru care root-ul ar trebui să fie dezactivat și ce face sudo în locul său. Ce cont este folosit pentru a instala este discutabil. Ce cont pentru a rula aplicațiile ar trebui să fie discutat sau o parte din scripturile de pornire pentru a le porni.
user535733 avatar
drapel cn
Întrebarea dvs. nu a clarificat că aceasta a fost o instanță cloud. Există unele diferențe între instanțele cloud și instalările bare-metal/VM. Editare mare de adresat.
Orange Juice Jones avatar
drapel jp
Mulțumesc, am actualizat întrebarea după feedback-ul tău.
Puncte:1
drapel in

Motivul „dezactivării root” și utilizării sudo cu un cont obișnuit are mai multe scopuri, dintre care niciunul nu afectează răspunsul la întrebarea dvs.

Software-ul de sistem este întotdeauna instalat ca root. Uneori, software-ul aplicației este instalat ca utilizator specific aplicației, dar de obicei nu. Dezactivarea conectării pentru contul root nu schimbă acest lucru și nu schimbă modul în care aplicațiile sunt pornite la pornire.

Scopul dezactivării contului root este să vă conectați ca utilizator obișnuit și să faceți o sesiune de utilizator ca un utilizator normal și nu ca root. Apoi utilizați sudo pentru a ridica la rădăcină pentru a instala software și pentru a face alte lucruri periculoase. Acest lucru are, de asemenea, efectul secundar că, atunci când utilizați sudo, contul de utilizator care a făcut acest lucru este de asemenea înregistrat, ceea ce nu este atât de interesant decât dacă există mai multe conturi de utilizator care pot folosi sudo, caz în care, este mai ușor să atribuiți vina atunci când un se face greseala. Deci, instalarea software-ului se face în continuare ca root -- doar prin sudo în loc de autentificare directă.

Când o aplicație (cum ar fi NginX, mysql, mogodb etc.) este configurată să pornească la pornire, de obicei, scripturile de pornire systemd (sau initd) pornesc aplicația ca utilizator special al aplicației. Acest utilizator este creat când aplicația este instalată. Nu ar trebui să porniți aplicația manual, ci să permiteți scripturilor de sistem instalate să o pornească (de exemplu, cu systemctl start ...), astfel încât să ruleze cu permisiunile corecte în mediul corect. Filosofia de design din spatele acestui lucru este că aplicația este izolată în propriul utilizator, iar problemele de securitate cu aplicația vor fi (sperăm) să fie prinse în acel ID de utilizator. Majoritatea aplicațiilor nu ar trebui să fie rulate direct ca root.

Acestea fiind spuse toate acestea, pe un sistem cu un singur administrator, înregistrarea în jurnal care folosește sudo este mai puțin interesantă, iar dacă aveți imagini în cloud pe care le puteți elimina și reîncărca dintr-o copie nouă, utilizatorul pe care îl executați în interiorul containerului este, de asemenea, mai puțin important. Acesta este probabil motivul pentru care imaginea dvs. în cloud vine cu root activat și fără un utilizator administrativ separat.

Orange Juice Jones avatar
drapel jp
Mulțumesc pentru explicație, am actualizat întrebarea cu înțelegerea mea - aveți vreun comentariu în acest sens?
user10489 avatar
drapel in
Aproape. contul sudo nu este același cu root. Contul cu acces sudo are permisiunile unui cont normal, cu excepția faptului că poate rula sudo pentru a deveni root. Nu este că contul sudo și contul root sunt la fel, ci contul sudo poate rula lucrurile ca root folosind sudo.
Orange Juice Jones avatar
drapel jp
Atunci când este creat un utilizator nou (sudo sau non-sudo) se creează și un director în directorul principal cu numele de utilizator. Când aplicațiile web sunt instalate folosind acest cont nou, acest director nou va fi implicat oricum pentru instalare sau deține doar informații specifice pentru utilizator?
user10489 avatar
drapel in
Asta depinde de instalare. De exemplu, dacă instalați software folosind `sudo apt install`, nu folosește nimic din directorul utilizatorului.
Puncte:1
drapel cn

Când să dezactivezi contul root pe serverul ubuntu?

Aș sugera să nu faci asta, ci să faci lucruri pentru a maximiza securitatea. Să recunoaștem, dacă un guvern dorește să intre pe serverul dvs., va folosi o modalitate ușoară de a vă vedea fișierele. Ne facem griji doar pentru hackerii de acolo.

Am o instanță pe RamNode pe care o folosesc pentru site-urile mele web. Când am învățat prima dată cum să configurez un server Ubuntu nesupravegheat, am descoperit câteva lucruri importante. Oricât de repede configurați serverul, cineva va încerca să pirateze!

  1. Creați o parolă puternică de root. Ar trebui să aibă cel puțin 32 de caractere. Nu duplicați cheile una lângă alta. Folosiți toate tastele de caractere de pe tastatură într-o selecție aleatorie, cu excepția tastei backtick '. Folosiți caractere speciale precum $%& și nu folosiți niciun cuvânt sau expresie. Îmi stochez datele de conectare astfel într-un fișier text pe computerul meu principal: ssh [email protected] 6^g0)6)nS3@sGh^7*9L:pR%bS@3d9

  2. De îndată ce ați creat serverul, procedați astfel: ufw permite ssh ufw activare actualizare apt apt list --upgradabil upgrade apt

Acum ați blocat pe toți cei care încearcă să shell în rădăcină și v-ați actualizat fișierele Ubuntu. Nu sunt deschise alte porturi pentru a permite alt acces decât ssh.

De asemenea, folosesc doar ipv4, așa că blochez accesul ipv6 prin fișierul sshd_config, fișierul /etc/default/ufw și fișierul /etc/default/grub.

Pentru a vedea cine vă atacă, utilizați această comandă: starea serviciului sshd S-ar putea să fii surprins să vezi cât de repede încep să încerce să pătrundă în serverul tău. Sunt lovit din China aproape non-stop. PCC a furat date de oriunde poate de zeci de ani. Dar asta e altă poveste.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.