LINUX.ORG.RU
ФорумAdmin

OpenVPN. Клиент не подключается к другому клиенту по локальному адресу.

 ,


0

1

Всем привет. Сильно не пинайте, с линуксами общаюсь раз в 1000 лет, поэтому прошу помощи. Дано: Сервер на центосе 7 с двумя сетевками. В первую прилетает интернет от провайдера (enp1s0), вторая раздает интернет в локалку (enp0s25). На сервере поднят OpenVPN и надо некоторым клиентам разграничивать доступ к внутренним ресурсам. Допустим: есть клиент1 (Я), получаю доступ к внутренним ресурсам сети просто зная их айпишники (у клиента настроен push route), и есть клиент2 (любой другой юзер), который может получать только доступ к серваку и другим клиентам по адресу, который выдает OpenVPN (по-дефолту 10.8.0.0/21). Недавно организовал файлопомойку, имеет айпи внутри сети 192.168.254.252, т.е. клиент1 до нее спокойно добирается. Необходимо, чтоб клиент2 до нее добрался, но не по внутреннему айпи. Что я сделал: поставил на файлопойку OpenVPN в режиме клиента и присвоил ему айпи 10.8.0.122. Теперь все работает чудесно, НО, при установленном соединении файлопомойки с VPN-сервером клиент1 не попадает на файлопойку по адресу 192.168.254.252, пинги тоже не идут, но зато заходит по 10.8.0.122. ОСь файлопомойки тоже центос 7.

Конфиги
iptables сервера


*nat
:PREROUTING ACCEPT [382685:29808226]
:INPUT ACCEPT [154164:8559112]
:OUTPUT ACCEPT [101900:7485766]
:POSTROUTING ACCEPT [32695:2018902]
-A PREROUTING -i enp1s0 -p tcp -m tcp --dport 9091 -j DNAT --to-destination 192.168.254.252:9091
-A POSTROUTING -s 10.8.0.0/21 -o enp1s0 -j MASQUERADE
-A POSTROUTING -o enp1s0 -j MASQUERADE
-A POSTROUTING -o tun1 -j MASQUERADE
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
# Completed on Thu Feb 24 11:36:49 2022
# Generated by iptables-save v1.4.21 on Thu Feb 24 11:36:49 2022
*mangle
:PREROUTING ACCEPT [54671417:35040618987]
:INPUT ACCEPT [29483907:5558585469]
:FORWARD ACCEPT [25187469:29482027078]
:OUTPUT ACCEPT [42679054:46943358989]
:POSTROUTING ACCEPT [67866944:76425484586]
COMMIT
# Completed on Thu Feb 24 11:36:49 2022
# Generated by iptables-save v1.4.21 on Thu Feb 24 11:36:49 2022
*filter
:INPUT DROP [62241:6211400]
:FORWARD ACCEPT [9526010:7318252668]
:OUTPUT ACCEPT [36136095:44539203773]
:f2b-asterisk-tcp - [0:0]
:f2b-asterisk-udp - [0:0]
-A INPUT -p udp -m multiport --dports 5060,5061,5065 -j f2b-asterisk-udp
-A INPUT -p tcp -m multiport --dports 5060,5061,5065 -j f2b-asterisk-tcp
-A INPUT -p udp -m multiport --dports 5060,5061,5065 -j f2b-asterisk-udp
-A INPUT -p tcp -m multiport --dports 5060,5061,5065 -j f2b-asterisk-tcp
-A INPUT -p udp -m multiport --dports 5060,5061,5065 -j f2b-asterisk-udp
-A INPUT -p tcp -m multiport --dports 5060,5061,5065 -j f2b-asterisk-tcp
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.254.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.8.0.0/21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 67 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 67 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 137:139 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20:21 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 5065 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 20000:21999 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -s 10.200.0.0/21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A FORWARD -d 192.168.254.252/32 -p tcp -m tcp --dport 9091 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp0s25 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp0s25 -o enp1s0 -j ACCEPT
-A FORWARD -i enp0s25 -o tun1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp0s25 -o tun1 -j ACCEPT
-A FORWARD -i enp0s25 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp0s25 -o tun0 -j ACCEPT
-A f2b-asterisk-tcp -s 20.203.144.171/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-asterisk-tcp -j RETURN
-A f2b-asterisk-udp -s 20.203.144.171/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-asterisk-udp -j RETURN
COMMIT


