Користувальницькькі налаштування

Налаштування сайту


vpn

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
Наступна ревізія Both sides next revision
vpn [2014/11/20 21:08]
wombat [Сервер] sslh link
vpn [2014/11/24 01:23]
wombat [Сервер] примечание о нескольких OpenVPN с одним IP
Рядок 15: Рядок 15:
   # openvpn --genkey --secret static.key   # openvpn --genkey --secret static.key
  
-Для ​связи ​одного ​компьютера с сервером (интерфейс TUN):+Для ​подключения ​со статическим ключом доступа:
  
   sudo openvpn --secret /​etc/​openvpn/​static.key --proto tcp-server --lport 1194 --dev tun1 --ifconfig 10.9.8.1 10.9.8.2   sudo openvpn --secret /​etc/​openvpn/​static.key --proto tcp-server --lport 1194 --dev tun1 --ifconfig 10.9.8.1 10.9.8.2
- 
-Для организации некоторой подсети с возможностью подключения нескольких компьютеров к серверу (интерфейс TAP): 
- 
-  sudo openvpn --secret /​etc/​openvpn/​static.key --proto tcp-server --lport 1194 --dev tap1 --ifconfig 10.9.8.1 255.255.255.0 
  
 Если планируется подключаться к серверу только через SSH-тоннель (либо [[sslh|через SSLH]]), то нужно добавить к параметрам IP-адрес,​ к которому будет прикреплён сервер:​ Если планируется подключаться к серверу только через SSH-тоннель (либо [[sslh|через SSLH]]), то нужно добавить к параметрам IP-адрес,​ к которому будет прикреплён сервер:​
  
   sudo openvpn --secret /​etc/​openvpn/​static.key --proto tcp-server --local 127.0.0.1 --lport 1194 --dev tun1 --ifconfig 10.9.8.1 10.9.8.2   sudo openvpn --secret /​etc/​openvpn/​static.key --proto tcp-server --local 127.0.0.1 --lport 1194 --dev tun1 --ifconfig 10.9.8.1 10.9.8.2
- 
-или 
- 
-  sudo openvpn --secret /​etc/​openvpn/​static.key --proto tcp-server --local 127.0.0.1 --lport 1194 --dev tap1 --ifconfig 10.9.8.1 255.255.255.0 
  
 Это позволит объединить сервер и подключившийся к нему компьютер в одну локальную сеть, однако ещё не даёт доступа подключённому компьютеру в интернет. Чтобы получить выход в интернет через такой сервер,​ на нём нужно включить NAT: Это позволит объединить сервер и подключившийся к нему компьютер в одну локальную сеть, однако ещё не даёт доступа подключённому компьютеру в интернет. Чтобы получить выход в интернет через такой сервер,​ на нём нужно включить NAT:
Рядок 37: Рядок 29:
   # iptables -A FORWARD -s 10.9.8.0/24 -o <​NET_IF>​ -j ACCEPT   # iptables -A FORWARD -s 10.9.8.0/24 -o <​NET_IF>​ -j ACCEPT
   # iptables -t nat -A POSTROUTING -s 10.9.8.0/24 -o <​NET_IF>​ -j SNAT --to <​SERVER_IP>​   # iptables -t nat -A POSTROUTING -s 10.9.8.0/24 -o <​NET_IF>​ -j SNAT --to <​SERVER_IP>​
- 
-Следует заменить ''​tun1''​ на ''​tap1''​ в случае TAP-подключения. 
  
 ''<​NET_IF>''​ -- это "​внешний"​ сетевой интерфейс сервера (через который осуществляется доступ в Интернет). ''<​NET_IF>''​ -- это "​внешний"​ сетевой интерфейс сервера (через который осуществляется доступ в Интернет).
 ''<​SERVER_IP>''​ -- это IP-адрес сервера на внешнем сетевом интерфейсе. ''<​SERVER_IP>''​ -- это IP-адрес сервера на внешнем сетевом интерфейсе.
  
 +**Примечание:​** Если на сервере запустить несколько копий OpenVPN, указывая им один и тот же IP сервера,​ то сетевые пакеты будут свободно перемещаться из одной VPN в другую. Т.е. получается нечто вроде моста.
  
 ===== Клиент ===== ===== Клиент =====
Рядок 53: Рядок 43:
   sudo openvpn --proto tcp-client --remote <​SERVER_IP>​ <​SERVER_PORT>​ --dev tun1 --ifconfig 10.9.8.2 10.9.8.1   sudo openvpn --proto tcp-client --remote <​SERVER_IP>​ <​SERVER_PORT>​ --dev tun1 --ifconfig 10.9.8.2 10.9.8.1
  
-или 
- 
-  sudo openvpn --proto tcp-client --remote <​SERVER_IP>​ <​SERVER_PORT>​ --dev tap1 --ifconfig 10.9.8.2 255.255.255.0 
  
 ==== Через прокси-сервер ==== ==== Через прокси-сервер ====
