Executando um servidor Web com um sistema de arquivos criptografado (todo ou parte dele)

7

Eu preciso de um servidor Web (LAMP) executando dentro de uma máquina virtual (# 1) executando como um serviço (# 2) no modo sem cabeça (# 3) com parte ou todo o sistema de arquivos criptografado (# 4).

A máquina virtual será iniciada sem intervenção do usuário e fornecerá acesso a um aplicativo Web para usuários na máquina host. Os pontos 1, 2 e 3 são verificados e provaram estar funcionando bem com o Sun VirtualBox, então minha pergunta é para o número 4:

Posso criptografar todo o sistema de arquivos e ainda acessar o servidor da web (usando um navegador) ou o GRUB solicitará uma senha?

Se criptografar todo o sistema de arquivos não for uma opção, posso criptografar apenas /homee /var/www? O Apache / PHP poderá usar arquivos dentro /homeou /var/wwwsem solicitar uma senha ou montar essas partições manualmente?

Gaff
fonte
por que você quer fazer isso?
Akira
enviar uma imagem para o cliente com os dados sensíveis - o nosso cliente quer esses dados para ser acessível apenas através do navegador web
Você também pode querer criptografar a área do sistema de arquivos em que o banco de dados do site está armazenado. Estou assumindo, é claro, que seu site usa um banco de dados, como muitos tipos, por exemplo, Wordpress, Drupal e outros framework / cms. O processo do banco de dados, por exemplo, do mysql ou maria, armazenará o banco de dados no sistema de arquivos como arquivos em algum lugar. +1 boa pergunta.
therobyouknow
Você também pode querer criptografar sua troca também. Aqui está um exemplo: askubuntu.com/questions/463661/…
therobyouknow

Respostas:

11

Se você deseja criptografia total de disco, é necessário digitar a senha durante a fase de inicialização, o que provavelmente não é o que você deseja. Eu recomendo que você crie uma partição criptografada usando luks e coloque todos os dados sensíveis nessa partição. Após a inicialização da máquina, você pode colocar ssh na caixa e desbloquear a partição.

Quanto à forma de criptografia, é muito fácil:

  • Crie a partição como quiser
  • Formate a partição com luks:

    cryptsetup -c twofish -y luksFormat /dev/sda4
    
  • Desbloqueie a partição com luks:

    cryptsetup luksOpen /dev/sda4 encwww
    
  • Formate a partição criptografada com um fs de sua escolha:

    mkfs.ext3 /dev/mapper/encwww
    
  • Você terminou e agora pode montar /dev/mapper/encwww

Para desbloquear a partição novamente após uma reinicialização, você precisa:

cryptsetup luksOpen /dev/sda4 encwww

e depois monte a partição.

Tim Schumacher
fonte
Com base na sua resposta, não vejo o que está impedindo que um processo invasor que obteve acesso root execute esses comandos e veja seus dados confidenciais. Você pode explicar?
trusktr
3
@trusktr não, o processo não seria, porque não sabe a senha. Mas depois que você digitar sua senha, poderá ler todos os arquivos. Se você possui um rootkit no seu computador, é claro que tem muito mais problemas em mãos.
Tim Schumacher
+1 Boa resposta, aplicarei isso para minhas próprias necessidades. Também considerarei como criptografar a área em que o banco de dados está armazenado e feedback, se possível. Parece que esse assunto se tornará mais pertinente, dada a legislação futura do RGPD.
Therobyouknow
1
@ TimSchumacher Então, toda vez que o servidor precisa reiniciar, a senha do sudo é necessária para montar ou descriptografar o conteúdo, não é?
SaidbakR
2

cryptsetup e dm-crypt não estão disponíveis nas distribuições linux padrão e é uma solução bastante exótica, você deve tentar fazê-lo da maneira normal:

modprobe loop
modprobe cryptoloop
modprobe aes

dd if=/dev/urandom of=/yourContainerFile bs=`expr 1024 \* 1024 \* 1024` count=yourSizeInGigaBytes

losetup -e aes-256 /dev/loop0 /yourContainerFile

mkfs.ext3 /dev/loop0

aae agora você está pronto para montar / dev / loop0 onde quiser - criptografia forte, feita corretamente; você pode até configurar o seu fstab de uma maneira que permita que a chave de criptografia seja lida a partir de um pendrive USB que precisa ser conectado ao @ boot ... muito mais flexível E seguro -> Nunca siga guias que usam "twofish" ou algo semelhante à criptografia ... esse algoritmo ainda não foi totalmente analisado, ninguém sabe se é seguro.

Ah e: se você deseja segurança além do escopo e do poder das agências secretas: use

/dev/random

em vez de. O daemon de coleta de entropia do Linux fornece valores estatisticamente "bons", mas é muito lento.

E se você é realmente paranóico, compre um dispositivo capaz de receber e medir a radiação cósmica de fundo, conecte-o ao seu computador e deixe-o escrever em / dev / random :-D

specializt
fonte
2
De acordo com en.wikipedia.org/wiki/Cryptoloop , o dm-crypt impede uma certa vulnerabilidade (marca d'água) que é vista com o cryptoloop. Quais são seus pensamentos sobre isso?
trusktr