FreeRadius+Cisco交换机+Windows AD实现802.1X认证

(一)概述
本文档描述了如何设置FreeRadius服务器,以便对windows客户端网络用户透明的对ActiveDirectory进行身份验证。

1.1、原理:
FrReRADIUS通过基于端口的访问控制提供身份验证。只有当认证服务器验证了证书时,用户才能连接到网络。用户证书通过使用802.1x标准的特殊认证协议来验证。(FreeRADIUS offers authentication via port based access control. A user can connect to the network only if its credentials have been validated by the authentication server. User credentials are verified by using special authentication protocols which belong to the 802.1X standard.---官方文档)

如上图所示,如果用户凭据已被FRIERADIUS服务器认证,则仅授予工作站的网络访问权限。否则,交换机端口将被关闭对所有的网络流量。RADIUS服务器允许与域控制器联系以进行用户身份验证。虽然交换机端口被关闭,但是工作站可以通过认证协议与RADIUS服务器通信。RADIUS服务器能够检查域控制器,如果用户存在并且密码是否正确。如果是这种情况,RADIUS服务器告诉交换机打开端口,用户将访问网络。

1.2、所需的环境

(二)、Linux服务器的安装配置
1、关闭防火墙和selinux

[[email protected] ~]$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[[email protected] ~]$ sudo grep ‘^[a-Z]‘ /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted 
2、编译安装freeradius
[[email protected] ~]# sudo xf freeradius-server-3.0.17.tar.gz
[[email protected] ~]# cd freeradius-server-3.0.17
[[email protected] freeradius-server-3.0.17]# sudo yum install libtalloc-devel -y
[[email protected] freeradius-server-3.0.17]#yum install openssl openssl-devel
[[email protected] freeradius-server-3.0.17]#sudo ./configure
[[email protected] freeradius-server-3.0.17]# sudo make && make install
[[email protected] raddb]# cp /usr/local/sbin/rc.radiusd /etc/init.d/radiused
[[email protected] raddb]# /etc/init.d/radiused start
[[email protected] raddb]# ps -ef|grep radiusd
root      5529     1  0 17:04 ?        00:00:00 /usr/local/sbin/radiusd
root      5537 26619  0 17:04 pts/2    00:00:00 grep --color=auto radiusd
[[email protected] raddb]# /etc/init.d/radiused stop
Stopping FreeRADIUS: radiusd.
[[email protected] raddb]# ps -ef|grep radiusd

3、安装配置samba

    [[email protected] ~]$ sudo yum install samba samba-client samba-winbind krb5-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package krb5-server.x86_64 0:1.15.1-19.el7 will be installed
Installed:
  krb5-server.x86_64 0:1.15.1-19.el7  samba.x86_64 0:4.7.1-6.el7  samba-client.x86_64 0:4.7.1-6.el7  samba-winbind.x86_64 0:4.7.1-6.el7 

Dependency Installed:
  avahi-libs.x86_64 0:0.6.31-19.el7             cups-libs.x86_64 1:1.6.3-35.el7         libarchive.x86_64 0:3.1.2-10.el7_2
  libevent.x86_64 0:2.0.21-4.el7                libldb.x86_64 0:1.2.2-1.el7             libsmbclient.x86_64 0:4.7.1-6.el7
  libtalloc.x86_64 0:2.1.10-1.el7               libtdb.x86_64 0:1.3.15-1.el7            libtevent.x86_64 0:0.9.33-2.el7
  libverto-libevent.x86_64 0:0.2.5-4.el7        libwbclient.x86_64 0:4.7.1-6.el7        pytalloc.x86_64 0:2.1.10-1.el7
  samba-client-libs.x86_64 0:4.7.1-6.el7        samba-common.noarch 0:4.7.1-6.el7       samba-common-libs.x86_64 0:4.7.1-6.el7
  samba-common-tools.x86_64 0:4.7.1-6.el7       samba-libs.x86_64 0:4.7.1-6.el7         samba-winbind-modules.x86_64 0:4.7.1-6.el7
  words.noarch 0:3.0-22.el7                    

