我尝试了这篇文章: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
禁用指令。
我有tun0
iface 和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否定其余一切。