一、服务器要求

Radius服务器:centos6.6、hostname、selinux  disabled、stop iptables

AD域服务器:Windows Server 2008 R2 Enterprise、AD-host.example.com(提前搭建好的AD域)

目的:只做用户名密码的认证

域名先解析:#vim /etc/hosts

        IP  AD-host.example.com

        IP  hostname

二、RADIUS的工作过程

1. 用户输入用户名密码等信息到客户端

2. 客户端产生一个接入请求报文到RADIUS服务器,其中包含了用户名,密码,客户端ID和用户访问端口的ID,密码都是经过MD5加密的。

3.
RADIUS服务器对用户进行认证

4. 如果认证成功,RADIUS服务器想客户端发送允许接入包,否则就发送拒绝接入包。

5. 若客户端接受到允许接入包,则为用户建立连接,对用户进行授权和提供服务;若接受到拒绝接入包,则拒绝用户接入请求。

6. 客户端发送计费请求给RADIUS服务器

7.
RADIUS服务器接受到计费请求包后开始计费,并向客户端回送开始计费的响应包。

8. 用户断开连接,客户端发送停止计费包给RADIUS服务器

9.
RADIUS服务器接收到停止计费包后停止计费,并向客户端发送停止计费响应包,完成该用户的一次计费,记录计费信息。

三、安装freeradiusAD结合需要用的组件

#yum  install 
samba  krb5-server  freeradius 
freeradius-utils  freeradius-mysql

四、配置samba

samba作为freeradius和AD域沟通的桥梁装在freeradius服务器上

#vim  /etc/samba/smb.conf

[global]

workgroup
= example

#
----------------------- Domain Members Options ------------------------

security
= ads  #ads设置必须在这项里面

realm = example.com

password
server = (AD-IP)

samba的ads模式(活动目录模式):

  这是linux系统samba服务器的一种新型工作模式,用于把samba服务器加入到windows服务器活动目录域中,并具备活动目录域控制器的功能。这时samba服务器就相当于一台域控制器了,可以自己使用活动目录中的账户数据库对用户的访问进行身份验证。

  #/etc/init.d/smb
start

  #/etc/init.d/nmb
start

  #chkconfig
nmb on

  #chkconfig
smb on

五、修改系统账号验证

# vim
/etc/nsswitch.conf(名字服务切换配置)

此文件规定通过哪些途径以及按照什么顺序通过这些途径来查找特定类型的信息。还可以指定某个方法奏效或者、失效时系统将采取什么动作。配置格式如下:

Info:method[[action]]
[method[[action]]…]

Info指定该行所描述的信息的类型,method位用来查找该信息的方法,action是对前面的method返回状态的响应。

工作原理:当需要提供nsswitch.conf文件所描述的信息的时候,系统将检查含有适当info字段的配置行。它按照从左向右的顺序开始执行配置中指定的方法。在默认情况下,如果找到期望的信息,系统将停止搜索。如果没有指定的action,那么当某个方法未能返回结果时,系统就会尝试下一个动作。有可能搜索结束都没找到想要的信息。

nsswitch.conf文件末尾添加以下几行:

passwd:     files
winbind

     shadow:     files winbind

     group:      files winbind

     protocols:   files winbind

     services:      files winbind

     netgroup:    files
winbind

     automount:   files
winbind

六、设置kerberos认证机制

#vim /etc/krb5.conf

在配置ads模式samba服务器时/etc/krb5.conf 配置文件是必须配置的。它作为kerberos身份验证模块,可以使samba服务器对windows AD域有更好的支持。

[logging]

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

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

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

     [libdefaults]

default_realm = EXAMPLE.COM

dns_lookup_realm =
false

dns_lookup_kdc =
false

ticket_lifetime =
24h

renew_lifetime =
7d

forwardable = true

     [realms]

     EXAMPLE.COM
{

  kdc =
AD-host.example.com

     }

     [domain_realm]

.example.com = EXAMPLE.COM

example.com = EXAMPLE.COM

七、配置KDC服务

# vim
/var/kerberos/krb5kdc/kdc.conf

[realms]

EXAMPLE.COM = {

#master_key_type = aes256-cts

acl_file = /var/kerberos/krb5kdc/kadm5.acl

dict_file = /usr/share/dict/words

admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab

  supported_enctypes
= aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal
des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4
des-cbc-crc:afs3

}

八、测试sambakdc是否可以正常通信

#kinit administrator@example.com

