Поиск по сайту:

Включение защиты веб-каталогов UserDir и пароля на веб-сервере Zentyal. Часть 10


В среде с несколькими пользователями, такой как Zentyal PDC Active Directory, запуск веб-сервера может оказаться очень полезным, если вы хотите, чтобы каждый пользователь имел свою личную веб-страницу, которую можно разместить у себя дома.

Модуль Веб-сервер в Zentyal 3.4 можно настроить для активации Общедоступного HTML для пользователей и с помощью некоторых скриптов Linux BASH. для динамического создания некоторого контента для веб-страницы и передачи пользователям необходимой информации при входе в домен.

Кроме того, Apache уже давно поставляется с еще одной функцией, связанной с безопасностью доставляемого контента, а именно защита веб-каталога паролем в одной из самых простых форм с помощью .htaccess и создайте список пользователей, необходимых для доступа к ресурсам, а также защитите веб-контент от сканеров поисковых систем.

Требования

  1. Руководство по установке Зентьяля
  2. Установите веб-службы (Apache) на сервере Zentyal.

Шаг 1. Включите общедоступный HTML-код пользователя

1. Войдите в свой инструмент веб-администрирования Zentyal PDC, используя https://zentyal_ip.

2. Перейдите к Модулю веб-сервера -> установите флажок Включить однорангового пользователя public_html, нажмите кнопку Изменить, затем Сохранить изменения. .

3. Откройте браузер и введите в поле URL следующее: http://mydomain.com/~your_username.

Как вы можете видеть, у Apache нет прав на доступ к каталогу пользователя или к домашнему индексу пользователя. Чтобы исправить это поведение, мы должны предоставить www-data разрешения на выполнение в каталоге /home/$USER и создать папку public_html по пути пользователя.

Чтобы немного упростить задачу, мы собираемся написать сценарий Linux Bash, который создает каталог public_html и обеспечивает правильные разрешения для всех пользователей системы, автоматически генерирует веб-страницы html для всех. пользователи с действительным домашним каталогом и другим сценарием, на этот раз сценарием Windows Bach, который свяжет его с объектом групповой политики домена по умолчанию, так что каждому пользователю будет предложено открыть свою личную веб-страницу после входа в систему с учетными данными домена из < b>Системы Windows присоединены к домену.

4. Чтобы выполнить эту задачу, войдите на Zentyal Server с помощью Putty с учетной записью администратора Zentyal, созданной при установке системы, и создайте первый скрипт с помощью вашего любимого текстового редактора. Мы назовем его «user-dir-creation».

nano user-dir-creation

5. Добавьте приведенное ниже содержимое в скрипт «user-dir-creation».

#!/bin/bash

for i in `ls /home | grep -v samba| grep -v lost+found`;  do

        mkdir /home/$i/public_html

## Make world readable and executable, so that www-data can access it  ##

        chmod -R 755 /home/$i

      chgrp -R www-data /home/$i/public_html/

## Next code should be on a single line ##

echo "<html><body style='background-color:#2DC612'><div align='center'><p><H1 style='color:#fff'>Welcome user $i on <a style='color:#fff' href='https://mydomain.com'>`hostname -f` </a></H1></p></div></body></html>" > /home/$i/public_html/index.html

## List /home/$USER permissions and public_html perm optional ##

echo "......................."

ls -all /home/$i

echo "......................"

ls -all /home/$i/public_html

done;

6. Сохраните скрипт и сделайте его исполняемым, а затем запустите его с правами root.

chmod +x user-dir-creation
sudo ./user-dir-creation

7. Снова откройте браузер и укажите тот же URL, что и выше (см. пункт 3).

Был создан каталог public_html и файл html для всех пользователей, так что теперь у каждого из них есть персонализированная веб-страница (это всего лишь простая тестовая страница, но представьте, что вы можете сделать с помощью некоторого PHP , MySQL или CGI).

8. Если Сервер Zentyal 3.4 также является Основным контроллером домена, мы можем сделать так, чтобы веб-страница каждого пользователя автоматически открывалась в браузере, когда пользователи входят в систему с хостов Windows, присоединенных к домену.

Чтобы включить его, войдите в систему Windows, присоединенную к домену, и создайте пакетный сценарий Windows с именем «public_html.bat» с помощью Блокнота со следующим содержимым.

explorer http://your_domain.tld/~%username%

Примечание. Обратите внимание на специальный символ «~» и %username%, который является переменной среды Windows.

