环境说明
docker-compose
:1.23.2
- 操作系统:
armbian (斐讯n1)
部署软件
openldap 部署
省略 openldap 的部署配置 请参考之前整理的 文档
openvpn 安装
这里 openvpn 一键安装使用 github 中的一键脚本
脚本地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
curl -o openvpn-install.sh https://raw.githubusercontent.com/Nyr/openvpn-install/master/openvpn-install.sh
chmod a+x openvpn-install.sh
./openvpn-install.sh
Welcome to this OpenVPN road warrior installer!
Which IPv4 address should be used?
1) 192.168.8.112
2) 172.18.0.1
3) 172.17.0.1
4) 10.42.0.0
5) 10.42.0.1
IPv4 address [1]: 1
This server is behind NAT. What is the public IPv4 address or hostname?
Public IPv4 address / hostname [23.105.194.216]:
Which protocol should OpenVPN use?
1) UDP (recommended)
2) TCP
Protocol [1]: 1
What port should OpenVPN listen to?
Port [1194]: 1194
Select a DNS server for the clients:
1) Current system resolvers
2) Google
3) 1.1.1.1
4) OpenDNS
5) Quad9
6) AdGuard
DNS server [1]: 1
Enter a name for the first client:
Name [client]: 192.168.8.1
OpenVPN installation is ready to begin.
|
等待程序的执行完毕 设置程序为开启自启动
1
|
systemctl enable openvpn-server@server.service
|
开放端口
如开启和使用了防火墙,请注意将 对应端口开放
1
2
|
iptables -A INPUT -p udp --sport 1194 -j ACCEPT
iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT
|
配置关联openldap
安装依赖包
1
|
apt install openvpn-auth-ldap # 如果是 centos 将前面命令更改为 yum 即可
|
安装完毕后,查看使用有如下 依赖库文件
1
2
|
ls -lh /usr/lib/openvpn/openvpn-auth-ldap.so
-rw-r--r-- 1 root root 126K Nov 7 2017 /usr/lib/openvpn/openvpn-auth-ldap.so
|
centos 下的文件路径为 /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so
配置文件增加配置
1
2
3
4
5
6
|
vi /etc/openvpn/server/server.conf # 在最后添加如下配置
plugin /usr/lib/openvpn/openvpn-auth-ldap.so "/etc/openvpn/server/ldap.conf"
client-cert-not-required
username-as-common-name
management 0.0.0.0 5555
|
增加 openldap配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
cat > /etc/openvpn/server/ldap.conf << EOF `# 注意修改下面对应的配置`
<LDAP>
URL ldap://192.168.8.1:389
BindDN cn=admin,dc=treesir,dc=pub
Password 123456
Timeout 15
TLSEnable no
FollowReferrals no
</LDAP>
<Authorization>
BaseDN "ou=users,dc=treesir,dc=pub"
SearchFilter "(uid=%u)"
RequireGroup false
</Authorization>
EOF
|
示例中 ldap 目录使用结构 参考文档
更改完成后,我们重启服务使其生效
1
2
|
service openvpn-server@server restart \
&& service openvpn-server@server status
|
测试验证
配置 nps 内网穿透的使用
将配置文件里的 remote
地址更改为公网地址,没有公网地址的话,可以使用第三方内网穿透工具实现, 下面示例将使用自建的 nps
作为演示
注意这个映射地址外面设置成了 21174
那么在对应的配置文件中也要相应更改成这个,还有就是协议需要 和安装时选择的对应上,我这里使用的是 udp
协议。
下载安装 vpn 时的客户端配置文件
1
|
sz -y /root/192_168_8_1.ovpn ## 默认在 用户的家目录中
|
编辑下载的配置文件
1
2
3
4
5
|
remote nps.treesir.pub 21194 # 将此地址更改为 公网地址,没有公网地址的话,可以使用第三方内网穿透工具实现
auth-user-pass # 添加用户密码认证
auth-nocache # 认证不缓存
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
|
手机端测试
将配置文件上传至手机端进行测试
可以看到手机端使用流量,测试也是正常可以访问到内网的。
部署 openldap dashboard
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
docker run --name openvpn-monitor \
-e OPENVPNMONITOR_DEFAULT_DATETIMEFORMAT="%%d/%%m/%%Y" \
-e OPENVPNMONITOR_DEFAULT_LATITUDE=-37 \
-e OPENVPNMONITOR_DEFAULT_LOGO=logo.jpg \
-e OPENVPNMONITOR_DEFAULT_LONGITUDE=144 \
-e OPENVPNMONITOR_DEFAULT_MAPS=True \
-e OPENVPNMONITOR_DEFAULT_SITE=Test \
-e OPENVPNMONITOR_SITES_0_ALIAS=UDP \
-e OPENVPNMONITOR_SITES_0_HOST=192.168.8.112 \
-e OPENVPNMONITOR_SITES_0_NAME=UDP \
-e OPENVPNMONITOR_SITES_0_PORT=5555 \
-e OPENVPNMONITOR_SITES_1_ALIAS=TCP \
-e OPENVPNMONITOR_SITES_1_HOST=192.168.8.112 \
-e OPENVPNMONITOR_SITES_1_NAME=TCP \
-e OPENVPNMONITOR_SITES_1_PORT=5555 \
--restart=always \
-p 8210:80 \
-d ruimarinho/openvpn-monitor
|
可以看到,dashboard 中的 remote ip
是 192.168.8.113,且map中无对应显示地址 ( map 更具 remote ip 显示 ), 这是因为我使用了内网穿透技术的缘故,企业中建议是绑定到对应的公网ip中,并使用 DNAT
作为端口映射,这样dashboard 中的 map 显示将呈现正常。
客户端软件下载
openvpn-install-2.4.8-I602-Win10
openvpn-install-2.4.6-I602-Win7
openvpn-android-install