这一步回车正常情况下是会让输入用户的密码Password for administrator@example.com

安装kerberos软件后,必须配置KDC服务器。KDC提供颁发凭证的服务。

#/etc/init.d/winbind
start

#chkconfig winbind on

九、将freeradius加入域并测试是否同步域账号

#net rpc join –U
administrator

Password:输入密码

。。。

Joined
domain  test

#wbinfo –t 检查rpc链接是否成功

。。。

checking the
trust secret via RPC calls succeeded

# wbinfo –u  获取用户信息

一堆用户出现

#wbinfo –g  获取组信息

一堆组出现

#getent passwd

一堆不知道什么用户密码出现

十、freeradius服务配置

freeradius的配置文件几乎都在/etc/raddb目录下

#vim
/etc/radius.conf   这个文件好像也没什么好改的

#vim /etc/users

DEFAULT  Auth-Type = ntlm_auth  这个要打开

#vim /etc/clients.conf   设置客户端信息

client IP(anyconnect) {

secret          = cisco

shortname       = freeRADIUS

nastype         = other

  }

#vim
/etc/raddb/sites-available/default

authorize {  ntlm_auth } //最后一行添加

authenticate
{Auth-Type ntlm_auth { ntlm_auth } }

#vim
/etc/raddb/sites-available/inner-tunnel

authorize {
ntlm_auth }

authenticate
{Auth-Type ntlm_auth { ntlm_auth } }

#vim
/etc/raddb/sites-enabled /default

authorize {  ntlm_auth } //最后一行添加

authenticate
{Auth-Type ntlm_auth { ntlm_auth } }

#vim
/etc/raddb/sites-enabled/inner-tunnel

authorize {
ntlm_auth }

authenticate
{Auth-Type ntlm_auth { ntlm_auth } }

最后这两个文件夹的四个文件是映射的关系。但是本服务器未做映射,自便

#/etc/raddb/modules/ldap

ldap {

server =
“IP(AD的IP地址)”

identity
= "CN=zabbix,ou=特殊账户,dc=example,dc=com"

password
= "password"

   basedn = "DC=example,DC=com"

   filter =
"(uid=%{%{Stripped-User-Name}:-%{User-Name}})"

}

#vim
/etc/raddb/modules/ntlm_auth

exec ntlm_auth {

wait = yes

program = "/usr/bin/ntlm_auth
--request-nt-key --domain=EXAMPLE.COM --username=%{mschap:User-Name}
--password=%{User-Password}"

  }

#vim /etc/raddb/modules/mschap  编辑mschap模块,使用ntlm_auth做MS_CHAP认证

   ntlm_auth
= "/usr/bin/ntlm_auth --request-nt-key --username=%{mschap:User-Name:-None}
--domain=%{%{mschap:NT-Domain}:-EXAMPLE.COM} --challenge=%{mschap:Challenge:-00}
--nt-response=%{mschap:NT-Response:-00}"

#vim
/etc/raddb/policy.conf   修改策略

policy {

ntlm_auth.authorize
{

if(!control:Auth-Type
&& User-Paaword){

                 update control {

            Auth-Type := ntlm_auth

            }

          }

}

      }

十一、最终测试

#chown –R root.radiusd /var/lib/samba/winbindd_privileged

#/etc/init.d/winbind
restart

   #radiusd –X   开启freeradius的debug模式

#radtest –t mschap 域账号 ‘密码’  localhost 0 testing123

用域账号密码本地测试,如果收到Access-Accept的回复,说明freeradius和AD域整合成功!

此次整合是为anyconnect vpn做准备,和anyconnect vpn正常通信的因素:

    1)       
账号要是域账号里面存在的

    2)       
freeradius服务器要设置client端信息

    3)       
认证协议要统一,此次认证使用的协议是ms-chap

