OpenVPN,如何过滤客户端

OpenVPN,如何过滤客户端

我在使用 VPN 服务器限制“客户端”时遇到了问题。我阅读了有关使用 iptables 并禁用客户端到客户端选项的常见问题解答,但我无法运行它。

问题是如何正确地允许选定的客户端与其他网络进行通信。

这是我的 openvpn.conf 配置

    port 1194
    proto udp
    dev tun

    ca ./keys/ca.crt
    cert ./keys/hub.crt
    key ./keys/hub.key  # This file should be kept secret
    dh ./keys/dh1024.pem

    server 10.8.0.0 255.255.255.0
    ifconfig-pool-persist ipp.txt

    ### ADD ROUTES FOR OTHER IP

    route 10.8.1.0 255.255.255.0
    route 10.8.2.0 255.255.255.0
    route 10.8.3.0 255.255.255.0
    route 10.9.1.0 255.255.255.0

    push "route 10.8.1.0 255.255.255.0"
    push "route 10.8.2.0 255.255.255.0"
    push "route 10.8.3.0 255.255.255.0"
    push "route 10.9.1.0 255.255.255.0"

    # IF YOU WANT TO DISABLE OPTION TO CONNECT CLIENT TO CLIENT JUST PUT A HASH
    # client-to-client
    # CLIENT USING THEIR OWN CONFIG DIRECTORY
    client-config-dir ccd

    keepalive 10 120
    comp-lzo
    max-clients 200
    persist-key
    persist-tun
    status openvpn-status.log
    log         openvpn.log
    log-append  openvpn.log
    verb 3
    mute 20
    management localhost 7505

在 ccd 上

客户A有一条线

    ifconfig-push 10.8.1.9 10.8.1.10

客户B有一条线

    ifconfig-push 10.8.2.1 10.8.2.2

管理员从服务器范围 10.8.0.0 获取 IP

ETC。

认为 我创建了防火墙来选择哪些客户端能够相互通信

    ### firewall.sh
    # Enabled Forwarding
    echo 1 > /proc/sys/net/ipv4/ip_forward
    # this will clear all rules from FORWARD
    iptables -F FORWARD 
    # set default policy to drop all packets. 
    # After executing this command, the clients 
    # shouldn't be able to reach each other anymore
    iptables -P FORWARD DROP 
    # allow all active connections to pass
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
    # Sysadmin rule - Administrator getting full acess
    iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.8.1.0/24 -j ACCEPT
    iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.8.2.0/24 -j ACCEPT
    iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.8.3.0/24 -j ACCEPT
    iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.9.1.0/24 -j ACCEPT
    # Clients rules
    iptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 10.9.1.0/24 -j ACCEPT
    # Clients rules
    iptables -A FORWARD -i tun0 -s 10.8.2.0/24 -d 10.8.3.0/24 -j ACCEPT
    # Specific clients access
    iptables -A FORWARD -i tun0 -s 10.8.3.5 -d 10.8.2.1 -j ACCEPT

不幸的是这个规则不起作用。

所以最后一个问题是我做错了什么?

答案1

您无法使用该ccd功能进行此网络设置,因为您的 OpenVPN 服务器需要在您想要使用的每个子网中都有一个地址。

您应该运行多个 OpenVPN 副本,每个使用的 /24 子网一个。这样,每个 OpenVPN 服务器实例在子网中都有一个唯一的 IP 地址。

因此,例如对于子网 10.8.0.0/24,您将在配置中具有以下内容:

server 10.8.0.0 255.255.255.0

对于子网 10.8.1.0/24,您将拥有:

server 10.8.1.0 255.255.255.0

此后,您可以在这些子网之间设置防火墙规则。

相关内容