Advertisement
load-net

openvpn

Jul 30th, 2024
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. НА СЕРВЕРЕ
  2. Обновляем сервер
  3.  
  4. apt update && apt upgrade -y
  5.  
  6. Устанавливаем stunnel4
  7.  
  8. apt install stunnel4
  9.  
  10. Создаем SSL сертификат
  11.  
  12. openssl req -new -x509 -days 3650 -nodes -out /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem
  13.  
  14. Конфиг для stunnel
  15.  
  16. Открываем для редактирования файл:
  17. nano /etc/stunnel/stunnel.conf
  18.  
  19. Вставляем в него:
  20.  
  21. ; Global options
  22. setuid = stunnel4
  23. setgid = stunnel4
  24. pid = /tmp/stunnel.pid
  25. output = /var/log/stunnel4/stunnel.log
  26.  
  27. ; Service-level options
  28. [tunnel]
  29. client = no
  30. accept = 443
  31. connect = 127.0.0.1:1194
  32. cert = /etc/stunnel/stunnel.pem
  33.  
  34.  
  35. Запускаем stunnel
  36. systemctl start stunnel4
  37.  
  38. Проверяем работу
  39. ps aux | grep stunnel
  40.  
  41. Если все ок то ставим в автозагрузку
  42.  
  43. systemctl enable stunnel4
  44.  
  45. НА ЛОКАЛЬНОЙ МАШИНЕ
  46.  
  47. Ставим stunnel
  48.  
  49. apt update && apt install stunnel4
  50.  
  51. Настраиваем stunnel
  52.  
  53. Открываем для редактирования:
  54. nano /etc/stunnel/stunnel.conf
  55.  
  56. Вставляем и редактируем:
  57.  
  58. client = yes
  59. [tunnel]
  60. accept = 127.0.0.1:1194
  61. connect = IP_СЕРВЕРА:443
  62.  
  63.  
  64. Запускаем:
  65.  
  66. systemctl start stunnel4
  67.  
  68. Тестируем stunnel
  69. НА СЕРВЕРЕ
  70. nc -lvnp 1194
  71.  
  72. ЛОКАЛЬНО
  73. nc 127.0.0.1 1194
  74.  
  75. Пишем что-то в консоль, если видим тот же текст что на серваке - все ОК
  76.  
  77. После этого можно поставить его в автозагрузку так:
  78.  
  79. systemctl enable stunnel4
  80.  
  81. НА СЕРВЕРЕ
  82. Ставим OpenVPN
  83.  
  84. wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
  85.  
  86. ВАЖНО: выбираем протокол TCP, порт 1194
  87.  
  88. Редактируем конфиг:
  89.  
  90. nano /etc/openvpn/server/server.conf
  91.  
  92. В первой строке меняем директиву local чтобы было:
  93.  
  94. local 0.0.0.0
  95.  
  96. Перезапускаем openvpn
  97.  
  98. systemctl restart [email protected]
  99.  
  100. ЛОКАЛЬНО: скачиваем файл .ovpn
  101.  
  102. По пользователем root
  103.  
  104. sftp root@ip_сервера
  105.  
  106. Если нужно использовать SSH ключ то
  107.  
  108. sftp -i /путь/до/ключа root@ip_сервера
  109.  
  110. После подключения: get client.ovpn
  111.  
  112. Файл кладем в папку: /etc/openvpn/client
  113.  
  114. Создаем файл для настройки маршрутизации:
  115.  
  116. nano /etc/openvpn/client/routing.sh
  117.  
  118. Вставляем и редактируем IP сервера:
  119.  
  120.  
  121. #!/bin/bash
  122.  
  123. VPN_SERVER_IP="ТУТ PUBLIC IP СЕРВАКА"
  124. VPN_GATEWAY_IP=$(ip route get 8.8.8.8 | grep -oP 'via \K\S+')
  125.  
  126. sudo ip route add $VPN_SERVER_IP/32 via $VPN_GATEWAY_IP
  127. sudo ip route add 0.0.0.0/1 via 10.8.0.1
  128. sudo ip route add 128.0.0.0/1 via 10.8.0.1
  129.  
  130.  
  131. Делаем файл исполняемым:
  132.  
  133. chmod +x /etc/openvpn/client/routing.sh
  134.  
  135. Редактируем клиентский конфиг:
  136.  
  137. nano /etc/openvpn/client/client.ovpn
  138.  
  139. Меняем директиву remote чтобы было:
  140.  
  141. remote 127.0.0.1 1194
  142.  
  143. После строчки verb 3 дописываем строки:
  144.  
  145.  
  146. route-nopull
  147. script-security 2
  148. route-up /etc/openvpn/client/routing.sh
  149.  
  150.  
  151. Подключаем openvpn:
  152.  
  153. openvpn --config /etc/openvpn/client/client.ovpn
  154.  
  155. Тестируем. Если все ок, можно в будущем запускать openvpn в фоне
  156. чтобы он не занимал работающее окно консоли вот так:
  157.  
  158. openvpn --config /etc/openvpn/client/client.ovpn --daemon
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement