配置 OpenVPN 以通过操作系统阻止客户端?

配置 OpenVPN 以通过操作系统阻止客户端?

有没有办法配置 OpenVPN 服务器,以便它限制通过操作系统连接到它的客户端?

我们目前使用 OpenVPN 服务器将笔记本电脑连接到 AWS 上的服务器(在 VPC 中运行)。我们的一位客户要求我们禁止移动设备进行 VPN 访问 - 因此我们想阻止 Android、iOS 和 Windows Phone 客户端。

答案1

如果使用错误的操作系统,请使用 IV_PLAT 对等信息和连接脚本(在服务器上)拒绝连接(以非零退出)

这里有一点解释:https://books.google.co.uk/books?id=_1MoDwAAQBAJ&pg=PA318&lpg=PA318&dq=openvpn+peer+info+as+environment+variable&source=bl&ots=CIue3PwB-g&sig=ACfU3U1QW1IKrjiRPyRyBRM1wC6GQlNVeg&hl=en&sa=X&ved=2ahUKEwjawdOe-JfqAhVzsHEKHetZDKwQ6AEwBnoECAwQAQ#v=onepage&q=openvpn%20peer%20info%20as%20environment%20variable&f=false

复制/粘贴至此处,以供子孙后代使用。

  1. 将以下行附加到 basic-udp-server.conf 服务器配置文件:

    script-security 2 
    client-connect /etc/openvpn/cookbook/example9-11.sh
    
  2. 接下来创建连接脚本:/etc/openvpn/cookbook/example9-11.sh

     #!/bin/bash
     # Redirect the default gateway for all Android clients 
     if [ "x_${IV_PLAT}" = "x_android" ] then
       echo "push "redirect-gateway def1" >> $1
     fi
    

您可能希望将“echo”命令更改为“exit 99”或类似命令,这将断开客户端连接。(我还没有尝试过。)并且显然对 conf 文件和脚本使用不同的名称!

答案2

因此,如果你有权访问 OpenVPN 服务器,你可以使用以下命令阻止那里的请求被动操作系统指纹识别。奥斯福将您的桌面操作系统列入白名单。

我将针对 Centos 编写此代码,因为这是我使用过它的时候。您将安装应用程序 nfnl_osf,然后安装 OpenBSD 的指纹签名数据库来帮助匹配机器。

yum -y install libpcap libpcap-devel iptables-utils
wget http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/etc/pf.os?rev=1.27 -O /usr/libexec/iptables/pf.os
nfnl_osf -f /usr/libexec/iptables/pf.os

完成设置后,我们将数据库导入 iptables,然后运行下面的 iptables 命令来运行检查。

iptables -I INPUT -j ACCEPT -p udp --dport 1194 -m osf --genre Windows --log 2 --ttl 2    
iptables -I INPUT -j ACCEPT -p udp --dport 1194 -m osf --genre Mac --log 2 --ttl 2     
iptables -A INPUT -p udp --dport 1194 -j DROP

希望有帮助!

答案3

OpenVPN通过...将客户端信息推送到服务器--push-peer-info。客户端操作系统是被推送的元素之一,理论上可以用来根据预期/阻止的客户端操作系统来筛选连接。

服务器日志示例:

Tue Dec 19 13:21:42 2017 us=348489 v3.rsa.anet.cli.lx64/x.4.232.194:51806 peer info: IV_PLAT=linux
Tue Dec 19 13:21:42 2017 us=348521 v3.rsa.anet.cli.lx64/x.4.232.194:51806 peer info: IV_PROTO=2
Tue Dec 19 13:21:42 2017 us=348551 v3.rsa.anet.cli.lx64/x.4.232.194:51806 peer info: IV_NCP=2
Tue Dec 19 13:21:42 2017 us=348580 v3.rsa.anet.cli.lx64/x.4.232.194:51806 peer info: IV_LZ4=1
Tue Dec 19 13:21:42 2017 us=348608 v3.rsa.anet.cli.lx64/x.4.232.194:51806 peer info: IV_LZ4v2=1
Tue Dec 19 13:21:42 2017 us=348636 v3.rsa.anet.cli.lx64/x.4.232.194:51806 peer info: IV_LZO=1

相关内容