Как зашифровать /var/www?
Я хочу зашифровать мой /var/www
папка, поэтому я и apache
был доступ.
Как я могу это сделать?
Я пытался использовать ecryptfs
, но мои сайты не работают.
Пожалуйста, напишите пример или ссылку для руководства.
4 ответа
Вы можете использовать eCryptfs для этого.
Вы должны сделать это от имени пользователя root. Вот несколько инструкций, которые будут работать:
root@server-59314:~# ecryptfs-setup-private
Enter your login passphrase:
Enter your mount passphrase [leave blank to generate one]:
************************************************************************
YOU SHOULD RECORD YOUR MOUNT PASSPHRASE AND STORE IT IN A SAFE LOCATION.
ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase
THIS WILL BE REQUIRED IF YOU NEED TO RECOVER YOUR DATA AT A LATER TIME.
************************************************************************
Done configuring.
Testing mount/write/umount/read...
Inserted auth tok with sig [37d1d7fcf453d9d0] into the user session keyring
Inserted auth tok with sig [974bb07127cbe922] into the user session keyring
Inserted auth tok with sig [37d1d7fcf453d9d0] into the user session keyring
Inserted auth tok with sig [974bb07127cbe922] into the user session keyring
Testing succeeded.
Logout, and log back in to begin using your encrypted directory.
И тогда вам нужно будет войти в систему как пользователь root и запустить http://manpg.es/ecryptfs-mount-private. Обратите внимание, что вы, вероятно, захотите убедиться, что /var/www не отключен при выходе из root. Для этого просто rm -f /root/.ecryptfs/auto-umount
,
Полное раскрытие: я один из сопровождающих проекта eCryptfs.
См. http://ubuntuforums.org/showthread.php?t=1655933
Однако, так как ключ разблокирован при загрузке, вы все равно ничего не получите, если только вы не войдете, если кто-то войдет в ваш серверный зал, удалит ваш диск и затем попытается получить доступ к нему без тестирования, чтобы вставить диск в любой другой компьютер (из та же архитектура) и пытается загрузить его.
Возможно, вы МОЖЕТЕ выполнить полное шифрование диска (плохая идея, поскольку вы не сможете расшифровать свой компьютер через SSH), или вам придется разблокировать шифрование, но в итоге вы получите сервер, который не может быть перезагруженным, не беспокоясь о техническом обслуживании впоследствии.
Если вы уже зашифровали свою домашнюю папку, вы можете легко указать apache для чтения подкаталога внутри ~/ через символическую ссылку.
Вот как я настроил свою систему. Я создал символическую ссылку под /var/www
это указывает на папку внутри моей домашней папки (т.е. ln -s /home/francesco/www/default /var/www/default
)
Найти ниже моего /var/www
содержание:
root@Terminus:/var/www# ls -lah
total 8K
drwxr-xr-x 4 francesco www-data 4.0K Mar 24 14:52 .
drwxr-xr-x 15 root root 4.0K Feb 7 09:46 ..
lrwxrwxrwx 1 francesco www-data 28 Mar 24 14:52 default -> /home/francesco/www/default/
Теперь вам нужно добавить apache (www-data) в вашу группу и наоборот:
usermod -a -G www-data francesco
usermod -a -G francesco www-data
Я сделал это потому, что мне нужно запускать PHP-сценарии в командной строке от моего пользователя, а apache по-прежнему должен читать и записывать одни и те же файлы (но я думаю, вы можете использовать setfacl).
Теперь вы должны изменить разрешения вашей домашней папки и разрешения корневой папки вашего документа (в моем случае ~/www/default
). Пожалуйста, будьте осторожны и не запускайте команду chmod, используя рекурсивную опцию в вашей домашней папке, используйте ее только в корневой папке документа следующим образом:
sudo chmod 0755 /home/francesco
sudo chmod -R 0755 /home/francesco/www
Я хотел бы предложить вам зашифровать только файлы в www
папка вместо шифрования всей папки. То же самое расшифровывается в памяти при вызове файла.