最近翻阅了N多中英文文档,搭建了一个 OpenVPN + Freeradius + Mysql + Daloradius 的认证、限流、限速 VPN。网上的教程要么过时要么不全,我就在这里记录下搭建的全过程。
配置 OpenVPN Server
服务端安装
|
|
公钥基础设施设置
创建证书目录
|
|
接下来,编辑 /etc/openvpn/easy-rsa/vars 调整到适合您的环境
|
|
生成 CA 证书
|
|
生成服务端证书和密钥
|
|
为 OpenVPN 服务器生成 Diffie Hellman 参数
|
|
由于我们将采用用户名 + 密码的方式来进行认证,可以不生成客户端证书和密钥。
拷贝所需的证书和密钥到 /etc/openvpn/
|
|
服务端简单配置
拷贝服务端配置文件模板
|
|
编辑 /etc/openvpn/server.conf ,更改配置如下
|
|
编辑 /etc/sysctl.conf,取消注释并更改以下项目
|
|
重新载入一下内核参数
|
|
设置 iptables
-
清空规则
1 2# iptables -F # iptables -X -
之后这一步非常重要,配置允许ssh端口通过
1# iptables -A INPUT -p tcp --dport 22 -j ACCEPT -
配置默认过滤策略
1 2 3# iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT -
接下来允许openvpn的端口连接
1# iptables -A INPUT -p tcp --dport 1194 -j ACCEPT -
允许虚拟网段的连接
1# iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT -
配置NAT转发
1# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE -
保持已经建立的连接
1# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -
保存iptables规则
1# iptables-save > /etc/iptables-rules -
编辑/etc/network/interfaces文件,在最后插入下面内容
1 2pre-up iptables-restore < /etc/iptables-rules pre-up ip6tables-restore < /etc/ip6tables-rules
客户端简单配置
复制客户端配置文件模板
|
|
修改配置文件:
|
|
以我使用的配置文件为例
|
|