Squid — различия между версиями
(Новая страница: «1. Проверка статьи. :)») |
Suser (обсуждение | вклад) |
||
| (не показано 18 промежуточных версий 3 участников) | |||
| Строка 1: | Строка 1: | ||
| − | 1. | + | === Squid и авторизация в домене Windows 2008R2 === |
| + | Для успешной авторизации в домене машины со Squid'ом, | ||
| + | необходимы следующие условия: | ||
| + | * Наличие внутреннего DNS | ||
| + | * Наличие приямой и обратной записи для контроллера домена | ||
| + | * Наличие прямой и обратной записи для машины со Squid'ом | ||
| + | * Наличие прямой и обратной записи для пользовательских компьютеров | ||
| + | * Синхронизация часов контроллера домена, машины со squid'ом и пользовательских компьютеров с точным временем в интернете, либо локальным NTP сервером | ||
| + | |||
| + | ==== Исходные условия: ==== | ||
| + | # CentOS x64 6.2 с установленным OpenVZ и дополнительным репозиторием [http://fedora-mirror01.rbc.ru/pub/epel/6/i386/epel-release-6-6.noarch.rpm EPEL] | ||
| + | # Установленный squid из репозитория | ||
| + | # Установленные пакеты: | ||
| + | |||
| + | krb5-libs-1.9-22.el6_2.1.x86_64 | ||
| + | squid-3.1.10-1.el6_2.4.x86_64 | ||
| + | msktutil-0.4.1-1.el6.x86_64 | ||
| + | krb5-workstation-1.9-22.el6_2.1.x86_64 | ||
| + | |||
| + | Приводим файл /etc/krb5.conf к такому виду: | ||
| + | [logging] | ||
| + | default = FILE:/var/log/krb5libs.log | ||
| + | kdc = FILE:/var/log/krb5kdc.log | ||
| + | admin_server = FILE:/var/log/kadmind.log | ||
| + | |||
| + | [libdefaults] | ||
| + | default_realm = EXAMPLE.LOCAL | ||
| + | dns_lookup_realm = yes | ||
| + | dns_lookup_kdc = yes | ||
| + | ticket_lifetime = 24h | ||
| + | renew_lifetime = 7d | ||
| + | forwardable = true | ||
| + | kdc_timesync = yes | ||
| + | |||
| + | default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 | ||
| + | default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 | ||
| + | permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 | ||
| + | |||
| + | [realms] | ||
| + | EXAMPLE.LOCAL = { | ||
| + | kdc = example.local | ||
| + | admin_server = example.local | ||
| + | kpasswd_server = example.local | ||
| + | default_domain = example.local | ||
| + | } | ||
| + | |||
| + | При наличии администраторской учетной записи в домене, можно получить билет Кербероса: | ||
| + | kinit andy | ||
| + | Password for andy@EXAMPLE.LOCAL: | ||
| + | Полученный билет можно поглядеть командной | ||
| + | klist | ||
| + | Для ввода компьютера в домен и получения keytab файла, небходимо воспользоваться утилитой msktutil. Она | ||
| + | находится в EPEL репозитории. У меня эта последовательность команд записана в скрипт: | ||
| + | #!/bin/sh | ||
| + | /usr/sbin/msktutil --create --base "CN=COMPUTERS" --service HTTP/alo-gateway1.example.local --hostname alo-gateway1.example.local \ | ||
| + | --keytab /etc/squid/squid.HTTP.keytab --computer-name ALO-GATEWAY1 --upn HTTP/alo-gateway1.example.local --server alo-dc1.example.local \ | ||
| + | --verbose --enctypes 28 | ||
| + | |||
| + | Если утилита отработала правильно, то мы должны получить файл /etc/squid/squid.HTTP.keytab. После этого, необходимо предоставить права | ||
| + | на чтение этого файла squid'ом, а так же, сделать его владельцем данного файла: | ||
| + | chown squid:squid /etc/squid/squid.HTTP.keytab | ||
| + | chmod 640 /etc/squid/squid.HTTP.keytab | ||
| + | Теперь уничтожаем билет кербероса | ||
| + | kdestroy | ||
| + | А на контроллере домена, в разделе Active Directory Users and Computers -> Computers, выбираем наш сервер со squid'ом | ||
| + | и, щелкнув на нем правой кнопкой мыши, выбираем "Переустановить учтеную запись". Теперь, попробуем обновить keytab файл: | ||
| + | #!/bin/sh | ||
| + | /usr/sbin/msktutil --auto-update --verbose --computer-name alo-gateway1 -k /etc/squid/squid.HTTP.keytab | ||
| + | Что бы Squid мог использовать keytab файл, надо изменить стартовый скрипт squid'а, добавив в него следующие | ||
| + | строки: | ||
| + | KRB5_KTNAME=/etc/squid/squid.HTTP.keytab | ||
| + | export KRB5_KTNAME | ||
| + | |||
| + | ==== Ссылки ==== | ||
| + | *[http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos Squid and Kerberos] | ||
| + | *[http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory Squid and Active Directory] | ||
| + | *[http://www.theadmin.ru/linux/squid/proksi-server-squid-v-active-directory-s-kerberos-autentifikaciej/ Squid and AD] | ||
| + | |||
| + | [[Категория:Cеверное ПО]] | ||
Текущая версия на 20:44, 24 мая 2012
Squid и авторизация в домене Windows 2008R2
Для успешной авторизации в домене машины со Squid'ом, необходимы следующие условия:
- Наличие внутреннего DNS
- Наличие приямой и обратной записи для контроллера домена
- Наличие прямой и обратной записи для машины со Squid'ом
- Наличие прямой и обратной записи для пользовательских компьютеров
- Синхронизация часов контроллера домена, машины со squid'ом и пользовательских компьютеров с точным временем в интернете, либо локальным NTP сервером
Исходные условия:
- CentOS x64 6.2 с установленным OpenVZ и дополнительным репозиторием EPEL
- Установленный squid из репозитория
- Установленные пакеты:
krb5-libs-1.9-22.el6_2.1.x86_64 squid-3.1.10-1.el6_2.4.x86_64 msktutil-0.4.1-1.el6.x86_64 krb5-workstation-1.9-22.el6_2.1.x86_64
Приводим файл /etc/krb5.conf к такому виду:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_realm = yes
dns_lookup_kdc = yes
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
kdc_timesync = yes
default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
[realms]
EXAMPLE.LOCAL = {
kdc = example.local
admin_server = example.local
kpasswd_server = example.local
default_domain = example.local
}
При наличии администраторской учетной записи в домене, можно получить билет Кербероса:
kinit andy Password for andy@EXAMPLE.LOCAL:
Полученный билет можно поглядеть командной
klist
Для ввода компьютера в домен и получения keytab файла, небходимо воспользоваться утилитой msktutil. Она находится в EPEL репозитории. У меня эта последовательность команд записана в скрипт:
#!/bin/sh /usr/sbin/msktutil --create --base "CN=COMPUTERS" --service HTTP/alo-gateway1.example.local --hostname alo-gateway1.example.local \ --keytab /etc/squid/squid.HTTP.keytab --computer-name ALO-GATEWAY1 --upn HTTP/alo-gateway1.example.local --server alo-dc1.example.local \ --verbose --enctypes 28
Если утилита отработала правильно, то мы должны получить файл /etc/squid/squid.HTTP.keytab. После этого, необходимо предоставить права на чтение этого файла squid'ом, а так же, сделать его владельцем данного файла:
chown squid:squid /etc/squid/squid.HTTP.keytab chmod 640 /etc/squid/squid.HTTP.keytab
Теперь уничтожаем билет кербероса
kdestroy
А на контроллере домена, в разделе Active Directory Users and Computers -> Computers, выбираем наш сервер со squid'ом и, щелкнув на нем правой кнопкой мыши, выбираем "Переустановить учтеную запись". Теперь, попробуем обновить keytab файл:
#!/bin/sh /usr/sbin/msktutil --auto-update --verbose --computer-name alo-gateway1 -k /etc/squid/squid.HTTP.keytab
Что бы Squid мог использовать keytab файл, надо изменить стартовый скрипт squid'а, добавив в него следующие строки:
KRB5_KTNAME=/etc/squid/squid.HTTP.keytab export KRB5_KTNAME