LINUX.ORG.RU
ФорумAdmin

Как пустить интернет через Openvpn клиента

 ,


0

1

Здравствуйте! Есть два vps сервера, VPS 1 серверу частично ограничен выход в интернет и к нему подключены клиенты, но входящие соединения все проходят ограничений нет. VPS 2 сервер полностью открыт весь интернет, но клиентам которые подключены к vps 1 серверу нет к нему доступа. Как можно подключить VPS 2 сервер клиентом к VPS 1 серверу и пустить через него интернет остальным клиентам. https://prnt.sc/mtWJ9alv1TYI

Ответ на: комментарий от sasha_ld

А, ну смотри, тебе надо пробросить тоннель между впсками. Потом все очень просто, парой-тройкой команд.

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

Создал на VPS 1 сервер

local some-server.org
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 77.88.8.8"
push "dhcp-option DNS 9.9.9.9"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.26.56.26"
push "block-outside-dns"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nobody
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify

тут перенаправляется весь трафик с клиентов, но как сделать чтобы интернет проходил через клиента?

push "redirect-gateway def1 bypass-dhcp"
sasha_ld
() автор топика
Ответ на: комментарий от sasha_ld

Нафейхуа ты конфиги какие то сюда выложил? Ты соединил впски тоннелем? Если да - раскладку адресов в студию!

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian
Сервер 10.8.0.1
Клиент1 10.8.0.2
Клиент2 10.8.0.3

Как перенаправить весь траффик через клиента1, чтобы клиент 2 выходил в сеть через первого?

sasha_ld
() автор топика
Ответ на: комментарий от Anoxemian

server

tun0 10.8.0.1

client1

tun0 10.8.0.2

client2

tun0 10.8.0.3

На сервере ввел правило

iptables -t nat -A POSTROUTING -o tun0 -s 10.8.0.3 -j SNAT --to-source 10.8.0.2

На клиенте 1

iptables -t nat -A POSTROUTING -o tun0 -s 10.8.0.2 -j SNAT --to-source "внешний ip"

Клиенты между собой пингуются, но при проверке ip на втором клиенте выводится тот что и был, через клиента 1 траффик не идет. Что я делаю не так? Нужно ли включать в конфиге сервера опцию

push "redirect-gateway def1 bypass-dhcp"
sasha_ld
() автор топика
Ответ на: комментарий от Anoxemian

Занимаюсь чтобы обойти блокировку сайтов интернет провайдером, сменить провайдера не могу, он один на страну, эникея нет. Исходящие подключения от сервера до клиента1 не проходят, а наоборот от клиента до сервера да. Поэтому хочу пустить весь интернета для остальных клиентов через первго.

sasha_ld
() автор топика
Ответ на: комментарий от Anoxemian

Начал все сначала.

Openvpn сеть

10.8.0.0/24

Openvpn сервер

eth0 50.50.50.50
tun0 10.8.0.1

Client1

tun0 10.8.0.200

Client2 (через него нужно выходить в интернет)

eth0 60.60.60.60
tun0 10.8.0.254

Конфигурация сервера

local 50.50.50.50
port 443
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-GCM
user nobody
group nobody
persist-key
persist-tun
verb 3
crl-verify crl.pem
status /etc/openvpn/server/status.log
log /etc/openvpn/server/ovpn.log
client-config-dir /etc/openvpn/server/ccd

конфиг Client1

push "topology subnet"
ifconfig-push 10.8.0.200 255.255.255.0

конфиг Client2

push-reset
push "topology subnet"
ifconfig-push 10.8.0.254 255.255.255.0
iroute 0.0.0.0 0.0.0.0

Далее на сервере проделал следующее

echo "200 vpnclient" >> /etc/iproute2/rt_tables
ip route add 10.08.0.0/24 dev tun0 src 10.8.0.1 table vpnclient
ip route add default via 10.8.0.254 dev tun0 table vpnclient
ip rule add from 10.8.0.200/32 table vpnclient
ip rule add to 10.8.0.200/32 table vpnclient
ip route flush cache 

После этого клиенты подключаются, пигнуются между собой, но на Client2 в tcpdump -i tun0 ничего Дальше на сервере ввел правило

iptables -t nat -A PREROUTING -i tun0 -s 10.8.0.200 -j DNAT --to-destination 10.8.0.254

На Client2

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 60.60.60.60

Пакеты на Client2 появились tcpdump -i tun0

