Docker以轻量级容器引擎为核心,具备大小精简、资源使用更高效、可快速部署、移植性强等特点,使其发展迅速。
笔者在学习过程中在DockerHub上发现了非常受欢迎的TOUGHRADIUS容器镜像。TOUGHRADIUS是一个开源的Radius服务软件,支持标准RADIUS协议,提供完整的AAA实现;支持灵活的策略管理,支持各种主流接入设备并轻松扩展,具备丰富的计费策略支持。然后想到可利用此服务结合Squid、RouterOS、pfSense等部署代理、VPN认证计费系统。
一. TOUGHRADIUS部署配置
1. 下载镜像
#docker pull talkincode/toughradius
2. 运行容器
#docker run -d --name=toughradius \
-p 1812:181/udp -p 1813:1813/udp -p 1815:1815 -p 1816:1816 -p 1817:1817 \
//映射所需的端口
talkincode/toughradius /bin/bash
3. 浏览器登陆
输入Web管理地址 http://xxx.xxx.xxx.xxx:1816
4. 在线预览版 ! ! !
下面提供给大家一个预览版,有兴趣的小伙伴可留言给我索要更高权限的账户即可解锁所有功能
地址: http://45.32.18.222:1816
用户名:guest
密码:guestpwd
【 控制面板界面 】
二. Squid、RouterOS、pfSense相关配置
-
Squid配置
1. 配置Radius服务器
1.1 新建配置文件( vim /etc/squid/radius.conf
);
添加地址和密钥
server xxx.xxx.xxx.xxx
secret xxxxxxxx
1.2 测试连接是否成功
auth_param basic program /usr/lib64/squid/basic_radius_auth /etc/squid/radius.config
输入用户名和密码,返回 OK
则连接成功
2. 添加Squid配置
2.1 配置文件添加如下内容
auth_param basic program /usr/lib64/squid/basic_radius_auth /etc/squid/radius.config
The number of authenticator processes to spawn
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl radius-auth proxy_auth REQUIRED
http_access allow radius-auth
http_access allow localhost
http_access deny all
-
RouterOS配置
1. 配置Radius服务器
1.1 添加服务器
勾选Enabled,选择应用的服务,填写Radius服务器地址和密钥。
1.2 启用Radius认证
配置路径 PPP > Secrets > PPP Authentication&Accounting,勾选Use Radius。
-
pfSense配置
pfSense也可用Web来配置管理,方法与RouterOS类似,这里就不再详述了。
三. 后续相关问题
1. Docker 容器 systemctl 命令的使用
在Docker容器中部署Squid服务后,遇到无法使用systemctl命令。查阅了好多资料,有网友反映最新的版本已解决此问题。也有大神解决使用如下命令完美解决。
#docker run -it -e "container=docker" --privileged=true -d \
--security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
local_redis bash -c "/usr/sbin/init"
上述命令参考此网址 https://github.com/kheshav/dockerSystemctl
2. Squid 代理连接被重置
使用Squid代理上网时,会遇到连接被重置问题。SSH是一种安全的传输协议加密,使用SSH的端口转发功能,具有良好的网络穿透性,可解决此问题。(此文章仅用于技术学习交流,请大家遵守国家法律。)
ssh -f -N -g -L <local port> : <remote host> : <remote port> user@remotehost
SSH还拥有更多功能与用途,请自行查阅。
四. 感谢
欢迎大家交流讨论,由于个人水平有限,不足之处请及时提出。
TOUGHRADIUS相关网站
TOUGHRADIUS 网站 http://www.toughradius.org
TOUGHRADIUS 博客 http://blog.toughradius.org
GitHub 项目源码 https://github.com/talkincode/ToughRADIUS