AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1389931
Accepted
nightwatch
nightwatch
Asked: 2022-01-30 05:36:38 +0800 CST2022-01-30 05:36:38 +0800 CST 2022-01-30 05:36:38 +0800 CST

Um guia completo para a transição de uma partição única para várias partições Ubuntu 20.04 Server no sistema já instalado usando o LVM

  • 772

O título é meu pedido. Estou lendo há horas e encontrei tutoriais para mover /home para uma partição e /tmp para uma partição. Mas nenhum para converter todos os diretórios recomendados em partições para o Ubuntu Server. Um tutorial chegou perto, mas ignorou a etapa obviamente necessária de copiar dados de diretórios anteriores para novas partições.

De qualquer forma, depois de muitas horas, ainda não encontrei um tutorial que cubra minha situação bastante comum.

Situação:
Instalei o Ubuntu Server em servidores Prod & Test (vps e virtualbox, respectivamente), fiz algum trabalho. Ao ler os tutoriais de proteção do servidor, percebi que é uma prática recomendada ter /boot /home /swapfile /tmp /usr e var... /opt? tudo em partições separadas para gerenciamento de recursos e motivos de segurança.

A maneira correta de criar as partições mencionadas acima é usando o LVM

No entanto, nenhum dos tutoriais discute / recomenda tamanhos de partição (proporcionalmente, como obviamente sistemas diferentes têm espaço em disco diferente disponível, o meu é de 80 GB em / )

Além disso, alguns tutoriais mencionam as alterações necessárias /etc/fstabe outros não.

Meu objetivo é converter minha configuração de partição única de 80 GB em várias partições e, em seguida, proteger as partições contra ataques e explorações comuns usando: uma combinação nodev,noexec,nosuidde/etc/fstab

Eu posso passar dias testando e falhando em diferentes configurações no virtualbox... Ou algum bonito e/ou bonito " Ubuntu Server Partitioning Guru " pode publicar um guia definitivo fácil de seguir (público-alvo de usuário intermediário) como descrevi acima e se tornar famoso na Internet como muitos usuários que hospedam seus próprios projetos em vps vão amar e adorar você para sempre. :-)

ATUALIZAÇÃO
Eu originalmente não publiquei o guia de proteção do servidor primário porque eu não queria que este post se tornasse um "debate" sobre o trabalho muito completo desse cara. No entanto, em retrospectiva, acho que seria útil para as pessoas que desejam responder a esta postagem, para ver os benefícios reais de segurança que estou tentando alcançar.

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

server
  • 1 1 respostas
  • 603 Views

