🗣 Wd提问: portal认证服务器搭建
🤖 Ai回答: Portal认证服务器搭建指南
Portal认证(也称为Web认证)是公共WiFi、企业网络中常见的接入认证方式。当用户连接网络后,访问HTTP网站时会被重定向到认证页面,输入账号密码/验证码等信息完成认证后才能访问互联网。以下是基于开源方案(CoovaChilli + FreeRADIUS) 的详细搭建步骤,适用于中小型场景(如酒店、咖啡馆、小型办公室)。
一、核心概念说明
Portal认证流程:用户连接WiFi → 访问HTTP网站 → 被重定向到认证页面 → 输入凭证 → 认证服务器验证 → 通过后允许访问互联网。
关键组件:
CoovaChilli:开源的Portal认证网关,负责捕获HTTP流量、重定向、处理认证请求。
FreeRADIUS:开源的RADIUS认证服务器,处理用户凭证验证(支持PAP/CHAP等协议)。
Web服务器:托管认证页面(可由CoovaChilli自带或单独配置)。
适用场景:需要自建认证系统的中小型网络,成本低、灵活可控。
⚠️ 注意:
企业级场景建议使用商业方案(如Cisco ISE、Aruba ClearPass),安全性更高。
云服务器部署需配置安全组规则开放端口(80、3990、1812等)。
二、环境准备
硬件要求
一台Linux服务器(推荐Ubuntu 20.04/22.04或CentOS 7+)
网络设备(如路由器、AP)支持Portal重定向(常见于OpenWRT、商用AP)
网络规划
| 设备 | IP地址 | 说明 |
|
| Portal服务器 | `192.168.188.1` | 用于部署CoovaChilli和FreeRADIUS |
| DHCP地址池 | `192.168.188.100-200` | 分配给客户端 |
| 外网接口 | `eth0` | 连接互联网 |
| 内网接口 | `eth1` | 连接客户端设备 |
📌 提示:
如果使用单网卡服务器,可通过虚拟网卡或NAT实现内网隔离。
测试环境可使用虚拟机(如VMware/VirtualBox)模拟。
三、详细搭建步骤
步骤1:安装必要软件
bash
Ubuntu/Debian系统
sudo apt update
sudo apt install -y chilli freeradius nginx CoovaChilli + FreeRADIUS + Web服务器
CentOS系统
sudo yum install -y epel-release
sudo yum install -y chilli freeradius nginx
步骤2:配置FreeRADIUS认证服务器
(1) 配置RADIUS客户端(CoovaChilli)
编辑 `/etc/freeradius/3.0/clients.conf`:
conf
添加CoovaChilli作为RADIUS客户端
client chilli {
ipaddr = 127.0.0.1 CoovaChilli所在IP
secret = testing123 共享密钥(需与Chilli配置一致)
require_message_authenticator = no
}
(2) 添加测试用户
编辑 `/etc/freeradius/3.0/users`:
conf
格式:用户名 Cleartext-Password := 密码
testuser Cleartext-Password := password123 测试账号
(3) 启动服务
bash
sudo systemctl start freeradius
sudo systemctl enable freeradius
步骤3:配置CoovaChilli(Portal网关)
(1) 编辑主配置文件 `/etc/chilli/conf`
conf
基础网络配置
UAMLISTEN 0.0.0.0 监听所有IP
UAMPORT 3990 Portal服务端口
UAMSERVER 127.0.0.1 RADIUS服务器IP
UAMSECRET testing123 RADIUS客户端密钥一致
UAMAUTHSERVER 127.0.0.1:1812 RADIUS认证端口
DHCPIP 192.168.188.1 DHCP服务器IP
DHCPRANGE 192.168.188.100 192.168.188.200 DHCP地址池
DHCPNETMASK 255.255.255.0
NET 192.168.188.0/24 内网网段
DNS1 8.8.8.8 DNS服务器
DNS2 8.8.4.4
Portal页面配置
UAMHTML /etc/chilli/www/index.html 认证页面路径
UAMDOMAIN 65.hk 认证成功后跳转域名(可选)
(认证页面
bash
sudo mkdir -p /etc/chilli/www
sudo nano /etc/chilli/www/index.html
内容如下(简单登录表单):
html
<!DOCTYPE html
<html
<head
<titleWi-Fi认证</title
<meta charset=UTF-8
</head
<body style=text-align:center; margin-top:100px;
<h2欢迎使用Wi-Fi</h2
<form action=/login method=post
用户名: <input type=text name=username required<br<br
密码: <input type=password name=password required<br<br
<input type=submit value=登录
</form
</body
</html
(3) 启动CoovaChilli
bash
sudo systemctl start chilli
sudo systemctl enable chilli
步骤4:配置网络设备重定向
(上设置HTTP重定向
OpenWRT路由器:
进入 网络 → 防火墙 → 自定义规则,添加:
bash
iptables -t nat -A prerouting_wan -p tcp dport 80 -j DNAT to 192.168.188.1:3990
注:`192.168.188.1` 是Portal服务器的内网IP,`3990` 是Chilli的UAM端口。
商用AP(如TP-Link、华硕):
在管理界面找到 Portal认证 或 Web认证 选项,设置:
认证服务器IP:`192.168.188.1`
认证端口:`3990`
重定向URL:`http://<服务器IP:3990`
LinuxAT):
如果服务器直接连接客户端,需配置NAT转发:
bash
启用IP转发
echo net.ipv4.ip_forward=1 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
配置NAT规则(eth0为外网接口)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state state RELATED,ESTABLISHED -j ACCEPT
(2) 配置防火墙放行端口
bash
允许80、3990、1812端口
sudo ufw allow 80/tcp
sudo ufw allow 3990/tcp
sudo ufw allow 1812/udp RADIUS认证端口
sudo
步骤5:测试认证流程
1、用手机/电脑连接Portal服务器的WiFi(或通过内网访问)。
2、打开浏览器访问任意HTTP网站(如 `http://65.hk`)。
3、应自动跳转到认证页面:
 *(示意图)*
4、输入测试账号 `testuser` / `password123`。
5、认证成功后,即可正常访问互联网。
✅ 验证方法:
查看日志:`sudo tail -f /var/log/freeradius/radius.log`(FreeRADIUS日志)
检查Chilli状态:`sudo systemctl status chilli`
四、生产环境优化建议
1、安全加固
启用HTTPS:
📣 商家广告:





0
IP地址: 131.88.48.232
搜索次数: 16
提问时间: 2025-11-16 19:36:02
本站所有
❓
问答
均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
本站由
🟢
豌豆Ai
提供技术支持,使用的最新版:
豌豆Ai站群搜索引擎系统 V.25.10.25
搭建本站。