设为首页 收藏本站
查看: 1295|回复: 0

[经验分享] 利用NTLM 验证整合Squid及Samba3实现Win2k3域用户认证

[复制链接]

尚未签到

发表于 2018-12-28 09:08:58 | 显示全部楼层 |阅读模式
  Windows的IIS中有项配置使用集成的Windows验证,在AD的环境中我们可以通过启用集成的Windows验证来使用用户登陆Windows系统的帐号进行认证,在用户访问网页时,IE会将用户的帐号凭据发往服务器自动做认证,不需要用户输入用户名和密码。最好的例子就是用户登陆Outlook Web Access(OWA)。当我们利用Squid做代理服务器需要利用用户身份做认证是,用户每次访问网页,系统会提示用户输入用户名和密码,这样给用户带来很多麻烦,有没有方法集成Windows的帐号做认证呢?通过查找资料,发现实际上在Linux等系统下,利用SQUID集成SAMB同样可以集成windows的认证,用户在通过访问代理服务器时自动利用登陆计算机的帐号做身份验证,对用户完全透明,不需要手动输入用户名及密码。下面是我进行Squid集成Windows帐号认证的总结,希望对有这方面需求的朋友有所帮助,其中有什么不正确及有更好的方法也希望各位给予指点,共同研究进步。
  1.实现环境
  FreeBSD 5.4 + Squid 2.5 + Samba 3.0 + Krb5
  2.软件包安装
  Squid、Samba及Krb5均通过Ports安装最新版本。
  3.Kerberos配置
  Win2003系统默认通过Kerberos做身份验证,Kerberos验证需要安装Krb5软件包。配置文件及测试都很简单。Krb5的配置文件为/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 = TEST.COM (验证域的realm,必须全部大写)
  dns_lookup_realm = false
  dns_lookup_kdb = false
  [realms]
  TEST.COM = {
  kdc = 192.168.0.1:88  (域控制器名,可以是IP地址)
  default_domain = TEST.COM  (缺省域名,同样必须全部大写)
  }
  配置完成后可以通过Kinit工具进行测试方法如下
  root#  kinit administrator@TEST.COM
  Password for administrator@TEST.COM
  正确输入密码后系统返回
  kinit: NOTICE: ticket renewable lifetime is 1 week
  表示正确验证,如果返回有错误,检查krb5.conf文件设置。
  4.Samba配置
  通常samba配置文件在/usr/local/etc/smb.conf,编辑smb.conf文件如下
  注意,安装Samba是选择Winbind组件
  [global]
  log file = /var/log/samba/log.%m
  dns proxy = No
  idmap gid = 10000-20000
  server string = Samba Server
  idmap uid = 10000-20000
  password server = 192.168.0.1
  workgroup = TEST   (域的NetBios名)
  os level = 20
  encrypt passwords = yes
  security = ads  (设置为AD验证)
  realm = TEST.COM (验证域realm,必须大写)
  winbind use default domain = yes

  max log>  这里需要正确配置你的workgroup、Netbios名、realm,password servers(域控制器,可以有多台)。一旦配置正确,你可以使用net ads join将你的Samba主机加入AD中。输入
  root# net ads join –U administrator@TEST.COM
  将主机加入AD。
  重新启动samba
  /usr/local/etc/rc.d/samba.sh restart
  同时winbind也将重新启动。
  5.确认Samba主机帐号在AD中正确注册
  使用wbinfo –t验证Samba主机已成功加入AD
  root# wbinfo –t
  系统返回
  checking the trust secret via RPC calls succeeded
  说明主机信任已成功建立
  使用wbinfo –u 可以列出AD中注册的帐号信息。Wbinfo –g可以返回AD中的组信息。
  6.测试ntlm_auth验证
  root# ntlm_auth –username=administrator
  Password:**************
  NT_STATUS_OK: NT_STATUS_OK (0×0)
  说明域帐号administrator已成功验证
  7.配制NSS
  Nss为Name Service Switch,控制帐号的验证。编辑/etc/nsswitch.conf,如下
  passwd: files winbind
  group: files winbind
  8.配置Squid
  在squid.conf文件中增加
  auth_param ntlm program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp
  auth_param ntlm children 5
  auth_param ntlm max_challenge_reuses 0
  auth_param ntlm max_challenge_lifetime 2 minutes
  auth_param basic program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic
  auth_param basic children 5
  auth_param basic realm Squid proxy-caching web server
  auth_param basic credentialsttl 5 hours
  acl NTLMUsers proxy_auth REQUIRED
  http_access allow all NTLMUsers
  配置Squid使用ntlm_auth验证,并允许验证用户通过代理服务器访问。
  这里要注意一点,用户要通过验证squid必须能访问winbind pipe,否则用户不能通过Squid验证,我刚配置完成时就是因为这里总是不能通过squid身份验证。修改winbind pipe权限
  root# chown -R root:squid /var/db/samba/winbindd_privileged
  root#chmod -R 750 /var/db/samba/winbindd_privileged
  9.重新启动squid服务器,验证使用域用户身份验证。
  如果使用域帐号登陆计算机,那么浏览网页时就不会提示输入用户名及密码认证,非域用户登陆计算机,通过代理访问网站时,IE将弹出用户身份验证窗口要求用户输入用户名及密码验证。
  在squid.conf中同样可以设置允许访问的域用户,及不允许访问的域用户。对于windows域用户来说,说有的验证都是透明的。不需要手动输入用户名及密码,方便用户的使用。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-656695-1-1.html 上篇帖子: squid-3.x 修改源代码隐藏版本号.时间、主机名等信息 下篇帖子: Nginx的proxy_cache缓存功能取代Squid
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表