centos6 下 flexgw 部署
简介
flexgw 提供了open和SNAT的基础服务。
主要有以下功能点:
- IPSec Site-to-Site 功能。可快速的帮助你将两个不同的VPC 私网以IPSec Site-to-Site 的方式连接起来。
- 拨号VPN 功能。可让你通过拨号方式,接入VPC 私网,进行日常维护管理。
- SNAT 功能。可方便的设置Source NAT,以让VPC 私网内的VM 通过Gateway VM 访问外网。
软件组成:
Strongswan
- 版本:5.1.3
- Website:http://www.strongswan.org
open
- 版本:2.3.2
- Website:https://open.net/index.php/open-source.html
程序说明:
ECS VPN(即本程序)
- 目录:/usr/local/flexgw
- 数据库文件:/usr/local/flexgw/instance/website.db
- 日志文件:/usr/local/flexgw/logs/website.log
- 启动脚本:/etc/init.d/flexgw 或/usr/local/flexgw/website_console
- 实用脚本:/usr/local/flexgw/scripts
保留原来的flexgw的启动方式 service flexgw start/stop/restart
「数据库文件」保存了我们所有的VPN 配置,建议定期备份。如果数据库损坏,可通过「实用脚本」目录下的initdb.py 脚本对数据库进行初始化,初始化之后所有的配置将清空。
Strongswan
- 目录:/etc/strongswan
- 日志文件:/var/log/strongswan.charon.log
- 启动脚本:/usr/sbin/strongswan
如果strongswan.conf 配置文件损坏,可使用备份文件/usr/local/flexgw/rc/strongswan.conf 进行覆盖恢复。
ipsec.conf 和ipsec.secrets 配置文件,由/usr/local/flexgw/website/vpn/sts/templates/sts 目录下的同名文件自动生成,请勿随便修改。
open
- 目录:/etc/open
- 日志文件:/etc/open/open.log
- 状态文件:/etc/open/open-status.log
- 原启动脚本:/etc/init.d/open
server.conf 配置文件,由/usr/local/flexgw/website/vpn/dial/templates/dial 目录下的同名文件自动生成,请勿随便修改。
部署说明
环境要求
程序包下载地址
https://codeload.github.com/alibaba/flexgw/zip/master
OS: Centos 6.5/RHEL 6/AliOS 6.2
注:请以root 身份执行下面步骤的命令。
设置系统环境
编辑/etc/sysctl.conf 文件:
- Disable redirects.
-
1
sysctl -a |
egrep
"ipv4.*(accept|send)_redirects"
|
awk
-F
"="
'{print $1"= 0"}'
请编辑sysctl.conf 文件,将上面配置的值均设为0。配置文件里没有的,请添加上。
- enable ip forward.
net.ipv4.ip_forward = 1
请编辑sysctl.conf 文件,将该配置的值设置为1。
- 执行命令sysctl -p
安装依赖的软件包
以root 身份执行:
- yum install strongswan open zip curl wget
安装flexgw rpm 包
该包可以通过手动编译完成
1 2 3 4 | # yum install -y git rpm-build python-pip zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel # pip install python-build # cd flexgw-master/packaging/rpm/ # sh mkrpm.sh #rpm -ivh flexgw-1.1.0-1.el7.centos.x86_64.rpm |
初始化配置
- 初始化strongswan 配置文件:
1 | cp -fv /usr/local/flexgw/rc/strongswan .conf /etc/strongswan/strongswan .conf |
- 初始化open 配置文件:
1 | cp -fv /usr/local/flexgw/rc/open .conf /etc/open/server/server .conf |
设置strongswan
- 将/etc/strongswan/strongswan.d/charon/dhcp.conf 配置文件: 注释掉“load = yes” 这行。
- 清空密钥配置文件:
> /etc/strongswan/ipsec.secrets
测试运行strongswan
- strongswan start
- strongswan status
- strongswan stop
初始化
手工执行以下命令:
/etc/init.d/initflexgw
大约10秒左右,flexgw 就会自动配置好,并启动。启动完毕之后,访问https://公网IP 即可看到登录界面。
查看机器上服务端口启动了443端口以及开启了python的进程,说明启动成功了。
netstat -ntplu | grep 443

