TOUGHRADIUS结合Squid、RouterOS等部署认证计费系统

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

【 控制面板界面 】

控制面板.jpg

二. 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服务器地址和密钥。

     
routeros1.jpg

1.2 启用Radius认证
       配置路径 PPP > Secrets > PPP Authentication&Accounting,勾选Use Radius。

routeros2.jpg
  • 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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容