Debian Squeeze,Squid,Kerberos / LDAP身份验证,Active Directory集成和Cyfin Reporter

Debian Squeeze,Squid,Kerberos / LDAP认证,Active Directory集成和Cyfin报告器

介绍

本文档介绍了Squid代理的设置,该代理将与Active Directory无缝集成,以便使用Kerberos进行身份验证,并将LDAP作为未通过Kerberos进行身份验证的用户的备份。 授权由Active Directory中的组管理。 这对于不再支持NTLMv2而不更改本地计算机策略的Windows 7客户端特别有用。 它能够使用白名单和黑名单进行站点访问和限制。

对于本指南,使用以下示例 - 您应该在必要时更新具有客户端域,主机名和IP的任何部分。

  • Domain = example.local
  • 子网= 192.168.0.0/24
  • 代理服务器:IP = 192.168.0.26 ,HOSTNAME = squidproxy.example.local
  • Windows Server 1:IP = 192.168.0.1 ,HOSTNAME = domaincontroller1.example.local
  • Windows Server 2:IP = 192.168.0.10 ,HOSTNAME = server2.example.local

Debian Squeeze的基础安装是基本的Debian管理技能。 vi被假定为文本编辑器。

先决条件

客户端Internet Explorer浏览器需要在Internet选项::高级设置中启用“启用集成Windows身份验证”,以及启用代理自动检测功能 - Google这些不确定。 所有现代网络浏览器都将支持代理自动检测。 Firefox和Chrome还支持Windows身份验证。

DNS配置

安装dnsutils:

apt-get install dnsutils

在Windows DNS服务器上为代理服务器的主机名添加一个新的A记录条目,并确保相应的PTR(反向DNS)条目也被创建并且有效。 检查代理是否正在使用Windows DNS服务器进行名称解析和更新/etc/resolv.conf。

vi /etc/resolv.conf
search example.local
nameserver 192.168.0.1
nameserver 192.168.0.10

Ping内部和外部主机名以确保DNS正在运行。

ping domaincontroller1.example.local -c 4 && ping google.com -c 4

检查您是否可以从Windows DNS反向查找Windows Server和本地代理ip。

dig -x 192.168.0.1
dig -x 192.168.0.26

警告:如果任何DNS查找失败,直到固定或代理身份验证失败才会继续。

NTP配置

安装ntp包:

apt-get install ntp

由于Kerberos需要与Windows域控制器同步进行身份验证,因此我们配置代理以从中获取时间。

vi /etc/ntp.conf

找到以下部分,并根据需要更新ntp服务器。 如果您有多个域控制器或NTP服务器,您可以添加多行。

# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
server domaincontroller1.example.local
server server2.example.local

然后重新启动并测试NTP。

invoke-rc.d ntp restart
ntpq -p

您应该看到输出是指按照它们出现在conf文件中的顺序处理的域控制器和其他NTP服务器。

配置Kerberos

安装Kerberos软件包:

apt-get install krb5-user libkrb53

只要接受在我们覆盖它们时提供给任何debconf对话框的默认值。

设置Kerberos。

cp /etc/krb5.conf /etc/krb5.conf.default
cat /dev/null > /etc/krb5.conf
vi /etc/krb5.conf

编辑用客户端的域和服务器替换变量(突出显示)的文件。

警告:根据您的Windows域控制器操作系统版本取消注释相关的Windows 200X部分并注释掉相反的部分。

如果您只有1个域控制器从“[域]”部分删除附加的“kdc”条目。

[libdefaults]
        default_realm = EXAMPLE.LOCAL
        dns_lookup_kdc = no
        dns_lookup_realm = no
        ticket_lifetime = 24h
        default_keytab_name = /etc/squid3/PROXY.keytab
; for Windows 2003
        default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
        default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
        permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; for Windows 2008 with AES
;        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 = domaincontroller1.example.local
                kdc = server2.example.local
                admin_server = domaincontroller1.example.local
                default_domain = example.local
        }
[domain_realm]
        .example.local = EXAMPLE.LOCAL
        example.local = EXAMPLE.LOCAL

安装Squid 3

apt-get install squid3 ldap-utils

注意:配置msktutil后,squid配置会发生。

安装并运行msktutil

获取msktutil包并安装它。

cd /var/cache/apt/archives/ wget http://fuhm.net/software/msktutil/releases/msktutil_0.4-2_i386.deb
apt-get install libsasl2-modules-gssapi-mit libsasl2-modules
dpkg -i msktutil_0.4-2_i386.deb
cd

启动Kerberos会话到服务器,所以msktutil可以使用它来创建我们的代理对象在Active目录,将被用于访问。

kinit administrator

输入域名管理员密码

它应该返回没有错误。 你可以看到你是否成功获得了一张票:

klist

现在,我们通过运行msktutil(更新您的网络突出显示的值)在AD中配置代理服务原则。

警告:您不应该从OU使用msktutil来创建对象。

msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verbose

如果您使用的是Server 2008域,则在命令的末尾添加“--enctypes 28”。

msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verbose --enctypes 28

设置keytab的权限,以便squid可以读取它。

chgrp proxy /etc/squid3/PROXY.keytab
chmod g+r /etc/squid3/PROXY.keytab

在Windows Server上,通过右键单击SQUIDPROXY计算机并重新选择“重置帐户”,重新启动AD中的计算机帐户,然后按照以下步骤运行msktutil,以确保keytab按预期更新,并将密钥表由msktutil从/ etc / krb5.conf正确

重新启动代理首先清除由kinit命令生成的kerberos故障单,然后运行以下命令:

msktutil --auto-update --verbose

如果没有找到keytab,请尝试在命令中添加“-k /etc/squid3/PROXY.keytab”,以查看它是否工作,然后排除故障,直到解决或用户无法使用Squid进行身份验证。

将以下内容添加到cron中,以便它可以在活动目录中自动更新计算机帐户(通常约30天)。 我通过记录器管道,所以如果需要,我可以看到syslog中的任何错误。 如所述,msktutil为其参数使用默认的/etc/krb5.conf文件,因此如果您决定对其进行任何更改,请注意。

SHELL和PATH变量在那里确保cron运行正确地更改这个,如果你知道你在做什么。

crontab -e
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# m h  dom mon dow   command
00 4  *   *   *     msktutil --auto-update --verbose | logger -t msktutil
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