Назад | Перейти на главную страницу

Как разрешить связь от клиента к клиенту на сервере OpenVPN?

Client 1: 192.168.255.3 не могу пинговать Client 2: 192.168.255.4
Как сделать так, чтобы Client 1 может общаться с Client 2?

`` ''

# cat /var/lib/docker/volumes/ovpn-data-example/_data/openvpn.conf

server 192.168.255.0 255.255.255.0
verb 3

key /etc/openvpn/pki/private/vpn.server.key
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/issued/vpn.server.crt
dh /etc/openvpn/pki/dh.pem
tls-auth /etc/openvpn/pki/ta.key

key-direction 0
keepalive 10 60
persist-key
persist-tun

proto udp
# Rely on Docker to do port mapping, internally always 1194
port 1194
dev tun0
status /tmp/openvpn-status.log

user nobody
group nogroup

client-to-client
topology subnet

### Route Configurations Below
route 192.168.255.0 255.255.255.0

### Push Configurations Below
push "route 192.168.255.0 255.255.255.0"
push "block-outside-dns"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Я использую openvpn на этот докер и цифровой океан vps.

У каждого клиента нет проблем с подключением к серверу, но ни один клиент не может пинговать другого клиента.

Скорее всего, вам потребуется создать правило брандмауэра, которое позволяет клиентам общаться друг с другом. Если вы просто хотите, чтобы они проверяли связь, вам нужно будет разрешить прохождение пакетов ICMP. Если вы хотите больше, чем ping, вам нужно будет указать дополнительные правила. Если вы используете правила iptables для разрешения межклиентского взаимодействия, избавьтесь от «клиент-клиент» в вашей конфигурации openvpn.

Например:

iptables -I INPUT -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT
iptables -I OUTPUT -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -m conntrack --cstate ESTABLISHED,RELATED -j ACCEPT

iptables -I FORWARD -s 192.168.255.3 -d 192.168.255.4 -p ICMP --cstate NEW -j ACCEPT
iptables -I FORWARD -s 192.168.255.4 -d 192.168.255.3 -p ICMP --cstate NEW -j ACCEPT

Первые три правила предписывают брандмауэру разрешить соединения, которые связаны с уже установленными соединениями.

Последние два позволяют пересылать пакеты ICMP (ping) от одного клиента к другому.

Как добавить правило брандмауэра Windows для обеспечения взаимодействия между клиентом через OpenVPN

Откройте PowerShell с правами администратора и введите:

New-NetFirewallRule -DisplayName “OpenVPN allow Inbound” -Direction Inbound -Program %ProgramFiles%\OpenVPN\bin\openvpn.exe -RemoteAddress LocalSubnet -Action Allow
New-NetFirewallRule -DisplayName “OpenVPN allow Outbound” -Direction Outbound -Program %ProgramFiles%\OpenVPN\bin\openvpn.exe -RemoteAddress LocalSubnet -Action Allow
Set-NetFirewallProfile Public -DefaultInboundAction Allow -DefaultOutboundAction Allow

теперь каждый подключенный клиент должен иметь возможность пинговать вас

Необязательно: чтобы узнать, был ли он добавлен, откройте брандмауэр Защитника Windows: wf.msc.