Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: OpenVPN. Подмена сервера для подключения в виртуальной сети  (Прочитано 311 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн cuper81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Доброго времени!

Исторически сложилась следующая концепция:
Есть сервер OpenVPN, на нем организована DMZ, к нему подключаются 2 терминальных сервера, как клиенты. Туда же попадают и сами клиенты.
TUN10 192.168.10.1
сеть OVPN 192.168.10.0/24

Код: HTML5
  1. port 1924
  2. proto udp
  3. dev tun10
  4.  
  5. mode server
  6.  
  7. ca /etc/openvpn/keys2/ca.crt
  8. cert /etc/openvpn/keys2/server.crt
  9. key /etc/openvpn/keys2/server.key
  10. dh /etc/openvpn/keys2/dh2048.pem
  11. tls-server
  12. tls-auth /etc/openvpn/keys2/ta2.key 0
  13. tls-timeout 120
  14. auth SHA1
  15. cipher BF-CBC
  16. keepalive 10 120
  17.  
  18. server 192.168.10.0 255.255.255.0 # vpn subnet
  19.  
  20. push "route 192.168.10.0 255.255.255.0" # home subnet
  21.  
  22. client-to-client
  23. client-config-dir /etc/openvpn/ccd
  24. ccd-exclusive
  25. ifconfig-pool-persist ipp.txt 0
  26. comp-lzo
  27. user nobody
  28. group nogroup
  29. persist-key
  30. persist-tun
  31. verb 4
  32. mute 5
  33. script-security 2
  34. log /var/log/openvpn/openvpn10.log
  35. log-append /var/log/openvpn/openvpn10.log1
  36. status /etc/openvpn/stat10
  37. #crl-verify /etc/openvpn/keys2/crl.pem

ts1 192.168.10.250/30
ts2 192.168.10.254/30

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

планируется убрать оба терминальных сервера, вместо них использовать 1 общий
tsNew 192.168.10.246/30


Вопрос. можно ли перенаправить запросы на подключение к ts1/ts2 на tsNew
просто iptables
Код: HTML5
  1. iptables -t nat -I PREROUTING -p tcp -s 192.168.10.250 --dport 3389  -j DNAT --to-destination 192.168.10.246:3389
не срабатывает




Пользователь добавил сообщение 13 Декабрь 2016, 18:07:46:
просто на сколько я знаю несколько ip в сети клиенту назначить нельзя.
из ccd берется последняя запись, если попытаться туда подставить несколько значений ifconfig-push
« Последнее редактирование: 13 Декабрь 2016, 18:07:46 от cuper81 »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
для начала sudo iptables-save

P.S. но было проще просто на клиентах тупо сменить адрес сервера.
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26093
    • Просмотр профиля
Если клиенты подключаются к серверу по имени, вообще не вижу проблемы.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
явно не этот случай... но ничто не мешает к этому прийти
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн cuper81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
iptables-save
Код: HTML5
  1. # Generated by iptables-save v1.6.0 on Wed Dec 14 10:19:48 2016
  2. *mangle
  3. :PREROUTING ACCEPT [1684:693911]
  4. :INPUT ACCEPT [1680:693448]
  5. :FORWARD ACCEPT [0:0]
  6. :OUTPUT ACCEPT [1531:715337]
  7. :POSTROUTING ACCEPT [1531:715337]
  8. COMMIT
  9. # Completed on Wed Dec 14 10:19:48 2016
  10. # Generated by iptables-save v1.6.0 on Wed Dec 14 10:19:48 2016
  11. *filter
  12. :INPUT DROP [7:1448]
  13. :FORWARD DROP [0:0]
  14. :OUTPUT ACCEPT [1440:666395]
  15. -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  16. -A INPUT -p tcp -m tcp --dport 26389 -j ACCEPT
  17. -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
  18. -A INPUT -i lo -j ACCEPT
  19. -A INPUT -p udp -m udp --dport 1924 -j ACCEPT
  20. -A OUTPUT -o lo -j ACCEPT
  21. COMMIT
  22. # Completed on Wed Dec 14 10:19:48 2016
  23. # Generated by iptables-save v1.6.0 on Wed Dec 14 10:19:48 2016
  24. *nat
  25. :PREROUTING ACCEPT [12:2253]
  26. :INPUT ACCEPT [2:398]
  27. :OUTPUT ACCEPT [0:0]
  28. :POSTROUTING ACCEPT [0:0]
  29. COMMIT
  30. # Completed on Wed Dec 14 10:19:48 2016
  31.  
Там правила пустые. просто кроме ovpn и ssh там ничего нет и 1 сетевой интерфейс. :)
собственно правило, которое не срабатывало (из 1го поста), я сбросил.


sudo  lsof -i -P -n
Код: HTML5
  1. COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
  2. sshd     733   root    3u  IPv4  14893      0t0  TCP *:26389 (LISTEN)
  3. sshd     733   root    4u  IPv6  14902      0t0  TCP *:26389 (LISTEN)
  4. sshd    1095   root    3u  IPv4  17132      0t0  TCP xx.xx.xx.xx:26389-> (ESTABLISHED)
  5. sshd    1113  user1    3u  IPv4  17132      0t0  TCP xx.xx.xx.xx:26389-> (ESTABLISHED)
  6. openvpn 1934 nobody    5u  IPv4  23773      0t0  UDP *:1924
  7.  

=======================================