freeradius整合AD域作anyconncet认证服务器的更多相关文章

  1. AD域内DNS服务器如何解析公网域名

    原创地址:http://www.cnblogs.com/jfzhu/p/4022999.html 转载请注明出处 AD域内需要有DNS服务器,用于解析域内的计算机名,但是域内的计算如何解析公网的域名呢 ...

  2. Java利用jcifs集成AD域用户认证

    近期一段时间发现AD这东西老火了,尤其是涉及到安全这一方面的,所以AD域用户认证成了如今网络安全方面的产品必备!这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全! 我 ...

  3. AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作

    博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...

  4. java修改AD域用户密码使用SSL连接方式

    正常情况下,JAVA修改AD域用户属性,只能修改一些普通属性, 如果要修改AD域用户密码和userAccountControl属性就得使用SSL连接的方式修改, SSL连接的方式需要操作以下步骤: 1 ...

  5. 使用java连接AD域,验证账号密码是否正确

    eb项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统.其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统.这就是第三方验证.一般有AD域,Ldap,Radius,邮 ...

  6. AD域环境搭建

    1.安装Windows server服务器 我安装的是Windows server 2012 Standard x64 下载地址:https://pan.baidu.com/s/1dZ_B5JIEit ...

  7. ad域-iis

    环境准备: 1. win server 服务器安装完成 2.配置主机名 3.配置静态ip 安装ad域和iis 重启服务器 密码记住!!! 点击安装 把服务器的NDS设置成本机ip 重启完成 注意:ad ...

  8. 创建AD域之后设置DNS服务访问外网

    AD域内需要有DNS服务器,用于解析域内的计算机名,域内的计算解析公网的域名需要设置一个转发器(Forwarder). 一定要设置好自己的默认网关.DNS因为部署在AD服务器上,直接loopback地 ...

  9. Samba通过ad域进行认证并限制空间大小《转载》

    本文实现了samba服务被访问的时候通过windows域服务器进行用户名和密码验证;认证通过的用户可以自动分配500M的共享空间;在用户通过windows域登陆系统的时候可以自动把这块空间映射成一块硬 ...

随机推荐

  1. Android Studio快捷键switch case 轻松转换为if else

    Android Studio快捷键switch case 轻松转换为if else 今天碰到的问题,没有找到资料,后面找到了方法,这个记下来,转载请注明出处:http://www.cnblogs.co ...

  2. Android-RecyclerView

    众所周知,RecyclerView是Google公司推出的V7包中的一个重要的控件,非常方便,可以替代现有的ListView和Gridview等控件,它功能很强大,灵活性好,扩展性强,还自带VIewH ...

  3. salesforce 零基础学习(六十一)apex:component简单使用以及图片轮转播放的实现

    有的时候,我们项目有可能有类似需求:做一个简单的图像轮转播放功能,不同的VF页面调用可以显示不同的图片以及不同的图片描述.这种情况,如果在每个页面单独处理相关的图像轮转播放则显得代码特别冗余,此种情况 ...

  4. 【Win10 应用开发】自定义应用标题栏

    Win 10 app对窗口标题栏的自定义包括两个层面:一是只定义标题中各部分的颜色,如标题栏上文本的颜色.三个系统按钮(最大化,最小化,关闭)的背景颜色等:另一层是把窗口的可视区域直接扩展到标题栏上, ...

  5. "Chinese_PRC_CI_AS" 和 "Chinese_PRC_90_CI_AI" 之间的排序规则冲突问题

    这个错误真是太恶心了.不过有解决办法,你问我哪来的?当然百度的咯! 示例: select a.workTypeDes from A a,B b  where a.workTypeCode=b.work ...

  6. EXP/IMP 导出生产库表的指定数据到测试库一例

    一般来讲,EXP/IMP是上一代导出导入程序,EXPDP/IMPDP是新一代的导出导入程序.对于大数据量的导出导入首选EXPDP/IMPDP,可以用到并行度,对表空间等操作上也更加的灵活.对于小数据量 ...

  7. 读书笔记--SQL必知必会22--高级SQL特性

    22.1 约束 约束(constraint),管理如何插入或处理数据库数据的规则. DBMS通过在数据库表上施加约束来实施引用完整性. 大多数约束是在表定义中定义的. 22.1.1 主键 主键,用来保 ...

  8. ASP.NET Core 中文文档 第二章 指南(4.3)添加 View

    原文:Adding a view 作者:Rick Anderson 翻译:魏美娟(初见) 校对:赵亮(悲梦).高嵩(Jack).娄宇(Lyrics).许登洋(Seay).姚阿勇(Dr.Yao) 本节将 ...

  9. JavaScript实现图片轮播组件

    效果: 自动循环播放图片,下方有按钮可以切换到对应图片. 添加一个动画来实现图片切换. 鼠标停在图片上时,轮播停止,出现左右两个箭头,点击可以切换图片. 鼠标移开图片区域时,从当前位置继续轮播. 提供 ...

  10. 简简单单学会C#位运算

    一.理解位运算 要学会位运算,首先要清楚什么是位运算?程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),位运算就是直接对在内存中的二进制数的每位进行运算操作 二.理解数字进制 上面 ...