Рядок 61: Рядок 48:
   sudo openvpn --proto tcp-client --remote <​SERVER_IP>​ <​SERVER_PORT>​ --http-proxy <​PROXY>​ <​PROXY_PORT>​ --dev tun1 --ifconfig 10.9.8.2 10.9.8.1   sudo openvpn --proto tcp-client --remote <​SERVER_IP>​ <​SERVER_PORT>​ --http-proxy <​PROXY>​ <​PROXY_PORT>​ --dev tun1 --ifconfig 10.9.8.2 10.9.8.1
  
-или 
- 
-  sudo openvpn --proto tcp-client --remote <​SERVER_IP>​ <​SERVER_PORT>​ --http-proxy <​PROXY>​ <​PROXY_PORT>​ --dev tap1 --ifconfig 10.9.8.2 255.255.255.0 
  
 ==== Через SSH-тоннель ==== ==== Через SSH-тоннель ====
Рядок 70: Рядок 54:
   sudo openvpn --proto tcp-client --secret /​etc/​openvpn/​static.key --remote localhost 5611 --dev tun1 --ifconfig 10.9.8.2 10.9.8.1   sudo openvpn --proto tcp-client --secret /​etc/​openvpn/​static.key --remote localhost 5611 --dev tun1 --ifconfig 10.9.8.2 10.9.8.1
  
-или+=== DD-WRT ===
  
-  sudo openvpn --proto tcp-client --secret /​etc/​openvpn/​static.key --remote localhost ​5611 --dev tap1 --ifconfig 10.9.8.255.255.255.0+Если в качестве SSH-клиента используется [[https://​matt.ucc.asn.au/​dropbear/​dropbear.html | Dropbear]] (как в [[dd-wrt|DD-WRT]]),​ тоннель через прокси нужно устанавливать следующим образом:​ 
 + 
 +  ssh -f -N -L 1194:​localhost:​1194 -p <​SSH_SERVER_PORT>​ <​SSH_SERVER -J '​corkscrew <​PROXY_SERVER>​ <​PROXY_PORT>​ <​SSH_SERVER>​ <​SSH_SERVER_PORT>'​ 
 +  ​openvpn --proto tcp-client --secret ​/jffs/​etc/​openvpn/​static.key --remote localhost ​1194 --dev tun1 --ifconfig 10.9.9.255.255.255.0 
 + 
 +Для маршрутизатора удобнее сгенерировать SSH-ключ,​ чтобы обеспечить его беспарольное подключение к серверу. 
 + 
 +  ssh-keygen 
 + 
 +Затем загрузить полученные файлы ''​id_rsa''​ и ''​id_rsa.pub''​ в папку ''/​jffs/''​ маршрутизатора (подразумевается наличие файловой системы JFFS в маршрутизаторе),​ и сконвертировать закрытый ключ в формат Dropbear: 
 + 
 +  dropbearconvert openssh dropbear /​jffs/​id_rsa /​jffs/​id_rsa_dropbear  
 + 
 +Открытый ключ нужно загрузить на VPN-сервер,​ к которому будет подключаться маршрутизатор в домашний каталог пользователя,​ от имени которого будет производиться подключение. Например,​ если это будет пользователь "​stavrida",​ то дописать содержимое только что сгенерированного файла ''​id_rsa.pub''​ в файл ''/​home/​stavrida/​.ssh/​authorized_keys''​ на VPN-сервере. 
 + 
 +SSH-тоннель в этом случае следует устанавливать так: 
 +   
 +  ssh -y -i /​jffs/​id_rsa_dropbear -f -N -L 1194:​localhost:​1194 -p <​SSH_SERVER_PORT>​ <​SSH_SERVER -J '​corkscrew <​PROXY_SERVER>​ <​PROXY_PORT>​ <​SSH_SERVER>​ <​SSH_SERVER_PORT>'​
  
 ==== Новый маршрут ==== ==== Новый маршрут ====
  
 +  sudo route add -net 10.9.8.0 netmask 255.255.255.0 gw 10.9.8.1
   sudo route del default   sudo route del default
   sudo route add default gw 10.9.8.1   sudo route add default gw 10.9.8.1
Рядок 98: Рядок 100:
  
  
 +------------
  
 +Следует заменить ''​tun1''​ на ''​tap1''​ в случае TAP-подключения.
  
 +  sudo openvpn --proto tcp-client --secret /​etc/​openvpn/​static.key --remote localhost 5611 --dev tap1 --ifconfig 10.9.8.2 255.255.255.0
  
 https://​wiki.debian.org/​OpenVPN https://​wiki.debian.org/​OpenVPN
 +
 +https://​openvpn.net/​index.php/​open-source/​documentation.html
vpn.txt · В останнє змінено: 2023/07/30 23:05 by wombat