Dependency Updated:
  dbus.x86_64 1:1.10.24-7.el7     dbus-libs.x86_64 1:1.10.24-7.el7 krb5-devel.x86_64 0:1.15.1-19.el7 krb5-libs.x86_64 0:1.15.1-19.el7
  libkadm5.x86_64 0:1.15.1-19.el7

Complete!

3、配置samba服务器并重启samba服务。
一旦PAP认证测试成功,使用ActiveDirectory的站点的下一步是配置系统以对ActiveDirectory进行用户身份验证。明文密码通过ActiveDirectory不可用,因此我们必须使用SAMBA和ntlm_auth程序。在这个配置中,我们使用ActiveDirectory作为身份验证Oracle,而不是LDAP数据库。一旦Samba已经安装在您的系统上,您应该编辑SMBCONF文件,并将[Global ]部分配置为指向NT服务器,包括主机名和NT域。本文只配置samba配置文件中的[global]部分

[[email protected] raddb]# vim /etc/samba/smb.conf

[global]
        workgroup = CORP                  ##指定域的netbios名称
                security = ads                           ##指定samba的工作模式,和域集成
        winbind use default domain = no
        password server = X.X.X.X           #指定定身份验证的服务器为域控
        realm = CORP.BAIDU.COM         #指定AD域名   

[homes]
    comment = Home Directories
    valid users = %S, %D%w%S
    browseable = No
    read only = No
    inherit acls = Yes

[printers]
    comment = All Printers
    path = /var/tmp
    printable = Yes
    create mask = 0600
    browseable = No

[print$]
    comment = Printer Drivers
    path = /var/lib/samba/drivers
    write list = @printadmin root
    force group = @printadmin
    create mask = 0664
    directory mask = 0775

[[email protected] raddb]# systemctl start smb
[[email protected] raddb]# systemctl status smb
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-07-31 17:16:05 CST; 4s ago
 Main PID: 5587 (smbd)
   Status: "smbd: ready to serve connections..."
   CGroup: /system.slice/smb.service
           ├─5587 /usr/sbin/smbd --foreground --no-process-group
           ├─5589 /usr/sbin/smbd --foreground --no-process-group
           ├─5590 /usr/sbin/smbd --foreground --no-process-group
           └─5591 /usr/sbin/smbd --foreground --no-process-group

4、配置/etc/krb5.conf

[[email protected] ~]# vim  /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 = CORP.BAIDU.COM                         #指定域名
 dns_lookup_realm = false
 dns_lookup_kdc = false

[realms]
CORP.PPDAI.COM = {
  kdc = 10.128.105.170:88                               #指域控为kdc服务器及端口
  admin_server = 10.128.105.170:749                     #指定域控的管理端口
  default_domain = corp.baidu.com
 }

[domain_realm]
 .corp.ppdai.com = CORP.BAIDU.COM
  corp.ppdai.com = CORP.BAIDU.COM

[kdc]
  profile =/var/kerberos/krb5kdc/kdc.conf

[appdefaults]
 pam = {
  debug = false
  ticket_lifetime = 36000
  renew_lifetime = 36000
  forwardable = true
  krb4_convert = false
 }

5、编辑/etc/nsswich.conf,在下列行末添加winbind,其他的不变

[[email protected] ~]# cat /etc/nsswitch.conf
passwd:     files sss winbind
shadow:     files sss winbind
group:      files sss winbind

protocols:  files sss winbind

services:   files sss winbind

netgroup:   files sss winbind

automount:  files sss winbind

6、把改台服务器添加到域中。如果不加入到域的话,启动winbind服务会起不来出现报错。

[[email protected] radiusd]# net join -U liqingbiao
Enter liqingbiao‘s password:
Using short domain name -- CORP
Joined ‘FREERADIUS2‘ to dns domain ‘corp.baidu.com‘
No DNS domain configured for freeradius2. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

7、启动smaba和winbind服务。

