OpenVPN使用故障收录

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 运维系列

OpenVPN高级进阶

OpenVPN服务是一个比较老的服务了,但是作为一个核心的基础服务我觉得还是有必要认真仔细的掌握和理解,并且能根据其自身的功能优化和配置出我们需要的场景,只要能解决实际的问题场景,对我们来说就是有价值的,下面通过几个场景聊一下OpeVPN的高阶配置选项:

背景:

  1. 公司内部网段是192.168.99.0/24
  2. 所有人允许访问反向代理主机为192.168.99.130,但不能访问其他服务器;
  3. 特定的用户允许访问数据库服务器192.168.99.131,不能访问其他服务器;
  4. 管理员能访问所有公司内网服务器

场景1 限制主机访问

我们不需要VPN客户端访问VPN服务端所在集群中的所有其他主机,允许某些特定的VPN客户端访问指定的内网主机资源的时候,我们需要在客户端无感知的情况下对VPN服务端做一些设置满足以上场景:

更新服务端的配置,将VPN地址池的网段划分为管理员网段、客户组网段、普通网络:

# 在Openvpn服务端配置文件server.conf增加:
#10.8.0.0是给所有VPN客户端的IP段;
server 10.8.0.0 255.255.255.0
#10.8.1.0是给管理员分配的IP段;
server 10.8.1.0 255.255.255.0
#10.8.2.0就是给特定用户组分配的IP段;
server 10.8.2.0 255.255.255.0
#下面是定义服务器读取特殊客户端配置文件的目录为ccd,ccd是与Openvpn服务端配置文件同级目录中的ccd目录
client-config-dir ccd

然后给管理员配置访问网络

cat ccd/sysadmin1
ifconfig-push 10.8.1.1 10.8.1.2

客户组网络:

cat ccd/kehugroup
ifconfig-push 10.8.2.1 10.8.2.2

这里需要注意的是, ccd目录下的文件名就是用户的Common Name,OpenVPN是根据该名称来获得指定客户端的,客户端的IP地址不是任意指定的,由于Windows的TAP驱动必须采用/30网段的IP,为兼容该协议,应从特定的IP地址中选择,而且是成组出现的。

最后在完成网络的划分之后,在OpenVPN端进行Iptables限制:

iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 192.168.99.130 -j ACCEPT
iptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 192.168.99.0/24 -j ACCEPT
iptables -A FORWARD -i tun0 -s 10.8.2.0/24 -d 192.168.99.131 -j ACCEPT

场景2 打通OpenVPN客户端与服务端的内网

#让所有客户端都增加到内网192.168.99.0/24的路由
push "route 192.168.99.0 255.255.255.0"
# 让所有的客户端都能访问仅允许服务端访问的网站(约束白名单)
push "route 39.156.69.79 255.255.255.255"
# 向客户端推送增加访问服务端子网的192.168.10.0/24的路由,注意服务端的IP是否是子网的网关,否则需要在子网网关处添加到达192.168.99.0的路由(客户端也是如此)
push "route 192.168.10.0 255.255.255.0"

在子网网关处添加路由

route add -net 192.168.99.0 mask 255.255.255.0 gw 192.168.10.254 dev ens160

场景3 OpenVPN提供DHCP与DNS

OpenVPN内部提供了DHCP的服务,而不需要依赖外部的DHCP服务器。同样,也提供了DHCP服务的一些配置参数

# openvpn服务端的配置
#定义客户端的DNS服务器地址
push "dhcp-option DNS 114.114.114.114" # 这是首选DNS
push "dhcp-option DNS 8.8.8.8" # 这是备选DNS
#定义客户端的WINS服务器地址
push "dhcp-options WINS 192.168.228.1" # 这是设置IP和主机名之间的映射与IP和域名之间的映射不同,较少使用
#让客户端发起的所有IP请求都通过OpenVPN服务器,可用于全局代理使用,启用后会出现浏览器内打不开网站等情况
push "redirect-gateway def1 bypass-dhcp"

场景4 添加LDAP认证

