Linux

Как настроить BIND9 в качестве вторичного DNS-сервера в Ubuntu/Debian

Как настроить виртуальные хосты Nginx в Ubuntu/Debian

Как настроить BIND9 в качестве основного DNS-сервера в Ubuntu/Debian

Как установить OpenVPN Server на Ubuntu/Debian

Настройка OpenVPN в Ubuntu/Debian

Как установить сертификат SSL на Nginx для Ubuntu/Debian

Как настроить DNS-сервер BIND9 в Ubuntu/Debian

Как настроить HTTP / 2 в Nginx на Ubuntu/Debian

VPN-сервер с OpenVPN и Stunnel

Настройка веб-сервера

Установка статического IP на сервере

Как из серого IP сделать белый IP?

Переносим Armbian на внешний HDD на Orange Pi PC (Plus)

Настройка Медиа в Majordomo. Orange Pi PC (Plus). Armbian

Установка и настройка Windows терминала

Перенос сайта

Настройка сервера (Rev1)

Установка ssh сервера на Ubuntu/Debian

Установка MajorDoMo на OrangePi

Установка MajorDoMo

Установка phpMyAdmin Ubuntu 20.04

Настройка системы умного дома на базе ESP8266

Установка MAJORDOMO Rev1

Установка сервера MQTT

Установка и настройка сервера на Ubuntu/Debian

Настройка Linux на Orange Pi

Монтирование разделов в Linux

Репозитории Linux

Установка и настройка Orange_CNC

Установка и настройка Armbian и DLNA на Orange Pi PC в картинках

Простой VPN с WireGuard

Nagios – современный и популярный инструмент для мониторинга компьютерных систем и сетей.

Перенос системы на EMMC

Настройки Linux

Удаленный рабочий стол RDP в Linux Armbian

Установка Аndroid OS на Orange Pi Plus

Установка локального сервера BLYNK на любой другой одноплатник с OC Armbian

VPN-сервер с OpenVPN и Stunnel

 

Raspberry Pi, который я настраиваю в качестве веб-сервера, также выполняет двойную функцию в качестве сервера VPN. Я использую OpenVPN и обертываю его с помощью Stunnel, так как мне иногда нужно использовать VPN в странах, которые фильтруют свой доступ в Интернет. Stunnel делает VPN похожим на трафик HTTPS, поэтому это позволяет избежать глубокой проверки пакетов.

Установите программное обеспечение и сгенерируйте сертификаты / ключи
Для установки программного обеспечения требуется всего одна команда:

sudo apt-get install openvpn stunnel4 

 Некоторые подготовительные работы: 

sudo -s 

 

apt-get install easy-rsa


    make-cadir /etc/openvpn/easy-rsa
    cd /etc/openvpn/easy-rsa/
    source ./vars
    ./clean-all 

Создание сертификатов и ключей - длительный, но простой процесс. Каждый раз, когда вы создаете сертификат, вам будет предложено ввести название страны, штата или провинции, название населенного пункта, название организации, название организационной единицы, общее название, имя и адрес электронной почты. Требуется только общее имя. Он определяет, кому принадлежит сертификат. Если у вас есть доменное имя, вы можете его использовать. В противном случае вы можете просто использовать имя хоста или что-то еще.

В блоках ниже обязательно замените подчеркнутый текст чем-нибудь подходящим.

Создайте центр сертификации (CA). Для этого личного VPN мы используем сервер в качестве CA.
ЦС используется для подписи всех других сертификатов, поэтому сервер и клиенты могут доверять
сертификатам друг друга. 

