gifts2017

Настройка веб-сервера в домашних условиях. Часть 2 (VirtualBox + Win7 + Apache + 1C82 + PostgreSQL)

Опубликовал Денис (1cspecialist) в раздел Администрирование - Системное

В продолжение начатой мной темы "Настройка веб-сервера в домашних условиях (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 на другое значение порта.

Настройка прослушки порта http-трафика

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

Настройка перенаправление http-трафика на роутере

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

Публикация базы на веб-сервере

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

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

Настройка алиасов имен виртуальных хостов

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

Старт виртуальной машины

Остановка виртуальной машины

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

Запрет внешних обработок

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

Настройка доступа к файлам и папкам средствами ОС

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

Настройка блокировки исходящих соединений в брандмауэре

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

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. asidqwerty asidqwerty (asidqwerty) 09.04.11 22:58
А я ещё для надежности обрезал права windows пользователю под которым будет запускаться сервер, а также права выполнять javascript а то при демонстрации можно инклудом слить все метаданные
2. Ийон Тихий (cool.vlad4) 09.04.11 23:07
+1 к первому комменту...+1 к публикации, работа над ошибками... это хорошо, это по мужски...
3. Денис (1cspecialist) 09.04.11 23:09
(1) прошу прощения, может быть я чего-то не понимаю, но как javascript связан с сервером?
4. asidqwerty asidqwerty (asidqwerty) 09.04.11 23:40
(3) Давай адрес своего сервера в личку, покажу простой и "элегантный" способ наклонить сервер на действия разработчиком не предусмотренные
5. Павел Опарин (opx) 10.04.11 17:09
Молодец. Твердый плюс. Про Ubuntu у меня на блоге можно почитать: oparin.info
6. Денис (1cspecialist) 10.04.11 21:19
(5) Спасибо за ссылку. Познавательно.
7. BigB (BigB) 11.04.11 06:53
(0) За статью ПЛЮС. Хотелось бы ещё и демо посмотреть/пощупать?
8. BigB (BigB) 11.04.11 06:59
(1) По подробнее можете описать?
9. Анатолий (Anatolka) 11.04.11 14:52
(1) афтар раскрой тему связанную с javascript
10. Ромил Гумыч (gum777) 09.07.11 11:16
Скажите если у меня статический айпи то мне не нужен роутер?
11. Oleg . (oaf_is) 10.07.11 15:06
1. Кратко, но чЁтко и Ясно. Спасибо и "+".
2. Досадная опечатка."Apache чувствителен к регистру в имени виртуального хоста. Помним про это при указании URL-адреса базы в бпаузере."
12. Pavel Amadi (pako_amadi) 14.12.11 11:35
"{Форма.Форма(74)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка.
ОпределенияПолеты = Новый WSОпределения("http://webservices.aeroflot.ru/flightstatus.asmx?WSDL");
по причине:
При создании описания сервиса произошла ошибка.
по причине:
Ошибка доступа к файлу 'http://webservices.aeroflot.ru/flightstatus.asmx?WSDL'
по причине:
Ошибка работы с Интернет: couldn't resolve host name" - VladSt ЕСЛИ ТАКАЯ ОШИБКА, ТО У ВАС СОЕДИНЕНИЯ С ИНТЕРНЕТОМ, прочтие в моем txt файле про inetcfg
13. Денис (1cspecialist) 14.12.11 13:29
(10) gum777,
наличие статического айпи не связано с необходимостью иметь или не иметь роутер
публичный статический айпи лишь означает, что из интернета ваша машина всегда будет видна под этим айпи, а если вы купите доменное имя и привяжете к нему свой статический айпи, то до машины можно будет достучаться и по доменному имени

роутер же нужен если за айпи у вас находится несколько компьютеров

если комапьютер один, то можно и без роутера
Inkeeper; gum777; +2 Ответить