Предлагаю максимально автоматизированный способ установить сервер OpenVPN и/или FAS на AlmaLinux 10. Установка возможна в 4 разных вариантах:
Сервер OpenVPN и FAS на одном сервере - рекомендуется для ознакомления
Сервер OpenVPN и FAS на разных серверах - рекомендуется для реального использования
Только сервер OpenVPN - без хостинга windows-клиентов, конфиг-файлов клиентов и любых других файлов
Только FAS - хостинг файлов
Предполагается, что сервер устанавливается в локальной сети 10.x.y.0/255.255.255.0 и имеет один сетевой интерфейс eth0. Но ничто вам не мешает сменить адресацию, добавить внешний интерфес, и т.д.
Также снаружи проброшены tcp-порты: 81 (для openvpn) и, если такой функционал нужен, - 80, 443 (для FAS - web-сервера, отдающего конфиг-файлы и windows-клиенты).
Установка сервера OpenVPN или FAS
Скачиваем iso-образ AlmaLinux 10 Minimal.
Устанавливаем его на сервер (2 CPU cores / 2–4 GB RAM / 20 GB storage):
Язык в процессе установки: Русский / Русский (Россия)
Место установки: Автоматическое разбиение диска
KDUMP: [ ] Включить kdump
Имя сети и узла:
Ethernet (eth0) [x] -> [ Настроить ]
[ IPv4 Settings ]
Method: Manual
Addresses -> [ Add ] -> Address: 10.x.y.z -> Netmask: 255.255.255.0 -> Gateway: 10.x.y.1
DNS servers: 8.8.8.8 1.1.1.1
Search domains: domain.local # указываем локальный домен - по нему будет идти поиск коротких имен
[ IPv6 Settings ] -> Method: Disabled
[ Save ]
Имя узла: vpn.domain.com -> [ Применить ] # указываем внешнее имя - на него будем получать сертификат LetsEncrypt
СЕТЬ И ИМЯ УЗЛА: [ Готово ]
Дата и время: Европа / Самара
Учетная запись root:
[x] Включить учетную запись root
[x] Разрешить вход пользователем root с паролем через ssh
[ Начать установку ]
Проверяем Интернет: ping ya.ru - если не работает, донастраиваем сеть: nmtui.
Обновляем ядро и перезагружаемся (пропустите этот пункт, если есть проблемы с установкой по этой инструкции):
yum -y upgrade kernel && reboot
Скачиваем себе на ПК архив almalinux10.tar.gz с пакетами для установки OpenVPN и FAS.
Переносим этот архив по WinSCP на сервер в домашний каталог.
Заходим в домашний каталог сервера, где лежит архив, и запускаем установку:
zcat almalinux10.tar.gz|cpio -idm; cd almalinux10 && ./go
В меню выбираем пакеты:
для варианта Сервер OpenVPN и FAS на одном сервере - ставим галочки на пунктах: 1,3,4, и по желанию: 2
для варианта Только сервер OpenVPN - ставим галочку на пункте: 4
для варианта Только FAS - ставим галочки на пунктах: 1,3, и по желанию: 2
Затем выбираем "Install selected"
После установки пакетов требуется перезагрузка: reboot
Подключение второго диска для FAS (опционально)
На этом этапе можно подключить отдельный диск с каталогом html - в нем будут храниться (или уже хранятся) файлы веб-сервера.
Добавляем на сервер второй диск (размером 500 Гб, например).
Создаем точку монтирования для второго диска:
mkdir -p /mnt/disk2/html
Ищем второй диск по его размеру:
fdisk -l|grep " /dev/[a-z0-9]\+:"
Из вывода команды берем имя диска - /dev/sdb:
Disk /dev/sdb: 500 GiB, 536870912000 bytes, 1048576000 sectors
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Если второй диск новый - создаем раздел /dev/sdb1 и файловую систему XFS на нем:
fdisk /dev/sdb
и жмем клавиши: n <Enter> <Enter> <Enter> <Enter> <Enter> w <Enter>
mkfs.xfs -f /dev/sdb1
Монтируем единственный раздел второго диска:
mount /dev/sdb1 /mnt/disk2
Ищем UUID раздела второго диска:
blkid /dev/sdb1
Из вывода команды берем UUID раздела - db7cdb0f-4565-4cdd-881e-faf777682324:
/dev/sdb1: UUID="db7cdb0f-4565-4cdd-881e-faf777682324" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="db960a6c-01"
Добавляем раздел второго диска в таблицу монтирования файловых систем при загрузке. Заменяем UUID на свой в команде ниже и выполняем ее:
echo>>/etc/fstab "UUID=db7cdb0f-4565-4cdd-881e-faf777682324 /mnt/disk2 xfs defaults,noatime,nodiratime,logbsize=256k,nofail 0 2"
Проверяем корректность добавления записи:
mount -a
df -hT /mnt/disk2
Перезагружаемся:
reboot
Настройка сервера OpenVPN (опционально)
По умолчанию в VPN заворачивается весь трафик. Если нужно делать это выборочно, то приступаем к настройке:
Открываем файл:
mcedit /etc/openvpn/server/server.conf
Находим и комментируем строку:
push "redirect-gateway"
добавляем строки с нужными сетями, например сеть 10.0.0.0/8:
push "route 10.0.0.0 255.0.0.0"
Перезапускаем службу OpenVPN:
ovr или: systemctl restart openvpn-server@server
Проверяем статус службы:
ovs или: systemctl status openvpn-server@server
Использование сервера OpenVPN
Создаем нового пользователя:
openvpnuser add <user>
и получаем:
ссылку на собственный Windows-клиент. Его преимущества: он для всех версий Windows, установка без вопросов, конфиг-файл уже внутри. Можно выбрать формат установщика: EXE - запускается сразу, или ZIP - нужно распаковать и запустить install.bat. В обоих случаях на время установки нужны права администратора.
ссылку на конфиг-файл (*.ovpn)
Качаем по ссылке нужный клиент и устанавливаем его. Windows-клиент просто запускаем и пользуемся. Для остальных клиентов необходимо импортировать конфиг-файл.
Каталоги и файлы:
/etc/openvpn/ - все настройки
/etc/openvpn/client/ - конфиг-файлы клиентов и Windows-клиенты
/etc/openvpn/server/server.conf - основной конфигурационный файл сервера
/etc/openvpn/openvpnuser.pwl - список паролей, которые используются при создании новых пользователей, если пароль не был задан явно
/etc/openvpn/openvpnuser.cfg - настройки команды openvpnuser
Справка по управлению пользователями:
openvpnuser -h
Использование FAS
Учетка admin является единственной в системе учеткой с правами администратора. Она предназначена для управления пользователями и их файлами. Также у нее нет возможности загрузки файлов на сервер.
Получаем пароль учетки admin, выполнив команду на сервере FAS:
fasuser
и заходим с этой учеткой и паролем в веб-интерфейс FAS: http://<ваш_сервер>/. В нем уже можно для размещения файлов создать пользовательскую учетку.
Управлять пользователями FAS можно также из консоли. Справка по управлению пользователями:
fasuser -h