server.conf сервера


port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.248.0
ifconfig-pool-persist ipp.txt
push «route 10.8.0.0 255.255.248.0»
client-config-dir ccd
client-to-client
keepalive 10 120
comp-lzo
max-clients 1000
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

Маршрутизация сервера


default via 31.200.236.181 dev enp1s0
10.8.0.0/21 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.200.0.0/21 via 10.200.0.1 dev tun1
10.200.0.1 dev tun1 proto kernel scope link src 10.200.0.2
айпи провайдера dev enp1s0 proto kernel scope link src шлюз провайдера
169.254.0.0/16 dev enp0s25 scope link metric 1002
169.254.0.0/16 dev enp1s0 scope link metric 1003
172.16.254.0/24 via 10.200.0.1 dev tun1
192.168.254.0/24 dev enp0s25 proto kernel scope link src 192.168.254.254

Конфиг моего клиента из каталога ccd


ifconfig-push 10.8.0.2 10.8.0.1
push «route 192.168.254.0 255.255.255.0»
push «dhcp-option DNS 192.168.254.254»
push «dhcp-option DOMAIN unix.nt»

Конфиг произвольного клиента

ifconfig-push 10.8.0.26 10.8.0.25

Конфиг клиента файлопомойки


client
dev tun
proto udp
remote 192.168.254.254
resolv-retry infinite
nobind
persist-key
persist-tun
корневой серт
серт клиента
ключ клиента
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3
keysize 128

iptables файлопомойки


# Generated by iptables-save v1.4.21 on Thu Feb 24 13:58:43 2022
*filter
:INPUT DROP [20304:3049972]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5693699:3589229951]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.254.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.8.0.0/21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 137:138 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 135 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9091 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 50001 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 50002 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 1900 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8200 -j ACCEPT
COMMIT
# Completed on Thu Feb 24 13:58:43 2022
# Generated by iptables-save v1.4.21 on Thu Feb 24 13:58:43 2022
*mangle
:PREROUTING ACCEPT [7830507:29380402971]
:INPUT ACCEPT [7830199:29380379563]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5693709:3589232447]
:POSTROUTING ACCEPT [5695558:3589450997]
COMMIT
# Completed on Thu Feb 24 13:58:43 2022
# Generated by iptables-save v1.4.21 on Thu Feb 24 13:58:43 2022
*nat
:PREROUTING ACCEPT [35265:6079349]
:INPUT ACCEPT [14703:3013729]
:OUTPUT ACCEPT [24523:2537301]
:POSTROUTING ACCEPT [24523:2537301]
COMMIT
# Completed on Thu Feb 24 13:58:43 2022

За конфиги iptables сильно не материте, тут суть в том, что сервер является заодно и клиентом openvpn и я как мог завернул весь трафик в локалку, чтоб прозрачно общаться из своей подсети со своими клиентами (10.8.0.0) и клиентами другого vpn-сервера (10.200.0.0). И почему-то все конфиги не получилось разместить под кат, хотя все читал по мануалу

Муть какая-то, в тексте одно, в конфигах другое. Напиши точно, а ещё лучше накидай схему с адресами и подпиши, что куда должно ходить.

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

Есть впн сервер, он же шлюз, ип на сетевке, что смотрит в локалку 192.168.254.254. К нему подключаются два клиента извне с ипами 10.8.0.2 и 10.8.0.26, у одного (10.8.0.2) есть возможность попадать в локалку 192.168.254.0\24, а у второго (10.8.0.26) нет. За шлюзом стоит файлопомойка 192.168.254.252. На файлопомойке поставил опенвпн в режиме клиента и присвоил ей адрес 10.8.0.122. Задача попадать в файлопойку первым клиентом по ипу 192.168.254.252, а вторым по 10.8.0.122. Когда запускается опенвпн на файлопойке, то она становится недоступна по адресу 192.168.254.252 с первого клиента, а только по 10.8.0.122

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

