使用QuintoLabs内容安全1.4和Windows Active Directory集成在Squid 3上进行Web过滤
本HOWTO将向您展示如何在CentOS或RedHat 6 Linux上部署一个Squid代理服务器,通过QuintoLabs Content Security完成的Web和内容过滤功能,以及基于Windows 2008 R2的Active Directory透明地验证的代理用户。 这是正在进行的工作,欢迎所有的意见。 HOWTO针对新手用户,有时候对于更高级的大师来说,可能会看起来太彻底。 没有编译魔法将涉及到我们的设置,所以任何系统管理员习惯于Windows将能够轻松地按照说明。 :)
我们将使用VMWare的Workstation 8设置登台测试实验室,以确保在将部署到生产服务器和实际硬件之前都可以正常工作。 所选择的虚拟化平台并不重要,任何其他虚拟化解决方案也可以成功使用。
先决条件
测试实验室将包含三台机器 - 运行Microsoft Windows 2008 R2服务器的域控制器,运行Windows 7的用户机器和运行CentOS 6的代理机,Squid Proxy 3来自标准存储库。 我认为您已经拥有Windows Server R2,Windows 7和RedHat(CentOS)6 Linux的ISO。 我也假定安装Microsoft Windows和Active Directory不是一个问题。
我们创建的域称为example.lan 。 正在使用的IP地址来自VMWare Workstation - 192.168.28.0中NAT网络中使用的标准网络。 域控制器的名称将为dc.example.lan ,代理将被称为proxy.example.lan和客户端工作站client.example.lan 。
第1步.安装域控制器
首先,执行Microsoft Windows的基本安装,并进行初始安装后配置。
为域控制器创建一个新的虚拟机。 将Windows Server ISO放入虚拟CD驱动器并进行安装。 将管理员密码设置为“ P @ ssw0rd ”(不带引号)。
安装完成后,将服务器的静态IP地址设置为192.168.28.20 ,子网掩码255.255.255.0 ,默认网关192.168.28.2 。 将首选DNS服务器设置为192.168.28.2 。 启动Web浏览器并导航到您喜爱的网站,以测试Internet连接是否正常工作。
将dc.example.lan上的时区设置为您居住的时区。
将计算机的名称更改为“ dc ”(不带引号),以便稍后安装Active Directory和DNS服务器后,我们的域控制器的FQDN地址为dc.example.lan 。
现在安装Active Directory。
单击开始 - 管理工具 - 服务器管理器 ,并运行角色向导以添加“Active Directory域服务”角色。
当角色向导完成后,打开命令提示符并运行“dcpromo.exe”在新林中设置新域。 将example.lan指定为林根域的FQDN名称。 在“Windows Server 2003”上保留森林和域功能级别,将DNS服务器标记为此域控制器的附加选项。 安装向导抱怨“无法创建此DNS服务器的委派,因为无法找到权威父区域或不运行Windows DNS服务器”,只需说出是继续安装并在此域上安装DNS服务器的新实例控制器。 等一下,直到安装完成。 然后重启VM。
现在为dc.example.lan和proxy.example.lan主机设置静态IP地址信息。
在dc.example.lan中使用DNS管理管理单元为网络ID 192.168.28创建主IPv4反向DNS查找区域,将复制范围“设置为在此域中的域控制器上运行的所有DNS服务器:example.lan”,并允许非安全和安全的动态更新。
为dc.example.lan添加新的指针(PTR)记录,并使用nslookup检查dc.example.lan可以成功解析为其IP地址(192.168.28.20),反之亦然。
为proxy.example.lan添加主机(A)和指针(PTR)记录,并使用nslookup检查proxy.example.lan可以成功解析为其IP地址(192.168.28.21),反之亦然。
第2步.安装Windows 7客户机
现在创建一个VM,作为代理用户的机器。 给VM一个名称 - client.example.lan ,按照通常的方式设置Windows 7,将机器加入到在第1步中创建的example.lan域,并创建一堆将用作代理客户端的域用户。
第3步.安装CentOS代理机
创建一个名为proxy.example.lan的新虚拟机。 确保网络适配器设置为“NAT”模式。 启动虚拟机,并按照主要接受默认值的CentOS安装向导的步骤。 将机器主机名配置为“proxy.example.lan”,将root密码配置为“P @ ssw0rd”(不带引号)。 等一下,直到安装完成,然后重新启动系统。
注1:为了这个目的,我已经在/ etc / selinux / config中显式禁用了SELinux。
注意2:为了这个目的,通过在根终端中键入#chkconfig iptables off和#chkconfig ip6tables关闭并重新启动proxy.example.lan VM,我有防火墙显式禁用。
第3步.1 - 配置网络
部署为VM的CentOS 6默认情况下不启用网络子系统。 为了实现网络,我们需要执行以下操作:
在
/ etc / sysconfig / network-scripts / ifcfg-eth0中
设置静态IP地址BOOTPROTO=static NETMASK=255.255.255.0 IPADDR=192.168.28.21 ONBOOT=yes
在
/ etc / sysconfig / network
中设置默认网关GATEWAY=192.168.28.2
通过编辑
/etc/resolv.conf指向dc.example.lan
的DNS服务器nameserver 192.168.28.20
重新启动您的网络子系统
# /etc/init.d/network restart
或者只是重新启动虚拟机。 重新启动后,通过在终端中键入以下命令并观察任何错误输出,确认网络正常工作
$ping -c 3 192.168.28.2
最后更新VM
# yum update
并为后续步骤安装必要的先决条件:
# yum install bind-utils
第3步.2 - 配置网络时间同步
要在proxy.domain.lan上执行成功的Kerberos身份验证系统时间,必须与dc.example.lan上的系统时间同步 。 最简单的方法是安装网络同步服务器并将其指向域控制器。
安装NTP服务器:
# yum install ntp
使其在系统引导时自动启动
#chkconfig ntpd on
打开
/etc/ntp.conf
并添加域控制器的名称:要执行初始时间同步停止服务
#service ntpd stop
并运行手动sync命令#ntpdate -b dc.example.lan
然后再次启动NTP服务#service ntpd start
注意:运行kinit实用程序后,如果您获得“时钟偏移太大,而获取初始凭据”,则同步可能不成功,建议您检查/etc/ntp.conf中的服务器名称是否正确,并重新启动ntpd服务。 / var / log / messages上的日志文件可能包含有关不成功同步原因的更多信息。
第3步.3 - 安装Kerberos
所有需要的Kerberos软件包默认安装在CentOS中。 但是要确保您在proxy.example.lan类型上真正拥有所需的所有Kerberos软件包
# yum install krb5-workstation krb5-libs
Kerberos配置存储在/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.LAN dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true default_tgs_enctypes = rc4-hmac default_tkt_enctypes = rc4-hmac permitted_enctypes = rc4-hmac [realms] EXAMPLE.LAN = { kdc = dc.example.lan admin_server = dc.example.lan default_domain = example.lan } [domain_realm] .example.lan = EXAMPLE.LAN example.lan = EXAMPLE.LAN
要测试Kerberos身份验证是否正确设置,请在根终端中输入
# kinit Administrator@EXAMPLE.LAN
该命令应该完成没有错误。 命令
# klist
应打印有关获得的Kerberos票的信息。
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@EXAMPLE.LAN
Valid starting Expires Service principal
12/07/11 11:07:58 12/07/11 21:08:00 krbtgt/EXAMPLE.LAN@EXAMPLE.LAN
renew until 12/14/11 11:07:58
现在重启VM。
第3步.4 - 安装Samba并将proxy.example.lan加入Active Directory
注意:这一步很大程度上依赖于RedHat 6文档方面http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/index.html ,特别是书籍“部署指南”和“企业身份管理指南”。
为了能够使用其Active Directory的凭据透明地验证Squid代理的客户端,必须将具有Squid的服务器加入Active Directory域(即example.lan)。 最简单的方法是在代理计算机上运行Samba。
通过键入安装Samba
# yum install samba
使其始终在启动时启动
# chkconfig smb on
和# chkconfig nmb on
打开
/etc/samba/smb.conf
并确保其内容看起来像这样( 这是在proxy.example.lan上运行testparm -s的结果 ):[global] workgroup = EXAMPLE realm = EXAMPLE.LAN server string = Samba Server Version %v security = ADS log file = /var/log/samba/log.%m max log size = 50 cups options = raw [homes] comment = Home Directories read only = No browseable = No [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = No
请注意,我们将工作组设置为EXAMPLE , 范例到EXAMPLE.LAN (大写字母)和广告的 安全性 。
重新启动Samba服务
#service smb restart
和#service nmb restart
如果现在从client.example.lan浏览网络,您应该在EXAMPLE工作组中看到代理机器。
现在将机器proxy.example.lan加入到Active Directory中:
通过键入来停止Samba服务
# service smb stop
和#service nmb stop
通过键入在proxy.example.lan上初始化Kerberos子系统
# kinit Administrator@EXAMPLE.LAN
应该要求密码,并且没有错误地完成。确保您输入正确的Kerberos票证
# klist
通过键入来加入Active Directory
# net ads join -S dc.example.lan -U Administrator%P@ssw0rd
。 你应该得到这样的输出:打开“用户和计算机”, 单击dc.example.lan并确保代理计算机帐户现在出现在“计算机”树节点
重新启动proxy.example.lan VM。