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

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

Configuring OpenVPN on Ubuntu

источник https://serverspace.io/support/help/configuring-openvpn-on-ubuntu/


OpenVPN - это открытая реализация одной из технологий VPN, предназначенная для организации защищенных виртуальных частных сетей между географически удаленными локальными сетями, а также отдельными клиентами. Безопасность туннеля обеспечивается шифрованием с использованием OpenSSL.

Как работает OpenVPN?
По завершении настройки сервера и его запуска он перейдет в режим ожидания приема и перенаправления внешних защищенных SSL-соединений на виртуальный сетевой адаптер (tun / tap).

При желании маршрутизацию сервера можно настроить так, чтобы интернет-трафик клиента проходил через сервер и становился трафиком сервера. В этом случае OpenVPN будет выполнять прокси-трафик.

Что требуется от операционной системы?
Перед установкой OpenVPN необходимо убедиться в правильности основных параметров.

У сервера есть как минимум один «белый» статический IP-адрес. Те. Сервер должен быть доступен из Интернета. Если адрес динамический, но сервер остается доступным из глобальной сети, используйте службы DynDNS.
Разрешено скачивать и устанавливать пакеты из официальных репозиториев. Чтобы проверить, запустите cat /tc/apt/sources.list. Строки с инструкциями из репозиториев необходимо раскомментировать (в начале строки не должно быть знака «#»).

Необходимо правильно указать сетевые параметры - имя хоста, параметры DNS-серверов.
Приступаем к установке.

Все шаги по установке будут выполняться пользователем root.

Обновление информации о репозитории:

sudo apt-get update 

Установите текущие обновления системы и установленные программы:

sudo apt-get upgrade 

Установите OpenVPN:

sudo apt-get install openvpn 

 

Важно. В базовых репозиториях часто отсутствует последняя версия пакета. Разработчики OpenVPN ведут свой репозиторий, как его настроить, можно узнать на официальном сайте.

Таким же образом установите пакет easy-rsa:

sudo apt-get install easy-rsa 

Действия после установки


Размещаем скрипты easy-rsa:

cd /etc/openvpn/ && make-cadir easy-rsa 

Готовим открытые ключи (PKI - Public Key Infrastructure):

Заходим в  / etc / openvpn / easy-rsa directory:

cd /etc/openvpn/easy-rsa 

Создание символической ссылки на файл конфигурации openssl:

ln -s openssl-1.0.0.cnf openssl.cnf 

Инициализируем скрипт vars:

source ./vars 

Система сообщит: ПРИМЕЧАНИЕ. Если вы запустите ./clean-all, я сделаю rm -rf для / etc / openvpn / easy-rsa / keys.

Осуществляем ./clean-all

 

Чтобы создать центр сертификации, запустите сценарий:

./build-ca 

В процессе работы программа задаст несколько вопросов. На них следует отвечать латинскими буквами. Если вы не заполните какое-либо поле, программа подставит значения по умолчанию, обычно указанные в скобках.

 

Создайте ключ сервера

Чтобы создать ключ сервера, выполните команду:

./build-key-server server 

 

 


Следует отметить, что процесс аналогичен генерации сертификата центра сертификации, однако перед подписанием сертификата программа задаст 2 уточняющих вопроса. Если все правильно, ответьте «у».

Генерация клиентских ключей
Аналогично генерации серверных ключей создаются и клиентские ключи:

./build-key client1 

Следует отметить, что созданный client1.key не имеет парольной и криптографической защиты. Это может привести к тому, что любой пользователь, завладевший файлом, может попытаться подключиться к серверу. Если такая угроза существует, лучше сгенерировать ключи другим скриптом:

./build-key-pass client2 

Сценарий запросит кодовую фразу в самом начале. Кроме того, процесс ничем не отличается от генерации ключей сервера и простого клиента.


Помните, что имена ключей должны быть уникальными. Один пользователь - один ключ с уникальным именем.

Бывает, что в процессе работы сервера, по прошествии некоторого времени, необходимо создать один или несколько сертификатов. Для этого вам нужно будет повторно инициализировать скрипт vars и только после этого запустить процесс генерации ключа:

cd /etc/openvpn/easy-rsa
source ./vars
./build-key client3

Благодаря протоколу Диффи-Хеллмана две или несколько сторон могут получить один секретный ключ, что позволит построить безопасный канал связи. Ключи генерируются командой:

./build-dh 

 

Результат будет примерно таким.

Когда программа будет завершена, файл dh2048.pem появится в каталоге / etc / openvpn / easy-rsa / keys /

Перемещение сертификатов и ключей


Сервер


Ключи и сертификаты созданы. Пришло время раздать их пользователям и скопировать серверные ключи в соответствующие каталоги на сервере.

Заходим в каталог с ключами:

cd /etc/openvpn/easy-rsa/keys 

Копируем только необходимые серверу файлы:

cp ca.crt ca.key dh2048.pem server.crt server.key /etc/openvpn 

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


Клиенты

Клиенту потребуется всего 3 файла ca.crt, client1.crt, client1.key. Каждому клиенту нужно давать только свои ключи. Эти файлы могут быть помещены в каталог / etc / openvpn на клиентском компьютере, если он работает под управлением ОС Linux.

В Windows они должны быть помещены в каталог пользователя.

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


Сервер


Большинство установленных программ в Linux имеют так называемые файлы примеров. Эти файлы содержат примеры конфигурации и их объяснения. OpenVPN не стал исключением. Распакуйте файл конфигурации сервера в каталог / etc / openvpn:

gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf 

Сервер готов к работе с полученным файлом. Он настроен с возможностью туннелирования, но не может проксировать, то есть отправлять клиентский трафик от своего имени. Почини это.

Сначала проверьте, какие файлы находятся в каталоге / etc / openvpn:

ls /etc/openvpn 

 


Откройте файл конфигурации:

nano /etc/openvpn/server.conf 

И проверяем соответствие прописанных в конфигурации файлов файлам в каталоге. Интересные строки после »корневого сертификата SSL / TLS (ca), сертификата (cert) и закрытого ключа (ключа)».

Если названия отличаются от существующих, необходимо внести необходимые исправления. Выйдите из редактора, нажав Ctrl + X.

Запускаем сервер:

/etc/init.d/openvpn start 

 

Проверяем результат запуска:

/etc/init.d/openvpn status 

 

 


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


Предполагается, что пакет OpenVPN уже установлен на стороне клиента.

Скопируйте файл настроек клиента в домашний каталог пользователя:

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /root 

Скопируйте сгенерированные ключи - client1.key, client1.crt, ca.crt:

cd /etc/openvpn/easy-rsa/keys
cp client1.key client1.crt ca.crt /root

 

Редактируем файл конфигурации клиента:

nano /root/client.conf 

Находим закомментированные строки («# Имя хоста / IP и порт сервера» )“# The hostname / IP and port of the server”. Для удаленного параметра измените my-server-1 на IP-адрес сервера или его доменное имя.

В том же файле ниже мы находим блок «# SSL / TLS parms.». Редактирование названий ключей.

Выходим из редактирования комбинацией Ctrl + X. На вопрос о сохранении изменений отвечаем «Y». Имя файла остается без изменений.
Перенесите файлы client1.key, client1.crt, ca.crt и client.conf на клиентский компьютер, с которого будет происходить подключение к серверу OpenVPN.
Важный! Некоторые клиентские реализации OpenVPN работают только с файлами * .ovpn. В таких случаях достаточно изменить расширение (переименовать) файл с client.conf на client.ovpn.

Подключаемся к серверу командой:

openvpn openvpn.conf 

 

Следует отметить, что проксирование до сих пор не настроено. В то же время, когда клиентская машина подключена к серверу OpenVPN, доступ в Интернет прекращается. Это связано с тем, что созданный адаптер TUN, а вместо него сам сервер является шлюзом по умолчанию.


Настройка маршрутизации.


На сервере отредактируйте файл server.conf:

nano /etc/openvpn/server.conf 

Находим в файле следующую строку и удаляем “;” символ перед ним, таким образом раскомментируя его:

push "redirect-gateway def1 bypass-dhcp" 

 

Сохраните и закройте редактор.
Редактируем файл / etc / sysctl:

nano /etc/sysctl.conf 

В конце файла добавьте следующую строку:

net.ipv4.ip_forward=1 

Это позволит системе пересылать трафик между интерфейсами, но изменения вступят в силу только после перезагрузки. Сохраните файл и закройте редактор.

Разрешить пересылку пакетов без перезагрузки сервера:

echo 1 > /proc/sys/net/ipv4/ip_forward 

Настройте NAT в iptables. Вводим команды по очереди:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT

 

Вы также можете просто ввести их в файл /etc/rc.local до строки «exit 0» или настроить брандмауэр.

Сервер готов к использованию. Однако задача состоит в том, чтобы весь трафик проксировать, и поэтому необходимо настроить пересылку DNS-запросов. Настроить.

Установить dnsmasq
Если установка выполняется в ОС Ubuntu:

sudo apt-get install dnsmasq 

 

Хотя в большинстве современных версий ОС Ubuntu dnsmasq уже предустановлен, в более старых версиях вы должны сделать это:

sudo apt-get install dnsmasq && dpkg-reconfigure resolvconf 

 

Может открыться диалоговое окно мастера установки. В нем будет 2 вопроса. В первом случае на вопрос «подготовить /etc/resolv.conf для динамических обновлений» ответ будет «Да», а в следующем: «Добавить исходный файл в динамический файл?» ответьте «Нет».

Для ОС Debian 7:

sudo apt-get install dnsmasq resolvconf 

Отредактируйте файл настроек dnsmasq:

nano /etc/dnsmasq.conf 

Добавьте следующие параметры:

listen-address=10.8.0.1 
bind-interfaces

 

Сохраните файл и закройте редактор.


Редактирование файла сетевых настроек:

nano /etc/network/interfaces 

Необходимо указать адрес DNS-серверов в соответствующих разделах настроек адаптера:

dns-nameservers 8.8.8.8 8.8.4.4 

Возможно, это действие уже было выполнено. Повторять это не нужно.

Учитывая особенность запуска и последующей работы dnsmasq - возможность сбоя перед инициализацией виртуального tun-адаптера, добавьте в файл rc.local перед «exit 0» следующую строку:

/etc/init.d/dnsmasq restart 

Теперь позвольте клиентам сервера OpenVPN использовать DNS. В редакторе nano раскомментируйте строку:

push "dhcp-option DNS 10.8.0.1" 

 


Исправляем изменения в файле.

Перезагрузите сервер:

reboot 

 

Проверка работы

Мы переподключаемся к серверу. Мы пытаемся открыть веб-сайт для проверки IP-адреса. Результатом должен быть IP-адрес сервера.

 

 

Вверх