Настройка веб-сервера в домашних условиях. Часть 2 (VirtualBox + Win7 + Apache + 1C82 + PostgreSQL)
В продолжение начатой мной темы "Настройка веб-сервера в домашних условиях (WinXP + IIS + 1C82)". Статья является логическим продолжением и посвящена вопросам повышения безопасности "домашнего веб-сервера".
- Описание
- Подробнее
Описание
В продолжение начатой мной темы Настройка веб-сервера в домашних условиях. Статья является логическим ее продолжением и посвящена вопросам повышения безопасности «домашнего веб-сервера».
Несмотря на то, что это продолжение, будут рассмотрены некоторые новые компоненты. Так, вместо веб-сервера IIS будет рассмотрен Apache, вместо Windows XP в качестве платформы для веб-сервера будет рассмотрена Windows 7. Основные направления повышения безопасности — виртуализация сервера (виртуальная машина Oracle VirtualBox), отказ от файлового варианта работы базы данных в пользу PostgreSQL и некоторые фичи при настройке сети.
Все настройки будут описаны исходя из того, что «домашняя сеть» находится за роутером. Если в вашем конкретном случае роутер не используется и интернет подключен напрямую к компьтеру — нужно будет поэксперементировать с настройками виртуального сетевого адаптера виртуальной машины. Возможно нужно будет сменить тип подключения на NAT. Подробнее можно прочитать в инструкции к VirtualBox.
Что нам понадобится:
1. Виртуальная машина Oracle VirtualBox. Виртуальная машина позволяет эмулировать работу полноценного компьютера. Фактически вы получите два компютера на базе одного. VirtualBox распространяется бесплатно. Если лень гуглить в поисках ссылки, то скачать его можно с родного сайта здесь.
2. Дистрибутив Windows 7. Будем ставить его на виртуальную машину. Можно было конечно и Ubuntu поставить, но выбрал Win7 из соображений большей пользователеориентированности и распространенности, да простят меня nix-адепты. Если как-нибудь соберусь испытать свзяку с Ubuntu — результатами поделюсь.
3. Веб-сервер Apache. Будем использовать версию 2.2. Ссылка на скачивание здесь.
4. Платформа 1С:Предприятие 8.2 последней версии.
5. Сервер баз данных PostgreSQL 8.4.3-3.1C, адаптированный для работы с 1С. Ссылка на скачивание здесь.
Пошаговая инструкция:
1. Устанавливаем виртуальную машину на компьютер. Выбираем тип ОС — Windows 7. Настройка виртуального сетевого адаптера — «Сетевой мост».
Создать машину очень просто — пошаговый мастер создания поможет выполнить операцию от начала и до конца.
После создания виртуальной машины нужно поставить на нее ОС. Для этого следует в менеджере машин в свойствах машины добавить виртуальный оптический привод и подключить к нему образ установочного диска ОС.

Далее следует запустить машину. Вам будет предложено выполнить загрузку с оптического привода. Грузимся — устанавливаем ОС.
После этого в свойствах машины следует произвести настройку виртуального адаптера сети. Тип подключения выбираем «Сетевой мост». В свойстве «имя» связываем виртуальный адаптер с физическим.

Далее нужно удалить виртуальные сети хоста, чтобы они не мешали. Для этого открываем «Файл» — «Настройки…» — «Сеть». Удаляем виртуальные сети из списка.

DHCP-сервер на роутере назначит виртуальному адаптеру сети свой IP-адрес, на который позже мы настроим перенаправление http-трафика.
2. На виртуальную машину ставим платформу 1С 8.2 (серверная установка). Здесь все стандартно. Помним, что пользователь, от имени которого будет запускаться сервер 1С (обычно при установке предлагается создать пользователя USR1CV82
) будет тем пользователем, от имени которого осуществляются файловые операции на сервере.
3. Также на виртуалку устанавливаем сервер БД PostgreSQL. Необходимо помнить, что при установке нужно выбрать кодировку сервера и клиента UTF8.
Если по какой-то причине у вас перестала запускаться служба сервера PostgreSQL, найдите в папке с установленным Postgre файл postmaster.pid и удалите его.
4. Ставим Apache на виртуалку. В папке с установленным веб-сервером ищем файл httpd.conf — это файл настроек. Меняем прослушку порта с 80 на другое значение порта.

5. Настраиваем роутер. Перенаправляем http-запросы с публичного 80 порта, на приватный, указанный нами в настройках Apache на предыдущем шаге на IP-адрес виртуальной машины.

6. Прописываем базу (разворачиваем на PostgreSQL). Публикуем развернутую базу на веб-сервере.

Apache чувствителен к регистру в имени виртуального хоста. Помним про это при указании URL-адреса базы в бпаузере.
Можно использовать алиасы в файле настроек веб-сервера httpd.conf для назначения дополнительных имен хостов или обход чувствительности регистра веб-сервера.

7. Для удобства создаем батники на старт и на остановку виртуальной машины. Батник на старт прописываем в автозагрузку.


8. Для пущей надежности при разработке конфигураций желательно предусматривать роль с запретом запуска внешних обработок. Соответственно, если вы планируете демонстрировать свою разработку через интернет, то лучше выдавать демо-доступ интернет пользователям именно с такой ролью.

9. Также для повышения безопасности можно настроить права доступа к файлам и папкам файловой системы сервера встроенными средствами самой ОС (хотя это и не обязательно, если мы установили запрет для роли 1С на выполнение внешних обработок). Для этого в свойствах файлов или папок нужно перейти на закладку «Безопасность» и задать соответствующие разрешения или запреты для пользователя, от имени которого будут совершаться файловые операции — мы помним, что это USR1CV82. Следует быть остарожными с этими настройками и не «пережать» их. Подробнее об этом механизме читайте в документации к ОС.

В настройках брандмауэра Windows 7 на виртуалке запрещаем исходящие сетевые подключения. Для этого открываем настройки брандмауэра и переходим по ссылке «Дополнительные параметры». Правой кнопкой мыши открываем свойства корневого элемента политик брандмауэра и выбираем блокировку исходящих подключений.

Ну вот вроде бы и все. Всем удачи в настройках.