1 respostas

  • Voted
  1. Best Answer
    nagelp
    2022-01-30T08:23:46+08:002022-01-30T08:23:46+08:00

    Eu acho que geralmente separar as coisas em diferentes sistemas de arquivos não ajuda/melhora a segurança. Se alguém invadir o sistema enquanto ele estiver em execução, de qualquer forma, tudo está montado e não há diferença lógica em ter tudo em um sistema de arquivos. Que razões foram dadas no material que você estudou?

    Dito isso, ele pode ajudar no desempenho (diferentes sistemas de arquivos ou hardware diferente abaixo desses pontos de montagem) e diminuir o tempo de recuperação de desastres (por exemplo, se apenas o SSD que mantinha /var sumiu, você só precisa restaurar esse backup e o resto continua funcionando).

    Você estava perguntando sobre os tamanhos de partição recomendados:

    • Para /você é bom com 15-20 GB. Eu nunca precisei de mais um servidor (executando um servidor web + servidor de email).
    • swapEu costumo colocar em seu próprio volume / partição que tem o mesmo tamanho que a RAM - simplesmente para que o suspend-to-disk possa funcionar. As pessoas costumavam recomendar o tamanho de 2xRAM, mas com os tamanhos de RAM atuais, quando você se depara com uma situação em que precisa de uma quantidade séria de troca, você está com problemas. Você notará isso a partir de uma grande desaceleração e deverá aumentar rapidamente a RAM disponível.
    • /bootsó precisa de 500 MB, o que lhe dá espaço para mais de 8 versões kernel+initrd. Certifique-se de executar com apt autoremovefrequência, para mantê-lo aparado após as atualizações do kernel.
    • Eu manteria /usre /optcomo diretórios em /, só não vejo vantagem em movê-los para seus próprios sistemas de arquivos.
    • Conforme descrito neste guia de proteção , ter um volume separado para /tmpfaz sentido, pois permite que você torne esse diretório gravável em todo o mundo mais restrito - tanto em quanto espaço ele pode usar do espaço totalmente disponível e o que pode ser feito com os arquivos que estão armazenados lá. O guia recomenda usar as opções nodev, nosuid e noexec ao montar o sistema de arquivos. O guia apenas fornece os comandos de montagem para "uso único". Traduzir isso em uma linha em /etc/fstab significaria que você coloca nodev,nosuid,noexecna 4ª (opções) coluna da linha onde você monta o volume /tmp dedicado no arquivo /tmp.
    • Isso nos deixa com /homee /var- isso geralmente é o material "importante". Em meus servidores /homeestá praticamente vazio, mas /varcontém public_html, os logs, os bancos de dados, etc. Então, mantenho /homecomo um diretório em /, mas /vardefinitivamente obtém seu próprio volume e é feito backup com mais frequência. Dê todo o espaço restante depois que o acima foi feito.

    Então você perguntou como fazer a transição:

    • No sistema em execução, onde está tudo ligado /, anexe o novo disco (arquivo VDI, ...), prepare-o com pvcreate, lvcreate e depois os sistemas de arquivos de sua escolha (mkfs.ext4 por exemplo).
    • Em seguida, faça pontos de montagem temporários em /mnt, por exemplo, /mnt/newroot, /mnt/newvar, ... e monte os sistemas de arquivos lá.
    • Em seguida, use rsync -xaP <source>/ <destination>/para cada um dos seus sistemas de arquivos. A opção '-x' impedirá que o rsync cruze os limites do sistema de arquivos, ou seja, se você fizer rsync -xaP / /mnt/newroot/isso, ele também não copiará /var, /home ou mesmo todos os novos sistemas de arquivos montados em /mnt. '-a' garantirá que as permissões etc. sejam assumidas sem modificação, e '-P' mostra o progresso. Para obter detalhes, consulte man rsync.

    Depois disso, edite o /mnt/newroot/etc/fstabe certifique-se de listar todos os sistemas de arquivos nos pontos de montagem apropriados. Se você chegou tão longe, isso não deve ser muito difícil (já que você escolheu todos os nomes /dev/mapper/..., sistemas de arquivos, etc.).

    Você também terá que usar grub-install e talvez update-grub para tornar o novo disco inicializável, mas não tenho tanta certeza sobre o procedimento exato. Com as VMs, você pode experimentá-lo facilmente e, se não inicializar, conecte o disco antigo novamente e corrija-o.

    Para referência, aqui está uma sessão de shell que fornece alguns comandos específicos sobre particionamento + LVM + formatação + referência nos tópicos fstab. Por favor, note que você provavelmente terá que modificá-los, por exemplo, se o seu dispositivo não for /dev/sda, se você quiser sistemas de arquivos diferentes, etc. - é apenas um exemplo.

    # After using fdisk to create one partition that covers the whole device,
    # it looks like this:
    root@ubuntu:~# fdisk -l /dev/sda
    Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors
    Disk model: VBOX HARDDISK   
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: 18ACB4C9-3F33-7041-8BEB-D819F138A809
    
    Device     Start       End   Sectors  Size Type
    /dev/sda1   2048 209715166 209713119  100G Linux LVM
    
    # Create a physical volume for LVM
    root@ubuntu:~# pvcreate /dev/sda1   
      Physical volume "/dev/sda1" successfully created.
      
    # Create a volume group with the name "vg1" for LVM that will
    # hold all our logical volumes
    root@ubuntu:~# vgcreate vg1 /dev/sda1
      Volume group "vg1" successfully created
    
    # Create the logical volumes as described above
    root@ubuntu:~# lvcreate --name root --size 20G vg1     
      Logical volume "root" created.
    root@ubuntu:~# lvcreate --name swap --size 8G vg1
      Logical volume "swap" created.
    root@ubuntu:~# lvcreate --name boot --size 500M vg1
      Logical volume "boot" created.
    root@ubuntu:~# lvcreate --name tmp --size 5G vg1
      Logical volume "tmp" created.
    
    # Have a look at the logical volumes
    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                                                    
    
    # Have a look at the volume group and see how much space is left
    root@ubuntu:~# vgs
      VG  #PV #LV #SN Attr   VSize    VFree  
      vg1   1   4   0 wz--n- <100.00g <66.51g
    
    # Use the remaining space for the last logical volume, var
    root@ubuntu:~# lvcreate --name var --size 66.5G vg1
      Logical volume "var" created.
    
    # Have another look at the volumes
    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
    
    # Format all volumes with ext4 file system
    for i in /dev/mapper/vg1-*; do mkfs.ext4 $i; done
    # Turn vg1-swap into swap space
    mkswap /dev/mapper/vg1-swap
    
    # Create fstab entries that look like this
    /dev/mapper/vg1-root    /       ext4    defaults                0       1
    /dev/mapper/vg1-boot    /boot   ext4    defaults                0       2
    /dev/mapper/vg1-var     /var    ext4    defaults                0       2
    /dev/mapper/vg1-tmp     /tmp    ext4    nosuid,nodev,noexec     0       0
    /dev/mapper/vg1-swap    none    swap    sw                      0       0
    
    • 2

relate perguntas

  • Como interagir graficamente com um servidor sem cabeça?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve