Puncte:-2

Un ghid complet pentru tranziția de la serverul Ubuntu 20.04 cu partiție unică la mai multe partiții pe un sistem deja instalat folosind LVM

drapel tr

Titlul este cererea mea. Am citit ore întregi și am găsit tutoriale pentru mutarea /home pe o partiție și /tmp pe o partiție. Dar niciunul pentru convertirea tuturor directoarelor recomandate în partiții pentru Ubuntu Server. Un tutorial s-a apropiat, dar apoi a ignorat pasul evident necesar de copiere a datelor din directoarele anterioare pe noi partiții.

Oricum, după multe ore, încă nu am găsit un tutorial care să acopere situația mea destul de comună.

Situatie:
Am instalat Ubuntu Server pe servere Prod & Test (vps și, respectiv, virtualbox), am lucrat ceva. În timp ce citeam tutoriale de întărire a serverului, mi-am dat seama că cea mai bună practică este să aveți /boot /home /swapfile /tmp /usr și var... /opt? toate pe partiții separate din motive de gestionare a resurselor și de securitate.

Modul corect de a crea partițiile menționate mai sus este utilizarea LVM

Cu toate acestea, niciunul dintre tutoriale nu discută/recomandă dimensiunile partițiilor (proporțional, deoarece, evident, sisteme diferite au spațiu pe disc diferit, al meu este de 80 GB pe / )

În plus, unele tutoriale menționează modificările necesare /etc/fstab iar unii nu.

Scopul meu este să convertesc configurația mea cu o singură partiție de 80 GB în mai multe partiții și apoi să protejez partițiile împotriva atacurilor și exploatărilor obișnuite folosind: o combinație de nodev,noexec,nosuid în /etc/fstab

Pot să petrec zile întregi testând și eșuând diferite configurații în virtualbox... Sau unele frumoase și/sau frumoase "Ubuntu Server Partitioning Guru" poate publica un public ușor de urmărit (publicul țintă al utilizatorilor intermediari) ghid definitiv așa cum am descris mai sus și devin faimos pe internet, deoarece mulți utilizatori care își găzduiesc propriile proiecte pe vps te vor iubi și adora pentru totdeauna. :-)

ACTUALIZAȚI
Inițial nu am publicat ghidul de întărire a serverului principal pentru că nu am vrut ca această postare să devină o „dezbatere” asupra lucrării foarte amănunțite a acestui tip. Cu toate acestea, în retrospectivă, cred că ar fi util pentru cei care doresc să răspundă la această postare, să vadă beneficiile reale de securitate pe care încerc să le obțin.

https://linoxide.com/ultimate-guide-secure-ubuntu/

