首页 价格 教程中心 图形识别new

免费送1G流量

CN
linux下实现针对windows域身份认证的代理服务器。

公司使用的代理服务器是基于Linux系统的,经常会出现一些或多或少的问题。直接影响到用户正常的Internet访问。因为是以前的同事做的,再加上,本人一直忙于其它的项目,没时间去调整,优化。前不久,Linux系统突然无法进入GNU/GNOME桌面环境,促使我下定决心重新规划并部署一台符合当前应用环境需要的代理服务器系统来。

  一、在部署之前,我们先来看看现有的代理服务器的系统环境:该代理服务器采用的是基于Redhat Linux 8.x操作系统的以NCSAR为认证模式的Squid 2.3 代理服务器。因系统比较陈旧,稳定性有所欠缺,同时还存在以下不足之处:

  1. 因Squid配置的问题,系统无法自动释放Squid的Cache及日志所占用磁盘空间,经常会因为磁盘空间不足而导致Squid停止服务,需要人为的去删除cache及日志以释放磁盘空间。

  2. 需要在代理服务器上,为不同的用户设置不同的密码,以前公司职员并不多,倒不是很麻烦,但,随着公司的发展,职员的数量大幅增加,加重了IT管理人员的工作负担,同时,也非常难以保证与Windows域账户的一致知性;

  3. 客户端不能使用AD集成的账户认证模式,用户每次访问Internet都需要重复的输入用户名及密码,大大降低了用户使用感受。

  4. 没有实现针对不同Internet访问群体,设置不同的用户权限;

  5. 无法监督用户访问Internet的行为,直接影响到公司网络的正常商业行为。

  二、据此,我们不难发现,此代理服务器需要经常对其进行维护,非常影响IT工作人员的工作效率。从公司现阶段的实际情况出发,对代理服务器的功能重新规划如下:

  1. 能够在一点条件下,自动回收被Squid占用的磁盘空间;

  2. 利用AD服务器上的用户账号信息对用户的身份进行验证,避免重复的设置用户信息;

  3. 提供三种用户权限:

  4. 拒绝所有权限;

  5. 允许访问Internet,但不允许下载视频、音频、可执行文件等;

  6. 不受限,可访问任意Internet资源;

  7. IT管理人员可以查看用户访问Internet的日志,监督用户访问Internet的行为;

  三、既然我们的目标已经非常明确了,我们就不再废话,开始主题吧!

  系统环境:

  1. CentOS 5.0 Linux

  2. squid-2.6.STABLE6-4.el5

  3. samba-3.0.23c-2.el5.2.0.2

  4. sarg-2.2.1-1.el5.rf

  5. winbind

  6. krb5

  II. 修改kerberos 5身份验证服务的配置文件(非特殊说明,均工作在root用户模式下):

  执行下列命令:

  [root@proxy ~]# vim /etc/krb5.conf

  修改后的krb5.conf为:

  1[logging]

  2 default = FILE:/var/log/krb5libs.log

  3 kdc = FILE:/var/log/krb5kdc.log

  4 admin_server = FILE:/var/log/kadmind.log

  5

  6[libdefaults]

  7 default_realm = COMPANY.COM #默认的域名(Realm)

  8 dns_lookup_realm = false

  9 dns_lookup_kdc = false

  10 ticket_lifetime = 24h

  11 forwardable = yes

  12

  13[realms]

  14 COMPANY.COM = {

  15 kdc = adsrv.company.com:88 #此处指定KDC服务器的名称或IP地址

  16 admin_server = adsrv.company.com:749 #此处指定管理服务器的名称或IP地址

  17 default_domain = company.com #默认的域名(domain)

  18 }

  19

  20[domain_realm] #domain与realm的对应关系

  21 .company.com = COMPANY.COM

  22 company.com = COMPANY.COM

  23

  24[kdc]

  25profile = /var/kerberos/krb5kdc/kdc.conf

  26

  27[appdefaults]

  28 pam = {

  29 debug = false