ps uax | grep flexgw

程序启动和重启命令
/etc/init.d/flexgw start|stop|restar
问题:
open当前默认安装都为2.4.8版本高于该程序依赖的版本2.3.2了,所以配置完成登录成功后,点击拨号vpn会出现500的错误,该错误一般是在有客户端拨号上之后就会出现500错误,当没有client拨号连接时候有时候访问正常
解决方案:
编辑/usr/local/flexgw/website/vpn/dial/services.py该文件的224行,'ct': data[7] 修改为'ct': data[8]

修改后重启open以及flexgw
/etc/init.d/open restart
/etc/init.d/flexgw restart
登录后配置
打开页面后就可以进行相应的配置
1、访问https://公网ip
使用系统账号即可登录该系统,这里用root账号进行登录

2、启动拨号vpn服务
进入拨号vpn----vpn服务管理,确保GateWay VM启动了VPN拨号服务
- 启动VPN 服务:仅启动本机的拨号VPN。
- 停止VPN 服务:停止本机的拨号VPN。已经连接上的隧道将全部断开。
- 配置下发&重载:进行拨号VPN 「设置」时,该动作会自动进行。但某些情况下,如果你想重新生成VPN 服务端配置,可手动执行该操作。
3、进行设置,选择拨号vpn---设置

- 通信协议:可选"UDP"、"TCP"。注:每次修改保存后,请重新下载客户端配置文件。
- 虚拟IP 地址池:即VPN Server 分配给客户端的虚拟IP 地址池。本例为:10.8.8.0/24
- 允许client 间通信:本例子中,这里请选“是”。
- 允许单个账号同时在线:可选“是”或“否”。
- 子网网段:即允许拨号client 访问的子网。如果不需要client 访问子网,填写VPN GateWay VM 私网IP 即可:10.171.112.120/32,我这里设置为需要访问的内网地址10.0.3.0/24
4、添加账号
点击vpn拨号----新增账号

5、添加SANT使client能够访问vpn服务服务器所在内网的其他服务器
点击SANT----SANT新增

在上面的例子中,虚拟地址池为10.8.8.0/24,子网网段为10.0.3.0/24,则需要配置SNAT: 10.8.0.0/24 ➔ 本vpn服务器内网的IP
6、客户端配置,根据不同的客户端进行下载对应的客户端软件即可
点击拨号vpn----客户端下载

配置文件以及ca从服务器上下载下来,进行修改EIP为GateWay VM 的公网地址
/usr/local/flexgw/rc/open-client.ovpn #配置文件路径
/usr/local/flexgw/instance/ca.crt #ca证书文件下载路径
- 修改配置文件:将配置文件中的「remote IP」字段修改为GateWay VM 的公网地址。
- Windows 平台:安装完客户端后,将配置文件client.ovpn和ca.crt 文件放到安装目录下的config 文件夹中。然后启动open-gui.exe,根据提示进行连接。
- Linux 平台:在配置文件client.conf 和ca.crt 的目录下执行命令:open client.conf,根据提示进行连接。若要以daemon 形式在后台执行,请执行:open client.conf & 来建立连接。
- 注:在Linux 平台下载客户端时,需要关闭证书验证。wget 请加上参数--no-check-certificate, curl 请加上参数--insecure。
mac平台下没有对应的客户端下载软件,可以通过网上进行下载该工具进行下载
Tunnelblick_3.7.1beta02_build_4810.dmg(因为这里不能上传大文件就不在这里放了,可以从网上进行搜索下载)
安装之后只需要将open的配置文件拉进配置列表中即可,会自行进行安装配置该证书

7、验证
当客户端vpn配置好以后,能ping通内网其他机器或者访问内网其他服务即配置完成。
以上仅为工作中使用,整个配置流程,其他功能使用详细可以登录vpn管理台后查看文档。

原文参考:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步