LDAP+Radius

实验内容

  1. 用 openldap 搭建 LDAP 服务器,尝试对学生信息进行增删改查,信息包括但不限于学生 id、密码、邮箱、手机号、部门等。
  2. 配置 apache 服务器,配置 Basic 认证模块和需要认证的页面,使用用户名密码认证。
  3. 配置 apache 服务器,配置 LDAP 认证模块和需要认证的页面,使用 LDAP 存放的学生的用户名密码认证。
  4. 用 freeradius 搭建 RADIUS 服务器,尝试配置基于 unix 账号的认证,并用radtest 验证服务有效。
  5. 配置 apache 服务器,配置 RADIUS 认证模块和需要认证的页面,使用
    unix/Linux 本地用户名密码认证。
  6. 在 freeradius 中配置 ldap 认证模块,和 LDAP 服务器互通,利用 ldap 账号密码认证用户身份,并用radtest 测试通过。
  7. 在之前 apache 的 RADIUS 认证模块的配置下,不改变配置,切换到使用 LDAP存放的学生用户名密码认证,体会这种配置和 3 的不同。
  8. 在 ROS 的 AP 下,通过配置与 RADIUS 服务器连接,是学生可以通过存放在 LDAP中的用户名密码来通过认证接入 wifi。

原理

轻量级目录访问协议(LDAP)是用于通过网络管理和访问分层目录信息的标准协议。 它可以用于存储任何类型的信息,尽管它通常用作集中式身份验证系统或公司电子邮件和电话目录。 为了能够使第三方的系统进行统一化管理,利用 Openldap 进行管理所有员工组织数据,包括部门等组织架构数据。

环境

ubuntu18.04、apache2、openldap、phpldapadmin、

步骤

环境搭建

1、安装openldap

sudo apt-get install slapd ldap-utils

sudo vim /etc/ldap/ldap.conf

sudo dpkg-reconfigure slapd对slapd进行配置

2、安装phpldapadmin

sudo apt-get install phpldapadmin

sudo vim /etc/phpldapadmin/config.php

3、配置防火墙

sudo ufw allow "Apache Full"

sudo ufw allow "Apache Secure"

sudo service apache2 restart

4、新建认证页面

sudo vim /var/www/html/auth-basic/index.html

1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Basic Authentication</title>
</head>
<body>
<p style="font-size: 40px; font-weight: bold; text-align: center;">
Basic Authentication Success!
</p>
</body>
</html>

配置本地basic认证

1、创建用户

2、修改本地apache配置文件

sudo vim /etc/apache2/apache2.conf

1
2
3
4
5
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride ALL
Require all granted
</Directory>

3、创建.htaccess文件

/var/www/html/auth-basic/下创建.htaccess文件,内容如下

1
2
3
4
AuthType Basic
AuthName "Basic Authentication"
AuthUserFile /etc/apache2/.user
Require valid-user

登录测试

启动ldap模块

1、激活ldap

sudo a2enmod ldap authnz_ldap

关闭ldap

sudo /etc/init.d/slapd stop

配置认证信息

sudo vim /etc/apache2/sites-available/auth-ldap.conf

1
2
3
4
5
6
7
<Directory "/var/www/html/auth-ldap">
AuthName "LDAP Authentication"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPUrl "ldap://127.0.0.1/dc=example,dc=com"
Require valid-user
</Directory>

2、创建配置页面

sudo vim index.html

1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LDAP Authentication</title>
</head>
<body>
<p style="font-size: 40px; font-weight: bold; text-align: center;">
LDAP Authentication Success!
</p>
</body>
</html>

安装FreeRadius

1、sudo apt-get install freeradius

freeradius -v

2、配置clients.conf文件

sudo vim /etc/freeradius/clients.conf

本地实验无需更改

3、添加用户

同目录下的users文件

4、在apache2上安装Radius身份认证都需要的模块

sudo apt-get install libapache2-mod-auth-radius

启动模块

a2enmod auth_radius

在apache配置文件中添加认证

sudo vim /etc/apache2/apache2.conf

1
2
AddRadiusAuth localhost:1812 testing123 5
AddRadiusCookieValid 60

5、创建配置页面

/etc/www/html目录下新建目录auth-radius

新建 index.html

1
2
3
4
5
6
7
8
9
10
11
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Radius Authentication</title>
</head>
<body>
<p style="font-size: 40px; font-weight: bold; text-align: center;">
Radius Authentication Success!
</p>
</body>
</html>

配置.htaccess

1
2
3
4
5
6
7
AuthType Basic
AuthName "Radius Authentication"
AuthBasicAuthoritative off
AuthBasicProvider radius
AuthRadiusAuthoritative on
AuthRadiusActive On
Require valid-user

重启apache服务测试

安装FreeRADIUS

sudo apt install freeradius-ldap

配置 FreeRADIUS 的 ldap 参数
vim /etc/freeradius/3.0/mods-available/ldap

测试

体会

在 Web 端配置基本认证方式、 LDAP 认证方法以及结合 Radius 进行认证的方法。LDAP 是用来提供目录服务的,按目录结点的方式来存取信息,方便对用户身份信息认证数据的存取, Radius 是一种支持多种认证方式的认证协议。 LDAP加Radius 的组合方式可以使认证更系统化,操作更加便捷直观,也更加的安全。