现在的位置: 首页 > 综合 > 正文

探讨如何在Linux上通过windows的域控制上网( by quqi99 )

2014年02月11日 ⁄ 综合 ⁄ 共 3951字 ⁄ 字号 评论关闭

                                                                                 探讨如何在Linux上通过windows的域控制上网( by quqi99 )

                                                          

作者:张华  发表于:2012-05-08
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

( http://blog.csdn.net/quqi99 )

        用户场景: 公司通过域来控制上网,员工windows机器必须加入域才能上网,现在若安装了Linux双系统该如何上网 ?

        我对linux的网络还算是精通的,但对于windows的那一套域什么的还真是第一次接触。所以令天搜了一些文章看了看,觉得原理应该如下. (因为时间及环境关系我没做试验,可能我所设想的与实际有出入,只是我的一些理论分析,仅供参考)。

        windows的这套东西的相应对等概念:

        1)域服务器 ( Active Directory , 在win2003上用dcpromo命令即可开始安装, 安装完后用 dsa.msc 命令可打开界面),  应该就是一套部门、用户管理的东西。没有这东西之前,公司要控制员工上网的话,可以绑定IP,或才MAC地址什么的,但是这种只要员工将IP或者MAC一改变就绕开控制了。所以又引用了用户的概念通过用户的身份去控制员工上网。IAS Server应该作为一个普通的域成员加入域,员工的机器也应该加入域。现在的问题是,员工若用windows加入域好加,那现在安装的双系统linux该咋使用域去上网

        2)ISA Server, 就是windows用的防火墙, 可想象成ipatables吧。可将它作为内外网的门户。可结合第三方的软件“Bandwidth Splitter for Microsoft ISA Server”软件控制员工上网的带宽大小; 也可结合第三方的海天上网行为管理系统for ISA Server2004/2006查看员工详细的上网记录。员工的也可以选择安装"Micosoft
Firewall Client for ISA Server "

         ISA Server还可以设置http代理,  http代理有两种认证方式: Proxy Basic认证和Proxy NTLM认证 ( 自Windows 2000开始,Microsoft便从NTLM移到了Active Directory及其集成Kerberos身份验证服务。与NTLM相比,Kerberos更安全,而且更适合调整。此外,Kerberos更是Linux和UNIX系统早已采纳的行业标准,从而为这些平台打开了与Windows集成的大门。)

          Proxy Basic认证一般用于 不太重要的场合,因为Basic认证时直接把用户名密码变一下形就从网络上传过去了,随便sniffer一下就能把这个 数据截获从而得到 密码。

          Proxy NTLM认证用于正式场合,它的认证方式与Windows远程登录的认证方式是一样的,需要三次握手传递信息,不在认证的过程中传递密码,而且,每次认证传递的信息都不一样。

          所以在linux上,你需要一个安装一个叫 NTLM authorization Proxy Server 的软件将NTLM代理转换成普通的http代理

           1) 下载地址: http://ntlmaps.sourceforge.net/

           2)下载后解压,修改里面配置文件server.cfg, 修改下载几个参数:

               [GENERAL]
               LISTEN_PORT:5865                   # 本机监听端口
               PARENT_PROXY:192.168.0.2   # ISA服务器
               PARENT_PROXY_PORT:8080  # ISA服务器端口

              [NTLM_AUTH]
              NT_HOSTNAME:192.168.0.2      # 主机名
              NT_DOMAIN:demo-domain        # 域
              USER:test                                      #ISA代理的用户名
              PASSWORD:test                          # ISA代理的密码

           3) 启动代理: python main.py &

           4) 例如,像QQ, firefox想要使用代理时,设置需要连接外网的工具的代理地址为127.0.0.1,端口为5865即可。若要使用apt-get 工具加export http_proxy="http://127.0.0.1:5865"即可。

            上述是linux通过域的代理上网的方法,万一域没有配置代理呢?linux上有没有一种直接访问域的方法,搜了一下:

            1)连接域环境下的无线网,在System Settings -> Network -> Wireless -> Wireless Security:

                    1.选择EPAP的认证.

                    2.EPAP的版本选择自动。

                    3.这个重要,内部认证,选择MSCHAPv2

                    4.写入你的域,然后在后面加你的名字

                    5.写上你的密码 。

           2) 还有一种方法 winbind, windbind是samba的一个组件(samba-common),winbind通过samba接口与windows域获得联系, 同时还提供了 PAM 接口。

             Windows下,在win2000之前域控制器(DC)使NTLM协议(NT LAN Manager)为windows客户端提供身份验证服务,后来移到了Active Directory集成Kerberos身份验证服务。此外,Kerberos更是Linux和UNIX系统早已采纳的行业标准,从而为这些平台打开了与Windows集成的大门。

             Linux下,当初并不是以单一身份验证机制的设计理念进行构建的(单机版通过/etc/passwd中找用户名)。由此产生了很多身份验证机制,以至于无法对其进行管理。后来Sun提出了称为“可插入身份验证模块”(PluggableAuthentication Modules, PAM)的机制。PAM提供了一组所有应用程序开发人员都可以使用的通用身份验证API,以及管理员配置的后端,允许多种“可插入”身份验证方案。通过使用PAM
API 进行身份验证以及使用Name Server Switch (NSS)API来查询用户信息,
Linux应用程序开发人员可以少编写一些代码,并且Linux管理员可从同一个地方配置和管理身份验证过程。大多数Linux发布版本都会随附多个PAM身份验证模块,其中包括支持对LDAP目录进行身份验证和使用Kerberos进行身份验证的模块。用户可以使用这些模块对Active Directory进行身份验证,但这其中存在一些明显的限制。

              下图是使用 Winbind 对 Active Directory 进行身份验证。使用Winbind、 Active Directory进行 Linux身份验证的第三种方法是,将PAM和NSS配置为调用Winbind后台程序。Winbind 将使用LDAP、Kerberos 或RPC(使用其中最合适的一个),将不同的PAM和NSS请求转换为相应的Active Directory调用。

            

          到目前为止,理论算是说清楚了,但具体配置挺麻烦的,见参考资料的相关文章有时间再弄了。

     

参考资料:

1) 企业内部客户端只有经过身份认证的才允许上网!AD、DHCP、ISA、ISA防火墙客户端  http://liweibird.blog.51cto.com/631764/133626

2) 利用VMware Server搭建ISA Server2006代理上網解決方案 http://hongren.blog.51cto.com/103647/43966/

3) Ubuntu如何加入WINDOWS域环境 http://blog.ubuntu.org.cn/~jaguar/content/%E8%BD%ACubuntu%E5%A6%82%E4%BD%95%E5%8A%A0%E5%85%A5windows%E5%9F%9F%E7%8E%AF%E5%A2%83

4) 实验:域的安装及客户机加入域 http://windows.chinaitlab.com/domain/728232_4.html

5) 使用 Winbind 将 Linux 加入 Windows 域环境http://latteye.com/2007/09/add-linux-to-windows-domain-with-winbind.html

6) 运用Active Directory执行Linux客户端身份验证http://www.yqdown.com/caozuoxitong/Linux/11792.htm

抱歉!评论已关闭.