по поводу имен... рекомендуете на этом серваке dns поднять? а там не будет проблем в случае если у клиента в параметрах соединения 2  dns уже забито?
« Последнее редактирование: 14 Декабрь 2016, 11:13:58 от cuper81 »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
Так у Вас цепочка FORWARD дропнута и думаю net.ipv4.ip_forward тоже зерочен
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн cuper81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Код: HTML5
  1. iptables-save
  2. # Generated by iptables-save v1.6.0 on Wed Dec 14 14:55:30 2016
  3. *mangle
  4. :PREROUTING ACCEPT [184:25865]
  5. :INPUT ACCEPT [181:25713]
  6. :FORWARD ACCEPT [3:152]
  7. :OUTPUT ACCEPT [88:42611]
  8. :POSTROUTING ACCEPT [91:42763]
  9. COMMIT
  10. # Completed on Wed Dec 14 14:55:30 2016
  11. # Generated by iptables-save v1.6.0 on Wed Dec 14 14:55:30 2016
  12. *filter
  13. :INPUT DROP [4:448]
  14. :FORWARD ACCEPT [3:152]
  15. :OUTPUT ACCEPT [63:21074]
  16. -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  17. -A INPUT -p tcp -m tcp --dport 26389 -j ACCEPT
  18. -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
  19. -A INPUT -i lo -j ACCEPT
  20. -A INPUT -p udp -m udp --dport 1924 -j ACCEPT
  21. -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
  22. -A INPUT -p udp -m udp --dport 53 -j ACCEPT
  23. -A OUTPUT -o lo -j ACCEPT
  24. COMMIT
  25. # Completed on Wed Dec 14 14:55:30 2016
  26. # Generated by iptables-save v1.6.0 on Wed Dec 14 14:55:30 2016
  27. *nat
  28. :PREROUTING ACCEPT [7:405]
  29. :INPUT ACCEPT [4:273]
  30. :OUTPUT ACCEPT [0:0]
  31. :POSTROUTING ACCEPT [1:52]
  32. -A PREROUTING -s 192.168.10.250/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.10.246:3389
  33. COMMIT
  34. # Completed on Wed Dec 14 14:55:30 2016
  35.  

Код: HTML5
  1. cat /proc/sys/net/ipv4/ip_forward
  2. 1
  3.  
перевел в ACCEPT, net.ipv4.ip_forward тоже зелочен был. вообще переводил все в ACCEPT со сбросом всех цепочек - то же самое.
-A PREROUTING -s 192.168.10.250/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.10.246:3389
правило то вообще имеет право на жизнь?!


попутно вопрос...

запустил dnsmasq, сделал запись для 192.168.10.246 ts12
на сервере:
Код: HTML5
  1. nslookup ts12
  2. Server:         127.0.0.1
  3. Address:        127.0.0.1#53
  4.  
  5. Name:   ts12.vpn
  6. Address: 192.168.10.246
  7.  
  8. nslookup ts12 192.168.10.1
  9. Server:         192.168.10.1
  10. Address:        192.168.10.1#53
  11.  
  12. Name:   ts12.vpn
  13. Address: 192.168.10.246
  14.  
  15.  

в OVPN
Код: HTML5
  1. push "dhcp-option DNS 192.168.10.1"

во первых, на клиенте он становится дефолтным dns, во вторых не разрешает подключение: nslookup  - timeout
разрешения в правилах прописаны, но даже со сброшенными цепочками не передает данные.

Код: HTML5
  1. nslookup ts12
  2.  
  3. DNS request timed out.
  4.     timeout was 2 seconds.
  5. Сервер:  UnKnown
  6. Address:  192.168.10.1
  7.  
  8. DNS request timed out.
  9.     timeout was 2 seconds.
  10. DNS request timed out.
  11.     timeout was 2 seconds.
  12. ***Превышено время ожидание

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13751
    • Просмотр профиля
только наверное надо
Цитировать
-A PREROUTING -d 192.168.10.250/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.10.246:3389
правило то вообще имеет право на жизнь?!

правило-то имеет... но я кое-что упустил.
Учитывая, что сценой является сервер OVPN, правила игры, скорее всего, меняются.
Дело в том, что ядро виртуального коммутатора OVPN не связано с ядром материнской системы, а значит пакеты предназначенные 192.168.10.250 могут никогда не попасть в netfilter...
Но здесь я могу и ошибаться
Принимаю благодарности в WMR и WMZ на кошельки:
R158160676909 и Z313280060764

Оффлайн cuper81

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Цитировать
Дело в том, что ядро виртуального коммутатора OVPN не связано с ядром материнской системы, а значит пакеты предназначенные 192.168.10.250 могут никогда не попасть в netfilter...
это скорее всего именно так. правило не идет.
а вообще интересно, можно ли как-то этим маршрутизатором управлять.  :)

пойду тут читать наверное :)
https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage


А с DNS не подскажете, случаем? из прошлого поста
Цитировать
запустил dnsmasq, сделал запись для 192.168.10.246 ts12


Пользователь добавил сообщение 15 Декабрь 2016, 15:14:59:
маршрутизатором OVPN в нужных мне целях управлять, на сколько я понял нельзя :(

Перешел к варианту с DNS

В качестве DNS использовался dnsmasq. Ему нужно было просто внутри указать интерфейсы которые он должен обслуживать. .... :uglystupid2: "не читайте HowTo" :coolsmiley:


Код: HTML5
  1. interface=lo
  2. interface=tun10
  3. bind-interfaces
  4.  
  5. # domain
  6. domain=vpn,192.168.10.0/24
  7.  
  8. address=/ts12/192.168.10.246
  9. address=/ts12.vpn/192.168.10.246
  10. # оно так же понимает записи в /etc/hosts
  11.  
  12. # Логи для дебага
  13. log-queries
  14. log-facility=/var/log/dnsmasq.log
  15.  


« Последнее редактирование: 15 Декабрь 2016, 15:14:59 от cuper81 »

 

Страница сгенерирована за 0.078 секунд. Запросов: 24.