vpn
Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Порівняння попередніх версійПопередня ревізіяНаступна ревізія | Попередня ревізія | ||
| vpn [2014/11/20 12:37] – [Клиент] /etc/resolv.conf wombat | vpn [2023/07/30 20:05] (поточний) – [Сервер] Налаштування сервера wombat | ||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| - | ====== | + | ====== |
| - | ===== Сервер ===== | + | ===== Установка ===== |
| + | |||
| + | ==== в Debian GNU/ | ||
| sudo apt-get install openvpn | sudo apt-get install openvpn | ||
| + | |||
| + | ===== Настройка ===== | ||
| + | |||
| + | ==== Сервер ==== | ||
| + | |||
| + | Чтобы организовать защищённое подключение, | ||
| # openvpn --genkey --secret static.key | # openvpn --genkey --secret static.key | ||
| + | |||
| + | Для подключения со статическим ключом доступа: | ||
| + | |||
| + | sudo openvpn --secret / | ||
| + | |||
| + | Если планируется подключаться к серверу только через SSH-тоннель (либо [[sslh|через SSLH]]), то нужно добавить к параметрам IP-адрес, | ||
| sudo openvpn --secret / | sudo openvpn --secret / | ||
| + | |||
| + | Это позволит объединить сервер и подключившийся к нему компьютер в одну локальную сеть, однако ещё не даёт доступа подключённому компьютеру в интернет. Чтобы получить выход в интернет через такой сервер, | ||
| # echo 1 > / | # echo 1 > / | ||
| - | # iptables -A FORWARD -i venet0 | + | # iptables -A FORWARD -i < |
| - | # iptables -A FORWARD -s 10.9.8.0/24 -o venet0 | + | # iptables -A FORWARD -s 10.9.8.0/24 -o < |
| - | # iptables -t nat -A POSTROUTING -s 10.9.8.0/24 -o venet0 | + | # iptables -t nat -A POSTROUTING -s 10.9.8.0/24 -o < |
| + | |||
| + | ''< | ||
| + | ''< | ||
| + | |||
| + | **Примечание: | ||
| ===== Клиент ===== | ===== Клиент ===== | ||
| + | |||
| + | Для начала нужно скопировать секретный ключ доступа, | ||
| + | |||
| + | ==== Прямое подключение ==== | ||
| + | |||
| + | sudo openvpn --proto tcp-client --remote < | ||
| + | |||
| + | |||
| + | ==== Через прокси-сервер ==== | ||
| + | |||
| + | sudo openvpn --proto tcp-client --remote < | ||
| + | |||
| + | |||
| + | ==== Через SSH-тоннель ==== | ||
| + | |||
| + | ssh -f -N -L5611: | ||
| + | sudo openvpn --proto tcp-client --secret / | ||
| + | |||
| + | === DD-WRT === | ||
| + | |||
| + | Если в качестве SSH-клиента используется [[https:// | ||
| + | |||
| + | ssh -f -N -L 1194: | ||
| + | openvpn --proto tcp-client --secret / | ||
| + | |||
| + | Для маршрутизатора удобнее сгенерировать SSH-ключ, | ||
| + | |||
| + | ssh-keygen | ||
| + | |||
| + | Затем загрузить полученные файлы '' | ||
| + | |||
| + | dropbearconvert openssh dropbear / | ||
| + | |||
| + | Открытый ключ нужно загрузить на VPN-сервер, | ||
| + | |||
| + | SSH-тоннель в этом случае следует устанавливать так: | ||
| | | ||
| - | ssh -f -N -L5611: | + | ssh -y -i / |
| - | sudo openvpn | + | |
| - | route del default | + | ==== Новый маршрут ==== |
| - | sudo route add 195.22.132.22 eth0 | + | |
| - | sudo route add 195.22.132.2 eth0 | + | sudo route add -net 10.9.8.0 netmask 255.255.255.0 gw 10.9.8.1 |
| - | sudo route add 195.22.132.3 eth0 | + | |
| sudo route add default gw 10.9.8.1 | sudo route add default gw 10.9.8.1 | ||
| - | <file "/ | + | Чтобы сохранить доступ к DNS-серверам своего провайдера (на всякий случай): |
| + | |||
| + | sudo route add < | ||
| + | sudo route add < | ||
| + | |||
| + | Доступ к прокси-серверу, | ||
| + | |||
| + | sudo route add < | ||
| + | |||
| + | Чтобы использовать DNS-серверы, | ||
| + | |||
| + | < | ||
| nameserver 8.8.8.8 | nameserver 8.8.8.8 | ||
| nameserver 8.8.4.4 | nameserver 8.8.4.4 | ||
| Рядок 31: | Рядок 99: | ||
| </ | </ | ||
| - | sudo openvpn --proto tcp-client --remote wombat.org.ua 443 --http-proxy < | ||
| + | ------------ | ||
| + | Следует заменить '' | ||
| + | |||
| + | sudo openvpn --proto tcp-client --secret / | ||
| https:// | https:// | ||
| + | |||
| + | https:// | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====== OpenConnect VPN ====== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Сервер ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Встановити сервер OpenConnect у Debian-подібних системах можна наступним чином: | ||
| + | |||
| + | apt install ocserv | ||
| + | |||
| + | |||
| + | 1. Спочатку нам знадобиться доменне ім' | ||
| + | |||
| + | 2. Далі потрібно отримати дійсний SSL-сертифікат для цього домену. Наприклад, | ||
| + | |||
| + | 3. Наступним кроком потрібно налаштувати сервер у файлі ''/ | ||
| + | |||
| + | Якщо хочемо організувати підключення з логіном та паролем, | ||
| + | |||
| + | < | ||
| + | #auth = " | ||
| + | #auth = " | ||
| + | auth = " | ||
| + | </ | ||
| + | |||
| + | Тут ми вважаємо, | ||
| + | |||
| + | ocpasswd -c / | ||
| + | |||
| + | Треба налаштувати порти для TCP та UDP з' | ||
| + | |||
| + | < | ||
| + | tcp-port = 443 | ||
| + | udp-port = 443 | ||
| + | </ | ||
| + | |||
| + | Зауважимо, | ||
| + | |||
| + | Вказуємо шляхи до файлів SSL-сертифікату та відповідного приватного ключа. Якщо ці файли ми отримали за допомогою " | ||
| + | |||
| + | < | ||
| + | server-cert = / | ||
| + | server-key | ||
| + | </ | ||
| + | |||
| + | Тут для прикладу використано доменне ім' | ||
| + | |||
| + | Можна змінити кількість дозволених одночасних клієнтів та одночасних з' | ||
| + | |||
| + | < | ||
| + | max-clients = 32 | ||
| + | max-same-clients = 32 | ||
| + | </ | ||
| + | |||
| + | Також варто встановити період надсилання даних для підтримання з' | ||
| + | |||
| + | < | ||
| + | keepalive = 30 | ||
| + | </ | ||
| + | |||
| + | try-mtu-discovery = true | ||
| + | |||
| + | Якщо ми не хочемо, | ||
| + | |||
| + | < | ||
| + | # | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | Також корисна функція для захисту від автоматизованих атак, але яка може виявитися незручною для певних користувачів, | ||
| + | |||
| + | < | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | Вказуємо наш справжній домен, прив' | ||
| + | |||
| + | < | ||
| + | default-domain = example.com.ua | ||
| + | </ | ||
| + | |||
| + | Вказуємо базову IP-адресу та маску для віртуальної мережі, | ||
| + | |||
| + | < | ||
| + | ipv4-network = 10.9.8.0 | ||
| + | ipv4-netmask = 255.255.255.0 | ||
| + | </ | ||
| + | |||
| + | Вкажемо, | ||
| + | |||
| + | < | ||
| + | tunnel-all-dns = true | ||
| + | |||
| + | dns = 127.0.0.53 | ||
| + | dns = 8.8.8.8 | ||
| + | dns = 1.1.1.1 | ||
| + | </ | ||
| + | |||
| + | Тут IP-адреса "'' | ||
| + | |||
| + | Якщо ми хочемо, | ||
| + | сервер (а саме для цього найчастіше і використовують VPN у побуті), | ||
| + | |||
| + | < | ||
| + | #route = 10.0.0.0/8 | ||
| + | #route = 172.16.0.0/ | ||
| + | #route = 192.168.0.0/ | ||
| + | #route = fd00::/8 | ||
| + | </ | ||
| + | |||
| + | Звісно, | ||
| + | |||
| + | < | ||
| + | route = default | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | 4. Якщо сервер знаходиться за NAT' | ||
| + | |||
| + | В нашому прикладі ми вказали порт '' | ||
| + | |||
| + | 5. Коли усі попередні кроки зроблено, | ||
| + | |||
| + | sudo systemctl -l restart ocserv.service | ||
| + | |||
| + | |||
| + | |||
| + | ===== Клієнт ===== | ||
vpn.1416487076.txt.bz2 · Востаннє змінено: повз wombat
