当前位置: 首页 > 工具软件 > ToughRADIUS > 使用案例 >

toughradius 配置mysql_ToughRADIUS 商业版 Docker 容器部署

陆文斌
2023-12-01

ToughRADIUS 商业版

ToughRADIUS Docker 容器部署方法, 这里通过 dcoker-compose容器编排模式提供了一套完整的集成方法

使用本方法部署, 您需要对Docker 以及 docker-compose 编排工具有足够的了解该方案同时集成了 freeradius, 可以通过 freeradius 的多协议处理引擎来提供更丰富的功能, 比如802.1x 认证.

在这种模式下, freeradius 成为 toughradius 的一个基础模块, 复则解析处理更复杂的 RADIUS 协议。

环境准备

Docker 工具安装

ubuntu

sudo apt-get install -y docker

sudo apt-get install -y docker-compose

centos 7

yum install -y docker

yum install -y docker-compose

Docker 仓库加速, 由于 docker 服务器访问较慢, 最好使用国内加速代理, 通过以下方法配置

tee /etc/docker/daemon.json <

{

"registry-mirrors": [

"https://1nj0zren.mirror.aliyuncs.com",

"https://docker.mirrors.ustc.edu.cn",

"http://f1361db2.m.daocloud.io",

"https://registry.docker-cn.com"

]

}

EOF

部署流程

test -d || /opt/toughradius

curl https://raw.githubusercontent.com/toughstruct/toughradius-docker/master/deploy.sh -o /opt/toughradius/deploy.sh

cd /opt/toughradius && sh ./deploy.sh

部署脚本deploy.sh 脚本内容

#!/bin/bash

cd /opt/toughradius

# 下载容器部署描述文件

curl https://raw.githubusercontent.com/toughstruct/toughradius-docker/master/docker-compose.yml -o docker-compose.yml

# 下载数据库脚本文件

curl https://raw.githubusercontent.com/toughstruct/toughradius-docker/master/toughradius.sql -o toughradius.sql

# 拉取最新镜像

docker-compose pull

# 首先创建mysql容器

docker-compose up -d mysql

# 等待 mysql 初始化完成后再执行sql

sleep 3

# 创建数据库表

mysql -h 127.0.0.1 -uroot -pmyroot < ./toughradius.sql

# 创建所有容器

docker-compose up -d

升级脚本upgrade.sh 脚本内容

#!/bin/bash

cd /opt/toughradius

# 尝试删除已有的容器组

docker-compose rm -f -s

# 下载部署文件

curl https://raw.githubusercontent.com/toughstruct/toughradius-docker/master/docker-compose.yml -o docker-compose.yml

docker-compose pull

# 重建其他容器

docker-compose up -d

容器编排描述文件 docker-compose.yml注意,该部署文件集成了 freeradius, 通过 command: "toughradius -with-freeradius" 来启动内置 freeradius, 并通过环境变量配置端口

version: "3"

services:

mysql:

image: mysql

container_name: "mysql"

restart: always

environment:

MYSQL_ROOT_PASSWORD: myroot

command:

--default-authentication-plugin=mysql_native_password

--character-set-server=utf8mb4

--collation-server=utf8mb4_unicode_ci

--explicit_defaults_for_timestamp=true

--lower_case_table_names=1

--max_allowed_packet=128M;

volumes:

- /opt/toughradius/mysql_data:/var/lib/mysql

- /opt/toughradius/vardata/mysql:/var/log/mysql

ports:

- 127.0.0.1:3306:3306

expose:

- 3306

networks:

toughradius_network:

toughradius:

depends_on:

- 'mysql'

image: toughstruct/toughradius

container_name: "toughradius"

command: "toughradius -with-freeradius"

restart: always

ports:

- "1816:1816"

- "1812:1812/udp"

- "1813:1813/udp"

- "1912:1912/udp"

- "1913:1913/udp"

- "2912:2912/udp"

- "2913:2913/udp"

expose:

- 1816

- 1812/udp

- 1813/udp

- 1912/udp

- 1913/udp

- 2912/udp

- 2913/udp

volumes:

- /opt/toughradius/vardata:/var/toughradius

- /opt/toughradius/vardata/freeradius:/var/log/freeradius

environment:

- GODEBUG=x509ignoreCN=0

- TOUGHRADIUS_WEB_DEBUG=false

- TOUGHRADIUS_WEB_SECRET=9b6de5cc-0011-4bf1-gree-0f568ac9da37

- TOUGHRADIUS_DB_HOST=mysql

- TOUGHRADIUS_DB_NAME=toughradius

- TOUGHRADIUS_DB_USER=toughradius

- TOUGHRADIUS_DB_PWD=Tough!2020

- TOUGHRADIUS_DB_DEBUG=false

- FREERADIUS_AUTH_PORT=1912

- FREERADIUS_ACCT_PORT=1913

- FREERADIUS_AUTH6_PORT=2912

- FREERADIUS_ACCT6_PORT=2913

- FREERADIUS_API_URL=http://127.0.0.1:1816

networks:

toughradius_network:

networks:

toughradius_network:只要将 NAS 设备的认证端口和记账端口配置为 freeradius 监听的端口即可使用 freeradius 来实现 RADIUS 协议处理

端口说明1816/tcp web 管理控制台端口

1812/udp toughradius 认证端口

1812/udp toughradius 记账端口

1912/udp freeradius 认证端口

1912/udp freeradius 记账端口

2912/udp freeradius ipv6 认证端口

2912/udp freeradius ipv6 记账端口

 类似资料: