Ответы пользователя по тегу Системное администрирование
  • Как в Zendesk использовать в поиске оператор OR?

    @younghacker
    Вроде бы OR работает только со свойствами если их перечислить многократно.

    If submitting multiple search terms, search has a default AND behavior, rather than an OR behavior. For example, searching for the following phrase returns results only if all of the words are present, in any order.

    However, when you use a data property keyword multiple times in a query, there is an OR search across the values you specified. The following phrase returns results that contain either the tag "silver" or the tag "bronze".

    tags:silver tags:bronze

    https://support.zendesk.com/hc/en-us/articles/203663226

    Обходной путь - получить тикеты через API.
    Ответ написан
  • Как автоматически добавлять ip в iptables?

    @younghacker
    Вопрос шикарный. Ничего не понял.
    Но попробую угадать что Вам нужно защитить сайт от перебора паролей к админке wordpress
    fail2ban + плагин для вордпреса который пишет в лог "фейлы". Работает автоматически и надёжно.
    "капча" - чистый плагин к вордпресу (их есть вагон и маленькая тележка)
    .htaccess в wp-admin каталоге с возможностью доступа только с определённых ваших IP или даже добавить http auth.
    Ответ написан
  • Backup сервер на чем лучше организовать windows или Linux (что бы шифровальщик не поработал)?

    @younghacker
    Можно оставить и обычную самбу или ftp
    Только поставить крон задачу которая пробегает по каталогам бэкапа и выполняет одну команду
    chattr +i *
    После этой команды все файлы становятся readonly для всех, даже для рута.
    И шифровальщик не сможет ничего сделать.
    [root@localhost ~]# lsattr test-file.txt
    -------------e-- test-file.txt
    [root@localhost ~]# chattr +i test-file.txt
    [root@localhost ~]# lsattr test-file.txt
    ----i--------e-- test-file.txt
    [root@localhost ~]# rm test-file.txt
    rm: remove regular file ‘test-file.txt’? y
    rm: cannot remove ‘test-file.txt’: Operation not permitted

    Аналогично можно передвигать файлы в другой каталог который readonly либо который клиентам вообще не доступен.

    Чистить каталоги с бэкапом нужно противоположной командой.
    chattr -i test-file.txt
    rm test-file.txt

    Но BareOS и другие специализированные продукты как советовали выше никто не отменял. :)
    Ответ написан
  • ДДос атака на nginx пакетами 1 байт?

    @younghacker
    Главная проблема в том что Ваш адрес уже засвечен и чтобы уйти под CDN нужно сразу сменить IP для бэкэнда, а старый, владельцу атономки, лучше отправить в blackhole.

    Если канал не забит (ssh нормально отвечает) пробуйте блокировать прямо в iptables регионами.
    А если nginx успевает отвечать таймаутом бэкэнда (узкое место движок сайта) - то можно блокировать в nginx.

    Первый шаг - хостер / датацентр. Спросите чем могут помочь, им по сути тоже нет резона держать хост под атакой.

    Затем вытяните из логов все запросы за время атаки отсортируйте по количеству и составьте список 100-300 самых активных и вычислите их сети автономки и регион. Если это одна страна и она не ваша целевая - блокируйте на время всю страну автономки и так далее. Для начала можете заблокировать просто около 300 конкретных хостов.
    Если сайт начнёт работать, контролируйте что происходит дальше. Атака может смещаться на другие IP.

    Если это не поможет переходите под защиту CDN с защитой от DoS.
    Сразу после этого меняйте IP так как этот уже спален.
    Кроме этого пропишите в iptables правила которые режут трафик отовсюду за исключением сетей CDN.
    Не отрежьте случайно свой ssh.

    CloudFlare имеет бесплатный вариант эккаунта. Но отмечу что нам заваливали 3 сайта которые находились на платном эккаунте. Атака велась из Вьетнама Кореи, Бразилии и Украины. Пытались блокировать по сетям прямо в CDN, но пакеты из заблокированных сетей всё равно долетали до наших серверов где мы их уже блокировали.

    По остальному смотрите что с бэкэнтом который готовит страници для nginx. Что с количеством процессов как они загружены сколько потребляют памяти и чего ждут. Атака это хороший случай чтобы над тем где бутылочное горло.
    Ответ написан
  • Как мне в данном случае подключиться к vpn?

    @younghacker
    Измените конфиг
    Напишите пути к сертификатм как положено для линукс (для винды пути с двумя слешами)
    Смените расширение файла в .conf
    добавьте
    user nobody
    group nobody
    поставьте владельца root.root и права 600 для файлов и 700 для каталогов если ключи в подкаталогах.
    установите OpenVPN
    проверьте SELinux если вдруг сервер не стартует.
    Обычно хватает restorecon -R /etc/openvpn/
    И для лога, если он требуется, нужны правильные SELinux метки.
    Не стартанёт - пишите разберёмся.

    Пример: винда и линукс конфиг
    ==== openvpn.ovpn ====
    client
    dev tun
    proto udp
    remote 59.32.44.09 19745
    resolv-retry infinite
    nobind

    persist-key
    persist-tun

    tls-auth "C:\\Program Files\\OpenVPN\\config\\vpn07.gw01.vpn.com-ta.key" 1
    key "C:\\Program Files\\OpenVPN\\config\\vpn07.gw01.vpn.com-client1.key"
    cert "C:\\Program Files\\OpenVPN\\config\\vpn07.gw01.vpn.com-client1.crt"
    ca "C:\\Program Files\\OpenVPN\\config\\vpn07.gw01.vpn.com-ca.crt"

    log "C:\\Program Files\\OpenVPN\\log\\openvpn.vpn07.gw01.vpn.com-client1.log"

    remote-cert-tls server # OpenVPN 2.1 and above
    ns-cert-type server # OpenVPN 2.0 and below

    cipher AES-256-CBC
    comp-lzo
    verb 3

    ping 10
    ping-restart 60

    ==== openvpn.conf ====

    client
    dev tun # for linux you can sutup tun number for example tun1
    proto udp
    remote 59.32.44.09 19745
    resolv-retry infinite
    nobind

    user nobody
    group nobody

    persist-key
    persist-tun

    tls-auth /etc/openvpn/certsvpn07/vpn07.gw01.vpn.com-ta.key 1
    key /etc/openvpn/certsvpn07/vpn07.gw01.vpn.com-client1.key
    cert /etc/openvpn/certsvpn07/vpn07.gw01.vpn.com-client1.crt
    ca /etc/openvpn/certsvpn07/vpn07.gw01.vpn.com-ca.crt

    log /var/log/openvpn.vpn07.gw01.vpn.com-client1.log
    verb 3
    mute 20

    remote-cert-tls server # OpenVPN 2.1 and above
    ns-cert-type server # OpenVPN 2.0 and below

    cipher AES-256-CBC
    comp-lzo

    ping 10
    ping-restart 60
    Ответ написан
  • Играют ли роль Cisco-сертификаты при трудоустройстве?

    @younghacker
    Откройте сайт с предложениями о работе. Раздел сетевых администраторов. Полистайте и увидите совершенно разные требования. Кому-то нужны сертификаты, а кому-то нужны практические навыки.
    Я на собеседованиях задаю вопросы из практики, даю конкретную боевую ситуацию и смотрю как человек её решает. А наличие бумажки для нас не имеет значения. Но работая на серьёзную компанию у Вас будет возможность отучиться и сдать экзамен. В случае успеха - компания погасит все расходы. А если экзамены провалил то никакой оплаты. Где-то обучение поощряется и активному работнику за сертификаты поднимают зарплату. Но всё зависит от компании. Специфика "айтишной" професси, как и многих других, такова, что учиться приходится непрерывно и много.
    Ответ написан
  • Как через планировщик заданий в windows сделать так, что бы windows перестала загружаться?

    @younghacker
    Нужно придумать откуда получать действительно время. CMOS и NTP источники можно сбросить или изменить. Но можно написать скрипт который читает время работы жёсткого диска SMART INFO и сравнивает с заданным и делает какие-то действия. Поставить или активировать пароль на диске, зашифровать какую-то системную область и т д.
    А можно иначе.
    Раздел на диске изначально шифруется DriveCrypt. При загрузке отрабатывает какой-то скрипт который монтирует раздел в папку directory junction. Пароль получается из системного времени и времени работы диска, придумать как его формировать чтобы он выдавал правильный пароль в укзанном диапазоне времени.
    В Linux процесс загрузки контролируется проще чем в Windows.

    Может выдавать какой-то токен из интернета. Нет обновления токена - через 24 часа компьютер превращается в тыкву. Может быть есть USB токены получающие код из интернета вещей или SMS.

    Но это не защитит от замены диска. Работник поменяет диск и поставит систему и поедет дальше

    Также я бы пробовал искать сервисы которые удалённо контролируют компьютер встраиваясь в биос.
    Не дают заменить диск, не дают сбросить пароль.
    Например Computrace встроен в BIOS Dell даже в ноуты 10-летней давности.
    Мне не приходилось его использовать, но я так понимаю с его помощью можно блокировать украденные компьютеры.

    Можно написать свой UEFI модуль и в нём проверить на месте ли диск и сколько там часов натикало и если всё в порядке - грузиться. Иначе впасть в ступор.

    Ну или в ноутбук вставить таймер который "перережет" нужный провод :)
    Ответ написан
  • На чём и как проще всего автоматизировать создание бэкапов KVM-машин?

    @younghacker
    Соглашусь с 3ton по поводу LVM. Но делать резервную копию по-живому это экстрим.
    Можете получить полуобновлённую базу данных, полуживую файловую систему и так далее. За исключением того что сделаете копию не только диска но и памяти и в момент паузы виртуальной машины.
    Без доступа внутрь виртуалки нельзя гарантировать что на диск сброшены все данные.
    Мой совет - пересмотрите технологию бэкапов.

    Я практикую следующий подход:
    Перед обновлением системы на сервере делаю полный бэкап по следующей схеме.
    1. Остановка виртуалки (виртуалки реагируют на ACPI снаружи)
    2. Снапшот LV привязанного к виртуалке.
    3. Старт виртуалки.
      При использовании скриптов (не вручную) даунтайм получится практически равным рестарту виртуалки.
    4. Обновление (системы) Если обновляется кернел то делаю по аналогичной схеме делаю второй LV снапшот.
    5. копирование снапшота(ов)
    6. удаление снапшотов.
    Имейте ввиду что необходимо иметь запас места для снапшота на время его жизни (копирования) так как свободное место на LVM начнёт быстро таять как только виртуалка начнёт активно изменять данные на своём диске.

    Тоесть нет смысла ежедневно делать резервную копию того что не изменялось (система и программы).

    А ежедневные бэкапы делаю при помощи скриптов + bareos/bacula.
    Такой подход в целом уменьшает размер резервных копий.

    Ну и хорошо после создания бэкапа делать его восстановление и проверку.
    Для виртуалки обычно хватает разворачивания на другом физическом сервере (чтобы небыло конфликтов) и проверки запущенности всех важных сервисов и доступности баз данных (тестовые скрипты).

    Далее можно оптимизировать. Не бэкапить swap виртуалок. Его можно убрать при копировании снапшота. А лучше swap выдавать отдельным LV. Тогда его не нужно и снапшотить.
    В виртуалках я также по аналогии с отдельным свапом делаю отдельные диски для DB, логов, и так далее. Всё это позволяет ужать размер бэкапа системы до 3-5 гиг в несжатом виде.
    Ответ написан
  • Как настроить VPN?

    @younghacker
    Если сети разные то ключевое слово в ответе - routing

    Все хосты в сети А должны знать что сеть Б находится за гейтом А1
    (или если А1 является default gateway для хостов в сети А то он (А1) должен знать что сеть Б находится за роутером Б1)

    Все хосты в сети Б должны знать что сеть А находится за гейтом Б1
    (или если Б1 является default gateway для хостов в сети Б то он (Б1) должен знать что сеть А находится за роутером А1)

    сеть А ==== А1 ---[VPN]--- Б1 ====== сеть Б
    Ответ написан
  • Проблемы с роутами openvpn?

    @younghacker
    Основная причина:
    в логе клиента написано tun1
    TUN/TAP device tun1 opened

    а в роуте на целевой хост который потом пингуется написано tun0
    10.49.0.0 10.13.0.1 255.255.0.0 UG 0 0 0 tun0


    Некрасиво:
    Wed Jan 11 11:45:38 2017 ERROR: Linux route add command failed: external program exited with error status: 2


    Роуты добавлены руками?
    Ответ написан
  • Ovpn client на микротике. DNS request timed out до КД?

    @younghacker
    Похоже что клиент из офиса2 получает DNS push из офиса 1.
    DNS-серверы. . . . . . . . . . . : 192.168.0.28
                                       8.8.4.4
                                       192.168.3.1

    Таймаут может быть потому что:
    1) DNS не слушает нужный интерфейс не хочет отвечать в чужую подсеть
    2) Нет маршрута
    3) Firewall дропает пакеты приходящие из TUN интерфейса
    4) OpenVPN ничего не знает о том что чужая подсеть находится за TUN интерфейсом.

    Извините, но на из ваших описаний и копипастов нельзя понять где выполнялся пинг и трейсроут. Одно дело если с гейта. Другое если с машины в чужой подсети. Две большие разницы с точки зрения маршрутизации.

    P.S.
    Я очень поверхностно знаком с микротиковским OpenVPN. Из-за того что его там "кастрировали" — не вижу смысла. Только прошить OpenWRT на неплохое микротиковское железо и получить полный функционал OpenVPN. :)
    P.P.S.
    Средства шифрования по определению не могут быть закрыты от анализа. Поэтому только OpenSource!
    Ответ написан
  • Как сменить ключи OpenVPN?

    @younghacker
    В инсталяционном пакете идут скрипты.
    build-ca
    build-dh
    build-inter
    build-key
    build-key-pass
    build-key-pkcs12
    build-key-server
    build-req
    build-req-pass
    clean-all
    inherit-inter
    list-crl
    Makefile
    openssl-0.9.6.cnf
    openssl.cnf
    pkitool
    README
    revoke-full
    sign-req
    vars
    whichopensslcnf

    Для всех действий права рута не нужны.
    Скопируйте скрипты в какой-то рабочий каталог.
    отредактируйте файл vars
    установите дату истечения сертификатов имя организации емейл
    export KEY_SIZE=2048
    export CA_EXPIRE=3650
    export KEY_EXPIRE=3650
    export KEY_COUNTRY="DE"
    export KEY_PROVINCE="none"
    export KEY_CITY="Berlin"
    export KEY_ORG="vpn01 v.p.n.."
    export KEY_EMAIL="vpn01@gate1.common.vpn"

    выйдите в чистый shell
    запустите
    . vars
    после этого не выходя из шела запускайте по очереди.
    ./build-ca ${NAME}
    ./build-dh
    ./build-key-server ${NAME}-server
    "${OPENVPN}" --genkey --secret "./keys/${NAME}-ta.key"

    И потом для каждого клиента
    ./build-key ${NAME}-client${i}
    Где OPENVPN=`which openvpn`
    NAME="vpn01.gw01.common.vpn" - общая часть имени ключей
    i - номер клиента

    Далее вы получите файлы.
    ca.crt - клиентам и серверу (публичный)
    ca.key - только на машине которая подписывает (не храните на сервере!!!)
    ta.key - для клиентов и для сервера (секретный)
    dh2048.pem - (для сервера)
    vpn01.gw01.common.vpn.server.crt - для сервера (публичный)
    vpn01.gw01.common.vpn.server.key - для сервера (секретный)
    vpn01.gw01.common.vpn.client1.crt - для клиента (публичный)
    vpn01.gw01.common.vpn.client1.key - для клиента (секретный)

    Весь каталог со скриптами включая созданную папку (keys) сохраните в секретное место и удалите с сервера.
    Если понадобится догенерировать или отозвать сертификаты.
    Ответ написан
  • Зашифрует ли шифровальщик файлы на диске без буквы?

    @younghacker
    Вам верно ответили, куда имеет доступ залогиненный пользователь, туда имеют доступ и все процессы запущенные с его привилегиями. А будет ли он искать все устройства или нет, зависит от реализации.

    Спасут информацию и кошельки только резервные копии на удалённое устройство откуда пользователь не может ничего удалить или изменить. Речь идёт о таком бэкапе куда пользователь используя своё окружение и привилегии не может получить доступ.
    Например бэкап на почту. Отправить можете, а вот отозвать письмо — нет. Разумеется доступ к такому бэкапу нужно хранить надёжно и случайно не "спалить" трояну. "Отправляльщик" должен это делать без аутентификации или отправлять на другой ящик иначе пароль может утечь, а шифровальщий сделать своё дело.

    Либо "бэкап устройство" должно само приходить на компьютер и забирать бэкапы не предоставляя возможности зайти к себе. Разве что только по пятницам и только в режиме ReadOnly. Например для проверки бэкапов.

    Для этих целей не подходит диск подключённый по USB. Или ограниченно подходит если выполнены мероприятия описанные дальше.

    Но всё же нужно помнить о организационных мероприятиях, так как понятие пользователь отличается от понятия администратор. Не нужно работать от эккаунта администратора. Для этого есть эккаунт пользователя. Ему выделить песочницу "Мои документы" и туда он пусть пишет и читает. При грамотно расставленых правах и политиках ограничения запуска, а главное адекватном поведении пользователя у трояна почти нет шансов во-первых запуститься, во-вторых даже запустившись он будет "кувыркаться" в рамках отведённой песочницы.
    Бэкапер при этом выполняясь с другими более высокими привилегиями будет изолирован от шифровальщика и сможет создавать копии в защищённое место.
    Ответ написан
  • Как защитить рабочую станцию от сброса пароля администратора в windows?

    @younghacker
    Если есть физический доступ к компьютеру, что вы не делайте найдётся умелец.

    Поставьте бездисовые linux терминалы, а пользователей загоните в терминальный сервер и делу конец.
    Ответ написан
  • Как поднять VPN сервер на linux mint?

    @younghacker
    Прежде всего уясните себе что машина с easy-rsa это машина которая только подписывает ключи. И по логике безопасности должна быть отдельной машиной. Не стоит хранить генератор ключей и в особенности приватный CA на самом VPN сервере.

    1) ставим openvpn на VPN сервере
    # apt-get install openvpn
    2) ставим easy-rsa на станции подписей
    # apt-get install easy-rsa
    3) создаём каталог куда скопируем easy-rsa и там будем изменять настройки, создавать и подписывать сертификаты
    # mkdir -p /root/sign-host/easy-rsa
    # cd /root/sign-host/easy-rsa
    # cp /usr/share/easy-rsa/* ./

    4) проверяем что скопировалось
    # ls -1
    build-ca
    build-dh
    build-inter
    build-key
    build-key-pass
    build-key-pkcs12
    build-key-server
    build-req
    build-req-pass
    clean-all
    inherit-inter
    list-crl
    openssl-0.9.6.cnf
    openssl-0.9.8.cnf
    openssl-1.0.0.cnf
    pkitool
    revoke-full
    sign-req
    vars
    whichopensslcnf

    5) меняем переменные в конце файла vars. Размер ключики. Если параноя входит в ваши должностные обязанности то нужно побольше ставить. :)
    # mcedit vars
    .......
    export KEY_SIZE=1024
    .......
    export KEY_COUNTRY="US"
    export KEY_PROVINCE="CA"
    export KEY_CITY="SanFrancisco"
    export KEY_ORG="Fort-Funston"
    export KEY_EMAIL="me@myhost.mydomain"
    export KEY_EMAIL=mail@host.domain
    export KEY_CN=changeme
    export KEY_NAME=changeme
    export KEY_OU=changeme
    export PKCS11_MODULE_PATH=changeme
    export PKCS11_PIN=1234

    changeme - замените на свои значения. Остальные также можно изменить если хотите. На работоспособность это никак не влияет.

    Затем генерируем ключи. Команда vars запускается из шела. перед ней через пробел точка.
    После её запуска нужно запускать остальные.
    # . vars
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /root/easy-rsa/keys
    # ./clean-all 
    # ./build-ca myvpn-ca
    Generating a 1024 bit RSA private key
    .....++++++
    .................++++++
    writing new private key to 'ca.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [Fort-Funston]:
    Organizational Unit Name (eg, section) [my-organization]:
    Common Name (eg, your name or your server's hostname) [myvpn-server]:
    Name [myvpn-key]:
    Email Address [mail@host.domain]:

    Получили ключик центра сертификации. Публичный и приватный.
    ca.crt
    ca.key


    Следом создадим ключик Diffie Hellman
    # ./build-dh
    Он может довольно долго работать и создавать ключ. Для 1024-х бит получим файл ./keys/dh1024.pem
    Теперь генерируем и подписываем ключ сервера.
    ./build-key-server myvpn-server-key
    Generating a 1024 bit RSA private key
    ............++++++
    .......++++++
    writing new private key to 'myvpn-server-key.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [Fort-Funston]:
    Organizational Unit Name (eg, section) [my-organization]:
    Common Name (eg, your name or your server's hostname) [myvpn-server-key]:
    Name [myvpn-key]:
    Email Address [mail@host.domain]:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /root/easy-rsa/openssl-1.0.0.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'US'
    stateOrProvinceName   :PRINTABLE:'CA'
    localityName          :PRINTABLE:'SanFrancisco'
    organizationName      :PRINTABLE:'Fort-Funston'
    organizationalUnitName:PRINTABLE:'my-organization'
    commonName            :PRINTABLE:'myvpn-server-key'
    name                  :PRINTABLE:'myvpn-key'
    emailAddress          :IA5STRING:'mail@host.domain'
    Certificate is to be certified until May 17 13:58:59 2024 GMT (3650 days)
    Sign the certificate? [y/n]:y
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated

    Это добавило ещё 3 файла в каталог ./keys/
    myvpn-server-key.crt
    myvpn-server-key.csr
    myvpn-server-key.key

    Ну и теперь генерируем ключи для клиентов. Если клиенты будут иметь разные ключи то сколько клиентов столько раз и запускать. Не забывайте каждый раз менять (номер) ключа. Ну или можете назвать по именам реальных клиентов vasya-key, roma-key и т д.
    ./build-key myvpn-client1-key
    Generating a 1024 bit RSA private key
    ...................++++++
    ................++++++
    writing new private key to 'myvpn-client1-key.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [Fort-Funston]:
    Organizational Unit Name (eg, section) [my-organization]:
    Common Name (eg, your name or your server's hostname) [myvpn-client1-key]:
    Name [myvpn-key]:
    Email Address [mail@host.domain]:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /root/easy-rsa/openssl-1.0.0.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'US'
    stateOrProvinceName   :PRINTABLE:'CA'
    localityName          :PRINTABLE:'SanFrancisco'
    organizationName      :PRINTABLE:'Fort-Funston'
    organizationalUnitName:PRINTABLE:'my-organization'
    commonName            :PRINTABLE:'myvpn-client1-key'
    name                  :PRINTABLE:'myvpn-key'
    emailAddress          :IA5STRING:'mail@host.domain'
    Certificate is to be certified until May 17 14:03:29 2024 GMT (3650 days)
    Sign the certificate? [y/n]:y
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated

    Получили три файла на каждого клиента
    myvpn-client1-key.crt
    myvpn-client1-key.csr
    myvpn-client1-key.key

    Ну и для комплекта сгенерим ещё и TA ключ.
    openvpn --genkey --secret "$EASY_RSA/keys/myvpn-server-ta.key"

    В результате добавится ключик ./keys/myvpn-server-ta.key
    Поздравляю! С ключами закончили.

    Теперь берите пять (5) ключей:
    dh1024.pem
    ca.crt
    myvpn-server-ta.key
    myvpn-server-key.crt
    myvpn-server-key.key

    и копируете на сервер в каталог /etc/openvpn/
    Копируете по закрытому соединению. scp например. или флешкой перенесите.
    Затем берёте четыре (4) ключа:
    ca.crt
    myvpn-server-ta.key
    myvpn-client1-key.crt
    myvpn-client1-key.key

    и копируете их на клиента в каталог /etc/openvpn/ или в соответствующий каталог на windows
    Аналогично копируете соблюдая меры безопасности.
    Теперь осталось сделать конфиги.
    Сервер /etc/openvpn/myvpn-server.conf
    port 443
    proto udp
    dev tun1
    
    user nobody
    group nogroup
    
    dh       /etc/openvpn/dh1024.pem
    ca       /etc/openvpn/ca.crt
    cert     /etc/openvpn/myvpn-server-key.crt
    key      /etc/openvpn/myvpn-server-key.key
    tls-auth /etc/openvpn/myvpn-server-ta.key 0
    
    server 10.10.0.0 255.255.255.0
    push "redirect-gateway"
    push "dhcp-option DNS 10.10.0.1"
    push "explicit-exit-notify 3"
    
    client-config-dir ccd
    keepalive 10 60
    
    #duplicate-cn
    
    auth SHA1
    cipher AES-256-CBC   # AES
    comp-lzo
    
    max-clients 128
    persist-key
    persist-tun
    
    ifconfig-pool-persist /var/log/openvpn-ipp-udp443.txt
    status                /var/log/openvpn-status-udp443.log
    log                   /var/log/openvpn-udp443.log
    verb 3


    Клиенты /etc/openvpn/myvpn-client.conf
    client
    dev tun1
    proto udp
    remote xxx.xxx.xxx.xxx 443
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    
    ns-cert-type server
    
    ca       /etc/openvpn/ca.crt
    cert     /etc/openvpn/myvpn-client1-key.crt
    key      /etc/openvpn/myvpn-client1-key.key
    tls-auth /etc/openvpn/myvpn-server-ta.key 1
    
    # разрешаем запускать скрипты
    script-security 2
    # на поднятие и опускание vpn запускаем скрипт обновления файла resolv.conf
    up /etc/openvpn/update-resolv-conf
    down /etc/openvpn/update-resolv-conf
    
    cipher AES-256-CBC
    log /var/log/openvpn.log
    comp-lzo
    verb 3

    Готово.
    Заускаем
    # service openvpn start
    Проверяем что запустился
    # netstat -nlp -A inet | grep openvpn
    udp        0      0 0.0.0.0:443             0.0.0.0:*                           2075/openvpn

    Теперь важно открыть на Firewall UDP 443 на нужном интерфейсе.
    # ufw allow 443/udp
    И не забыть проверить и настроить SELinux если он установлен и включён.
    Если вдруг openvpn не запустился временно отключить SELinux можно так:
    # setenforce 0
    Дальше нужно включить автозапуск как на сервере так и на клиентах если это нужно.
    Для этого раскомментируем или добавим опцию AUTOSTART
    # mcedit /etc/default/openvpn
    ...
    AUTOSTART=all
    ...
    Ответ написан