在无线网络认证领域,Portal认证因其灵活性和易用性成为企业级场景的常见选择。本文将带您完整搭建基于OSSH免费版、FreeAC的NAC组件和华为Portal 1.0协议的认证系统环境。不同于简单罗列步骤,我们会深入每个组件的交互原理,并分享实际部署中容易忽略的细节问题。
搭建认证系统前,需要明确各组件角色和网络拓扑。典型的Portal认证架构包含三个核心部分:认证页面服务(OSSH Portal)、认证决策引擎(FreeRADIUS)和接入控制器(NAC)。我们的实验环境采用单台CentOS 6.5物理机运行多个虚拟机的方式实现。
基础环境要求:
提示:虽然CentOS 6.5已停止维护,但这是与OSSH Portal兼容性最好的系统版本。生产环境应考虑使用更新的系统版本。
网络规划采用多VLAN隔离方案,关键IP分配如下:
| 组件 | IP地址 | 作用描述 |
|---|---|---|
| OSSH Portal | 192.168.100.100 | 提供认证页面和RADIUS服务 |
| NAC | 192.168.100.101 | 接入控制决策点 |
| 测试客户端 | 200.200.200.100 | 模拟终端设备 |
OSSH提供集成的Portal和FreeRADIUS服务,其ISO镜像安装需要注意几个特殊配置项:
安装完成后,首先验证基础服务状态:
bash复制# 检查Portal服务状态
/usr/local/portalServer/bin/status.sh
# 检查FreeRADIUS状态
/etc/init.d/rc.radiusd status
关键配置文件configs.prod.properties需要调整以下参数:
properties复制acHost=192.168.100.101 # NAC服务器地址
acPort=2000 # NAC服务端口
sharedSecret=123456789 # 与NAC的共享密钥
authType=0 # 0表示CHAP认证
注意:每次修改配置文件后必须重启服务才能生效,使用
/usr/local/portalServer/bin/restart.sh完成重启。
NAC作为认证系统的决策中枢,其RPM包安装需要解决CentOS 6.5的依赖问题:
bash复制# 解决基础依赖
yum install -y glibc-2.12-1.212.el6.x86_64 \
libgcc-4.4.7-23.el6.x86_64
# 安装NAC组件
rpm -ivh nac-0.2.0-v1.x86_64.rpm
核心配置文件/usr/local/etc/nac-0.2.0/config/nac.conf需要关注这些关键项:
ini复制PortalProtocol = 1 # 华为协议
PortalAddress = 192.168.100.100
PortalURL = http://192.168.100.100:8088/
RadiusAddress = 192.168.100.100
服务管理命令:
bash复制# 启动服务
service nac start
# 查看日志
tail -f /var/log/nac/nac.log
FreeRADIUS的配置复杂度最高,我们需要重点调整三个文件:
clients.conf - 定义NAS客户端:
radius复制client 192.168.100.0/24 {
secret = 123456789
shortname = ac6100
nastype = other
}
users - 测试用户定义:
radius复制steve Cleartext-Password := "testing"
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 172.16.3.33
radiusd.conf - 启用SQL模块:
radius复制modules {
$INCLUDE sql.conf
}
调试技巧:
bash复制# 以调试模式运行
radiusd -X
# 实时监控日志
tail -f /usr/local/var/log/radius/radius.log
完整的Portal认证流程包含六个阶段:
测试时建议按顺序验证:
bash复制# 1. 验证Portal页面可访问
curl -I http://192.168.100.100:8088/
# 2. 模拟认证请求
radtest steve testing 192.168.100.100 1812 123456789
# 3. 检查NAC会话表
nacctl --list-sessions
常见故障排查点:
基础系统搭建完成后,还需要考虑以下增强措施:
性能调优参数:
properties复制# FreeRADIUS线程池配置
thread pool {
max_servers = 50
max_requests_per_server = 500
}
# NAC会话检查间隔
CheckInterval = 10
高可用方案:
安全加固措施:
sql复制-- 限制用户并发登录
INSERT INTO radgroupcheck
(groupname,attribute,op,value)
VALUES ('user','Simultaneous-Use',':=','1');
实际部署中发现,当并发用户超过500时,需要优化MySQL的innodb_buffer_pool_size参数,建议设置为物理内存的70%。