openvpn:无法使用 iptables 控制客户端到客户端的连接

openvpn:无法使用 iptables 控制客户端到客户端的连接

我尝试了这篇文章:http://backreference.org/2010/05/02/controlling-client-to-client-connections-in-openvpn/但没有运气。

我是 iptables 新手。您能帮我看一下我的配置吗?

Docker 容器(我正在使用这个:https://github.com/kylemanna/docker-openvpn) 运行于主持人网络模式

我正在使用firewalld已禁用以及iptables已安装并启用的 Centos7。

ip_forward 已启用。

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

redirect-gateway def1已关闭,因为我不需要通过 vpn 服务器路由互联网流量。

这是初始 iptables 规则。

[root]# iptables -L
链输入(策略接受)
目标 保护 优化 源 目标

链转发(策略接受)
目标 保护 优化 源 目标
DOCKER-USER 全部 -- 任何地方 任何地方
DOCKER-ISOLATION 全部--任何地方 任何地方
接受所有 -- 任何地方 任何地方 ctstate 相关,已建立
DOCKER all--任何地方
接受所有 -- 任何地方 任何地方
接受所有 -- 任何地方 任何地方
接受所有 -- 任何地方 任何地方 ctstate 相关,已建立
DOCKER all--任何地方
接受所有 -- 任何地方 任何地方
接受所有 -- 任何地方 任何地方

链输出(策略接受)
目标 保护 优化 源 目标

Chain DOCKER(2 个引用)
目标 保护 优化 源 目标

链 DOCKER-ISOLATION (1 引用)
目标 保护 优化 源 目标
DROP all -- 任何地方
DROP all -- 任何地方
返回全部 -- 任意位置 任意位置

Chain DOCKER-USER (1 个引用)
目标 保护 优化 源 目标
返回全部 -- 任意位置 任意位置

每个客户端在目录中都有一个配置文件,ccd其中包含一个静态 IP。下面是我为其中一个客户端执行的操作ifconfig-push 10.8.0.102 10.8.0.1

在我的系统中,openvpn.conf我已client-to-client禁用指令。

我有tun0iface 和10.8.0.0/24网络。

首先,我允许已经建立的连接: iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

然后我设置了转发规则以使两个客户端可以互相访问:

iptables -A 转发 -s 10.8.0.10 -d 10.8.0.102 -j 接受
iptables -A 转发 -s 10.8.0.102 -d 10.8.0.10 -j 接受

毕竟它不起作用。当我ping 10.8.0.102从我的 MAC(其 IP 为 10.8.0.10)执行时,我得到:

➜〜ping 10.8.0.102
PING 10.8.0.102 (10.8.0.102): 56 个数据字节
来自 gwr-vl-201.**** (***.**.**.133) 的 36 个字节:过滤器禁止通信
Vr HL TOS 镜头 ID Flg off TTL Pro cks 源目标
 4 5 00 5400 29e3 0 0000 3d 01 8749 192.168.1.103 10.8.0.102

192.168.1.103-是我的 LAN 地址

这是我在 Mac 上的路由表:

➜ ~ netstat -nr
路由表

互联网:
目标网关标志 Refs 使用 Netif 过期
默认 192.168.1.1 UGSc 65 0 en0
10.8.0.1 10.8.0.10 UH 0 0 utun1
46.101.242.41/32 192.168.1.1 UGSc 0 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 24 2286 lo0
169.254 链接#4 UCS 0 0 en0
192.168.1 链路#4 UCS 0 0 en0
192.168.1.1/32 链路#4 UCS 2 0 en0
192.168.1.1 84:16:f9:c5:c4:da UHLWIir 63 26 en0 1043
192.168.1.103/32 链路#4 UCS 0 0 en0
224.0.0/4 链接#4 UmCS 1 0 en0
224.0.0.251 1:0:5e:0:0:fb UHmLWI 0 0 en0
255.255.255.255/32 链路#4 UCS 0 0 en0

我在服务器上的路由表:

[]# 路线 -n
内核 IP 路由表
目标网关 Genmask 标志 指标参考使用 Iface
0.0.0.0 217.182.88.1 0.0.0.0 UG 100 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-44c0269fbf91
217.**.**.1 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
217.**.**.**1 0.0.0.0 255.255.255.255 UH 100 0 0 eth0

我错过了什么?

提前致谢!

答案1

我终于让它工作了!

我所要做的就是添加push "route 10.8.0.0 255.255.255.0"到服务器配置。

之后,我可以创建任意的 iptables 转发规则(就像我在上面的帖子中所做的那样),然后添加

iptables -A FORWARD -j DROP
否定其余一切。

相关内容