This site use twitter bootstrap and need JavaScript to be enabled

Статьи

2017.04.04- добавлено; 2017.01.25 - проверена работа ссылок

pfSense — дистрибутив для создания межсетевого экрана/маршрутизатора, основанный на FreeBSD. Создание и тестирование Firewall в Linux, Часть 2.1. Введение во вторую часть. Смотрим на сеть и протоколы. статья встроенная операционная система, основанная на ядре Linux, и предназначенная, в первую очередь, для домашних маршрутизаторов. Wireshark - статья на habr

Linux: 25 PHP Security Best Practices For Sys Admins - на cyberciti.biz. SELinux для LAMP - на habr. Top 30 Nmap Command Examples For Sys/Network Admins - на cyberciti.biz. Top 20 Nginx WebServer Best Security Practices - на cyberciti.biz. Логирование VPN-подключений на Cisco ASA - на habr. Настройка nginx/1.6.2 и OpenSSL на Debian для получения 100% и A+ по тесту Qualys от ssllabs.com.


Советы

2017.12.15 - добавлено; 2017.12.12 - проверена работа ссылок

Команда sudo может отправлять электронное письмо при использовании. В файле /etc/sudoers добавим: mailto yourname@yourdomain.com и установим свойство mail_always в значение on: mail_always on.

В конфиге SSH etc/ssh/sshd_config можно изменить на произвольный Port 65535. Ограничить вход по SSH для root-пользователя PermitRootLogin no. Каким пользователям или группам разрешено использовать SSH AllowUsers user1 user2.

К fail2ban отлично подходит logwatch. fail2ban и подобные умеют добавлять не только IP, но и подсеть этого IP с заданным префиксом. fail2ban умеет использовать ipset, если использовать ipset + поменять тип ipset на net и добавить префикс в настройках действия. Логи пропускаются через фильтры и могут применяться действия, например complain, iptables, iptables-ipset-proto4, mail-whois. Эти действия можно компоновать и изменять или написать свои. Как раз оно в /etc/ и лежит для этого. Так вы можете банить командой по сети сразу на вашей системе с файрволлом. Или банить полностью, а не только порт сервиса.

Аналогом fail2ban является denyhosts - набор Python (как и fail2ban) скриптов для защиты SSH (и не только). На habre есть пример со спуфингом для кражи учёток ssh.


Про обновления nix-ов

2017.12.12 - добавлено; 2017.12.12 - проверена работа ссылок

apt

По мотивам статьи Не было печали, апдейтов накачали от amarao@habr. apt ведёт логи в /var/log/apt. В history.log искать Upgrade: _нужный_пакет_ (_старая_версия_, _новая_версия_) и в terminal.log искать Unpacking _нужный_пакет_ (_новая_версия_) over (_старая_версия_). Поставить пакет с нужной версией apt-get install _нужный_пакет_=_нужная_версия. Если пакета такой версии в репозитории нет, то надо найти файл для установки. Либо на диске /var/cache/apt/archives/_нужный_пакет_с_версией.deb, либо на snapshots.debian.org. Когда мы имеем файл на диске, установка sudo dpkg -i /var/cache/apt/archives/_нужный_пакет_нужная_версия_разрядность_итд_.deb. Может придётся разбираться с зависимостями, но если пакеты не конфликтовали до обновления, то разбирая лог terminal.log их можно откатить в те же версии. Если архива нет, то надо искать версию в интернетах, например snapshot.debian.org. Чтобы случайно снова не проапдейтиться, пакет можно поставить на hold (запретить апдейты): apt-mark hold нужный_пакет (unhold снимает hold).


Советы

2016 - добавлено; 2016 - проверена актуальность
Linux

Сетевые карты ищем cat /proc/net/dev


Monitoring

Мониторинг дисков в Hardware.

  • Мониторим сервер во время создания бэкапа (место на диске, доступность сайта)
  • Мониторим вывод логов бэкапных скриптов (innobackupex: completed OK!)
  • Мониторим размер залитых бэкапов (слишком маленькие – алерт)
  • Мониторим изменение размера залитых бэкапов (не меняется – алерт)
  • Мониторим последнюю дату залитых бэкапов (не было больше суток – алерт)

Из статей habr и richardimaoka.github.io/blog/network-benchmark-tools. Сегодня netperf входит в набор инструментов для бенчмаркинга Flent. Также его использует довольно большое количесвто ИТ-компаний, например Red Hat.

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

Hardinfo — утилита для сбора информации об оборудовании и операционной системе. Она отображает данные о работе устройств на: PCI, ISA PnP, USB, IDE, SCSI, а также последовательных и параллельных портах. Но её можно использовать в качестве бенчмарка и инструмента мониторинга.

ApacheBench Инструмент для нагрузочного тестирования HTTP-серверов. ApacheBench разрабатывался для проверки Apache, но он может работать на любом другом сервере. Инструмент предустановлен на многих дистрибутивах Linux. У ApacheBench есть аналог — Apache jMeter, но с большими возможностями. Например, он позволяет генерировать запросы с нескольких компьютеров, управляя процессом с одного из них. Также в программе реализованы механизмы авторизации виртуальных пользователей, поддерживаются пользовательские сеансы. Этот инструмент применяют многие ИТ-компании, в том числе облачные провайдеры, например Qualys.


Статьи

2017.01.25 - добавлено; 2017.01.25 - проверена работа ссылок

Семь отличных ускорителей сайтов для Linux и Unix на habr про балансировщики. Keepalived is a routing software written in C. The main goal of this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures. Неплохой пример настройки NGINX + Keepalived (vrrp) на CentOS из 2013 года. Балансировка нагрузки с Pacemaker и IPaddr (Active/Active cluster) на habr для CentOS, RHEL, Ubuntu, Debian.

Агрегировать каналы вручную или при помощи протоколов LACP и PAgP и как собирать Etherchannel для получения максимального распределения нагрузки.

Есть несколько вариантов подключения к ESXi для мониторинга: 0xc0000146 и 0xc0000147


Статьи

2017.01.25- добавлено; 2017.01.25 - проверена работа ссылок
Linux

Генерация документов в doc, excel, pdf и других форматах на сервере - статья на habr, речь идет о конвертере, встроенном в пакет LibreOffice, и запуск конвертации из PHP


Жёсткие диски

2017.01.25- добавлено; 2017.02.06 - проверена работа ссылок

Серверные жёсткие диски отличаются от бытовых:

  • Усиленный вал шпинделя, более устойчивый к внешним воздействиям.
  • Дополнительный контроль вибрации.
  • Технологии, существенно повышающие точность позиционирования и высоту полёта головок над поверхностью «блинов».
  • Богатые возможности самодиагностики, позволяющие вовремя уведомить о скором выходе диска из строя.

Методика действий при обнаружении ошибки жёстким диском:

  • standalone/desktop — пытаться прочитать до последнего. Диск тормозит, есть шум перекалибрующихся головок.
  • raid — отваливаться тут же. Это ощущается как «внезапно была ошибка диска но потом mhdd и т.д. ничего не нашёл что мне делать».

Методики отличаются по предназначению — standalone/desktop лучше протупит, но ошибку не выдаст, а в рейде есть запасной винт, и терпеть минутные тормоза на чтении никто не имеет никакой возможности. Не получилось прочитать? Читаем с запасных винтов, помечаем весь винт как сбойный, начинаем ресинк, а диск потом отправят в утилизатор. Возможно, незаслуженно, но нечего икать на ответственной должности. Возможность управления поведением диска при ошибках называется очень и очень путанно: SCT ERC. Посмотреть, поддерживает ли жёсткий диск управление ошибками можно с помощью команды smartctl -a /dev/sdxx (под Windows) строчка SCT capabilities:

SCT capabilities:  (0x303f) SCT Status supported.
	 			 SCT Error Recovery Control supported.  *****
	 			 SCT Feature Control supported.
	  

Если строчки нет — диск их (команды) не поддерживает. Далее — собственно, процесс управления. В тех дисках, которые я видел, есть два параметра — таймаут операции чтения и таймаут операции записи. Ниже я приведу значения для всех дисков, до которых у меня дотянулись руки. Чтобы посмотреть таймауты используем команду smartctl -l scterc /dev/sda. Вывод выглядит так:

# smartctl -l scterc /dev/sda
	  SCT Error Recovery Control:
	 		 Read:     70 (7.0 seconds)
	 		 Write:     70 (7.0 seconds)
	  
	  # smartctl -l scterc /dev/sde
	  SCT Error Recovery Control:
	 		 Read: Disabled
	 		 Write: Disabled
	  
	  # smartctl -l scterc /dev/sdd
	  Warning: device does not support SCT Error Recovery Control command
	  