Нужна таблица маршрутизации со всех подключенных vpn-клиентов(и с файлопомойки само собой). Подозреваю что при включении vpn-клиента на файлопомойке у тебя там получается асинхронная маршрутизация и от этого ничего не работает.

Если на файлопомойке Linux - надо крутить настройки rp_filter на интерфейсах. Если оффтопик - тут я хз.

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

Пожалуйста

Клиент1

C:\Users\Игорь>route print
===========================================================================
Список интерфейсов
4...b4 2e 99 db 77 9e ......Realtek PCIe GbE Family Controller
16...00 ff 8c 5b cc 3c ......TAP-Windows Adapter V9
8...00 ff 3d 38 26 a5 ......TAP-Windows Adapter V9 #2
15...0c 7a 15 13 00 43 ......Microsoft Wi-Fi Direct Virtual Adapter
20...0e 7a 15 13 00 42 ......Microsoft Wi-Fi Direct Virtual Adapter #2
3...0c 7a 15 13 00 42 ......Intel(R) Dual Band Wireless-AC 3168
13...0c 7a 15 13 00 46 ......Bluetooth Device (Personal Area Network)
1...........................Software Loopback Interface 1
===========================================================================


IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 172.16.128.1 172.16.128.2 35
10.8.0.0 255.255.248.0 10.8.0.1 10.8.0.2 25
10.8.0.0 255.255.255.252 On-link 10.8.0.2 281
10.8.0.2 255.255.255.255 On-link 10.8.0.2 281
10.8.0.3 255.255.255.255 On-link 10.8.0.2 281
10.200.0.0 255.255.248.0 10.200.0.85 10.200.0.86 25
10.200.0.84 255.255.255.252 On-link 10.200.0.86 281
10.200.0.86 255.255.255.255 On-link 10.200.0.86 281
10.200.0.87 255.255.255.255 On-link 10.200.0.86 281
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
172.16.128.0 255.255.255.0 On-link 172.16.128.2 291
172.16.128.2 255.255.255.255 On-link 172.16.128.2 291
172.16.128.255 255.255.255.255 On-link 172.16.128.2 291
172.16.254.0 255.255.255.0 10.200.0.85 10.200.0.86 25
192.168.254.0 255.255.255.0 10.8.0.1 10.8.0.2 25
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 10.8.0.2 281
224.0.0.0 240.0.0.0 On-link 10.200.0.86 281
224.0.0.0 240.0.0.0 On-link 172.16.128.2 291
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 10.8.0.2 281
255.255.255.255 255.255.255.255 On-link 10.200.0.86 281
255.255.255.255 255.255.255.255 On-link 172.16.128.2 291
===========================================================================
Постоянные маршруты:
Отсутствует


IPv6 таблица маршрута
===========================================================================
Активные маршруты:
Метрика Сетевой адрес Шлюз
1 331 ::1/128 On-link
16 281 fe80::/64 On-link
8 281 fe80::/64 On-link
8 281 fe80::1d45:e054:87a6:72d9/128 On-link
16 281 fe80::e585:4155:e82b:de41/128 On-link
1 331 ff00::/8 On-link
16 281 ff00::/8 On-link
8 281 ff00::/8 On-link
===========================================================================
Постоянные маршруты:
Отсутствует

Клиент2


C:\Users\PC>route print
===========================================================================
Список интерфейсов
10...00 ff b0 04 27 6c ......TAP-Windows Adapter V9
5...2c f0 5d 70 a0 0c ......Intel(R) Ethernet Connection (12) I219-V
1...........................Software Loopback Interface 1
===========================================================================


IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.129 291
10.8.0.0 255.255.248.0 10.8.0.25 10.8.0.26 25
10.8.0.24 255.255.255.252 On-link 10.8.0.26 281
10.8.0.26 255.255.255.255 On-link 10.8.0.26 281
10.8.0.27 255.255.255.255 On-link 10.8.0.26 281
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
192.168.0.0 255.255.255.0 On-link 192.168.0.129 291
192.168.0.129 255.255.255.255 On-link 192.168.0.129 291
192.168.0.255 255.255.255.255 On-link 192.168.0.129 291
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 10.8.0.26 281
224.0.0.0 240.0.0.0 On-link 192.168.0.129 291
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 10.8.0.26 281
255.255.255.255 255.255.255.255 On-link 192.168.0.129 291
===========================================================================
Постоянные маршруты:
Сетевой адрес Маска Адрес шлюза Метрика
0.0.0.0 0.0.0.0 192.168.0.1 По умолчанию
===========================================================================


IPv6 таблица маршрута
===========================================================================
Активные маршруты:
Метрика Сетевой адрес Шлюз
1 331 ::1/128 On-link
10 281 fe80::/64 On-link
5 291 fe80::/64 On-link
5 291 fe80::3db7:ef39:b036:d519/128 On-link
10 281 fe80::5854:6662:6ea7:ec00/128 On-link
1 331 ff00::/8 On-link
10 281 ff00::/8 On-link
5 291 ff00::/8 On-link
===========================================================================
Постоянные маршруты:
Отсутствует

Маршрутизация файлопомойки с поднятым впн


default via 192.168.254.254 dev enp2s0 proto dhcp metric 100
10.8.0.0/21 via 10.8.0.121 dev tun0
10.8.0.121 dev tun0 proto kernel scope link src 10.8.0.122
192.168.254.0/24 dev enp2s0 proto kernel scope link src 192.168.254.252 metric 100

Маршрутизация файлопомойки без впн


default via 192.168.254.254 dev enp2s0 proto dhcp metric 100
192.168.254.0/24 dev enp2s0 proto kernel scope link src 192.168.254.252 metric 100

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

В маршрутах полная каша. Надо смотреть tcpdump на файлопомойке при неудачном подключении с клиента1 на каждом интерфейсе. Тут еще может быть файрвол виноват, если трафик асинхронный.

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

Да каши там нет. На первом клиенте два впн подключения, можно смело отмести все, что относится к 10.200.0.0 и 172.16.254.0. На выключенном файрволе все аналогично

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

А со второго клиента(10.8.0.26) доступна файлопомойка по ip 192.168.254.252, при включённом vpn-клиенте на файлопомойки?

anonymous
()
Ответ на: комментарий от herznaet

А зачем тебе на файлопомойке опенвпн?

Почему просто не дать второму клиенту с 10.8.0.26 возможность обращаться к 192.168.254.252?

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

Все просто. Не хочу светить внутреннюю подсеть. Тут же назревает вопрос, если же я все-таки этот маршрут дам клиенту, то не сможет ли он на клиенте просто прописать полный маршрут до моей сетки?

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

Это зависит от настроек файрволла.

Раз уж у тебя один клиент имеет возможность ходить на внутренние адреса, значит и второй сможет, если не ограничить его на роутере, так что в любом случае придется настраивать файрволл на роутере.

Я бы рекомендовал настроить shorewall и рулить зонами и правилами

Есть несколько вариантов решения доступа:

  1. Настроить клиенту и в сети роутинг и обращаться непосредственно к хосту по его внутреннему адресу.

  2. Если роутинг в обратную сторону прописывать сложно, то добавить snat на роутере и прописывать роутинг только на клиентах

  3. Если роутинг сложно прописывать везде, то ко второму пункту добавить dnat на роутере. И тогда клиент будет обращаться на роутер и внутренние хосты будут отвечать уже роутеру. НАстройки роутинга тогда будут дефолтными.

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

Я консервативен. Только iptables. По третьему пункту есть определенные сложности, там есть сервер с smb для личных нужд неклиентов, пробрасывать на альтернативные порты если. Короче, если рулить файрволом, то много ЕСЛИ

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

ну так это и есть только iptables. Просто компилятор функциональных правил в правила iptables.

доступ к одному серверу по разным адресам крайне нетривиальная задача. Обратно же все пойдет по одному маршруту. Так что без snat на роутере не обойтись.

AVL2 ★★★★★
()
Последнее исправление: AVL2 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.