drapel in
Încercați să utilizați *partiții* diferite sau *volume* diferite? Deși pot părea la fel de la 30.000 de picioare, ele funcționează puțin diferit în interiorul unui suport de rack 2U.Pe măsură ce încercați să mutați directoarele de bază, cel mai simplu mod de a face acest lucru ar fi cu o sesiune Ubuntu Desktop Live, care vă va oferi control deplin asupra dispozitivelor de stocare Ubuntu Server... dar nu văd foarte mult câștig. Aici. Fiind cineva care a folosit Ubuntu Server de peste un deceniu în tot felul de situații, acest tip de configurare nu a fost niciodată necesară. LV-uri pentru date? Da. LV pentru tot? Nu ...
nightwatch avatar
drapel tr
@matigo diferența de volum și partiția este cu siguranță nou de ghicit, va trebui să citesc mai multe. Pe baza experienței dvs., ce directoare ar trebui să fie pe diferite „partiții” având în vedere înțelegerea mea limitată? Doar /tmp și /home? și doar să nu-ți faci griji pentru ceilalți?
drapel in
Fără să ajungem prea departe în „opinii”, singurele lucruri care au nevoie în general de propriul volum/partiție pe Ubuntu Server sunt datele care sunt cele mai accesate/importante. Dacă este o bază de date/domeniu/server de e-mail, atunci DB-ul ar trebui să fie pe un dispozitiv foarte rapid, iar jurnalele pe un dispozitiv separat. Dacă este un server web, atunci chiar nu contează pentru că întregul sistem este de unică folosință. În general, consider că sistemul de operare de bază în sine este irelevant, deoarece poate fi reconstruit de la zero în mai puțin de o oră (cel mai rău caz) și este în regulă cu configurația implicită. Numai datele (și jurnalele) contează... (pentru flota *mea*)
nightwatch avatar
drapel tr
Îți înțeleg rațiunea și logica. Așa că ar trebui să-mi concentrez energia pe mutarea /home (directorul meu de date / public_html) și /var/log pentru a separa partițiile, deoarece aveți dreptate cu vps. Pot restabili sistemul în sine în câteva minute. Vreo lectură / tutoriale recomandate pentru a realiza acest lucru?
drapel in
[Acest răspuns de acum 10 ani](https://askubuntu.com/a/50539/1222991) este valabil și astăzi.Deoarece lucrați și cu unele VM, asigurați-vă că vă exersați mai întâi cu acele instanțe dacă vă faceți griji să distrugeți un sistem de producție cu un pas eronat. `/var/log` trebuie să fie în altă parte doar dacă înregistrați *o mulțime* de date (20MB/sec sau mai mult), ceea ce este foarte rar. Dacă rulați doar un server web, să aveți codul în GitHub (sau un alt depozit) și să aveți copii de siguranță ale datelor încărcate și să dezactivați SSH de pe sistem, vor fi suficiente fără volume/partiții separate.
drapel in
Dacă scopul dvs. principal este să protejați datele împotriva diferitelor forme de atacuri online, cel mai mare favor pe care îl puteți face singur este să utilizați AppArmor și Firewall-ul Uncomplicated (ufw). Numai aceste două instrumente vor bloca 99,9% din prostiile stupide pe care perdanții le vor arunca pe serverul tău. Dacă rulați un site WordPress cu un plugin care primește pWn3d, atunci AppArmor se va asigura că Apache nu poate scrie în afara `/var/www`, astfel încât sistemul de operare de bază va fi în mare parte sigur atâta timp cât nu vă încurcați cu structurile de permisiuni ale sistemului. .
nightwatch avatar
drapel tr
Mulțumesc pentru punctul în direcția corectă. Am citit destule ghiduri de întărire a serverelor web ca să am amețeală. În ceea ce privește firewall-urile.. Rulez Virtualmin cu Firewalld și am un firewall VPS furnizat de ISP-ul meu, acesta ar trebui să fie suficient în locul UFW.. (Vă rog să mă corectați dacă greșesc.)
nightwatch avatar
drapel tr
@matigo mulțumesc pentru că ai lăsat să-ți aleagă creierul. Îmi voi opri paranoia și mă voi întoarce la dezvoltarea site-urilor web. Bucură-te de sfârșitul de săptămână.
Puncte:2
drapel eg

Cred că, de obicei, separarea lucrurilor în sisteme de fișiere diferite nu ajută/îmbunătățește securitatea. Dacă cineva intră în sistem în timp ce acesta rulează, oricum totul este montat și nu există nicio diferență logică de a avea totul într-un singur sistem de fișiere. Ce motive au fost date în materialul pe care l-ați studiat?

Acestea fiind spuse, asta poate sa ajută la performanță (sisteme de fișiere diferite sau hardware diferit sub aceste puncte de montare) și scurtează cât durează o recuperare în caz de dezastru (de ex.dacă doar SSD-ul care ținea /var a ieșit în fum, trebuie doar să restabiliți acel backup și restul rămâne în funcțiune).

Întrebați despre dimensiunile recomandate ale partițiilor:

  • Pentru / esti bun cu 15-20 GB. Nu am avut niciodată nevoie de mai mult pentru un server (care rulează un server web + server de e-mail).
  • schimb De obicei, pun propriul volum / partiție care are aceeași dimensiune ca RAM - pur și simplu pentru ca suspendarea pe disc să poată funcționa. Oamenii obișnuiau să recomande dimensiunea de 2xRAM, dar cu dimensiunile RAM din zilele noastre, când te confrunți cu o situație în care ai nevoie de o cantitate serioasă de schimb, oricum ai probleme. Veți observa acest lucru de la o încetinire masivă și apoi ar trebui să creșteți rapid RAM disponibilă.
  • /boot are nevoie doar de 500 MB, ceea ce îi oferă spațiu pentru 8+ versiuni kernel+initrd. Asigurați-vă că alergați autoeliminare apt frecvent, pentru a-l păstra tăiat după upgrade-urile kernelului.
  • aș păstra /usr și /opta ca directoare pe /, pur și simplu nu văd un beneficiu în a le muta în propriile sisteme de fișiere.
  • După cum este descris în acest ghid de întărire, având un volum separat pentru /tmp are sens, deoarece vă permite să restrângeți acel director care poate fi scris în întreaga lume - atât în ​​ceea ce privește spațiul pe care îl poate folosi din spațiul total disponibil, cât și ce se poate face cu fișierele care sunt stocate acolo. Ghidul recomandă utilizarea opțiunilor nodev, nosuid și noexec atunci când montați sistemul de fișiere. Ghidul oferă doar comenzile de montare pentru „utilizare o singură dată”. Traducerea într-o linie în /etc/fstab ar însemna că plasați nodev,nosuid,noexec în a 4-a coloană (opțiuni) a liniei în care montați volumul /tmp dedicat /tmp.
  • Asta ne lasă cu /Acasă și /var - acestea sunt de obicei lucrurile „importante”. Pe serverele mele /Acasă este aproape goală, dar /var deține public_html, jurnalele, bazele de date etc. Așa că păstrez /Acasă ca un director pe /, dar /var cu siguranță primește propriul volum și se face backup cel mai frecvent. Dă-i tot spațiul rămas după ce s-a făcut cele de mai sus.

Apoi ai întrebat cum să faci tranziția:

  • În sistemul de rulare, unde totul este pornit /, atașați noul disc (fișier VDI, ...), pregătiți-l cu pvcreate, lvcreate și apoi sistemele de fișiere la alegere (mkfs.ext4 de exemplu).
  • Apoi faceți puncte de montare temporare sub /mnt, de ex. /mnt/newroot, /mnt/newvar, ... și montați sistemele de fișiere acolo.
  • Apoi folosiți rsync -xaP <sursă>/ <destinație>/ pentru fiecare dintre sistemele dvs. de fișiere. Opțiunea „-x” va împiedica rsync să traverseze granițele sistemului de fișiere, adică dacă faceți rsync -xaP / /mnt/newroot/ nu va copia, de asemenea, /var, /home sau chiar toate noile sisteme de fișiere montate sub /mnt. „-a” se va asigura că permisiunile etc. vor fi preluate fără modificare, iar „-P” arată progresul. Pentru detalii, vă rugăm să consultați om rsync.

După ce ați terminat, editați /mnt/newroot/etc/fstab și asigurați-vă că enumerați toate sistemele de fișiere în punctele de montare adecvate. Dacă ați ajuns atât de departe, acest lucru nu ar trebui să fie prea greu (deoarece ați ales toate numele /dev/mapper/..., sistemele de fișiere etc.).

De asemenea, va trebui să utilizați grub-install și poate update-grub pentru a face noul disc să poată fi pornit, dar acolo nu sunt atât de sigur de procedura exactă. Cu VM-urile îl puteți încerca cu ușurință și, dacă nu pornește, atașați din nou vechiul disc și remediați-l.

Pentru referință, iată o sesiune shell care vă oferă câteva comenzi specifice despre partiționare + LVM + formatare + referire în subiectele fstab. Vă rugăm să rețineți că cel mai probabil va trebui să le modificați, de exemplu dacă dispozitivul dvs. nu este /dev/sda, dacă doriți sisteme de fișiere diferite etc. - este doar un exemplu.

# După ce ați folosit fdisk pentru a crea o partiție care acoperă întregul dispozitiv,
# arată așa:
root@ubuntu:~# fdisk -l /dev/sda
Disc /dev/sda: 100 GiB, 107374182400 octeți, 209715200 sectoare
Model de disc: VBOX HARDDISK   
Unități: sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 512 octeți
Dimensiunea I/O (minimă/optimă): 512 octeți / 512 octeți
Tip etichetă de disc: gpt
Identificator disc: 18ACB4C9-3F33-7041-8BEB-D819F138A809

Dispozitiv Start End Sectors Size Type
/dev/sda1 2048 209715166 209713119 100G Linux LVM

# Creați un volum fizic pentru LVM
root@ubuntu:~# pvcreate /dev/sda1   
  Volumul fizic „/dev/sda1” a fost creat cu succes.
  
# Creați un grup de volume cu numele „vg1” pentru LVM care va
# păstrați toate volumele noastre logice
root@ubuntu:~# vgcreate vg1 /dev/sda1
  Grupul de volume „vg1” a fost creat cu succes

# Creați volumele logice așa cum este descris mai sus
root@ubuntu:~# lvcreate --name root --size 20G vg1     
  Volumul logic „rădăcină” creat.
root@ubuntu:~# lvcreate --name swap --size 8G vg1
  Volum logic „swap” creat.
root@ubuntu:~# lvcreate --name boot --size 500M vg1
  Volum logic „boot” creat.
root@ubuntu:~# lvcreate --name tmp --size 5G vg1
  Volumul logic „tmp” creat.

# Aruncă o privire la volumele logice
root@ubuntu:~# lvs
  LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  boot vg1 -wi-a----- 500.00m                                                    
  root vg1 -wi-a----- 20,00g                                                    
  swap vg1 -wi-a----- 8.00g                                                    
  tmp vg1 -wi-a----- 5.00g                                                    

# Aruncă o privire la grupul de volum și vezi cât spațiu a mai rămas
root@ubuntu:~# vgs
  VG #PV #LV #SN Attr VSize VFree  
  vg1 1 4 0 wz--n- <100,00g <66,51g

# Utilizați spațiul rămas pentru ultimul volum logic, var
root@ubuntu:~# lvcreate --name var --size 66.5G vg1
  Volumul logic „var” creat.

# Mai aruncați o privire asupra volumelor
root@ubuntu:~# lvs
  LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
  boot vg1 -wi-a----- 500.00m                                                    
  root vg1 -wi-a----- 20,00g                                                    
  swap vg1 -wi-a----- 8.00g                                                    
  tmp vg1 -wi-a----- 5.00g                                                    
  var vg1 -wi-a----- 66,50g

# Formatați toate volumele cu sistemul de fișiere ext4
pentru i în /dev/mapper/vg1-*; do mkfs.ext4 $i; Terminat
# Transformați vg1-swap în spațiu de swap
mkswap /dev/mapper/vg1-swap

# Creați intrări fstab care arată astfel
/dev/mapper/vg1-root / ext4 valorile implicite 0 1
/dev/mapper/vg1-boot /boot ext4 valorile implicite 0 2
/dev/mapper/vg1-var /var ext4 implicite 0 2
/dev/mapper/vg1-tmp /tmp ext4 nosuid,nodev,noexec 0 0
/dev/mapper/vg1-swap niciunul swap sw 0 0
nightwatch avatar
drapel tr
acesta dintre multele ghiduri de întărire a serverelor pe care le-am urmat. Rețineți măsurile de securitate pentru fstab care au fost repetate în alte locuri. https://linoxide.com/ultimate-guide-secure-ubuntu/
drapel eg
Mulțumiri. Într-adevăr, recomandările au sens, în special părțile de epuizare a resurselor. Nu m-am gândit la asta. Nu sunt sigur ce se întâmplă cu serviciile care folosesc /tmp atunci când este plin (chiar și când este pe alt volum). Poate oricum vor înceta să funcționeze și astfel vei suferi în continuare un DoS.
nightwatch avatar
drapel tr
ați putea fi dispus să vă actualizați răspunsul pe baza ghidului de întărire?
drapel eg
@nightwatch gata :)
nightwatch avatar
drapel tr
Apreciez foarte mult răspunsul și am votat deja răspunsul deoarece este util și am învățat din el. Cu toate acestea, speram la exemple practice de creare a partițiilor folosind LVM, așa cum se recomandă în ghid. Din diverse tutoriale știu că crearea unei partiții /tmp are o oarecare diferență față de crearea pentru /home. Acele puncte fine m-ar putea costa ore întregi.
drapel eg
@nightwatch Am adăugat o sesiune shell în care am făcut partiționarea + LVM + formatarea + referința în fstab și am adăugat-o la răspuns, dar este încă doar un exemplu. În cazul tău specific, ar putea arăta diferit. Cred că ți-ai atinge obiectivul mai repede dacă ai pune întrebări specifice atunci când rămâi blocat la un moment dat.
nightwatch avatar
drapel tr
"pentru presedinte?" ai votul meu :-) multumesc

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.