Исходные данные: установлен Apache Web Server 2.4
Настройка виртуальных хостов:
В Ubuntu виртуальные хосты настроены на работу по умолчанию.
Настройки сайтов хранит /etc/apache2/sites-available/.
Будет загружен любой файл, который вы добавите в /etc/apache2/sites-enabled/, создав символическую ссылку на соответствующий сайт в /etc/apache2/sites-available/.
Включить сайт можно также командой:
a2ensite test.com.conf
service apache2 reload
Выключить, соответственно:
a2dissite test.com.conf
service apache2 reload
Файлы конфигурации виртуального хоста
Копируем настройки по-умолчанию в новый виртуальный хост:
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/myproject.conf
Вносим дополнения и получаем примерно следующее на выходе:
<VirtualHost *:80>
ServerName myproject.com
ServerAlias www.myproject.com
DocumentRoot /www/projects/myproject.com
<Directory /www/projects/myproject.com>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/myproject-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/myproject-access.log combined
</VirtualHost>
ServerName and ServerAlias: домен, соответствующий этому виртуальному хосту и его алиас
DocumentRoot: веб-корень домена
Options -Indexes: останавливает людей от того, чтобы перейти в каталог и посмотреть файлы перечисленные там. Вместо этого они видят ошибку Forbidden. Это может запретить пользователям просматривать все ваши файлы в вашем/images каталоге, например.
AllowOverride: установить в «все», чтобы разрешить .htaccess файлы на вашем виртуальном хосте (и подкаталогах)
ErrorLog, CustomLog: создать файлы журналов специально для домена, они не смешиваются с трафиком/ошибками с других сайтов, работающих на сервере.
Winbind для проверки подлинности использует Kerberos. Для корректной работы Kerberos необходимо синхронизировать часы с доменом. Для это установим NTP. Настроим NTP. Синхронизируем время. Настроим автоматический запуск. И запустим NTP. Время синхронизированно. Установим необходимые пакеты:
yum -y install mod_auth_ntlm_winbind httpd-devel autoconfig krb5-workstation samba samba-common samba-winbind
Следующим шагом необходимо сконфигурировать установленные пакеты и ввести сервер в домен. Для это в консоли пишем:
ADSERVER=FQDN контролера домена (например dc.company.local)
DOMAIN=домен (company.local)
WORKGROUP= company
authconfig --enableshadow --enablemd5 --passalgo=md5 --krb5kdc=$ADSERVER --krb5realm=$DOMAIN --smbservers=$ADSERVER --smbworkgroup=$WORKGROUP --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=$DOMAIN --smbidmapuid="16777216-33554431" --smbidmapgid="16777216-33554431" --winbindseparator="+" --winbindtemplateshell="/bin/false" --enablewinbindusedefaultdomain --disablewinbindoffline --winbindjoin=Administrator --disablewins --disablecache --enablelocauthorize –updateall
После этого мы должны получить сообщение о том, что наш сервер теперь является доменной машиной. Добавим правило для SE Linux:
setsebool -P allow_httpd_mod_auth_ntlm_winbind on
Запусим winbind
service winbind start
Настроим автоматический запуск:
chkconfig winbind on
Проверим правильность работы winbind:
wbinfo –u получим список пользователей
wbinfo –g получим список групп
Проверить правильность работы Kerberos можно получив тикет:
kinit administrator (любое имя доменного пользователя),по запросу вводим пароль.
Полученный тикет можно посмотреть командой:
klist
Для работы mod_auth_ntlm_winbind необходимо в файле /etc/httpd/conf/httpd.conf изменить параметр KeepAlive=off на KeepAlive=on.
В директории /etc/httpd/conf.d создаем файл ntlm_winbind.conf со следующим содержанием:
LoadModule auth_ntlm_winbind_module /usr/lib64/httpd/modules/mod_auth_ntlm_winbind.so
<Location ~ "(otrs/customer.pl)">
AuthName "NTLM Authentication"
AuthType NTLM
Require valid-user
NTLMAuth on
NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
NTLMBasicAuthoritative on
</Location>
Тем самым мы просим передать данные авторизации только при доступе к customer.pl
Последние что нужно сделать, это изменить Config.pm закоментировать часть отвечающую за авторизацию LDAP и добавить NTLM авторизацию.
# Авторизация LDAP
#$Self->{'Customer::AuthModule'} = 'Kernel::System::Auth::LDAP';
#$Self->{'Customer::AuthModule::LDAP::Host'} = 'dc.company.local';
#$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=COMPANY, dc=local';
#$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
#$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'read_ad_user';
#$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'pass_for_read_ad_user';
#Авторизация NTLM
$Self->{'Customer::AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
Проверим коректно ли зарегистрировался сервер OTRS на DNS сервере выполнив команду nslookup otrs-server
Настройка завершена!
Открывать в браузере otrs-server-name/otrs/customer.pl и видим результат.
Если же не видим результат, значит при настройке была допущена ошибка, внимательно смотрим настройки в файлах /etc/krb5.conf /etc/samba/smb.conf
NTLM устарело (модуль для апача, на сколько я знаю, больше не поддерживается и не разрабатывается). Используйте для прозрачной аутентификации Kerberos (поддерживается всеми браузерами).
Конфигурация Apache выглядит ничем не сложнее:
LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so
AllowOverride None
Options +ExecCGI -Includes
DirectoryIndex customer.pl
AuthName «OTRS Kerberos Authentication»
AuthType Kerberos
Krb5Keytab /etc/apache2/otrs-server.keytab
KrbAuthRealms DOMAIN1.COM DOMAIN2.COM
KrbMethodNegotiate On
KrbSaveCredentials Off
KrbMethodK5Passwd On
KrbVerifyKdc OFF
Require valid-user
KrbServiceName Any
Order allow,deny
Allow from all
https://www.linux.org.ru/forum/admin/13556405
Настройка виртуальных хостов:
В Ubuntu виртуальные хосты настроены на работу по умолчанию.
Настройки сайтов хранит /etc/apache2/sites-available/.
Будет загружен любой файл, который вы добавите в /etc/apache2/sites-enabled/, создав символическую ссылку на соответствующий сайт в /etc/apache2/sites-available/.
Включить сайт можно также командой:
a2ensite test.com.conf
service apache2 reload
Выключить, соответственно:
a2dissite test.com.conf
service apache2 reload
Файлы конфигурации виртуального хоста
Копируем настройки по-умолчанию в новый виртуальный хост:
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/myproject.conf
Вносим дополнения и получаем примерно следующее на выходе:
<VirtualHost *:80>
ServerName myproject.com
ServerAlias www.myproject.com
DocumentRoot /www/projects/myproject.com
<Directory /www/projects/myproject.com>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/myproject-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/myproject-access.log combined
</VirtualHost>
ServerName and ServerAlias: домен, соответствующий этому виртуальному хосту и его алиас
DocumentRoot: веб-корень домена
Options -Indexes: останавливает людей от того, чтобы перейти в каталог и посмотреть файлы перечисленные там. Вместо этого они видят ошибку Forbidden. Это может запретить пользователям просматривать все ваши файлы в вашем/images каталоге, например.
AllowOverride: установить в «все», чтобы разрешить .htaccess файлы на вашем виртуальном хосте (и подкаталогах)
ErrorLog, CustomLog: создать файлы журналов специально для домена, они не смешиваются с трафиком/ошибками с других сайтов, работающих на сервере.
Winbind для проверки подлинности использует Kerberos. Для корректной работы Kerberos необходимо синхронизировать часы с доменом. Для это установим NTP. Настроим NTP. Синхронизируем время. Настроим автоматический запуск. И запустим NTP. Время синхронизированно. Установим необходимые пакеты:
yum -y install mod_auth_ntlm_winbind httpd-devel autoconfig krb5-workstation samba samba-common samba-winbind
Следующим шагом необходимо сконфигурировать установленные пакеты и ввести сервер в домен. Для это в консоли пишем:
ADSERVER=FQDN контролера домена (например dc.company.local)
DOMAIN=домен (company.local)
WORKGROUP= company
authconfig --enableshadow --enablemd5 --passalgo=md5 --krb5kdc=$ADSERVER --krb5realm=$DOMAIN --smbservers=$ADSERVER --smbworkgroup=$WORKGROUP --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=$DOMAIN --smbidmapuid="16777216-33554431" --smbidmapgid="16777216-33554431" --winbindseparator="+" --winbindtemplateshell="/bin/false" --enablewinbindusedefaultdomain --disablewinbindoffline --winbindjoin=Administrator --disablewins --disablecache --enablelocauthorize –updateall
После этого мы должны получить сообщение о том, что наш сервер теперь является доменной машиной. Добавим правило для SE Linux:
setsebool -P allow_httpd_mod_auth_ntlm_winbind on
Запусим winbind
service winbind start
Настроим автоматический запуск:
chkconfig winbind on
Проверим правильность работы winbind:
wbinfo –u получим список пользователей
wbinfo –g получим список групп
Проверить правильность работы Kerberos можно получив тикет:
kinit administrator (любое имя доменного пользователя),по запросу вводим пароль.
Полученный тикет можно посмотреть командой:
klist
Для работы mod_auth_ntlm_winbind необходимо в файле /etc/httpd/conf/httpd.conf изменить параметр KeepAlive=off на KeepAlive=on.
В директории /etc/httpd/conf.d создаем файл ntlm_winbind.conf со следующим содержанием:
LoadModule auth_ntlm_winbind_module /usr/lib64/httpd/modules/mod_auth_ntlm_winbind.so
<Location ~ "(otrs/customer.pl)">
AuthName "NTLM Authentication"
AuthType NTLM
Require valid-user
NTLMAuth on
NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
NTLMBasicAuthoritative on
</Location>
Тем самым мы просим передать данные авторизации только при доступе к customer.pl
Последние что нужно сделать, это изменить Config.pm закоментировать часть отвечающую за авторизацию LDAP и добавить NTLM авторизацию.
# Авторизация LDAP
#$Self->{'Customer::AuthModule'} = 'Kernel::System::Auth::LDAP';
#$Self->{'Customer::AuthModule::LDAP::Host'} = 'dc.company.local';
#$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=COMPANY, dc=local';
#$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
#$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'read_ad_user';
#$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'pass_for_read_ad_user';
#Авторизация NTLM
$Self->{'Customer::AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth';
Проверим коректно ли зарегистрировался сервер OTRS на DNS сервере выполнив команду nslookup otrs-server
Настройка завершена!
Открывать в браузере otrs-server-name/otrs/customer.pl и видим результат.
Если же не видим результат, значит при настройке была допущена ошибка, внимательно смотрим настройки в файлах /etc/krb5.conf /etc/samba/smb.conf
NTLM устарело (модуль для апача, на сколько я знаю, больше не поддерживается и не разрабатывается). Используйте для прозрачной аутентификации Kerberos (поддерживается всеми браузерами).
Конфигурация Apache выглядит ничем не сложнее:
LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so
AllowOverride None
Options +ExecCGI -Includes
DirectoryIndex customer.pl
AuthName «OTRS Kerberos Authentication»
AuthType Kerberos
Krb5Keytab /etc/apache2/otrs-server.keytab
KrbAuthRealms DOMAIN1.COM DOMAIN2.COM
KrbMethodNegotiate On
KrbSaveCredentials Off
KrbMethodK5Passwd On
KrbVerifyKdc OFF
Require valid-user
KrbServiceName Any
Order allow,deny
Allow from all
https://www.linux.org.ru/forum/admin/13556405
Комментариев нет:
Отправить комментарий