通常情况下,OpenVPN客户端都需要通过SSL连接的,因此客户端必须要有ca证书,服务端可以通过设置client-cert-not-required让客户端不配置证书。但是一般通过OpenLDAP认证是最方便的事情:

  1. 安装LDAP`模块的配置
yum install openvpn-auth-ldap -y
[root@vpn ~]# ls -al /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so
-rwxr-xr-x 1 root root 133320 Sep  6  2020 /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so
  1. 准备ldap认证的配置文件/etc/openvpn/auth/ldap.conf
mkdir -p /etc/openvpn/auth
cd $_ && touch ldap.conf

下面是ldap.conf的配置文件

[root@vpn ~]# cat /etc/openvpn/auth/ldap.conf
<LDAP>
    # LDAP server URL
    URL        ldap://192.168.99.130
    # Bind DN (If your LDAP server doesn't support anonymous binds)
    BindDN        cn=openvpn,dc=openldap,dc=kubemaster,dc=top
    Password    openvpnuserpasswd
    # Network timeout (in seconds)
    Timeout        15
    # Enable Start TLS
    #TLSEnable    no
    # Follow LDAP Referrals (anonymously)
    #FollowReferrals no
    # TLS CA Certificate File
    #TLSCACertFile    /usr/local/etc/ssl/ca.pem
    # TLS CA Certificate Directory
    #TLSCACertDir    /etc/ssl/certs
    # Client Certificate and key
    # If TLS client authentication is required
    #TLSCertFile    /usr/local/etc/ssl/client-cert.pem
    #TLSKeyFile    /usr/local/etc/ssl/client-key.pem
    # Cipher Suite
    # The defaults are usually fine here
    # TLSCipherSuite    ALL:!ADH:@STRENGTH
</LDAP>

<Authorization>
    # Base DN
    BaseDN        "ou=People,dc=openldap,dc=kubemaster,dc=top"
    # User Search Filter
    SearchFilter    "(&(uid=%u))" # uid或者cn一般都可以,根据自己的条件

    # Require Group Membership
    RequireGroup    false # 是否启用组成员关系

    # Add non-group members to a PF table (disabled)
    #PFTable    ips_vpn_users

    <Group>
        BaseDN        "ou=Groups,dc=example,dc=com"
        SearchFilter    "(|(cn=developers)(cn=artists))"
        MemberAttribute    uniqueMember
        # Add group members to a PF table (disabled)
        #PFTable    ips_vpn_eng
    </Group>
</Authorization>

在完成ldap的配置之后,只需要在服务端增加以下配置即可:

client-cert-not-required
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/auth/ldap.conf"
username-as-common-name

这样就完成了基于openldap认证的OpenVPN客户端的用户鉴权。

疑难杂症

  1. VPN每隔10s左右会重新连接

基于密码认证的VPN出现每隔10s重新连接,说明你的账号在别的设备上进行登录了。请检查是否存在改情况并建议及时的修改密码。

  1. Mac上的Tunnelblick总是处于不断认证的状态

image-20200620123753245

出现这种情况说明你的Tunnelblick的版本太低,需要你及时的更新该软件的版本,就可以解决,TunnelBlick下载地址

  1. Window上使用OpenVPN客户端连接时出现SSL ERROR

出现这种问题说明你的Window上的OpenVPN客户端版本太低,需要重新下载客户端并且使用管理员身份安装和启动。

  1. Window上使用OpenVPN客户端连接时出现windows route add command failed

出现这种问题,属于打开VPN客户端的时候没有使用管理员身份打开,没有添加路由的权限。

  1. 使用OpenVPN连接出现身份验证失败

出现这种问题,这是属于你的用户名或者密码填写错误,认真检查账户信息或者找相关技术负责人重新修改密码。

相关文章
|
6月前
|
安全 前端开发 网络协议
百度搜索:蓝易云【pfSense使用HAProxy+ACME反向代理设置教程】
这些是使用pfSense的HAProxy和ACME插件设置反向代理的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
110 1
|
安全
阿里云服务器被xmrigMiner及pnscan及伪装httpd的病毒入侵排查记录
阿里云服务器被xmrigMiner及pnscan及伪装httpd的病毒入侵排查记录
944 0
|
监控 应用服务中间件 PHP
ly~
|
1月前
|
缓存 监控 安全
反向代理服务器的常见故障有哪些?
反向代理服务器常遇到的故障包括配置错误、网络问题、性能瓶颈及安全漏洞。配置相关故障如错误监听端口、域名配置不当及代理转发规则错误,可使用`netstat -tuln`检查端口状态,并验证域名及DNS解析。网络故障涉及连接中断和带宽不足,利用`ping`和`traceroute`检测连通性,用`iftop`监控带宽。性能问题如资源耗尽和缓存不一致需通过`top`监控资源使用,并检查缓存策略。安全故障包括DDoS攻击和配置漏洞,应使用流量分析工具检测异常并加强安全配置,确保SSL/TLS加密和访问控制策略正确无误。
ly~
114 3
|
6月前
|
监控 Linux 网络安全
百度搜索:蓝易云【CentOS7如何使用fail2ban防范SSH暴力破解攻击?】
请注意,fail2ban还有其他功能和配置选项可供使用,您可以进一步定制以满足您的需求。您可以查阅fail2ban的官方文档或其他资源以了解更多详细信息和配置选项。
77 1
|
网络协议
Win系统 - 排查 DNS 引起的问题
Win系统 - 排查 DNS 引起的问题
82 0
|
负载均衡 监控 网络协议
我个人的分布式集群问题集锦,nginx/lvs/dns/cdn(★firecat推荐★)
我个人的分布式集群问题集锦,nginx/lvs/dns/cdn(★firecat推荐★)
485 0
我个人的分布式集群问题集锦,nginx/lvs/dns/cdn(★firecat推荐★)
|
应用服务中间件 nginx 容器
Nginx学习之如何防止流量攻击
使用场景 最近,报告查询系统负载均衡集群相关配置已经完成,两种实现方式分别是基于Ehcache和Redis的session管理策略。 大家都知道服务器资源有限的,但是客户端来的请求是无限的(不排除恶意攻击), 为了保证大部分的请求能够正常响应,不得不放弃一些客户端来的请求,所以我们会采用Nginx的限流操作, 这种操作可以很大程度上缓解服务器的压力, 使其他正常的请求能够得到正常响应。
3710 0
|
安全 Linux 应用服务中间件
nginx网站漏洞该如何修复 加强服务器的安全防护
服务器的安全防护中,网站环境的搭建与安全部署也是很重要的一部分,目前大多数的服务器都使用的是nginx来搭建网站的运行环境,包括windows服务器,linux服务器都在使用,nginx的安全设置对于服务器安全起到很重要的作用。
1718 0