[[email protected] radiusd]# systemctl enable winbind
[[email protected] radiusd]# systemctl enable smb
[[email protected] radiusd]# systemctl start winbind
[[email protected] radiusd]# systemctl start smb
[[email protected] radiusd]# systemctl status winbind
● winbind.service - Samba Winbind Daemon
   Loaded: loaded (/usr/lib/systemd/system/winbind.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-07-31 17:26:30 CST; 1min 5s ago
 Main PID: 5651 (winbindd)
   Status: "winbindd: ready to serve connections..."
   CGroup: /system.slice/winbind.service
           ├─5651 /usr/sbin/winbindd --foreground --no-process-group
           └─5653 /usr/sbin/winbindd --foreground --no-process-group

8、通过wbinfo进行账号拉取测试。wbinfo –a user%password

[[email protected] appuser]# wbinfo -a it001%123456
plaintext password authentication failed
Could not authenticate user it004%Aa123456 with plaintext password
challenge/response password authentication succeeded     ###成功了
[[email protected] appuser]# ntlm_auth --request-nt-key --domain=CORP --username=it001   ###ntlm是windows 域环境下的认证方式
Password:
NT_STATUS_OK: The operation completed successfully. (0x0)

9、修改/var/lib/samba/winbindd_privileged权限

[[email protected] appuser]#usermod –G wbpriv radiusd
[[email protected] appuser]#chown –R root.radiusd /var/lib/samba/winbindd_privileged

(三)、FreeRadius的配置
freeradius具体相关的配置如下:

  • clients.conf
  • mods-available/mschap
  • mods-available/eap
  • users

1、配置clients.conf文件,添加通信客户端。

[[email protected] ~]# vim /usr/local/etc/raddb/clients.conf
client 172.20.19.0/24 {
        secret = test
        showtanme = CE-SW
        }

client 172.20.66.0/24 {
    secret = [email protected]@123456
    showtanme = CE-SW
    }

client 172.20.94.0/24 {
        secret = [email protected]@123456
        showtanme = CE-SW
        }

2、配置mods-available/mschap文件。编辑/usr/local/etc/raddb/mods-available/mschap文件
[[email protected] ~]# vim /usr/local/etc/raddb/mods-available/mschap

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

3、配置mods-available/eap文件,编辑/usr/local/etc/raddb/mods-available/eap文件

[[email protected] ~]# vim /usr/local/etc/raddb/mods-available/eap
default_eap_type = peap.

random_file = /dev/urandom

4、配置/usr/local/etc/raddb/mods-enabled/ntlm_auth文件

[[email protected] ~]# vim /usr/local/etc/raddb/mods-enabled/ntlm_auth
exec ntlm_auth {
        wait = yes
        program = "/usr/bin/ntlm_auth --request-nt-key --domain=CORP.PPDAI.COM --username=%{mschap:User-Name} --password=%{User-Password}"

5、编辑/etc/raddb/sites-enabled/default 和/etc/raddb/sites-enabled/inner-tunnel文件

authenticate {        ...        ntlm_auth        ...}

原文地址:http://blog.51cto.com/liqingbiao/2152850

时间: 2024-08-05 07:55:45

FreeRadius+Cisco交换机+Windows AD实现802.1X认证的相关文章

Freeradius+Cisco2960S+windows AD实现有线802.1x认证

概述 feeradius是一个免费开源的 AAA服务器,更能强大,很多功能不输商业化软件.曾经试过很多类似的软件,如Cisco的ACS,微软的NAP等,思科的不错就是太贵,微软的感觉不好用.本例主要实现freeradius3版本通过windows AD 及证书验证,实现在Cisco系列交换机上基于端口的802.1x认证,只有加入域的计算机和用户并且开启了认证才可以联网,否则交换机端口将其划入guest Vlan进行隔离修补.这里借鉴了官方文档的部分图片和内容,但官网有些方面说的还是不够完整,有些

浅谈802.1X认证

一.起源 802.1x协议起源于802.11协议,后者是标准的无线局域网协议.802.1x协议的主要目的是为了解决局域网用户的接入认证问题,现在已经开始被应用于一般的有线LAN的接入.在802.1x出现之前,企业网有线LAN应用都没有直接控制到端口的方法,也不需要控制到端口.但是随着无线LAN的应用以及LAN接入到电信网上大规模开展,有必要对端口加以控制,以实现用户级的接入控制.802.1x就是IEEE为了解决基于端口的接入控制而定义的一个标准. 二.作用 1.802.1x是一个认证协议,是一种

华为S5700配置端口镜像和华三S5120配置802.1X认证记录

一.说明 事情的起因是我们部门有个华为的S5700交换机,想配置端口镜像抓包但让助理买的串口线很久都还没到:而昨天测试部的同事说他们那有台华三的S5120想要配802.1X认证,但只有华为交换机的文档换到华三交换机上命令不一样不懂怎么配,问我们能不能帮看一下. 一是领导觉得他们的任务可以搞得定,二是我们这边需要串口线,所以这笔买卖就做了. 所以也就有了这里“华为S5700配置端口镜像和华三S5120配置802.1X认证”两个不相关的东西在一篇文章里,主要是做个记录用. 二.华为S5700配置端口

802.1X认证配置

1. 组网需求 用户通过Device的端口Ethernet1/0/1接入网络,设备对该端口接入的用户进行802.1X认证以控制其访问Internet,具体要求如下: ·     由两台RADIUS服务器组成的服务器组与Device相连,其IP地址分别为10.1.1.1/24和10.1.1.2/24,使用前者作为主认证/计费服务器,使用后者作为备份认证/计费服务器. ·     端口Ethernet1/0/1下的所有接入用户均需要单独认证,当某个用户下线时,也只有该用户无法使用网络. ·     

有线网端口开启802.1X认证后使用MDT部署服务

为了提高办公区网络安全,现要求所有的工位端口都需要开启802.1x认证,未通过认证或者认证超时的客户端会被分配至与办公网隔离的Guest VLAN中 对于已经安装操作系统的机器,只需要开启相关的服务即可,但是遇到需要使用MDT部署服务的时候,问题来了... 正常MDT部署流程: 插入网线-开机-选择网卡启动-从WDS服务器获取IP-从WDS服务获取启动映象-进入PE-选择部署序列-部署 开启1X认证后流程: 插入网线-开机-选择网卡启动-无法获取IP-退出PXE Boot 可以看到开启了1x认证

自学Aruba7.3-Aruba安全认证-802.1x认证(web页面配置)

点击返回:自学Aruba之路 自学Aruba7.3-Aruba安全认证-802.1x认证(web页面配置) 步骤1 建立AP Group,命名为test-group 原文地址:https://www.cnblogs.com/yaoyaojcy/p/9293309.html

06 自学Aruba之win7系统802.1x认证网卡设置指导

点击返回:自学Aruba之路 06 自学Aruba之win7系统802.1x认证网卡设置指导 步骤1.在桌面任务栏找到"打开网络和共享中心",点击进入: 步骤2.点击"管理无线网络",进入无线网络配置 步骤3.点击"添加"增加无线网络配置,并在弹出的对话框选择"手动创建网络配置文件". 步骤4. 对应下图,在对话框中输入和选择相应的选项. 网络名(E):test_staff(连接的SSID名字) 安全类型(S)选择"

wifi无线认证,802.1x认证上网方式详解

图片描述(最多50字) 这里,主要介绍一下802.1x认证上网: 1 802.1x认证上网简介802.1x认证上网是指在无线网络认证界面,点击相应的无线网络,弹出账户密码输入框,用户输入账号密码的一种认证方式. 2 802.1x认证上网应用场景企事业单位内部工作人员 3 802.1x认证上网的流程 3.1 打开WiFi设置,选择指定无线网络: 3.2 点击链接,弹出账户密码输入框:输入专属账户密码: 3.3认证成功,开始上网. 4 802.1x认证上网的应用价值 4.1 安全稳定,快捷方便: 4

CLI配置WLAN-PSK认证和802.1X认证

一.该部分配置主要是针对PSK认证 1.创建WLAN 2 2.让WLAN使用PSK的方式 config wlan create 2 OK OK  //创建WLAN Profile Name和SSID config wlan broadcast-ssid enable 2 config wlan interface 2 management onfig wlan security wpa enable 2 //开启wpa,以支持WPA&WPA2 config wlan security wpa a