Простая задача — резервное копирование информации с нескольких компьютеров по сети на один накопитель — как?
Множество готовых коробочных вариантов как программных, так и аппаратных, к примеру NAS Synology или Western Digital, но сегодня задача стоит сделать все с минимальными затратами денежных средств, а готовые решения стоят денег. Самое простое в этой ситуации — это взять компьютер, поставить в него жестки диск побольше, а лучше пару в зеркальной записи. Особое внимание придется уделить операционной системе, поскольку от нее зависят все возможности накопителя.
MS Windows — проще некуда, все в привычном виде, права, пользователи, общие доступы и т.д., одно маленькое но — продукт стоит денег, а пользоваться ворованным не хорошо.
Linux + Samba — бесплатно, надежно, не дружелюбно, не презентабельно, пользователя туда не пустишь, короче вариант на любителя или айтишника, но никак обычным пользователям не подходит.
Linux FreeNAS, ClearOS и прочие сборки оказались не очень удобными, хотя FreeNAS и отвечает всем запросам, но используемая ZFS как-то отпугивает.
Lunix + ownCloud — это решение подошло полностью! OwnCloud — собственное облако — удобно, просто, красиво, понятно!
OwnCloud изначально работает как Яндекс диск, Skydrive и прочие облачные диски, т.е. каждому пользователю отводится пространство под его данные и тот уже его забивает через web интерфейс, программу-клиента и т.п. Помимо хранения файлов есть возможность синхронизировать почту, календари, заметки и т.п., приложение IOS, Android, MAC. Подробнее лучше читайте на официальном сайте http://owncloud.org/features/. Нам же сейчас важно то, что ownCloud предоставляет доступ к хранилищу через WebDAV. Поставляемый клиент создает синхронизируемую папку на компьютере, т.е. все, что бы мы туда не положили, будет закачено на сервер, это удобно при работе с файлами, но при резервном копировании такой вариант не подходит, поскольку копия данных хранится и у нас на компьютере, а это избыточно и занимает лишнее место.
Тогда на помощь к нам приходит как раз тот самый WebDAV. Посредством программы NetDrive http://www.netdrive.net/, мы можем подключить папку пользователя на накопителе в виде жесткого диска компьютера, тогда система резервного копирования может складывать копии именно на самом накопителе, чего нам и нужно. Хочу отметить, что NetDrive штука платная, но только для больших объемов, в частности в бесплатном режиме она позволяет автоматически подключать 1 диск, чего вполне достаточно.
Таким образом мы получаем не только резервное копирование, но и прекрасное решение для обмена файлами, синхронизации информации, хранения документов. Кстати, обладателям белого IP все эти «вкусности» доступны будут из любой точки света, где есть доступ в интернет. Администраторам тоже система будет более приятной, поскольку она работает на обычном linux, той версии и сборки, что мы захотим, параллельно на сервере может крутиться все, что угодно — IP телефония, сайты, виртуализация, почтовый сервер…
Собственно и все! Ах, да, в системник поставили два жестких диска 1Tb Western Digital WD10EFRX Caviar Red, SATA III.
Решение тестировалось на Ubuntu 12.10, i5, 1ГБ ОЗУ.
Еще может быть полезным информация по настройке https в Apache, поскольку ownCloud требует безопасных соединений.
Веб-сервер Apache полностью поддерживает работу по HTTPS. Для того, чтобы активировать поддержку HTTPS на уже установленном Apache необходимо выполнить следующее.
Создание ключа и ssl-сертификата
Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преймуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанных компанией-сертификатором (Certificate authority) стоит денег.
Для создания ключа и сертификата вводим команду:
openssl req -new -x509 -days 30 -keyout server.key -out server.pem
На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем. На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.
После ответа на все вопросы в директории должны появиться два новых файла — server.pem и server.crt (ключ и сертификат, соответственно).
Чтобы использовать сгенерированный ключ нужно знать пароль введенный нами, и Apache будет спрашивать его у нас при загрузке, а к чему нас млишние вопросы от демонов? :) Поэтому снимаем пароль с ключа:
cp server.key{,.orig} openssl rsa -in server.key.orig -out server.key rm server.key.orig
Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:
sudo cp server.pem /etc/ssl/certs/ sudo cp server.key /etc/ssl/private/ sudo chmod 0600 /etc/ssl/private/server.key
Настройка Apache
Для начала необходимо активировать
:
sudo a2enmod ssl
А затем включить настройки HTTPS сайта по умолчанию:
sudo a2ensite default-ssl
Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется
(или
).
В этом файле рекомендуется после директивы
SSLEngine on
добавить строчку
SSLProtocol all -SSLv2
дабы запретить использование устаревшего протокола SSLv2.
Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.
# Публичный сертификат сервера SSLCertificateFile /etc/ssl/certs/server.pem # Приватный ключ сервера SSLCertificateKeyFile /etc/ssl/private/server.key
Теперь просто перезагрузите Apache:
sudo service apache2 restart
И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.
Перенаправление HTTP запросов на HTTPS
Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Чтобы добиться этого можно, например, организовать перенаправление с помощью
. Для этого сначала необходимо его активировать:
sudo a2enmod rewrite sudo service apache2 restart
Затем изменить файл
, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл надо добавить внутрь блока
<VirtualHost *:80> ... </VirtualHost>
строчки:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.
Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS страницу.