- Простая настройка OpenVPN Linux
- Настройка OpenVPN сервера в Linux
- Настройка клиента OpenVPN
- Выводы
- Настройка и использование OpenVPN на Ubuntu
- Подготовка Ubuntu
- Установка, настройка и запуск VPN-сервера
- Установка OpenVPN
- Создание сертификатов
- Как поднять OpenVPN сервер на Ubuntu 22.04?
- Где взять VPS(виртуальную машину) и как к ней подключится?
- Создание нового пользователя и вход под ним(по соображениям безопасности)
- Предварительная подготовка
- Установка пакетов
- Настройка FireWall
- Настройка директорий VPN
- Настройка VPN
- Конфигурируем конфиги
- Настройка vars
- Настройка /etc/nat(FireWall)
- Создание ключей сервера
- Настройка сервера
- Запуск сервера
- Запуск сервера
- Генерация сертификатов
- Генерация сертификатов
- Задание статических адресов клиентам
Простая настройка OpenVPN Linux
OpenVPN часто используется для создания виртуальных безопасных сетей между компьютерами, которые находятся на очень большом расстоянии, но при этом между ними нужно получить шифрованное безопасное соединение, которое невозможно перехватить и прослушать.
Другое применение для OpenVPN — это обход блокировок различных интернет ресурсов. Существуют различные серверы OpenVPN серверы в интернете, но будет намного надежнее если развернуть OpenVPN на своем сервере. Мы рассматривали процесс в статье установка OpenVPN на Ubuntu, но для новичков это достаточно сложно. В этой инструкции мы рассмотрим как выполняется настройка OpenVPN linux с помощью скрипта openvpn-install, который упрощает процесс установки и настройки в несколько раз. С его помощью вы получите работающий сервер в течение нескольких минут.
Настройка OpenVPN сервера в Linux
В этой статье, в качестве системы для примера мы будем использовать операционную систему CentOS, но операции не будут отличаться в других дистрибутивах. Сначала скачайте сам скрипт:
wget https://git.io/vpn -O openvpn-install.sh
Затем запустите скрипт от имени суперпользователя с помощью такой команды:
Дальше скрипт задаст несколько вопросов по настройкам OpenVPN. Сначала нужно указать точный ip адрес VPS, на котором будет запущен OpenVPN, именно на этом адресе программа будет слушать соединения:
Затем выберите протокол, который вы хотите использовать. Например, если я хочу использовать TCP то нужно выбрать 2:
Затем введите номер порта, на котором будет слушать программа, можно оставить значение по умолчанию:
Выберите сервера DNS, которые нужно использовать, мне, например, нравятся сервера от Google:
Введите имя клиента, для которого будут подписаны сертификаты на доступ:
Дальше нажмите Enter, и подтвердите установку OpenVPN. Программа сама установит нужные пакеты в вашем дистрибутиве, а затем подпишет все необходимые сертификаты, запустит сервер openvpn и даже добавит его в автозагрузку systemd:
Последний шаг, это утилита спросит есть ли у вашего сервера дополнительный внешний ip адрес. Это может быть полезно, если вы используете NAT, и для доступа к серверу применяете какой-либо туннель. В других случаях этот пункт можно пропустить, для VPS точно пропускаем.
Теперь установка и настройка OpenVPN сервера Linux завершена. Конфигурационный файл для клиента сохранен по адресу /root/sergiy-pc.ovpn, может иметь и другое имя, в зависимости от того, какое имя вы дали клиенту. Самое интересное, что для того чтобы добавить новых клиентов, вам просто достаточно запустить скрипт еще раз. Осталось только скопировать полученный файл клиенту, для этого можно на клиентском компьютере выполнить scp:
scp root@адрес_сервера:/root/sergiy-pc.ovpn /etc/openvpn/
Настройка клиента OpenVPN
Вы можете настроить OpenVPN на клиентской машине как захотите, например, с помощью NetworkManager. Но мы рассмотрим ручной вариант. Сначала установите саму программу. Установка OpenVPN Linux Ubuntu выполняется командой:
Теперь для подключения к нашему серверу используем полученный файл:
openvpn —config /etc/openvpn/client.ovpn
Вы можете использовать команду ip addr чтобы проверить ip адрес интерфейса OpenVPN — tun0:
Как видите, OpenVPN автоматически выдал IP вашему компьютеру, теперь можете проверить подключение к этому серверу с помощью ping:
Вот и все, ваша сеть готова к работе.
Выводы
Пять минут и настройка OpenVPN Linux завершена, а не подключение следующего клиента уйдет еще меньше. Этот метод не специфичен для RPM систем и может использоваться также в DEB системах, таких как Ubuntu или Debian. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Настройка и использование OpenVPN на Ubuntu
Обновлено: 05.03.2023 Опубликовано: 23.01.2019
Тематические термины: VPN, Ubuntu, OpenVPN. В инструкции рассмотрим процесс установки и настройки VPN сервера OpenVPN на Linux Ubuntu.
Подготовка Ubuntu
* в данном примере московское время. Если в нашей системе используется брандмауэр, открываем порт, на котором будет слушать OpenVPN:
* в данной инструкции предполагается, что мы настроим VPN-сервер на UDP-порту 443, однако, по-умолчанию, OpenVPN работает на порту 1194. Для сохранения правила используем iptables-persistent:
Установка, настройка и запуск VPN-сервера
Обязательные шаги для развертывания сервиса — установка программного обеспечения, генерация сертификатов, настройка OpenVPN. Рассмотрим эти процессы по шагам.
Установка OpenVPN
Создание сертификатов
export KEY_COUNTRY=»RU»
export KEY_PROVINCE=»Sankt-Petersburg»
export KEY_CITY=»Sankt-Petersburg»
export KEY_ORG=»DMOSK COMPANY»
export KEY_EMAIL=»master@dmosk.ru»
export KEY_CN=»DMOSK»
export KEY_OU=»DMOSK»
export KEY_NAME=»name-openvpn-server.dmosk.ru»
export KEY_ALTNAMES=»name-openvpn-server»
* где KEY_CN и KEY_OU: рабочие подразделения (например, можно указать название отдела); KEY_NAME: адрес, по которому будет выполняться подключение (можно указать полное наименование сервера); KEY_ALTNAMES — альтернативный адрес. Следующие действия будут записеть от версии OpenVPN. Более новая позволяет создавать сертификаты на основе Easy RSA 3, старая работает на базе 2-й версии. Понять, какой вариант наш можно посмотрев на содержимое каталога easy-rsa:
Либо мы увидим в нем утилиту easyrsa (новая версия), либо набор утилит, начинающихся на build. Рассмотрим процесс формирования сертификата с использованием как RSA3, так и RSA2. а) Если используется новая версия (утилита easyrsa) 1. Инициализируем PKI:
* после вводим дважды пароль, который хотим использовать для ключа центра сертификации. На запрос «Common Name» можно просто нажать Enter:
* nopass можно упустить, если хотим повысить безопасность с помощью пароля на сертификат. На запрос «Common Name» можно просто нажать Enter:
Как поднять OpenVPN сервер на Ubuntu 22.04?
В эпоху массовых блокировок и ограничений в сети, сохранение своей онлайн приватности становится все более актуальным. И здесь вам на помощь приходит OpenVPN – одно из самых популярных и надежных решений для создания безопасного туннеля в интернет. Если вы хотите обойти географические ограничения, обеспечить защиту своих данных или просто настроить собственный сервер для удаленного доступа к локальным ресурсам, то данная статья именно для вас! Мы рассмотрим этапы создания и настройки своего собственного OpenVPN сервера, чтобы вы могли насладиться свободным и безопасным интернетом, не зависимо от места нахождения. Присоединяйтесь к нам и давайте начнем этот увлекательный путь в мир безграничной свободы в онлайне!
Где взять VPS(виртуальную машину) и как к ней подключится?
Я лично использовал justhost(тык!) и брал самую дешёвую виртуалку в Нидерландах.
Далее будет инструкция по подключению:
- Зарегистрироваться, оплатить VPS
- Пока Вы ждёте её включение, скачайте PuTTy(тык!, тык!)
- Когда VPS запустилась, Вам на почту по которой вы регистрировались приходит письмо, в котором есть пароль от пользователя root, и IPv4 адрес, запоминаем их
- Открываем PuTTy и в поле Host Name (or IP address) вводим ip(IPv4) адрес который мы запомнили из письма и нажимаем Open
- Соглашаемся(Accept) с предупреждением о безопасности(оно появляется 1 раз)
- Если вы увидели надпись login as: , то Вы подключились
- Вводим root и при запросе пароля вводим пароль из письма
Создание нового пользователя и вход под ним(по соображениям безопасности)
- useradd -m
- passwd
- usermod -aG sudo
- sudo chsh -s /bin/bash
Подключаемся заново и входим под ранее созданным пользователем (предыдущий пункт, всё с 3 шага)
Предварительная подготовка
Установка пакетов
- sudo apt install easy-rsa
- sudo apt install openvpn
- sudo apt install iptables-persistent
Настройка FireWall
Настройка директорий VPN
- sudo mkdir -p /etc/openvpn/keys
- sudo mkdir /etc/openvpn/easy-rsa
- cd /etc/openvpn/easy-rsa
- sudo cp -r /usr/share/easy-rsa/* .
- sudo mkdir /etc/openvpn/ccd
Настройка VPN
Конфигурируем конфиги
Настройка vars
export KEY_COUNTRY=«RU» export KEY_PROVINCE=«Moscow» export KEY_CITY=«Moscow» export KEY_ORG=«sten» export KEY_ORG=»fdjgbi@sten.com« export KEY_CN=«sten» export KEY_OU=«sten» export KEY_NAME=«vpn.StenLi.com» export KEY_ALTNAMES=«vpn2.StenLi.com»
KEY_ORG, KEY_ORG, KEY_CN, KEY_OU, KEY_NAME, KEY_ALTNAMES — можно указывать всё, что угодно
- нажимаем по порядку: ctrl+x, y, enter
Настройка /etc/nat(FireWall)
#!/bin/sh # Включаем форвардинг пакетов echo 1 > /proc/sys/net/ipv4/ip_forward # Сбрасываем настройки брандмауэра iptables -F iptables -X iptables -t nat -F iptables -t nat -X # Разрешаем инициированные нами подключения извне iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешаем подключения по SSH iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT # Разрешаем подключения к OpenVPN iptables -A INPUT -i eth0 -p udp --dport 1194 -j ACCEPT # Разрешает входящий трафик из tun0 iptables -A INPUT -i tun0 -j ACCEPT # Разрешает транзитный трафик между eth0 и tun0: iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -j ACCEP # Запрещаем входящие извне iptables -A INPUT -i eth0 -j DROP # Разрешаем инициированные нами транзитные подключения извне iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j A # Запрещаем транзитный трафик извне iptables -A FORWARD -i eth0 -o tun0 -j DROP # Включаем маскарадинг для локальной сети iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE
- нажимаем по порядку: ctrl+x, y, enter
- sudo chmod 755 /etc/nat
Создание ключей сервера
- sudo ./easyrsa init-pki
- sudo ./easyrsa build-ca
- вводим пароль и запоминаем его(Enter New CA Key Passphrase)
- sudo ./easyrsa gen-req server nopass
- sudo ./easyrsa sign-req server server
После ввода команды подтверждаем правильность данных, введя yes,
и вводим пароль, который указывали при создании корневого сертификата.
- sudo ./easyrsa gen-dh
- sudo openvpn —genkey secret pki/ta.key
- sudo cp pki/ca.crt /etc/openvpn/keys/
- sudo cp pki/issued/server.crt /etc/openvpn/keys/
- sudo cp pki/private/server.key /etc/openvpn/keys/
- sudo cp pki/dh.pem /etc/openvpn/keys/
- sudo cp pki/ta.key /etc/openvpn/keys/
Настройка сервера
local 999.999.999.999 port 1194 proto udp dev tun ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh.pem tls-auth keys/ta.key 0 server 10.0.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt client-to-client client-config-dir /etc/openvpn/ccd keepalive 10 120 max-clients 32 persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 4 mute 20 daemon mode server tls-server comp-lzo tun-mtu 1500 mssfix 1620 cipher AES-256-GCM topology subnet push «redirect-gateway def1» push «dhcp-option DNS 8.8.8.8» up /etc/nat
- client-to-client даёт возможность клиентам видеть и общаться друг с другом в локальной сети
- client-config-dir /etc/openvpn/ccd мы указываем директорию в которой задаём статические ip адреса клиентам. Об этом позже
— Меняем local 999.999.999.999 на local
Запуск сервера
Запуск сервера
- sudo systemctl start openvpn@server
- sudo systemctl status openvpn@server
- Вы запустили сервер. УРА.
Генерация сертификатов
Генерация сертификатов
Со 2 по 4 выполняется 1 раз!
После этого запускаем 1, и 5+
#!/bin/bash if [ $# -ne 1 ]; then echo «Usage: $0 --client-name» exit 1 fi client_name=$1 password=«» rm -r /tmp/keys mkdir /tmp/keys cd /etc/openvpn/easy-rsa export EASYRSA_CERT_EXPIRE=1460 echo «$password» | ./easyrsa build-client-full $client_name nopass cp pki/issued/client_name.key pki/ca.crt pki/ta.key /tmp/keys/ chmod -R a+r /tmp/keys cat /tmp/keys/$client_name.ovpn client resolv-retry infinite nobind remote 999.999.999.999 1194 proto udp dev tun comp-lzo ca ca.crt cert $client_name.crt key $client_name.key tls-client tls-auth ta.key 1 float keepalive 10 120 persist-key persist-tun tun-mtu 1500 mssfix 1620 cipher AES-256-GCM verb 0 EOF echo «OpenVPN client configuration file created: /tmp/keys/$client_name.ovpn»
- Заменяем remote 999.999.999.999 1194 на remote 1194
- sudo bash ./gen_sert.sh
- cd /tmp/keys
- Например с помощью winscp достаем из этой директории сертификаты(получение файлов, скачать)
Задание статических адресов клиентам
ifconfig-push 10.0.0. 255.255.255.0