最近翻阅了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 2
pre-up iptables-restore < /etc/iptables-rules pre-up ip6tables-restore < /etc/ip6tables-rules
客户端简单配置
复制客户端配置文件模板
|
|
修改配置文件:
|
|
以我使用的配置文件为例
|
|