9. Откройте Инструмент веб-администрирования Zentyal (https://zentyal_IP) и перейдите в раздел Домен -> Объекты групповой политики -> По умолчанию. Политика домена -> Редактор объектов групповой политики.

10. Нажмите Изменить, прокрутите вниз до Конфигурация пользователя –> Добавить новый сценарий входа в систему, перейдите по пути, по которому был создан ваш сценарий, и нажмите < б>ДОБАВИТЬ.

Поздравляем! Теперь при следующем входе в домен ваш браузер по умолчанию откроет персонализированную веб-страницу, связанную с вашим именем пользователя.

Шаг 2. Защита веб-каталога паролем

Эта часть требует более сложной настройки модуля Apache, которую невозможно выполнить с помощью Веб-интерфейс Zentyal, а только из командной строки и изменения некоторого шаблона Модуль Zentyal Apache.

Если вы попытаетесь напрямую изменить конфигурацию Apache, как вы обычно делаете на сервере Linux, все сделанные конфигурации будут потеряны, поскольку Zentyal использует некоторые формы шаблонов, которые перезаписывают файлы конфигурации каждого сервиса после перезагрузки или перезапуска сервиса.

Чтобы фактически защитить веб-папку с помощью аутентификации Apache и сделать изменения постоянными, необходимо изменить директиву «AllowOverride», а модуль «auth_basic» загрузить и включить на веб-сервере Apache. .

11. Чтобы включить все конфигурации, необходимо сначала войти в систему через командную строку с помощью Putty на Zentyal Server с учетной записью root.

12. Включите «auth_basic», введя следующую команду, а затем перезапустите веб-сервис zentyal.

a2enmod auth_basic
service zentyal webserver restart

13. После загрузки модуля пришло время изменить шаблон Zentyal Apache Vhost, расположенный по пути «/usr/share/zentyal/stubs/webserver/», и настроить «Разрешить переопределение».

Первая резервная копия файла vhost.mas.

cp /usr/share/zentyal/stubs/webserver/vhost.mas  /usr/share/zentyal/stubs/webserver/vhost.mas.bak

Затем откройте редактор, перейдите в нижнюю часть файла и замените «Нет» на «Все» в строке директивы «Разрешить переопределение», как показано на снимке экрана. .

14. После завершения редактирования перезапустите модуль Zentyal Webserver, чтобы применить новые изменения.

service zentyal webserver restart

Основная цель директивы AllowOverride — динамически изменять конфигурации Apache из других файлов, отличных от тех, которые используются в корне Apache (/etc/apache2/), для каждого пути с использованием Файл .htacess.

15. Теперь пришло время создать пользователей, которым разрешено просматривать каталог веб-контента, защищенный паролем. Сначала нам нужно создать каталог, расположенный за пределами пути поддомена, где будет размещен и защищен файл .htpasswd.

mkdir /srv/www/htpass
chmod –R 750 /srv/www/htpass
chgrp –R www-data /srv/www/htpass

16. Теперь пришло время создать файл .htpasswd и добавить нескольких пользователей с помощью команды htpasswd. При создании первого пользователя добавьте командный переключатель «–c» (создать), чтобы создать файл и добавить пользователя, затем введите и подтвердите пароль пользователя.

htpasswd –c /srv/www/htpass/.htpasswd first_user
htpasswd /srv/www/htpass/.htpasswd second_user

17. Теперь файл .htpasswd создан и зашифрован с использованием алгоритма соли MD5, и вы можете добавить столько пользователей, сколько необходимо для доступа к содержимому веб-папки.

18. Теперь предположим, что вы хотите защитить URL-адрес http://www.mydomain.com от других пользователей, кроме тех, которые созданы в вашем файле htpasswd для доступа к поддомену. Чтобы включить это поведение, создайте файл .htaccess по системному пути www.mydomain.com и добавьте следующее содержимое.

AuthType basic
AuthName “What ever message you want”
AuthBasicProvider file
AuthUserFile  /path/to/.htpassd file created
Require user  your_user1 user2 userN

Также убедитесь, что файл .htacces защищен от чтения слов.

nano /srv/www/www.mydomain.com/.htaccess
chmod 750  /srv/www/www.mydomain.com/.htaccess
chgrp www-data /srv/www/www.mydomain.com/.htaccess

Поздравляем! Теперь вы успешно защитили паролем субдомен www.mydomain.com на своем веб-сайте, и пользователям будет предложено ввести свои учетные данные для доступа к содержимому веб-сайта.

Кроме того, если вы хотите защитить другие домены или субдомены, созданные на вашем сервере, с помощью уже созданных учетных данных, просто скопируйте файл .htaccess по пути Apache к вашему субдомену и убедитесь, что www-data имеет доступ на чтение.

С помощью Apache Web Direcory Password Protect Zentyal Weberver можно создать с некоторым дополнительным уровнем безопасности для раскрытия конфиденциальной информации, размещенной в ваших доменах, но имейте в виду, что этот метод защищает только каталоги, а не передачу файлов и паролей. в браузере ясно, поэтому попробуйте использовать протокол HTTPS, чтобы защитить учетные данные пользователя от перехвата.