8:38:29.386151 IP 10.8.0.200.51515 > client2.5351: UDP, length 60
18:38:29.461997 IP 10.8.0.200.45324 > client2.domain: 29495+ A? kv601.prod.do.dsp.mp.microsoft.com. (52)
18:38:29.615888 IP 10.8.0.200.65397 > client2.domain: 3950+ A? v10.events.data.microsoft.com. (47)
18:38:29.862947 IP 10.8.0.200.55383 > client2.domain: 20646+ A? wpad.beeline. (30)
18:38:29.863002 IP client2 > 10.8.0.200: ICMP client2 udp port domain unreachable, length 66
18:38:30.127900 IP 10.8.0.200.11811 > client2.domain: 59036+ A? bt3.t-ru.org. (30)
18:38:30.637075 IP 10.8.0.200.51515 > client2.5351: UDP, length 60
18:38:31.475957 IP 10.8.0.200.65519 > client2.domain: 29495+ A? kv601.prod.do.dsp.mp.microsoft.com. (52)
18:38:31.476023 IP client2 > 10.8.0.200: ICMP client2 udp port domain unreachable, length 88
18:38:31.476768 IP 10.8.0.200.45324 > client2.domain: 29495+ A? kv601.prod.do.dsp.mp.microsoft.com. (52)
18:38:31.629376 IP 10.8.0.200.60819 > client2.domain: 3950+ A? v10.events.data.microsoft.com. (47)
18:38:31.629961 IP 10.8.0.200.65397 > client2.domain: 3950+ A? v10.events.data.microsoft.com. (47)
18:38:32.140961 IP 10.8.0.200.51515 > client2.5351: UDP, length 60
18:38:32.141027 IP client2 > 10.8.0.200: ICMP client2 udp port 5351 unreachable, length 96
18:38:32.141478 IP 10.8.0.200.64152 > client2.domain: 59036+ A? bt3.t-ru.org. (30)
18:38:32.141529 IP 10.8.0.200.11811 > client2.domain: 59036+ A? bt3.t-ru.org. (30)
18:38:33.869993 IP 10.8.0.200.57426 > client2.domain: 42815+ A? www.msftconnecttest.com. (41)
18:38:33.870057 IP client2 > 10.8.0.200: ICMP client2 udp port domain unreachable, length 77
18:38:33.901916 IP 10.8.0.200.51515 > client2.5351: UDP, length 60
18:38:33.901979 IP client2 > 10.8.0.200: ICMP client2 udp port 5351 unreachable, length 96
18:38:34.877544 IP 10.8.0.200.37417 > client2.domain: 42815+ A? www.msftconnecttest.com. (41)
18:38:34.877626 IP client2 > 10.8.0.200: ICMP client2 udp port domain unreachable, length 77
18:38:35.484699 IP 10.8.0.200.65519 > client2.domain: 29495+ A? kv601.prod.do.dsp.mp.microsoft.com. (52)
18:38:35.524774 IP 10.8.0.200.45324 > client2.domain: 29495+ A? kv601.prod.do.dsp.mp.microsoft.com. (52)
18:38:35.641804 IP 10.8.0.200.60819 > client2.domain: 3950+ A? v10.events.data.microsoft.com. (47)
18:38:35.642384 IP 10.8.0.200.65397 > client2.domain: 3950+ A? v10.events.data.microsoft.com. (47)
18:38:35.889436 IP 10.8.0.200.37417 > client2.domain: 42815+ A? www.msftconnecttest.com. (41)
18:38:35.889513 IP client2 > 10.8.0.200: ICMP client2 udp port domain unreachable, length 77
18:38:35.904666 IP 10.8.0.200.51515 > client2.5351: UDP, length 60

Но на Client1 по прежнему ничего не открывается, хотя в консоли пингуется 8.8.8.8

sasha_ld
() автор топика
Ответ на: комментарий от sasha_ld

тонну лишнего нагородил. включи ip_forward на клиенте2 остальное вечером посмотрю

push "redirect-gateway def1 bypass-dhcp" удали

client1 добавь push route 0.0.0.0 10.8.0.254 тебе же через него надо.

все что нагородил с pbr на сервере тоже удали

iptables -t nat -A PREROUTING -i tun0 -s 10.8.0.200 -j DNAT --to-destination 10.8.0.254 эту дичь тоже удали

Anoxemian ★★★★★
()
Последнее исправление: Anoxemian (всего исправлений: 3)
Ответ на: комментарий от Anoxemian

ipforward включен как на сервере так и на client2

[root@client2 ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@client2 ~]# 
[root@vds2345971 server]# sysctl -p
net.ipv4.ip_forward = 1
[root@vds2345971 server]# 

pbr удалил, таблицы очистил

sasha_ld
() автор топика
Ответ на: комментарий от sasha_ld

Отлично, на клиенте 1 у тебя должна быть теперь 0.0.0.0/0 через 10.8.0.254 а на клиенте2 0.0.0.0/0 через eth0 и включенный НАТ. Пользуйся.

Anoxemian ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.