Виталий Лещенко

Отказоустойчивый Kubernetes на BGP. Часть 1: схема и план

Это первая статья серии о том, как с нуля собрать отказоустойчивый кластер Kubernetes, в котором и API-сервер, и сервисы типа LoadBalancer публикуются по BGP. Такой кластер у меня работает на виртуальных машинах Hyper-V, и на нём живёт, в том числе, этот блог.

Серия получилась практической: в каждой части — команды, конфигурация и то, на что я успел наступить.

Серия «Отказоустойчивый Kubernetes на BGP»

Читать дальше
Виталий Лещенко

Ubuntu: расширяем раздел после чистой установки (LVM, fdisk)

После чистой установки Ubuntu Server с разметкой по умолчанию (LVM) корневая файловая система занимает только часть диска, примерно половину. Остальное место никуда не делось, просто оно никому не отдано. Исправляется это несколькими командами, причём без перезагрузки и без потери данных.

Что смотрим сначала

Перед любыми изменениями полезно увидеть, где именно лежит свободное место:

Читать дальше
Виталий Лещенко

VPN: Использование IPv6 в Windows 10+

Windows по умолчанию не добавляет маршрут IPv6 к VPN подключениям. Есть обходной путь:

В Windows 10 и, предположительно, во всех будущих версиях, где доступен PowerShell, вы можете использовать командлет MS PowerShell Add-VpnConnectionRoute. Этот командлет не позволяет добавить маршрут по умолчанию 0::/0. Однако в большинстве случаев маршрут по умолчанию через VPN вам и не нужен. На текущий момент (январь 2026) пространство IPv6 включает только блок 2000::/3 как Global Unicast, и добавление этого префикса полностью достаточно для маршрутизации всего трафика через VPN-интерфейс. Командлет позаботится о добавлении маршрута при подключении к VPN и его удалении при отключении. Также, в отличие от netsh, это обычно не требует прав администратора и полностью интегрировано с графическим интерфейсом Windows, что избавляет вас от необходимости использовать батч-файлы.

Add-VpnConnectionRoute -ConnectionName "<имя интерфейса>" -DestinationPrefix "2000::/3"
Читать дальше
Виталий Лещенко

swanctl: Как включить надежный обмен ключами в Windows

По умолчанию в операционных системах Windows 7 и Windows 11 предлагается только слабый modp1024 алгоритм обмена ключами Диффи-Хеллмана, который устарел согласно специальной публикации NIST 800-57, часть 3, редакция 1, с 2015 года:

ike = 3des-aes128-aes192-aes256-sha1-sha256-sha384-modp1024

Кроме того, Windows 11 предлагает AES-GCM алгоритм аутентифицированного шифрования (AEAD), но, к сожалению, и с уязвимой modp1024 группой Диффи-Хеллмана.

ike = aes128gcm16-aes256gcm16-sha1-sha256-sha384-modp1024

Поэтому, если вы не хотите, чтобы какая-либо крупная секретная служба прослушивала ваши разговоры, мы настоятельно рекомендуем вам включить modp2048 группу Диффи-Хеллмана, добавив ее NegotiateDH2048_AES256 DWORD в реестр Windows с помощью команды regedit:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rasman\Parameters\NegotiateDH2048_AES256

В качестве значений можно использовать 0, 1 или 2. В таблице ниже приведено объяснение значения этих значений.

Значение Описание
0 Отключить AES-256-CBC и MODP-2048. Это значение по умолчанию.
1 Включить AES-256-CBC и MODP-2048
2 Включить обязательное использование AES-256-CBC и MODP-2048.

При установке значения на 2, Windows 11 предлагает

ike = aes256-sha1-sha256-sha384-modp2048

К сожалению, предлагаемые решения ESP по-прежнему содержат слабые алгоритмы шифрования, DES в том числе и одиночные NULL, а целостность данных ограничена определенными параметрами SHA1

esp = aes256-aes128-3des-des-null-sha1

С помощью Set-VpnConnectionIPsecConfiguration командлета PowerShell можно использовать еще больше алгоритмов, таких как AES-GCM и ECP группы Диффи-Хеллмана (по крайней мере, в Windows 10). VPN-соединение можно добавить через графический интерфейс или с помощью Add-VpnConnection командлета.

Читать дальше
Виталий Лещенко

swanctl: Настройка подключения с аутентификацией по EAP-MSCHAPV2

В этой статье рассматривается подготовка конфигурационного файла swanctl для strongSwan.
Предполагается, что CA, серверные и клиентские сертификаты уже созданы и были подробно разобраны в предыдущей статье — здесь мы к этому возвращаться не будем.


Где находятся конфигурации strongSwan и swanctl

Читать дальше
Виталий Лещенко

Структура /etc/swanctl и настройка CA, сертификатов и CRL в strongSwan

В предыдущей статье мы рассмотрели, почему swanctl является предпочтительным способом управления strongSwan. В этой части разберём структуру каталогов /etc/swanctl и базовые принципы настройки центра сертификации (CA), сертификатов и списков отзыва (CRL).


Структура каталогов /etc/swanctl

При использовании swanctl strongSwan следует строгой и предсказуемой структуре каталогов. По умолчанию все файлы располагаются в /etc/swanctl.

Читать дальше
Виталий Лещенко

Переход strongSwan от ipsec.conf к swanctl

Что такое strongSwan

strongSwan — это популярная open-source реализация VPN на базе протоколов IPsec / IKEv1 / IKEv2, широко используемая для site-to-site и remote-access VPN.

Проект активно развивается, поддерживает современные криптографические алгоритмы, EAP-аутентификацию, сертификаты, MOBIKE, IKEv2 и хорошо подходит как для серверных, так и для клиентских сценариев.

Читать дальше
Виталий Лещенко

Как установить Kubernetes на Ubuntu 22.04?

Вот так. Тут есть некоторые отличия от того, как добавлялся репозиторий ранее.

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
Читать дальше
Виталий Лещенко

Делаем свой собственный IKEv2 VPN сервер на базе Ubuntu 20.04

Введение

Виртуальная частная сеть, или VPN, позволяет надежно шифровать трафик, когда он проходит через ненадежные сети, например, в кафе, на конференции или в аэропорту. А еще получить доступ к чему-то, что вам не дают увитеть.

Internet Key Exchange v2 или IKEv2 — это протокол, позволяющий осуществлять прямое туннелирование IPSec между сервером и клиентом. В реализациях IKEv2 VPN IPSec обеспечивает шифрование сетевого трафика. IKEv2 изначально поддерживается на некоторых платформах без дополнительных приложений.

Предпосылки

Для выполнения этого урока вам понадобятся:

  • Один сервер Ubuntu 20.04
  • Немного терпения
Читать дальше
Виталий Лещенко

Готовим чистый Ubuntu Server к тому, чтобы быть узлом Kebernetes кластера с CRI: ContainerD

День добрый, Уважаемый!

Еще одна памятка мне самому в будудем о том, как установить и настроить ContainerD.

Этап первый - установка:

sudo apt-get update
Читать дальше