Для установки, соответственно, указываем значения через запятую после scterc: smartctl -l scterc,120,60 /dev/sde (величина указывается в десятых долях секунды, то есть 120 соотвествует 12 секундам, первое число — чтение, второе — запись). 0 означает «до победного конца», то есть неограниченно долго.

Значения по-умолчанию

Название Модель ERC (есть или нет, если есть, значения по-умолчанию)
Western Digital VelociRaptor WDC WD1500HLFS-01G6U1 Есть, 7/7
Western Digital RE4 Serial ATA WDC WD1500HLFS-01G6U1 Есть, 7/7
Western Digital RE3 Serial ATA family WD1002FBYS-02A6B0 Есть, 7/7
Western Digital Caviar Green (Adv. Format) WDC WD20EARS-00MVWB0 не поддерживается
Western Digital Caviar Green WD7500AACS-00D6B0 Есть, 0/0, включить нельзя
Seagate Maxtor DiamondMax 22 STM3500320AS Есть, 0/0, можно включить
Seagate Barracuda 7200.9 ST3400633AS Нет (у Maxtor/Seagate тех же лет есть, а у Seagate нет)
Seagate Barracuda 7200.10 ST3500630AS нет
Seagate Barracuda 7200.11 ST31500341AS Есть, 0/0, можно включить
Seagate Barracuda LP ST31500541AS Есть, 0/0 (то есть выключен), можно включить
SAMSUNG SpinPoint F3 SAMSUNG HD103SJ
SAMSUNG SpinPoint F3 SAMSUNG HD754JJ Есть, 0/0
SAMSUNG SpinPoint F4 EG (AFT) SAMSUNG HD204UI Есть, 0/0 (выключен), можно включить
Hitachi Deskstar 7K3000 HDS723030ALA640 Есть, 0/0, включить нельзя (scsi error aborted command)
Hitachi Deskstar T7K500 HDT725032VLA360 Есть, 0/0, включить нельзя
Hitachi Travelstar 7K1000 HGST HTS721010A9E630 Есть, 0/0, можно включить
Plextor M2S Plextor PX-64M2S Есть, 2/2, можно включить (первое)

Купили крутой винт домой в количестве одна штука: выключите ERC (0,0). Купили винт в рейд — проверьте, что у него ERC отлично от нуля, а лучше ближе к разумному значению в районе 3-10с. (300-1000). Модели, применение которых на десктопе требует внимания: WD RE3, RE4, Raptor, Seagate NS. Помимо ERC, производители обещают повышенное качество и надёжность работы RE/NS серий, но этого мы проверить не можем, а вот наличие/отсутствие ERC — это объективный легко проверяемый признак. Диск без ERC в рейде быть не должен ни при каких условиях, так как в случае сбоя вреда он принесёт больше, чем пользы.

Для WD есть утилита WDTLER (Time-Limited Error Recovery) на некоторых hdd green-серии можно все-таки включить ERC/TLER. Для SAS надо изучать sgutils и sdparm, там свой набор команд для управления scsi generic. В аппаратных рейдах проверить возможности того или иного диска можно так smartctl -a -d cciss,0 /dev/cciss/c0d.

Многие магазины не предоставляют гарантию на жёсткие диски, ссылаясь на гарантию производителя. Но здесь есть тонкий момент: к примеру, у некоторых моделей Seagate гарантийный период начинается с момента производства. Поэтому не исключена ситуация, что вы купите абсолютно новые диски, на которые уже закончилась гарантия производителя. Чтобы не испытать этот неловкий момент, постарайтесь перед покупкой проверить гарантию конкретных экземпляров на сайтах производителей:


Hard drive statistic

2017.06.13 - добавлено; 2017.02.06 - проверена работа ссылок

Hard drive failure rates at backblaze.com for Q2 2017, Q1 2017, 2016 and Q4 2016, Q3 2016, Q2 2016, Q1 2016


Мониторинг HDD

2017.06.29 - добавлено; 2017.06.29 - проверена работа ссылок

Для домашних ПК и ноутбуков можно настроить мониторинг с отсылкой на почту уведомлений об изменении важных показателей S.M.A.R.T. На Windowsэто можно сделать через CrystalDiskInfo: Сервис -> Особенности уведомлений -> Уведомление по эл. почте

Настройки почты на примере Gmail:

