freeradius整合AD域作anyconncet认证服务器
一、服务器要求
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服务器接收到停止计费包后停止计费,并向客户端发送停止计费响应包,完成该用户的一次计费,记录计费信息。
三、安装freeradius与AD结合需要用的组件
#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
}
八、测试samba和kdc是否可以正常通信
#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认证服务器的更多相关文章
- AD域内DNS服务器如何解析公网域名
原创地址:http://www.cnblogs.com/jfzhu/p/4022999.html 转载请注明出处 AD域内需要有DNS服务器,用于解析域内的计算机名,但是域内的计算如何解析公网的域名呢 ...
- Java利用jcifs集成AD域用户认证
近期一段时间发现AD这东西老火了,尤其是涉及到安全这一方面的,所以AD域用户认证成了如今网络安全方面的产品必备!这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全! 我 ...
- AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作
博客地址:http://www.moonxy.com 关于AD 域服务器搭建及其使用,请参阅:AD 域服务简介(一) - 基于 LDAP 的 AD 域服务器搭建及其使用 Java 获取 AD 域用户, ...
- java修改AD域用户密码使用SSL连接方式
正常情况下,JAVA修改AD域用户属性,只能修改一些普通属性, 如果要修改AD域用户密码和userAccountControl属性就得使用SSL连接的方式修改, SSL连接的方式需要操作以下步骤: 1 ...
- 使用java连接AD域,验证账号密码是否正确
eb项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统.其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统.这就是第三方验证.一般有AD域,Ldap,Radius,邮 ...
- AD域环境搭建
1.安装Windows server服务器 我安装的是Windows server 2012 Standard x64 下载地址:https://pan.baidu.com/s/1dZ_B5JIEit ...
- ad域-iis
环境准备: 1. win server 服务器安装完成 2.配置主机名 3.配置静态ip 安装ad域和iis 重启服务器 密码记住!!! 点击安装 把服务器的NDS设置成本机ip 重启完成 注意:ad ...
- 创建AD域之后设置DNS服务访问外网
AD域内需要有DNS服务器,用于解析域内的计算机名,域内的计算解析公网的域名需要设置一个转发器(Forwarder). 一定要设置好自己的默认网关.DNS因为部署在AD服务器上,直接loopback地 ...
- Samba通过ad域进行认证并限制空间大小《转载》
本文实现了samba服务被访问的时候通过windows域服务器进行用户名和密码验证;认证通过的用户可以自动分配500M的共享空间;在用户通过windows域登陆系统的时候可以自动把这块空间映射成一块硬 ...
随机推荐
- PHP扩展-如何使用文件config.m4
config.m4文件用于指定正在开发的扩展在类unix系统下构建时支持的选项,指定此扩展需要哪些库以及哪些源文件:使用 GNU autoconf 语法编写.注意需要重新执行phpize,config ...
- 【Win 10 应用开发】TCP通信过程
基于TCP协议的通信,估计大伙儿都不陌生的,以前玩.net或玩C++的时候应该玩得很多吧.现在老周简单介绍一下在RT中如何用. TCP是基于连接的,所以,肯定有一方是监听者,通常称服务端或服务器,它负 ...
- 前端学PHP之MemCache
× 目录 [1]作用 [2]安装 [3]管理[4]命令 前面的话 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括 ...
- 用原始方法解析复杂字符串,json一定要用JsonMapper么?
经常采集数据,肯定会碰到解析字符串,包括整个页面的html,或者json以及一些不标准的json格式... 以前用json序列化,有时候需要实体类,有的时候没有,比较麻烦,听说可以用JsonMappe ...
- 从零开始编写自己的C#框架(20)——框架异常处理及日志记录
最近很忙,杂事也多,所以开发本框架也是断断续续的,终于在前两天将前面设定的功能都基本完成了,剩下一些小功能遗漏的以后发现再补上.接下来的章节主要都是讲解在本框架的基础上进行开发的小巧. 本框架主要有四 ...
- Rafy 框架 - 使用 SqlTree 查询
本文介绍如何使用 Rafy 框架中的 Sql Tree 查询: 除了开发者常用的 Linq 查询,Rafy 框架还提供了 Sql 语法树的方式来进行查询. 这种查询方式下,开发者不需要直接编写真正的 ...
- C#设计模式之简单工厂模式(Simple Factory)
1. 概述 简单工厂模式就是将一个类的实例化交给一个静态工厂来执行. 2. 使用频率 中 3. 模式结构 3.1 机构图 3.2 模式中的角色 Product:抽象类,把具体产品类公共的代码进行抽象和 ...
- Sql常用语句(3)
--显示sql server现有的所有数据库 exec sp_helpdb --查看数据表设置的约束 exec sp_helpconstraint SubjectType --update selec ...
- 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数
[问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...
- spider RPC高级特性
多租户 spider原生支持多租户部署,spider报文头对外开放了机构号.系统号两个属性用于支持多租户场景下的路由. 多租户场景下的路由可以支持下述几种模式: n 系统号: n 系统号+服务号( ...