Iptables

openvpn:無法使用 iptables 控制客戶端到客戶端的連接

  • September 14, 2017

我試過這篇文章: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
鏈輸入(策略接受)
目標 prot opt 源目標

Chain FORWARD(政策接受)
目標 prot opt 源目標
DOCKER-USER all——任何地方任何地方
Docker-ISOLATION all -- 任何地方任何地方
接受所有——任何地方任何地方 ctstate RELATED,ESTABLISHED
DOCKER all -- 任何地方的任何地方
接受所有——任何地方的任何地方
接受所有——任何地方的任何地方
接受所有——任何地方任何地方 ctstate RELATED,ESTABLISHED
DOCKER all -- 任何地方的任何地方
接受所有——任何地方的任何地方
接受所有——任何地方的任何地方

鏈輸出(策略接受)
目標 prot opt 源目標

鏈碼頭(2 參考)
目標 prot opt 源目標

鏈 DOCKER-ISOLATION (1 參考)
目標 prot opt 源目標
DROP all - 任何地方的任何地方
DROP all - 任何地方的任何地方
全部返回——任何地方任何地方

鏈 DOCKER-USER (1 參考)
目標 prot opt 源目標
全部返回——任何地方任何地方

每個客戶端在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

然後我為 2 個客戶端可以互相聯繫設置轉發規則:

iptables -A 轉發 -s 10.8.0.10 -d 10.8.0.102 -j 接受
iptables -A FORWARD -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 Len ID Flg off TTL Pro cks Src Dst
4 5 00 5400 29e3 0 0000 3d 01 8749 192.168.1.103 10.8.0.102

192.168.1.103 - 是我的區域網路地址

這是我在 Mac 上的路由表:

➜ ~ netstat -no
路由表

網際網路:
目標網關標誌 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 洛0
127.0.0.1 127.0.0.1 胡 24 2286 洛0
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 標誌 Metric Ref Use 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 碼頭工人0
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

我錯過了什麼?

提前致謝!

我終於讓它工作了!

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

之後,我可以創建任意 iptables 轉發規則(就像我在上面的文章中所做的那樣),然後添加

iptables -A FORWARD -j DROP

否認其他一切。

引用自:https://serverfault.com/questions/873614