我想限制 VPN 用户对单个 LAN 的访问。我一直在尝试client-config-dir
在 server.conf 中解决问题,但无法使其正常工作。
+---------+ +---------+
| client1 | | client2 |
+---------+ +---------+
\ /
+---------+
| server | 10.10.1.23
+---------+
|
+---------+
| vpc | 10.10.0.0/16
+---------+
|
+---------+
| local | 10.10.0.112
+---------+
+-------------------------------+
| VPC | subnet | region |
+------+------------+-----------+
| vpc0 | 10.10.0.0/16 | region0 |
+------+-------------+----------+
使用我当前的 openvpn 设置,我能够连接到 VPC 后面的所有实例。但是我需要client1只能访问机器10.10.0.112和client2只能访问机器10.10.0.222。我一直在玩ccd
指令和 iptables,但无法理解它。
我的 OpenVPNserver.conf
port 1194
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.10.0.2"
push "redirect-gateway def1 bypass-dhcp"
dh none
client-config-dir /etc/openvpn/ccd
ecdh-curve prime256v1
tls-crypt tls-crypt.key 0
crl-verify crl.pem
ca ca.crt
cert server_4nP1zpKP5eaV6jEz.crt
key server_4nP1zpKP5eaV6jEz.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
log-append /home/ubuntu/openvpn.log
status /var/log/openvpn/status.log
verb 3
client1.ovpn
client
proto udp
remote **.**.***.*** 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_4nP1zpKP5eaV6jEz name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3
服务器的路由表 netstat -nr
0.0.0.0 10.10.1.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.10.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
IP 路由ip route
default via 10.10.1.1 dev eth0
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
10.10.1.0/24 dev eth0 proto kernel scope link src 10.10.1.140
客户的CCD
需要client-config-dir的帮助,只希望client1能够访问10.10.0.112,目前可以访问VPN服务器后面的所有局域网机器。
客户端IPTABLE
iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.10.0.112 -j ACCEPT
如果有人能指出我正确的方向,将不胜感激。
您应该为客户端分配固定 IP。例如
ccd/client1
可能包含:通过这种方式,客户端仅接收到一个固定地址 (
10.8.0.112
) 和一个用于主机的路由10.10.0.112
。客户端当然可以覆盖服务器发送的配置并添加一些自己的配置,例如:服务器将丢弃来自 的所有数据包
client1
,这些数据包没有地址,10.8.0.112
因此该ifconfig
指令将不起作用,但这不是安全功能,而是技术限制。另一方面,该route
指令将按要求工作。因此,您需要在 VPN 服务器上添加防火墙规则: