Ejecutar un servidor web con un sistema de archivos encriptado (todo o parte de él)


6

Necesito un servidor web (LAMP) que se ejecute dentro de una máquina virtual (# 1) que se ejecute como un servicio (# 2) en modo sin cabeza (# 3) con parte o todo el sistema de archivos cifrado (# 4).

La máquina virtual se iniciará sin la intervención del usuario y proporcionará acceso a una aplicación web para los usuarios en la máquina host. Los puntos # 1, # 2 y # 3 se verifican y se demuestra que funcionan bien con Sun VirtualBox, por lo que mi pregunta es para el # 4:

¿Puedo cifrar todo el sistema de archivos y seguir accediendo al servidor web (usando un navegador) o GRUB me solicitará una contraseña?

Si cifrar todo el sistema de archivos no es una opción, ¿puedo cifrar solo? /home y /var/www? ¿Apache / PHP podrá usar archivos en /home o /var/www ¿Sin pedir una contraseña o montar estas particiones manualmente?


¿Por qué quieres hacer esto?
akira

envíe una imagen al cliente con datos razonables: nuestro cliente desea que estos datos sean accesibles solo a través del navegador web

Es posible que también desee considerar la posibilidad de cifrar el área del sistema de archivos donde se almacena la base de datos de su sitio web. Supongo que, por supuesto, su sitio utiliza una base de datos, como hacen muchos tipos, por ejemplo. Wordpress, Drupal y otros framework / cms. El proceso de la base de datos, por ejemplo. desde mysql o maria almacenará la base de datos en el sistema de archivos como archivos en algún lugar. +1 Buena pregunta.
therobyouknow

También es posible que desee considerar la posibilidad de cifrar su intercambio. Aquí hay un ejemplo: askubuntu.com/questions/463661/…
therobyouknow

Respuestas:


11

Si desea el cifrado completo del disco, debe ingresar la contraseña durante la fase de inicio, que probablemente no sea lo que desea. Le recomendaría crear una partición encriptada usando luks y colocar todos los datos sensibles en esa partición. Después de que la máquina haya arrancado, puede ssh en la caja y desbloquear la partición.

En cuanto a cómo hacer el cifrado, es muy fácil:

  • Crea la partición como quieras
  • Formatear la partición con luks:

    cryptsetup -c twofish -y luksFormat /dev/sda4
    
  • Desbloquea la partición con luks:

    cryptsetup luksOpen /dev/sda4 encwww
    
  • Formatee la partición encriptada con un fs de su elección:

    mkfs.ext3 /dev/mapper/encwww
    
  • Ya has terminado y ahora puedes montar. /dev/mapper/encwww

Para desbloquear la partición nuevamente después de reiniciar, debe hacer:

cryptsetup luksOpen /dev/sda4 encwww

y luego montar la partición.


Basándome en su respuesta, no veo qué es lo que impide que un proceso deshonesto que haya ganado acceso de root ejecute esos comandos y vea sus datos confidenciales. ¿Puedes explicar?
trusktr

3
@trusktr no el proceso no lo haría, porque no conoce la contraseña. Pero después de ingresar su contraseña, podrá leer todos los archivos. Si tiene un rootkit en su computadora, por supuesto, tiene muchos más problemas a la mano.
Tim Schumacher

+1 Buena respuesta, aplicaré eso para mis propias necesidades. También consideraré cómo cifrar el área donde se almacena la base de datos y comentarios si puedo. Este asunto parece que se volverá más pertinente con la futura legislación GDPR.
therobyouknow

1
@TimSchumacher Entonces, cada vez que se necesita reiniciar el servidor, se necesita la contraseña sudo para montar o descifrar el contenido, ¿no es así?
SaidbakR

1

cryptsetup y dm-crypt no están disponibles en distribuciones de linux estándar y es una solución bastante exótica, debes intentar hacerlo de la manera habitual:

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

aa y ahora está listo para montar / dev / loop0 donde quiera, cifrado fuerte, hecho correctamente; Incluso podría configurar su fstab de una manera que permita leer la clave de cifrado desde una memoria USB que se debe enchufar en @ boot ... mucho más flexible Y segura - & gt; Nunca siga las guías que usan "twofish" o algo similar al cifrado ... este algoritmo aún no se ha analizado completamente, nadie sabe si es seguro.

Ah y: si quiere seguridad más allá del alcance y el poder de las agencias secretas: use

/dev/random

en lugar. El demonio de recolección de entropía de Linux ofrece valores estadísticamente "buenos", pero es muy lento.

Y si eres realmente paranoico, cómprate un dispositivo que pueda recibir & amp; mida la radiación de fondo cósmica, conéctela a su computadora y déjela escribir a / dev / random :-D


1
De acuerdo a en.wikipedia.org/wiki/Cryptoloop , dm-crypt previene una cierta vulnerabilidad (marca de agua) que se ve con cryptoloop. ¿Qué piensas sobre eso?
trusktr
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.