./build-ca
        ...
        Country Name (2 letter code) [US]:leave black or write something
        State or Province Name (full name) [CA]:leave black or write something
        Locality Name (eg, city) [SanFrancisco]:leave black or write something
        Organization Name (eg, company) [Fort-Funston]:leave black or write something
        Organizational Unit Name (eg, section) [MyOrganizationalUnit]:leave black or write something
        Common Name (eg, your name or your server's hostname) [Fort-Funston CA]: your server hostname
        Name [EasyRSA]:leave black or write something
        Email Address [Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.]:leave black or write something
        ... 

 Сделайте сертификат VPN-сервера и попросите CA подписать его. 

 ./build-key-server your server hostname
        ...
        Country Name (2 letter code) [US]:leave black or write something
        State or Province Name (full name) [CA]:leave black or write something
        Locality Name (eg, city) [SanFrancisco]:leave black or write something
        Organization Name (eg, company) [Fort-Funston]:leave black or write something
        Organizational Unit Name (eg, section) [MyOrganizationalUnit]:leave black or write something
        Common Name (eg, your name or your server's hostname) [your server hostname]:just press enter since the default value is correct
        Name [EasyRSA]:leave black or write something
        Email Address [Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.]:leave black or write something
        A challenge password []:leave black or write something
        An optional company name []:leave black or write something
        Sign the certificate? [y/n]:y
        1 out of 1 certificate requests certified, commit? [y/n]y
        ... 

Сделайте сертификаты для всех клиентов, которые будут подключаться к VPN-серверу, и попросите CA подписать их. В приведенном ниже примере я сделал два сертификата, но вам нужен только один, если только одно устройство будет подключаться к VPN-серверу. 

 ./build-key your client1 hostname
        ...
        Country Name (2 letter code) [US]:leave black or write something
        State or Province Name (full name) [CA]:leave black or write something
        Locality Name (eg, city) [SanFrancisco]:leave black or write something
        Organization Name (eg, company) [Fort-Funston]:leave black or write something
        Organizational Unit Name (eg, section) [MyOrganizationalUnit]:leave black or write something
        Common Name (eg, your name or your server's hostname) [your client1 hostname]:just press enter since the default value is correct
        Name [EasyRSA]:leave black or write something
        Email Address [Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.]:leave black or write something
        A challenge password []:leave black or write something
        An optional company name []:leave black or write something
        Sign the certificate? [y/n]:y
        1 out of 1 certificate requests certified, commit? [y/n]y
        ...

    ./build-key your client2 hostname
        Country Name (2 letter code) [US]:leave black or write something
        State or Province Name (full name) [CA]:leave black or write something
        Locality Name (eg, city) [SanFrancisco]:leave black or write something
        Organization Name (eg, company) [Fort-Funston]:leave black or write something
        Organizational Unit Name (eg, section) [MyOrganizationalUnit]:leave black or write something
        Common Name (eg, your name or your server's hostname) [your client2 hostname]:just press enter since the default value is correct
        Name [EasyRSA]:leave black or write something
        Email Address [Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.]:leave black or write something
        A challenge password []:leave black or write something
        An optional company name []:leave black or write something
        Sign the certificate? [y/n]:y
        1 out of 1 certificate requests certified, commit? [y/n]y
        ...

  Создайте параметры Диффи-Хеллмана, чтобы можно было использовать шифры PFS. 

./build-dh 

 Настройте сервер OpenVPN и включите переадресацию IP

nano /etc/openvpn/server.conf
        port 1194
        proto tcp
        dev tun
        tun-mtu 1500
        tun-mtu-extra 32
        mssfix 1450
        ca /etc/openvpn/easy-rsa/keys/ca.crt
        cert /etc/openvpn/easy-rsa/keys/server.crt
        key /etc/openvpn/easy-rsa/keys/server.key
        dh /etc/openvpn/easy-rsa/keys/dh2048.pem
        server 10.8.0.0 255.255.255.0
        push "redirect-gateway def1 bypass-dhcp"
        push "dhcp-option DNS 8.8.8.8"
        push "dhcp-option DNS 8.8.4.4"
        keepalive 5 30
        comp-lzo
        persist-key
        persist-tun
        status /var/log/openvpn.log
        verb 3 

service openvpn restart 

 Включить переадресацию IP: 

nano /etc/sysctl.conf 

 раскомментируйте эту строку: net.ipv4.ip_forward=1 

 

sysctl -p 

 

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 

 

sudo apt-get install iptables-persistent 

дважды выберите «Да», чтобы сохранить текущие правила IPv4 и IPv6

 Настройте сервер Stunnel

Создайте самозаверяющий сертификат в форматах PEM и PKCS12. Stunnel использует файл PEM, но SSLDroid требует формата PKCS12. 

cd /etc/stunnel/
sudo -s
    openssl genrsa -out key.pem 2048
    openssl req -new -x509 -key key.pem -out cert.pem -days 3650
        ...
        Country Name (2 letter code) [AU]:[]:leave black or write something
        State or Province Name (full name) [Some-State]:[]:leave black or write something
        Locality Name (eg, city) []:[]:leave black or write something
        Organization Name (eg, company) [Internet Widgits Pty Ltd]:[]:leave black or write something
        Organizational Unit Name (eg, section) []:[]:leave black or write something
        Common Name (e.g. server FQDN or YOUR name) []:your server hostname
        Email Address []:[]:leave black or write something
        ...

    cat key.pem cert.pem >> stunnel.pem
	
    openssl pkcs12 -export -out stunnel.p12 -inkey key.pem -in cert.pem 

Настройте сервер stunnel и перезапустите его, чтобы убедиться, что все работает должным образом: 

nano stunnel.conf
        chroot = /var/lib/stunnel4
        pid = /stunnel4.pid
        setuid = stunnel4
        setgid = stunnel4
        socket = l:TCP_NODELAY=1
        socket = r:TCP_NODELAY=1
        cert = /etc/stunnel/stunnel.pem
        [openvpn]
        accept = 443
        connect = localhost:1194
        cert = /etc/stunnel/stunnel.pem

  

nano /etc/default/stunnel4

  измените активную строку на 1, например: ENABLED=1 

shutdown -r now

  

Настройте клиент для ПК

 

Чтобы клиент Stunnel мог взаимодействовать с сервером Stunnel, ему нужна копия сертификата. Этот сертификат хранился в /etc/stunnel/stunnel.pem на сервере. Вы можете использовать scp для копирования файла PEM с сервера на клиент или просто скопировать файл и скопировать и вставить текст в файл stunnel.pem на клиенте.

Установите и запустите клиент Stunnel, затем настройте его, затем попросите Stunnel перезагрузить конфигурацию:

Пуск> Все приложения> Stunnel allusers> Stunnel GUI Start

На панели задач щелкните правой кнопкой мыши значок stunnel> Изменить конфигурацию

Замените содержимое файла на: 

[openvpn]
    client = yes
    accept = 1337
    connect = yourdomain.com:443
    cert = C:\Path\to\your\stunnel.pem/span>

  Сохраните файл, затем щелкните правой кнопкой мыши значок stunnel> Обновить конфигурацию.

Проверьте наличие ошибок: щелкните правой кнопкой мыши значок stunnel> Показать окно журнала

Создайте файл конфигурации OpenVPN на клиенте. Создайте текстовый файл с расширением .ovpn:

  

client
dev tun
proto tcp
remote localhost 1337
route yourdomain.com 255.255.255.255 net_gateway
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
auth-nocache
remote-cert-tls server
comp-lzo
verb 3

# copy over the server's /etc/openvpn/easy-rsa/keys/ca.crt

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----


# copy over the server's /etc/openvpn/easy-rsa/keys/your client1 hostname.crt

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----


# copy over the server's /etc/openvpn/easy-rsa/keys/your client1 hostname.key

-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

  измените Когда stunnel запущен на панели задач, просто щелкните правой кнопкой мыши файл .ovpn и выберите Запустить OpenVPN в этом файле конфигурации. Через несколько секунд вы должны увидеть «Последовательность инициализации завершена», и все готово. Чтобы прекратить использование VPN, просто закройте это окно. Вы можете оставить stunnel включенным или закрыть его.

 

Настройка клиента Android

Вам необходимо установить два приложения: OpenVPN Connect и SSLDroid. Оба доступны в магазине Google Play.

Как и в случае с клиентом для ПК, вам понадобится файл .ovpn для OpenVPN на вашем устройстве Android. Напишите один, как мы сделали для клиента ПК, за исключением того, что используйте второй сертификат и ключ, которые были сгенерированы.

Скопируйте файлы .ovpn и .p12 на свое устройство Android.

Хотя у Stunnel есть версия для Android, это не приложение. Это просто программа командной строки, поэтому пользоваться ею не так просто. Вместо этого я использую приложение SSLDroid. Он выполняет ту же работу - маскирует трафик OpenVPN в SSL-соединении, чтобы обойти глубокую проверку пакетов. Когда вы открываете приложение, просто нажмите «БОЛЬШЕ», затем нажмите «Добавить туннель». Дайте ему имя (что угодно), установите Local Port на 1337, установите Remote Host на доменное имя или IP-адрес вашего сервера, установите Remote Port на 443 и выберите файл .p12, который вы скопировали ранее. Коснитесь Применить.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создайте параметры Диффи-Хеллмана, чтобы можно было использовать шифры PFS.

 

 

Вверх