ОБЛАЧНЫЕ СЕРВИСЫ
- Облачные базы данных
- Хранилище S3
- Балансировщик нагрузки
- Kubernetes
СЕРВЕРЫ
- Облачные серверы
- Выделенные серверы
- Администрирование серверов
- Защита от DDoS + CDN
- Серверы 152-ФЗ
ИНСТРУКЦИИ ДЛЯ СЕРВЕРОВ
- Инструкции для UNIX-систем
- Обзор
- Подключение к серверу по SSH
- Подключение к серверу по SFTP
- Авторизация по SSH-ключу
- Смена или сброс пароля root
- Смена пароля root для MySQL
- Добавление пользователей
- Управление правами доступа
- Защита SSH от подбора пароля. Fail2ban
- Создание дампа базы и восстановление данных
- Установка LAMP на Ubuntu
- Установка phpMyAdmin на Ubuntu с LAMP
- Установка модулей PHP (CentOS)
- Установка модулей PHP (Debian / Ubuntu)
- Настройка параметров PHP (CentOS)
- Настройка параметров PHP (Debian / Ubuntu)
- Настройка перенаправлений
- Настройка перенаправлений (Nginx)
- Настройка FTP в Ubuntu 20.04
- Оптимизация MySQL с помощью MySQLTuner
- Сканирование с помощью ClamAV
- Управление службами в systemd
- Логирование в systemd
- Аудит системных событий
- Добавление дополнительного IP
- Настройка статического IP
- Добавление и удаление диска
- Изменение размера диска
- Монтирование резервных копий
- Создание swap, изменение его размера
- Установка и удаление программ. Менеджеры пакетов
- Установка графической оболочки XFCE на Ubuntu
- Настройка iptables
- Настройка OpenVPN
- Удаленный доступ к MySQL
- Установка QEMU-агента
- Установка Zabbix-агента
- Установка и работа с PostgreSQL
- Установка SSL на сервер с Keitaro
- Установка Minecraft на CentOS 7
- Запуск Wordpress на сервере c Ubuntu
- Диагностика и решение проблем
- Инструкции для Windows
- Панели управления
ДРУГИЕ УСЛУГИ
- Timeweb Private VPN
- Unlocked
- Почта
- Домены
- Лицензии
- SSL-сертификаты
ДОКУМЕНТАЦИЯ API
- Методы API для облачных серверов
ОПЛАТА И ДОКУМЕНТЫ
- Оплата услуг
- Договор
- Отчетные документы
- Электронный документооборот
РАБОТА С АККАУНТОМ
- Работа с аккаунтом Timeweb Cloud
Настройка OpenVPN
Если вам необходимо настроить удаленное подключение к рабочим серверам (например, при организации удаленной работы для сотрудников, чтобы обеспечить им доступ к корпоративной сети и внутренним ресурсам из сторонних сетей), вы можете воспользоваться этой инструкцией для настройки VPN-подключения и удаленного доступа.
Существует множество вариантов реализации VPN. Ниже мы рассмотрим настройку на основе OpenVPN.
Для настройки нам понадобится VDS с установленной Ubuntu 16.04.
Обратите внимание, что сервер, на котором будет запущен клиент VPN для пропуска во внутреннюю сеть, должен являться шлюзом сети. Также, файрвол должен быть настроен на пропуск пакетов через VPN.
Установка необходимого ПО
Подключитесь к серверу по SSH и выполните установку OpenVPN и центра сертификации командами:
apt-get update
sudo apt-get install openvpn easy-rsa
Настройка центра сертификации
OpenVPN использует TLS/SSL, поэтому вам потребуются сертификаты для шифрования трафика между сервером и клиентами. Для выпуска доверенных сертификатов необходимо создать свой собственный центр сертификации.
1. С помощью команд ниже скопируйте шаблонную директорию easy-rsa в домашний каталог и перейдите в созданную директорию:
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
2. Отредактируйте файл vars:
nano vars
Необходимо отредактировать несколько переменных, которые задают параметры сертификатов. Эти переменные: KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL, KEY_OU. Укажите значения для каждой из них, не оставляйте их незаполненными.
Также нужно отредактировать значение переменной KEY_NAME, указав субъекта сертификатов. В примере мы зададим ему имя сервер Server (вы можете указать свое), это же значение будет использоваться далее в командах в инструкции.
Пример настроек:
Сохраните и закройте файл.
3. Создайте центр сертификации при помощи утилиты easy-rsa и заданных переменных. Выполните команду:
source vars
Вывод должен быть следующим:
Выполните предложенную команду, чтобы удостовериться, что вы работаете в «чистой» среде:
./clean-all
Создайте корневой центр сертификации:
./build-ca
Запустится процесс создания ключа и сертификата корневого центра сертификации. Все необходимые значения будут введены автоматически, так как вы задали их в файле vars. Нажимайте ENTER для подтверждения выбора.
Настройка центра сертификации закончена.
4. Создайте сертификат и пару ключей, а также дополнительные файлы, используемые для шифрования.
Обратите внимание: далее в командах и примерах мы будем использовать Server — значение, указанное выше для переменной KEY_NAME. Если вы указали другое имя, не забудьте заменить его в приводимых командах. Это будет касаться, в том числе, имени файла конфигурации: в нашем случае это будет /etc/openvpn/server.conf.
4.1. Создайте сертификат OpenVPN и ключи для сервера:
./build-key-server Server
Подтвердите все значения по умолчанию, нажимая Enter. Не задавайте challenge password. При завершении процесса два раза введите y для подписи и подтверждения создания сертификата:
4.2. Создайте оставшиеся файлы. Сгенерируйте надежные ключи протокола Диффи-Хеллмана:
./build-dh
4.3. После завершения процесса сгенерируйте подпись HMAC:
openvpn --genkey --secret keys/ta.key
Настройка сервиса OpenVPN
1. Скопируйте созданные файлы (сертификат и ключ центра сертификации, сертификат и ключ сервера, подпись HMAC и файл Diffie-Hellman) в директорию /etc/openvpn:
cd ~/openvpn-ca/keys
cp ca.crt ca.key Server.crt Server.key ta.key dh2048.pem /etc/openvpn
2. Скопируйте и распакуйте файл c примером конфигурации OpenVPN в конфигурационную директорию. Этот файл послужит основой для последующих настроек.
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server
3. Настройте конфигурационный файл сервера. Откройте файл /etc/openvpn/server.conf:
nano /etc/openvpn/server.conf
3.1. Найдите директиву tls-auth. Удалите «;», чтобы раскомментировать строку. Далее добавьте параметр key-direction и установите его значение в 0.
tls-auth ta.key 0 # This file is secret
key-direction 0
Должно получиться следующее:
3.2. Найдите секцию шифрования с закомментированными строками cipher. Удалите «;» для раскомментирования строки со значением AES-128-CBC, под этой строкой добавьте строку auth и укажите алгоритм HMAC, например, SHA256:
cipher AES-128-CBC
auth SHA256
3.3. Найдите настройки user и group и удалите «;» для раскомментирования этих строк:
user nobody
group nogroup
3.4. Для реализации доступа к сети, которая находится за клиентом (внутренняя сеть) необходимо прописать следующие строки, где ip 192.168.33.0 следует заменить на ip необходимой внутренней сети:
push "route 192.168.33.0 255.255.255.0"
route 192.168.33.0 255.255.255.0
client-config-dir ccd
3.5. Проверьте настройки cert и key, чтобы они указывали на правильные файлы .crt и .key, которые вы скопировали ранее в /etc/openvpn:
cert Server.crt
key Server.key
Сохраните и закройте файл.
4. Для реализации доступа к внутренней сети, которая находится за клиентом, выполните следующее.
4.1. Создайте директорию /etc/openvpn/ccd:
mkdir /etc/openvpn/ccd
chmod 744 /etc/openvpn/ccd
4.2. Создайте новый файл, название которого должно совпадать с названием конфига клиента, который будет запущен на соответствующем сервере:
nano /etc/openvpn/ccd/cserver1
4.3. Добавьте в него необходимые ip c масками для пропуска клиентов во внутренние сети:
iroute 192.168.33.0 255.255.255.0
4.4. Сохраните и закройте файл.
4.5. Задайте необходимые права для файла:
chmod 744 /etc/openvpn/ccd/cserver1
Настройка сетевой конфигурации сервера
1. Разрешите серверу перенаправлять трафик:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
2. Примените настройки к текущей сессии:
sysctl -p
3. Отключите правила файрвола. При необходимости вы сможете настроить правила самостоятельно, используя материал в Сети.
ufw disable
ufw reset
iptables -F
systemctl disable ufw
Включение сервиса OpenVPN
Запустите сервер OpenVPN, указав имя файла конфигурации в качестве переменной. В нашем случае файл конфигурации называется /etc/openvpn/server.conf, поэтому мы используем @server. Укажите здесь корректное для вас значение.
service openvpn@server start
Проверить статус можно командой:
service openvpn@server status
Вы также можете проверить доступность интерфейса OpenVPN tun0 командой:
ip addr show tun0
Если всё в порядке, добавьте сервис в автозагрузку:
systemctl enable openvpn@server
Создание конфигураций клиентов
Создание базовой конфигурации
1. В домашней директории создайте каталог для хранения файлов:
mkdir -p ~/client-configs/files
chmod 700 ~/client-configs/files
2. Скопируйте файл с примером конфигурации в этот каталог:
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
3. Откройте этот файл в текстовом редакторе и внесите изменения:
nano ~/client-configs/base.conf
3.1. Найдите директиву remote, которая сообщает клиенту адрес сервера OpenVPN. Укажите здесь IP-адрес вашего VDS-сервера:
remote IP_адрес_сервера 1194
3.2. Раскомментируйте директивы user и group, удаляя «;»:
user nobody
group nogroup
3.3. Найдите директивы ca, cert и key и закомментируйте их, добавив #:
3.4. Добавьте настройки cipher и auth с такими же значениями, как в файле /etc/openvpn/server.conf, а также директиву key-direction со значением 1.
cipher AES-128-CBC
auth SHA256
key-direction 1
3.5. Добавьте следующие закомментированные строки, которые будут необходимы для клиентов на Linux, использующих файл /etc/openvpn/update-resolv-conf. Для таких клиентов потребуется раскомментировать эти строки в сгенерированном клиентском файле конфигурации OpenVPN.
# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
Сохраните и закройте файл.
Скрипт для генерации конфигов
Далее необходимо создать скрипт, который будет генерировать файлы конфигурации с сертификатами, ключами и файлами шифрования и размещать их в директории ~/client-configs/files.
1. Создайте и откройте файл make_config.sh внутри директории ~/client-configs:
nano ~/client-configs/make_config.sh
2. Вставьте в него следующий блок директив:
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-auth>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-auth>') \
> ${OUTPUT_DIR}/${1}.ovpn
3. Сохраните и закройте файл.
4. Сделайте его исполняемым:
chmod 700 ~/client-configs/make_config.sh
Создание конфигураций
Ниже мы рассмотрим создание сертификата для сервера, имеющего доступ во внутреннюю сеть. Аналогичным образом вы сможете создать сертификаты для любого количества клиентов, каждый раз передавая скрипту уникальное значение.
Для создания первого сертификата и ключа мы будем использовать параметр cserver1.
Для создания файлов без пароля (это облегчит автоматические соединения), используйте команду build-key:
cd ~/openvpn-ca
source vars
./build-key cserver1
В процессе создания файлов нажимайте Enter для подтверждения (все необходимые значения уже введены). Не задавайте challenge password. При завершении процесса дважды укажите y в ответ на запросы о подписи и подтверждении создания сертификата.
Сгенерируйте конфигурацию для этих файлов. Для этого перейдите в директорию ~/client-configs и воспользуйтесь созданным скриптом:
cd ~/client-configs
./make_config.sh cserver1
Если всё прошло успешно, в директории ~/client-configs/files будет создан файл cserver1.ovpn:
Этот файл необходимо передать соответствующему клиенту. Скачать конфигурацию можно по SFTP.
Настройка клиентов
Инструкции по настройке клиентов для OpenVPN для разных устройств и систем вы можете найти в сети. В большинстве случаев достаточно установить клиент и импортировать файл конфигурации.
Для примера, ниже рассмотрим настройку клиентов на компьютере с системами Windows и MacOS.
Windows
- Загрузите клиент с сайта OpenVPN: https://openvpn.net/community-downloads/ и установите его на компьютер.
- После установки скопируйте полученный файл конфигурации в папку C:\Program Files\OpenVPN\config.
- Запустите OpenVPN. Это необходимо сделать от имени администратора: кликните на значке правой кнопкой и выберите «Запуск от имени администратора». Чтобы OpenVPN всегда по умолчанию запускался от имени администратора, кликните на его значке правой кнопкой и выберите Свойства. На вкладке «Совместимость» отметьте пункт «Выполнять эту программу от имени администратора» и сохраните.
- В появившемся при запуске окне с предупреждением (разрешить программе внести изменения) нажмите «Да».
- Кликните правой кнопкой мыши на значке OpenVPN в трее, выберите загруженный профиль и нажмите Connect / Подключиться.
Откроется окно с логом соединения, и, как только соединение будет установлено, появится соответствующее уведомление.
Для отключения снова кликните на значок OpenVPN в трее, выберите нужный профиль и нажмите Disconnect / Отключиться.
MacOS
- Для MacOS можно использовать бесплатный клиент Tunnelblick.
- Загрузите клиент с сайта Tunnelblick: https://tunnelblick.net/downloads.html
- Дважды кликните на загруженном файле и пройдите процесс установки.
- При завершении установки выберите «Нет» в ответ на вопрос о наличии конфигурационных файлов.
- После завершения установке откройте Finder и кликните дважды на вашем конфигурационном файле. Tunnelblick автоматически установит профиль.
Для установки соединения запустите Tunnelblick, после чего кликните на его иконку в верхней части экрана и нажмите Connect. Далее выберите установленный профиль.