Настройка HTTPS
Для корректной работы портала необходимо на него заходить по https, а для этого нужен сертификат. Мы рассмотрим пример получения бесплатного сертификата от Let’s Encrypt. Подробнее в статье Получение бесплатного SSL сертификата Let’s Encrypt.
Открываем на редактирование файл:
vi /etc/nginx/bx/site_enabled/s1.conf
В раздел server добавляем следующее:
server {
…
location ~ /.well-known {
root /usr/share/nginx/html;
allow all;
}
…
}
Открываем второй файл:
vi /etc/nginx/bx/site_enabled/ssl.s1.conf
Также добавим:
server {
…
location ~ /.well-known {
root /usr/share/nginx/html;
allow all;
}
…
}
* данная настройка укажет веб серверу искать файлы в каталоге /usr/share/nginx/html, если мы обратимся к странице /.well-known.
Если у нас несколько сайтов, данную операцию нужно повторить для конфигурационных файлов всех этих сайтов. Они находятся в каталоге /etc/nginx/bx/site_enabled.
Проверяем корректность настройки NGINX:
nginx -t
Если ошибок нет, перезапускаем службу:
systemctl restart nginx
Устанавливаем утилиту certbot:
yum install certbot
С помощью даннай утилиты получим сертификат:
* в данном примере мы запрашиваем сертификат для домена bitrix.dmosk.ru. Предполагается, что именно на нем у меня работает битрикс.
Теперь открываем файл:
vi /etc/nginx/bx/conf/ssl.conf
Редактируем значения для ssl_certificate и ssl_certificate_key:
ssl_certificate /etc/letsencrypt/live/bitrix.dmosk.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bitrix.dmosk.ru/privkey.pem;
Перезапускаем nginx:
systemctl restart nginx
Можно открывать портал по доменному имени по https.
Для автоматической переадресации с http на https в корне каталога с сайтом создаем файл .htsecure.
Установка CentOS 8
Таак, мы добрались до этого меню. Выбираем Install и ждем пока архивы распаковываются.
Шаг 5. Выбор языка для системы
ВНИМАНИЕ! При выборе русского языка могут возникать ошибки в конце установки, поэтому лучше выбрать английский, а потом уже в системе поменяете на великий и могучий, если потребуется
Здесь все основные настройки вашей будущей системы. Пройдемся по нужным пунктам:
Откройте Time & Date. Здесь настраивается время, часовой пояс и другие региональные параметры:
Шаг 8. Выбор программного обеспечения
Откройте Software Selection. Это то, какой пакет программ будет установлен вместе с системой. Можно оставить по умолчанию, а можно добавить то, что вам будет надо, очевидно:
Шаг 9. Разбивка диска
Откройте Installation Destination. Теперь следует разбить жесткий диск на нужные разделы. Можно оставить это для системы сделать самостоятельно, но мы же не Windows какой-то ставим!
Выбираем пункт Custom и жмем Done. Теперь появится такое окно.
Там же мы будем выбирать размер разделов. Систему разметки LVM лучше оставить как есть, тогда будет удобнее изменять разделы.
Теперь жмем + и создаем новый раздел. В поле Mount Point пишем / или выбираем из списка. Указываем нужный размер.
С загрузочным разделом проделываем тоже самое. Пишем в «Mount Point» /boot, а размер следует задать по меньшей мере 500 МБ.
Следующий раздел — домашний. Размер можно не указывать, так как система сама распределит его по всему свободному пространству.
В конечном итоге, у вас должно получится нечто такое.
Жмем на Done, видим в списке изменения, которые последуют и попадаем снова в главное меню.
Шаг 8. Настройка сети
Теперь нам надо интернет настроить. Переходим в Network & Host Name.
Напротив Ethernet переключаем тумблер и жмем Done. Правда, все очень просто.
Шаг 9. Запуск установки
Ну что же, теперь мы снова попадаем в главное меню и наконец-то нажимаем на Begin Installation (теперь этот пункт будет подсвечиваться).
Шаг 10. Выбор пароля
В окне Configuration нам надо выбрать Root Password и создать пользователя для системы.
Указываем Root Password. Система может ругаться, что он слишком слабый, но вы на правах администратора и представителя единственных разумных существ на нашей планете можете проигнорировать это.
Шаг 11. Создание пользователя
Теперь создаем пользователя. Пишем имя, имя пользователя, ставим галочку на Make this user administrator (ну вы же хотите быть админом, верно?) и вводим желаемый пароль.
Шаг 12. Завершение установки
Теперь осталось дождаться, когда закончится установка CentOS 8. Можно сделать чай, по времени как раз столько и получится.
По завершению полоска заполнится и надо будет перезагрузить устройство.
Читаем лицензионное соглашение и ставим галочку:
Наконец-то мы в меню! Пишем свой пароль пользователя и заходим на рабочий стол
Шаг 15. Настройка Gnome
Нет! Мы ещё не попадаем на рабочий стол, снова настройки. Указываем окружающую реальность выбрав Russia.
Дальше решаем вопрос с раскладкой:
Разбираемся с Privacy. Я разрешил показывать мое географическое положение:
Подключаем аккаунты (по желанию):
Вроде бы мы уже близко…
Настройка (проверка системы)
Для правильной работы портала необходимы дополнительные настройки системы. Анализ ошибок и предупреждений при настройке можно получить на странице Настройки — Инструменты — Проверка системы.
Попробуем рассмотреть некоторые из ошибок и способы из решения.
1. Работа с сокетами
Является основной настройкой для портала, так как на ее основе строится много других провером. Нет смысла продолжать работу с Битрикс24, если при проверке работы с сокетами система возвращает ошибку.
Для корректной работы необходимо:
- Перейти на с настройкой корректного сертификата.
- Установить (обновить) корневые центры сертификации.
После данных действий проверка должна пройти корректно.
2. Выполнение агентов на cron
Чтобы портал мог выполнять фоновые задания, необходимо настроить cron.
Открываем конфигурационный файл:
vi /home/bitrix/www/bitrix/php_interface/dbconn.php
Проверяем, чтобы была строка:
define(‘BX_CRONTAB_SUPPORT’, true);
Открываем на редактирование crontab (для пользователя bitrix):
crontab -e -u bitrix
Добавляем задание:
* * * * * /usr/bin/php -f /home/bitrix/www/bitrix/modules/main/tools/cron_events.php
* в данном примере мы запускаем на исполнение скрипт /home/bitrix/www/bitrix/modules/main/tools/cron_events.php каждую минуту.
Если не заработает, переходим в панели Битрикс в раздел Настройки — Инструменты — Командная PHP-строка и вводим команду:
COption::SetOptionString(«main», «agents_use_crontab», «Y»);
COption::SetOptionString(«main», «check_agents», «Y»);
3. Битрикс24.Диск. Быстрая работа с файлами
Переходим в раздел Настройки — Настройки продукта — Настройка модулей. Мы окажемся в разделе «Главный модуль». В подразделе «Файлы» ставим галочку Быстрая отдача файлов через Nginx:
Нажимаем Применить.
5. Настройка кеширования
У нас на выбор разные технологии для настройки кэширования:
- apc
- files
- redis
- xcache
- memcache
Мы рассмотрим пример с memcache. Для начала, устанавливаем его:
yum install memcached php-pecl-memcached
Откроем конфигурационный файл memcached:
vi /etc/sysconfig/memcached
Увеличим объем памяти, например, до 512 Мб:
CACHESIZE=»512″
Разрешаем автозапуск сервиса и запускаем его:
systemctl enable memcached —now
Перезапускаем веб-сервер apache:
systemctl restart httpd
тобы убедиться в этом, вводим следующую команду:
php -r «phpinfo();» | grep memcache
Открываем конфигурационный файл битрикс:
vi /home/bitrix/www/bitrix/.settings.php
Раздел cache приводим к виду:
‘cache’ => array (
‘value’ => array(
‘type’ => array(
‘class_name’ => ‘\\Bitrix\\Main\\Data\\CacheEngineMemcache’,
‘extension’ => ‘memcache’
),
‘memcache’ => array(
‘host’ => ‘127.0.0.1’,
‘port’ => ‘11211’,
),
‘sid’ => $_SERVER.»#01″
),
),
Готово.
Изменения 8-й версии
Пройдемся по основным нововведениям CentOS 8, которые показались интересными лично мне. Функционально это полная копия RHEL 8, поэтому все его изменения на 100% актуальны для центос. Вот список наиболее интересных изменений:
- Разделение основного репозитория на 2 — BaseOS и AppStream. Первый будет работать как и раньше, а второй — appstream, сделали для того, чтобы была возможность устанавливать разные версии пакетов на сервер. Этот репозиторий поддерживает новый модульный формат rpm пакетов.
- Переход на пакетный менеджер DNF, который поддерживает модульный формат пакетов. Прощай YUM. Теперь это просто алиас для запуска dnf.
- Традиционно обновился весь софт и ядро (4.18) Linux. Теперь мы какое-то время будем иметь свежий софт. Прощай php5.4 из базового репозитория Я не буду по тебе скучать. Здравствуй php 7.2 и Python 3.6 из коробки.
- Замена iptables на nftables. Тут для меня самые серьезные изменения. Iptables я активно использую и настраиваю почти на всех серверах. С nftables не знаком вообще. Надо срочно переучиваться и осваивать новый функционал. Будут статьи на эту тему. Пожалуй этому нововведению я совсем не рад. Лично меня iptables устраивали целиком и полностью в первую очередь тем, что они используются почти везде. Можно брать готовый набор правил и спокойно переносить между серверами с разными ОС. Именно поэтому я всегда пользуюсь голыми iptables, а не надстройками над ними в виде firewalld или ufw. Мне достаточно знать только iptables, чтобы настроить firewall на любом linux сервере.
- Убрана поддержка Btrfs. Лично я ей никогда не пользовался, но я знаю, что это популярная штука и удаление ее поддержки значительное событие.
- До кучи обновился openssl и tls до последних версий 1.1.1 и 1.3. Некоторое время назад приходилось отдельно собирать пакеты для использования свежих версий. Теперь это на некоторое время ушло в прошлое, пока текущий релиз CentOS 8 не устареет. Года 2-3 будем жить спокойно.
- Network scripts для настройки сети объявлены устаревшими и по дефолту не поддерживаются. Можно поставить отдельно пакет для их работы. Для настройки сети надо использовать исключительно NetworkManager, который лично я предпочитаю отключать сразу после установки сервера. Не знаю, чем network-scripts не угодили. Простой и удобный инструмент.
Более подробно с изменениями 8-й версии можете познакомиться на opennet или почитать полный список в оригинале на сайте redhat. Я полистал последний. Там в overview есть ссылки на подробное описание по каждому компоненту системы.
Настройка Web сервера
Для работы панели FreePBX нужен web сервер с php. Я буду использовать версию php 7.2 из базового рпозитория. Более подробно про настройку web срвера на Centos вы можете прочитать отдельно. Сейчас же коротко пройдем по шагам весь процесс.
Устанавливаем веб сервер apache:
# dnf install @httpd
Удаляем стартовую страницу.
# rm -f /var/www/html/index.html
Запускаем httpd и добавляем в автозагрузку.
# systemctl enable --now httpd
Открываем порты на firewalld, если вы ранее не настраивали iptables.
# firewall-cmd --add-service={http,https} --permanent # firewall-cmd --reload
Если вы хотите использовать php 5.6, то сразу переходите в самый конец статьи, в соответствующий раздел. Ниже будем ставить дефолтную версию php 7.2 из базового репозитория Centos 8. Устанавливаем необходимые php расширения.
# dnf install wget @php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysqlnd php-gettext php-bcmath php-zip php-xml php-json php-process php-snmp
Изменяем максимально допустимый размер файла для загрузки и лимит по памяти для скриптов.
# sed -i 's/\(^upload_max_filesize = \).*/\100M/' /etc/php.ini # sed -i 's/\(^memory_limit = \).*/\512M/' /etc/php.ini
Теперь нам нужно изменить некоторые параметры httpd — запустить его от пользователя asterisk и включить опцию AllowOverride. Это можно сделать руками в файле /etc/httpd/conf/httpd.conf, либо автоматически с помощью sed.
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf # sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
Мы просто выставили следующие параметры:
- User asterisk
- Group asterisk
- AllowOverride All
И так же в php-fpm меняем пользователя на asterisk в конфигурации пула /etc/php-fpm.d/www.conf
# sed -i 's/^\(user\|group\).*/\1 = asterisk/' /etc/php-fpm.d/www.conf # sed -i 's/^\(listen.acl_users\).*/\1 = asterisk/' /etc/php-fpm.d/www.conf
Запускаем httpd и php-fpm.
# systemctl enable --now php-fpm httpd # systemctl restart php-fpm httpd
Поверяем статус запущенных служб.
# systemctl status php-fpm httpd
Все в порядке, движемся дальше.
Подготовка к установке CentOS
Дождитесь загрузки и оставьте вариант «Install CentOS Linux 8.0.1905», где «8.0.1905» — номер версии.
Подготовка к установке займет время.
Язык мастера установки
Определите язык интерфейса установщика. Язык ОС вам предстоит выбрать дополнительно перед запуском CentOS.
В верхнем правом углу вы видите текущую раскладку клавиатуры. Одинарным щелчком по раскладке вы можете переключиться на другую.
Время
На экране «Обзор установки» некоторые разделы помечены оранжевым треугольником с восклицательным знаком. Это значит — вам нужно настроить их перед началом установки.
Создайте несколько разделов на жестком диске. Установщиком рекомендуется вариант «Автоматически», что означает — на HDD SSD будет только один раздел. Слева вверху находится кнопка «Готово». Нажмите ее.
Нажмите «Time & Date». В открывшемся окне выберите часовой пояс.
Интернет
Соединение с интернетом может быть выключено.
Включите его в разделе «Сеть и имя хоста», переместив ползунок во включенное состояние.
CentOS 8 установка с dvd образа
Скачиваем CentOS-8-x86_64-1905-dvd1.iso, записываем его на флешку или подключаем к виртуальной машине и приступаем к установке:
Выбираем первый пункт Install CentOS Linux 8.0.1905 и нажимаем Enter. На первом этапе нам предложат выбрать язык, используемый в процессе установки. Можете выбрать русский, я же продолжу на английском. Нажимаем Continue:
В Centos 8 установка осуществляется с основной страницы Installation Summary, где представлено общее меню по разделам параметров установки:
Пройдемся по всем пунктам по порядку:
- Keyboard – настройка клавиатуры и параметров ввода
- Language Support – установка дополнительных языков
- Time & Date – настройка времени и даты
- Installation Source – источник пакетов. Для dvd1 – это локальный образ, для boot же можно указать сетевой адрес
- Software Selection – выбор устанавливаемых пакетов
- Installation Destination – выбор диска для установки ОС и его разметка
- KDUMP – сбор данных по критическим ошибкам ядра
- Network & Host Name – сетевые настройки
- SECURITY POLICY – пользователи и пароли
Выберем Keyboard:
Нажмем + (1) и добавим русскую раскладку. Для это в поиске набираем russia, выбираем раскладку и нажимаем Add:
Далее переходим в Options (2) и указываем горячие клавиши для переключения языка (я привык к Alt+Shift) и подтверждаем выбор Ok.
В окне настройки языков нажимаем Done (3) и возвращаемся к основному меню настройки.
Далee перейдем в п.2 Language Support. Здесь можно выбрать язык системы. Например, для добавления русского языка (перевода) в строке поиска пишем russia, выбираем русский язык и нажимаем кнопку Done.
Переходим в п.3 Time & Date. Указываем (1) регион (Europe), город (например, Moscow), время (2), формат времени (3) и дату (4). Также можно включить обновление времени по сети (5), но т.к. мы ещё не настроили сеть, включить синхронизацию пока не получиться. В конце нажимаем Done:
Пункт 4 Installation Source можно пропустить, для установки с dvd1 iso он не актуален и будет рассмотрен в установке с boot iso.
В п.5 Software Selection мы выбираем пакеты, которые необходимо установить. Выбор зависит от ваших конкретных задач, ну а я всегда ставлю минимум. После выбора пакетов кликаем по Done:
Переходим к п. 6 Installation Destination. Установщик покажет доступные диски в системе (1). Необходимо выбрать, на какой диск будет установлена ОС. В моем случае – он один, так что выбирать не приходится. В Add a disk … (2) можно дополнительно подключить сетевые диски, диски по SCSI и т.п..
В Storage Configuration выбирается способ разметки диска. Custom – ручной, где необходимо самостоятельно определить размер, точки монтирования, файловую систему и другие параметры: все это зависит от поставленных задач и заслуживают отдельной статьи. Поэтому сейчас мы выбираем Automatic и даем возможность системе автоматически разметить диск: будет использован lvm, на котором будут созданы загрузочный раздел boot на 1Гб, раздел подкачки swap (в зависимости от объема оперативной памяти), а оставшееся место отдано корневому разделу.
Ну а выбор Encryption (4) позволяет зашифровать данные на диске. Данный параметр влияет на производительность и поэтому я бы не рекомендовал выбирать его без обоснованной причины. Как всегда в конце нажимаем Done.
KDUMP (7) отвечает за диагностику и анализ причин сбоев ядра. Можно задать объём памяти под него или отключить совсем. Если не знаем за чем нам это надо – оставляем по умолчанию.
Далее настраиваем сетевое подключение Network & Host Name (8):
Выбираем (1) сетевое подключение, в поле Host Name при необходимости указываем имя машины, нажимаем Apply. Включаем сеть (3): если ip-адреса раздаются по dhcp – вы увидите полученный адрес сразу на данном экране. Если требуется указать ip-адрес вручную, то выбираем Configure (4):
Переходим на вкладку IPv4 Setting (1), выбираем метод Manual (2) и нажимаем кнопку Add (3). В появившейся строке (4) указываем адрес, маску и шлюз. В поле DNS servers (5) указываем днс-сервер, например гугла. Для указания нескольких серверов, их отделяют друг от друга запятыми. В конце нажимаем Save (6). Настройку сетевых интерфейсов завершаем кнопкой Done. Кстати, после этого в настройках времени можно включить синхронизацию по сети.
Теперь в основном меню настроек нажимаем кнопку Begin Installation после чего начнется процесс установки:
Ну а нам пока предлагается установить пароль на root и при необходимости добавить нового пользователя:
Выбираем Root Password и указываем новый пароль два раза:
При необходимости создания нового пользователя выбираем User Creation:
В поле Full name (1) указываем ФИО, в User name (2) – логин и задаем пароль (2) и выходим нажатием Done.
Осталось только дождаться окончания установки и нажать кнопку Reboot:
System config network tui
Для управления сетевыми настройками в CentOS можно воспользоваться графической утилитой nmtui. Проверить ее наличие в системе очень просто. Достаточно запустить ее в консоли:
Если она у вас не установлена, то исправить это очень просто. Устанавливаем в CentOS system config network tui:
С помощью tui можно указать любые сетевые настройки, которые мы делали раньше через командную строку и редактирование конфигурационных файлов network-scripts. Давайте сделаем это. Вызываем программу:
Выбираем первый пункт Edit a connection, затем выбираем сетевой интерфейс и жмем «Edit»:
Здесь мы можем изменить имя сетевой карты, mac адрес, указать тип сетевых настроек — ручной или dhcp, указать вручную ip адрес, адрес шлюза, днс сервера, добавить маршруты и некоторые другие настройки:
После завершения редактирования сохраняем настройки, нажимая ОК.Если в первом экране утилиты выбрать пункт Set System Hostname, то можно быстро указать имя хоста. Результат будет такой же, как мы делали раньше в консоли.
Если вы будете готовиться к сдаче сертификации по RHEL, то везде будете видеть рекомендацию использовать nmtui для настройки сети. Суть в том, что на экзамене время ограничено, а с помощью network manager его можно и нужно экономить. Считается, что так настраивать сеть быстрее.
Управление потоками (модулями)
Модульные репозитории позволяют установить пакеты разных версий. По сути, это группы RPM-пакетов, которые должны быть установлены вместе и представляют из себя логическую единицу для установки программного продукта нужной версии. Включить можно только одну версию модуля для репозитория.
1. Вывести список доступных модулей:
dnf module list
* обозначения:
- — значения по умолчанию.
- — включенные модули.
- — отключены.
- — установленные.
В нашей системе может не быть включенных модулей. В этом случае пакеты будут устанавливаться из стандартных репозиторией.
Мы также можем посмотреть отдельные по состоянию группы модулей:
dnf module list —enabled
* включенные.
dnf module list —disabled
* отключенные.
dnf module list —installed
* установленные.
2. Вывести список возможных модулей для конкретного пакета:
dnf module list nodejs
* в данном примере для nodejs.
3. Разрешить или запретить конкретный модуль:
dnf module enable nodejs:12
dnf module disable nodejs:14
* первая команда разрешит модуль nodejs версии 12, вторая, соответственно, запрещает использование модуля nodejs версии 14.
4. Переключение модуля.
Если мы хотим изменить активный модуль, необходимо сначала отключить текущий командой dnf module reset, например:
dnf module reset php:7.3
* если попробовать включить модуль без отключения активного мы увидим ошибку:Error: It is not possible to switch enabled streams of a module.
It is recommended to remove all installed content from the module, and reset the module using ‘dnf module reset <module_name>’ command. After you reset the module, you can install the other stream.
После включаем новый поток:
dnf module enable php:7.4
Настройка OpenVPN-клиента
Для настройки клиента необходимо на сервере сгенерировать сертификаты, а на клиентском компьютере установить программу openvpn и настроить ее.
Создание сертификатов
На сервере генерируем сертификаты для клиента. Для этого снова переходим в каталог easy-rsa:
cd /usr/share/easy-rsa/3
Запускаем еще раз vars:
. ./vars
Создаем клиентский сертификат:
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
* в данном примере будет создан сертификат для client1.
Мы должны увидеть запрос на подтверждение намерения выпустить сертификат — вводим yes:
Confirm request details: yes
После появится запрос на ввод пароля для ключа ca:
Enter pass phrase for /usr/share/easy-rsa/3/pki/private/ca.key:
Вводим его.
На сервере скопируем ключи во временную директорию, выполнив последовательно 3 команды:
mkdir /tmp/keys
cp pki/issued/client1.crt pki/private/client1.key pki/dh.pem pki/ca.crt pki/ta.key /tmp/keys
chmod -R a+r /tmp/keys
* сертификаты скопированы в каталог /tmp для удобства переноса их на клиентский компьютер.
Сертификаты готовы для скачивания.
На клиенте
В качестве примера, выполним подключение к нашему серверу с компьютеров Windows и Linux. Более подробно процесс настройки клиента описан в инструкции Настройка OpenVPN клиента.
Windows
1. Заходим на официальную страницу загрузки openvpn и скачиваем клиента для Windows:
Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».
2. Переходим в папку C:\Program Files\OpenVPN\config.
Копируем в нее файлы ca.crt, client1.crt, client1.key, dh.pem, ta.key из каталога /tmp/keys на сервере, например, при помощи программы WinSCP.
После переноса файлов, не забываем удалить ключи из временного каталога на сервере:
rm -R /tmp/keys
3. Возвращаемся к компьютеру с Windows, открываем блокнот от имени администратора и вставляем следующие строки:
client
resolv-retry infinite
nobind
remote 192.168.0.15 443
proto udp
dev tun
comp-lzo no
ca ca.crt
cert client1.crt
key client1.key
dh dh.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
persist-key
persist-tun
verb 0
* где 192.168.0.15 443 — IP-адрес OpenVPN-сервера и порт, на котором он принимает запросы.
Сохраняем файл с именем config.ovpn в папке C:\Program Files\OpenVPN\config.
4. Запускаем с рабочего стола программу «OpenVPN GUI» от имени администратора.
Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»:
Произойдет подключение и значок поменяет цвет с серого/желтого на зеленый.
5. Для автозапуска клиента, открываем службы Windows, находим и настраиваем службу OpenVPNService для автозапуска:
Linux
1. Устанавливаем клиента одной из команд.
а) для Rocky Linux / CentOS:
yum install epel-release
yum install openvpn
б) для Ubuntu / Debian:
apt-get install openvpn
2. Создаем каталог:
mkdir /etc/openvpn/client
И переходим в него:
cd /etc/openvpn/client
Копируем в каталог файлы ca.crt, client1.crt, client1.key, dh.pem, ta.key из каталога /tmp/keys на сервере, например, при помощи утилиты scp:
scp admin@192.168.0.15:/tmp/keys/* .
* где admin — имя пользователя, под которым можно подключиться к серверу по SSH; 192.168.0.15 — IP-адрес сервера.
Для закрытых ключей разрешаем доступ только для владельца:
chmod 600 client1.key ta.key
После переноса файлов, не забываем удалить ключи из временного каталога на сервере:
rm -R /tmp/keys
3. Создаем конфигурационный файл:
vi /etc/openvpn/client/client.conf
client
resolv-retry infinite
nobind
remote 192.168.0.15 443
proto udp
dev tun
comp-lzo no
ca ca.crt
cert client1.crt
key client1.key
dh dh.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
persist-key
persist-tun
verb 0
* где 192.168.0.15 443 — IP-адрес OpenVPN-сервера и порт, на котором он принимает запросы.
4. Разово запустим клиента:
cd /etc/openvpn/client
openvpn —config /etc/openvpn/client/client.conf
Соединение должно выполниться. Мы можем увидеть предупреждения — по желанию, межете их исправить самостоятельно.
5. Прерываем выполнение подключения комбинацией Ctrl + C и запустим клиента в качестве службы:
systemctl enable openvpn-client@client —now
Проверить, что соединение состоялось можно пинганув сервер по VPN-адресу:
ping 172.16.10.1
Подготовка операционной системы
Мы внесем небольшие правки в настройки. Настроим время для правильного формирования клиентских сертификатов, отключим систему безопасности SELinux, откроем нужные порты брандмауэра.
1. Настройка времени
Установим правильную временную зону:
timedatectl set-timezone Europe/Moscow
* в данном примере мы укажем московское время.
Устанавливаем утилиту для синхронизации времени:
dnf install chrony
Разрешаем автозапуск службы chronyd и запускаем ее:
systemctl enable chronyd
systemctl start chronyd
Проверить корректность времени можно командой:
date
2. Настройка SELinux
В нашей инструкции мы просто отключим SELinux. Если необходимо его настроить и оставить включенным, используем инструкцию Настройка SELinux в CentOS 7 (для CentOS 8 она также подходит).
И так, отключаем Selinux командой:
setenforce 0
Чтобы Selinux не включился после перезагрузки, открываем на редактирование файл:
vi /etc/selinux/config
… и редактируем опцию SELINUX:
…
SELINUX=disabled
…
3. Настройка брандмауэра
Создаем правило для firewalld:
firewall-cmd —permanent —add-port=443/udp
* в данной инструкции мы настроим работу OpenVPN на порту 443 по UDP. Если в вашем случае необходим другие порт и протокол, меняем значения на соответствующие. По умолчанию, OpenVPN использует порт 1194.
Применяем настройку:
firewall-cmd —reload