Squid — различия между версиями

Материал из pNp Wiki
Перейти к: навигация, поиск
(Работает)
 
(не показано 17 промежуточных версий 2 участников)
Строка 1: Строка 1:
1. Проверка статьи. :)
+
=== Squid и авторизация в домене Windows 2008R2 ===
2. Работает
+
Для успешной авторизации в домене машины со 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 сервером

Исходные условия:

  1. CentOS x64 6.2 с установленным OpenVZ и дополнительным репозиторием EPEL
  2. Установленный squid из репозитория
  3. Установленные пакеты:
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

Ссылки