To: логин@gmail.com
From: логин@gmail.com
Host: smtp.gmail.com
Port: 587
ID: логин
Password: пароль (если включена 2-этапная авторизация, сюда нужно вводить пароль приложения, созданный здесь)
SMTP/SSL: Yes

Там же в меню «Сервис» включить автозапуск и запуск агента.


Полезные команды и руководства по Windows

2016.06.23 - добавлено; 2017.06.23 - проверена работа ссылок

Добавить временный или постоянный маршрут:

route ADD 10.XXX.XXX.XXX MASK 255.XXX.XXX.XXX 10.XXX.XXX.XXX METRIC 56

route -p ADD 10.XXX.XXX.XXX MASK 255.XXX.XXX.XXX 10.XXX.XXX.XXX METRIC 56

Изменить IP-адрес:

netsh interface ipv4 set address name="Ethernet" static 10.30.2.2 255.255.255.0 10.30.2.254

Изменить IP-адрес для подключения к cisco с заводскими настройками:

netsh interface ipv4 set address name="Ethernet" static 192.168.1.100 255.255.255.0 192.168.1.254

ps вместо name="Ethernet" может быть и name="Подключение по локальной сети". Вернуться назад, на DHCP:

netsh interface ipv4 set address name="Ethernet" source=dhcp

Using SQL Server in Windows 8 and later versions of Windows operating system

Проверка работы Windows-клиента с сервером

netstat -an - соединение должно быть ESTABLISHED.

Сброс настроек сети для Windows-клиента:

netsh winsock reset catalog
netsh int ip reset reset.log
ipconfig /flushdns
ipconfig /registerdns
route /f


Статьи

Naming Files, Paths, and Namespaces.


Инструменты

RDPY is a pure Python implementation of the Microsoft RDP (Remote Desktop Protocol) protocol (client and server side). RDPY is built over the event driven network engine Twisted. RDPY support standard RDP security layer, RDP over SSL and NLA authentication (through ntlmv2 authentication protocol). RDPY is fully implemented in python, except the bitmap decompression algorithm which is implemented in C for performance purposes.

pywinrm is a Python client for the Windows Remote Management (WinRM) service. It allows you to invoke commands on target Windows machines from any machine that can run Python. Used by Ansible for Windows support.


Корневые DNS у Windows

У Windows сервер в качестве корневых DNS:

  • 198.41.0.4
  • 192.228.79.201
  • 192.33.4.12
  • 128.8.10.90
  • 192.203.230.10
  • 192.5.5.241
  • 192.112.36.4
  • 128.63.2.53
  • 192.36.148.17
  • 192.58.128.30
  • 193.0.14.129
  • 199.7.83.42
  • 202.12.27.33 m.root-servers.net.

Блоги про Windows

Про Windows Server 2016 блог Microsoft на habr.ru:

  1. Windows Azure Pack. Создание Shielded VM
  2. Настройка программного балансировщика нагрузки программно-определяемой сети в инфраструктуре VMM
  3. Настройка сетевого контроллера программно-определяемой сети в инфраструктуре VMM
  4. Настройка RAS-шлюза программно-конфигурируемой сети в фабрике VMM
  5. Work Folders в Windows Server 2016
  6. Программно-конфигурируемая сеть (SDN) в Windows Server 2016
  7. Развертывание Nano Server c помощью Windows Assessment and Deployment Kit (ADK) RC for Windows 10
  8. Новые возможности сервера DNS в Windows Server
  9. Репликация на уровне хранилища в Windows Server 2016 — Storage Replica
  10. Вложенная виртуализация Hyper-V в Windows Server 2016
  11. ASP.NET Core на Nano Server
  12. Что нового в Windows Server 2016
  13. Хранилище Storage Spaces Direct в Windows Server 2016
  14. Защищенные виртуальные машины в Windows Server 2016
  15. Настройка инфраструктуры SDN в фабрике VMM
  16. RDS в Windows Server 2016
  17. Контейнеры в Windows Server 2016
  18. Руководство по аварийному восстановлению для System Center 2016 — Service Manager
  19. Повышение безопасности Hyper-V 2016 с помощью решений 5nine
  20. Network Controller: программно-определяемые сети в Windows Server 2016. Часть 1: возможности и службы
  21. Облако на Microsoft Hyper-V, часть 3: хранилище Storage Spaces
  22. Windows Server 2016 и службы интеграции Hyper-V
  23. Что нового в Windows Server 2016 Failover Clustering

