В эпоху массовых блокировок и ограничений в сети, сохранение своей онлайн приватности становится все более актуальным. И здесь вам на помощь приходит OpenVPN – одно из самых популярных и надежных решений для создания безопасного туннеля в интернет. Если вы хотите обойти географические ограничения, обеспечить защиту своих данных или просто настроить собственный сервер для удаленного доступа к локальным ресурсам, то данная статья именно для вас! Мы рассмотрим этапы создания и настройки своего собственного OpenVPN сервера, чтобы вы могли насладиться свободным и безопасным интернетом, не зависимо от места нахождения. Присоединяйтесь к нам и давайте начнем этот увлекательный путь в мир безграничной свободы в онлайне!

Где взять VPS(виртуальную машину) и как к ней подключится?
Я лично использовал justhost(тык!) и брал самую дешёвую виртуалку в Нидерландах.
Далее будет инструкция по подключению:
-
Зарегистрироваться, оплатить VPS
-
Когда 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
-
sudo iptables -I INPUT -p udp --dport 1194 -j ACCEPT -
sudo netfilter-persistent save
Настройка директорий 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
-
sudo nano 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)
-
sudo nano /etc/nat -
В открывшийся интерфейс вставляем:
#!/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/
Настройка сервера
-
sudo nano /etc/openvpn/server.conf -
В открывшийся интерфейс вставляем:
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 <внешний ip VPS(IP по которому вы подключались через PuTTy)>
Запуск сервера
Запуск сервера
-
sudo systemctl start openvpn@server -
sudo systemctl status openvpn@server
-
Вы запустили сервер!!!! УРА!!!!
Генерация сертификатов
Генерация сертификатов
Со 2 по 4 выполняется 1 раз!
После этого запускаем 1, и 5+
-
cd /<Любая удобная вам директория> -
sudo nano gen_sert.sh -
Вставляем в открывшееся окно:
#!/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 << EOF > /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 <IP сервера> 1194 -
sudo bash ./gen_sert.sh <Имя сертификата> -
cd /tmp/keys -
Например с помощью winscp достаем из этой директории сертификаты(получение файлов, скачать)
Задание статических адресов клиентам
-
cd /etc/openvpn/ccd -
sudo nano <Имя сертификата который вы указали при создании> -
Вставляем в открывшееся окно:
ifconfig-push 10.0.0.<адрес который не будет меняться, адреса не должны повторяться> 255.255.255.0
ссылка на оригинал статьи https://habr.com/ru/articles/744974/




Добавить комментарий