Защита привилегированных учетных записей в Windows Server 2016


Linux

2016.06.23 - добавлено; 2017.06.23 - проверена работа ссылок

Лекции Технотрека. Администрирование Linux. Опыт использования SSH для решения различных административных задач. Статья про виртуальные консоли и эмуляторы терминала. Как посмотреть логи в Linux и форк на habr. Более чем 80 средств мониторинга системы Linux на habr. Цикл статей Переосмысление PID 1: часть 1, часть 2, часть 3, часть 4. pdf - systemd для администраторов от Lennart Poettering с переводом Сергея Пташника.


Полезные команды

2017.12.15 - добавлено; 2017.07.03 - проверена работа ссылок

nc You can use netcat for this. nc ip port < /dev/null. Много примеров Полезные трюки при работе с netcat.
cat /proc/net/tcp
iptables -nL
lsof -i 4 -a -p 1234 (просмотр всех соединений IPv4, открытых процессом с PID = 1234)
lsof -i tcp:80 (просмотр информации о процессе, который прослушивает 80 TCP порт)
lsof /dev/hd4 (Список открытых файлов на устройстве /dev/hd4)
lsof /dev/cdrom (Список процессов, работающих с CD ROM)
lsof -c ssh (Список подключений по ssh)
netstat -lnt
systemctl status ssh.service

Port Knocking через iptables

iptables -A INPUT -p tcp --dport 65432 -m recent --set --name tuktuk
iptables -A INPUT -p tcp --syn --dport 22 -m recent --rcheck --seconds 160 --name tuktuk -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 22 -j DROP

Утилиты для Port Knocking

Утилиты для Port Knocking: pyknock - реализация, открывающая порт по UDP-пакету с HMAC-подписью общего ключа, времени и команды открытия порта от Vladislav Yarmak; knock - реализация, использующая libpcap для сниффинга трафика на интерфейсе и последующего сравнения с заранее заданной последовательностью от Judd Vinet.

grep 'authentication failures' /var/log/auth.log
cd - - переход в предыдущую директорию
while ! [command]; do sleep 1; done - многократное выполнение команды до её успешного завершения
cat /etc/passwd | column -t или column -t /etc/passwd - вывод данных в виде таблицы
!! - повтор последней команды


Полезные утилиты

2017.12.15 - добавлено; 2017.07.03 - проверена работа ссылок
pf, ipfw и ipfilter iproute2

VPN и VDS

2016.05.26 - добавлено; 2017.05.31 - проверена работа ссылок
VPN VDS

ValdikSS@habr рекламировал itldc.com (Нидерланды, Болгария, Латвия, Украина), yourserver.se (Швеция, Латвия), hukot.net (Чехия), lcsnet.eu (Румыния. Бывают проблемы со стабильностью, но сойдет). Потом написал статью - Определяем пользователей VPN (и их настройки!) и прокси со стороны сайта.

zhovner@habr рекламировал сервера в Европе "самые дешевые VPS, за $3-5 в 2017 году" от провайдеров Scaleway, Linode, DigitalOcean и Veesp.com с датацентром в Санкт-Петербурге (выдает блок /56 на каждый сервер бесплатно). К сожалению, даже продвинутые хостеры, вроде DigitalOcean, не предоставляют такой услуги. Здесь есть список хостеров, предоставляющих данную услугу version6.ru/vps, от @rm. Обход блокировок на Украине. VPN-дайджест и VPS-дайджест от 1cloud.ru.

Ещё VPS и VPN: 1and1.com, vscale.io, servers.com, Джино, gdccloud.ru, lowendstock.com, vds.menu, hostmaze.com.

В Китае популярны: GreenVPN, KeepSolid VPN, VyprVPN, ExpressVPN и PureVPN.


Протоколы

2017.11.13 - добавлено; 2017.11.13 - проверена работа ссылок

Про большинство протоколов написано на wikipedia, с указанием недостатков (в том числе касаемо безопасности). Обзорная статья про: PPTP, L2TP, SSTP и OpenVPN.


Настройка браузеров

2017.09.11 - добавлено; 2017.09.11 - проверена работа ссылок

В Firefox в about:config меняете network.security.esni.enabled на true. Для работы eSNI желательна работа (на самом деле она не нужна, но есть проблема: в Windows сложно сделать такой запрос (IN TXT) асинхронно bugzilla) DNS over HTTPS, так как публичный ключ для шифрования sni берётся с поддомена _esni.example.com IN TXT, так что желателен зашифрованный транспорт dns, чтобы провайдер не увидел этого. Для этого network.trr.mode выставляете в 2 (или 3, чтобы был только TRR), а network.trr.uri выставляете в https://mozilla.cloudflare-dns.com/dns-query (либо можно https://dns.google.com/experimental или https://1.0.0.1/dns-query)

Можно прописать network.trr.bootstrapAddress, иначе resolve самого mozilla.cloudflare-dns.com будет происходить через системный resolver и лишь дальше установлена DoH сессия с DNS, что вызывает проблемы, если сразу запустить Firefox. Можно поставить 1.0.0.1, 1.1.1.1 2606:4700:4700::1111 или 2606:4700:4700::1001 или что там будет у dig mozilla.cloudflare-dns.com. (А там не обязательно эти адреса, но и любые из динамического облака cloudflare.) Подробнее про trr resolver: github.com/bagder/TRRprefs.

Проверить, что всё работает можно на cloudflare.com/ssl/encrypted-sni нажав Check My Browser.


Настройка туннелей

2017.09.11 - добавлено; 2017.09.11 - проверена работа ссылок
IPsec GRE OpenVPN libreswan

В статье GRE между MikroTik и Ubuntu на VPS от Aruba Cloud с IPSec для шифрования, говорят, что libreswan — форк (с блекджеком и викой) Openswan (примеры настройки на OpenNet, habr, debian.org/ru, описание на github, wiki), который, в свою очередь, форк FreeS/WAN (пример настройки на OpenNet, описание на wiki). StrongSwan (примеры настройки на habr от msamoylov@habr, ValdikSS@habr, описание на github, wiki) — имеет корни от FreeS/WAN.

OpenVPN Connect - туннели для iOS, пример настройки.

Пример настройки OpenVPN в режиме TLS-сервера, с помощью пакета easy-rsa. Ноды и узлы сервиса клиентов включены в единое L2-пространство tinc VPN. Клиентские подключения (тоже L2) объединяются с tinc-интерфейсом в мост.

OpenVPN без плагинов поддерживает два варианта установления соединения:

  • PSK или static key mode – с симметричным ключом, который генерируется и записывается на все узлы в процессе настройки VPN.
  • TLS – основанный на инфраструктуре открытых ключей (PKI). В начале устанавливается TLS соединение с аутентификацией обеих сторон по сертификатам, через которое производится обмен ключевым материалом. Из этого ключевого материала генерируются симметричные ключи и трафик внутри VPN шифруется уже этими ключами так же как в режиме PSK. Внутри TLS канала пользовательского трафика нет – исключительно служебная информация самого OpenVPN.

Режим PSK включается опцией secret, первым параметром которой является имя файла со статическими ключами, которые генерируются на этапе настройки VPN. В файле находятся 2 пары 512 битных случайных ключей (в каждой паре ключ для шифрования и ключ для HMAC), записанные один за другим (без заголовков и прочего) и закодированные в HEX. Одинаковый файл с ключами должен быть на всех компьютерах, соединяемых VPN. Если для опции secret не задать второй необязательный параметр — direction, то будет использоваться только первая пара ключей, т. е. в обе стороны трафик будет подписываться и шифроваться одинаковыми ключами.

В режиме PSK может использоваться только CBC и No-crypto форматы пакетов с данными (data channel crypto format). По умолчанию для шифрования используется BlowFish в режиме CBC c 128 битным ключом, а для HMAC используется SHA1 и 160 битный ключ. В качестве ключей используются соответственно первые 128 и 160 бит от 512 битных ключей из файла со статическим ключом.

Так как вся ключевая информация и настройки задаются заранее, то, если адрес удалённого узла (опция remote) задан, инкапсулированный трафик может передаваться сразу после запуска OpenVPN ещё до обмена управляющими пакетами. Опцию remote достаточно указать только в одном из конфигурационных файлов. В таком случае хост, которому remote не задана, будет просто ждать входящего соединения (в данном случае UDP пакета).


Маскировка UDP трафика в TCP/ICMP при помощи udp2raw - статья с хорошими комментариями, в том числе про работу OpenVPN и GoVPN. По следам войны с Telegram: SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443. Новый MTProto-прокси сервер от Telegram через Docker-образ.