Все записи автора radioteh

Ещё раз про pfsense на Silicom Versa-110

Ко мне приехал ещё один такой сервер, но на этот раз ревизии R106 (предыдущие были R107, т.е. более поздние)

По внешнему виду, отличия есть — более ранняя выгляит дороже, смотрите сами:

Крепление БП с резьбовой муфтой, отдельная кнопка питания, быстрый доступ к сим-карте… Крч, как обычно, чем новее, тем дешевле… Не только москвич этим занимался, все занимаются 🙂

Но я не об этом. Главное отличие 106 и 107 ревизий, это то, что консоль в 106 висит на COM1, по этому для установки pfsense на него, образ надо скачивать вот так:

То есть, для R106, нужен обычный образ AMD64, для флешки, с Serial-консолью на COM1, дальше всё как обычно.

Установка pfsense на Silicom Versa-110 ревизии R107

Для начала готовим флешку с установщиков pfsense.

Для этого идём в загрузки pfesense community, скачиваем образ pfsense для архитектуры Netgate ADI

В этом образе уже настроен вывод картинки в консоль, и не надо будет извращаться с параметрами загрузки.

Далее, аналогично предыдущей статье, подключаем железку к любому компьютеру, вставляем флешку в usb-порт железки, и подаём питание

Выбираем терминал по умолчанию (vt100)

Всё, стартует установка pfsense, без каких-либо особых заморочек. Единственное — я настоятельно рекомендую выбирать ZFS в качестве файловой системы. По опыту, она сильно легче переживает перезагрузки по отказу питания

и я всегда делаю раздел swap равным объёму оперативной памяти

Всё, дальше выбираем диск для zfs, чуть ждём, перезагрузка и всё готово

Порты сетевушек распределяются почти (ibg0 — порт 1, igb1 — порт 0, дальше подряд) порядку:

У меня снова патч-корд в 6-м порту, по этому я выбираю в качестве LAN-интерфеса igb5, назначаю ему ip-адрес и всё

pfsense установлен, можно настраивать.

И первое, что надо сделать, это заставить pf запомнить, что консоль на COM2, иначе, после отключения питания, консоль будет недоступна.

так что сразу, как только попал в браузер, возвращаюсь в консоль, где:

# vi /boot/loader.conf.local
comconsole_port="0x2f8"

сохранить, выйти (:wq), и можно смело перезагружать и выключать не боясь потерять консольный доступ.

Новая игрушка Silicom Versa-110 (установка ОС)

Обрёл прикольную штуку

Можно подумать, что это роутер, или ещё какая-то сетевая железка, но нет, это микро-сервер на процессоре Intel Atom C2558@2.40GHz с 8Gb оперативки и eMMC на 64Gb

У микро-сервера вообще нет видеокарты, всё локальное управление строго через консоль, которая сделана в виде rs232-USB моста, и выведена как miniUSB-порт.

Документация на железку вот (утащил с сайта производителя, чтобы больше не искать, и положил к себе). В ней есть блок-схема устройства, довольно интересная

По умолчанию там уже установлен какой-то Linux, но логин и пароль из документаций, не смотря на то, что железка вроде как новая не подошёл. Ну что ж, переустановим всё.

Сначала подготовим совершенно стандартный дистрибутив Debian 12 на флешке.

Потом, подключим микро-сервер к компьютеру кабелем USB-microUSB, и дождёмся установки драйвера. Windows 7 драйвер нашла автоматом, но если понадобится то он есть у производителя моста. Если COM-порт не определяется, замените кабель. Сервер оказался требователен к качеству кабеля, у меня завелось со вторым.

Запустим putty (важно, никакой kitty — kitty не умеет в консоль по человечески), установим com-порт, который получил мост в дистпетчере устройств, и скорость 115200

Нажмём Open, увидим чёрный экран, и один раз нажём Enter. Ура, мы вошли

Просто вставляем флешку в любой USB-порт и перезагружаемся. BIOS сервера настроен на приоритет загрузки с USB, ничего больше делать не надо.

Перезагружаемся и видим установщик, но просто запустить не выйдет, видюхи-то нет.

В консоли запускается установщик, выбираем пункт Install, нажимаем Tab один раз, и в конец строки параметров запуска добавляем console=ttyS1,115200n8

Нажимаем Enter и просто ждём, порядка минуты, пока запустится установщик

Это обычный текстовый установщик Debian, ничего не обычного в нём нет. Единственное, что важно — правильно выбрать сетевуху. Всего в сервере 6 сетевых портов. Точно не понятно, что это, потому что документация пишет, что там Marvel 88E1543 с 4 гигабитными портами, и две отдельных Intel i211 (тоже по гигабиту на порт), но дебиан определяет Intel i354 и две Intel i211, причём про 354 пишет, что просто Ethernet. Собственно, к чему это всё.

Вот это, порты с 4 по 6 на железке

А это, первый и второй:

У меня патч-корд вставлен в 6 порт

и в списке выбора, это она:

Дальше, выбираем нужные пакеты, устанавливаем Debian и перезагружаемся. Что клёво, что установщик сам добавит консоль в интерфейсы вывода, руками делать ничего не надо.

Надо не забывать устанавливать ssh-сервер, потому что иначе доступ будет только через консоль 🙂

Сразу получаем вот такой набор ошибок

Интернет утверждает, что это проблема перехода процессора в энергосберегающий режим. По этому, отключаем энергосбережение. Для этого в файле /etc/default/grub меняем строку GRUB_CMDLINE_LINUX_DEFAULT=

В конец строки добавляем consoleblank=0 intel_idle.max_cstate=1

У меня итоговая строка получилась

GRUB_CMDLINE_LINUX_DEFAULT="systemd.unified_cgroup_hierarchy=false quiet consoleblank=0 intel_idle.max_cstate=1"

После этого выполняем

#grub-update 

И перезагружаемся. Всё, система установлена.

Роутеры Keentic и разделённая локальная сеть

Дано:

Сеть вида:

В сети два сегмента разделённых маршрутизатором (цели различные), и единый выход в интернет через роутер кинетик

  • Адрес кинетика 192.168.1.1, сеть 192.168.1.0/24, непосредственно подключена к его коммутатору
  • Сеть 192.168.2.0/24 отделена маршрутизатором от сети 192.168.1.0/24
  • Для сети 192.168.2.0/24, шлюз по умолчанию 192.168.2.1
  • Для сети 192.168.1.0/24, шлюз по умолчанию 192.168.1.1
  • В сети 192.168.1.0/24 есть маршруты в сеть 192.168.2.0/24 и компьютеры видят друг-друга и могут взаимодействовать
  • На кинетике 192.168.1.1 включен NAT (по умолчанию) и раздаётся интернет.

Задача:

Сделать так, чтобы интернет работал не только на компьютерах в сети непосредственно подключенной к кинетику, но и в сети за промежуточным маршрутизатором

Решение:

  • Добавить на кинетик маршрут в сеть 192.168.2.0/24 (для простых сетей достаточно статического маршрута)
  • Выполнить на кинетике команды (через telnet или ssh):
ip nat 192.168.2.0 255.255.255.0
system configuration save

Вообще, кинетики очень крутые роутеры: с одной стороны, простая настройка, если не хочешь странного, а с другой стороны, мощнейший интерфейс командной строки, который позволяет реализовать любые странные хотелки.

Про сетевухи на Intel x520 10Гб/сек

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

Сетевухи на чипе X520 (Intel x520-DA, Intel x520-DA2 и т.д.) работают только с интеловскими модулями SFP+, или неродными модулями, прошитыми так, чтобы прикидываться интеловскими.

Не получится использовать просто сторонние модули LRLINK, Mikrotik, tp-link и т.д., при установке модуля получится ошибка

«Запуск устройства не возможен, код 10»

А в диспетчере устройств, напротив сетевухи или порта с установленным SFP+ будет восклицательный знак

Если вынуть модуль, всё станет хорошо.

Так вот, к этим сетевухам можно покупать либо оригинальные модули из списка совместимости (доступно через VPN), либо модули, у которых в прайс-листе продавца будет написано «прошивка Intel» или «совместимый с intel»

Конвертация виртуальных машин из ESXi в Hyper-v

Понадобилось перенести виртуалки из ESXi в Hyper-v, и интернет притащил решение Starwind V-to-V Converter.

Программа абсолютно бесплатная, но для скачивания надо заполнить регистрационную форму. Одноразовый e-mail вполне прокатил :). Ссылка на скачивание приходит в почту, по этому не закрывайте окно одноразовой почты до скачивания.

Сама софтина — по сути мастер, и умеет конвертировать виртуальные машины не только из ESXi

На втором шаге ввёл адрес хоста с ESXI, логин и пароль рута на хосте

Конвертер немножко подумал и показал список виртуальных машин

Дальше осталось только выбрать куда тащить машину, и всё пошло поехало.

Перенос машины с диском на 1Тб по 10Гб/сек сети занял 4 часа, включая конвертацию файлов дисков

Мне же надо было утащить виртуалку с Debian Linux 11 из ESXi в Hyper-v.

Я проделал это дважды: сначала сделал тестовую конвертацию работающей машины, а потом уже боевую выключенной.

При конвертации работающей машины, обнаружилось, что из fstab после конвертации исчезли все диски кроме системного. Сами тома никуда не делись и нормально сконвертировались, но их пришлось добавить в fstab вручную и перезагрузиться.

При конвертации выключенной, проблемы с fstab не было.

В обоих случаях, после конвертации необходимо сделать следующее:

  1. Изменить имена сетевых адаптеров в /etc/network/interfaces (если у вас не дебиан, возможно используется другой механизм инициализации сети, но всё равно, имена сетевух сменить надо.
  2. После смены имён сетевушек, я перезагрузился. Можно просто переинициализировать сеть.
  3. Удалить open-vm-tools. После удаления, apt может предложить удалить не нужные пакеты. Так делать не надо, удалится что-нибудь нужное.
  4. выполнить apt update && apt full-upgade -y для обновления системы. Даже если ничего не установится (вдруг у вас обновлённая ОС), проблема с autoremove после этого уйдёт.
  5. Перезагрузить виртуальную машину
  6. Проверить, что установлены модули hyperv, командой  
    lsmod | grep hv
  7. Если модулей нет — установить. В Debian 11 есть.

Аптайм машины после миграции после переезда уже две недели. Всё работает. Ни один сервис, а на машине

  • электронная почта
  • несколько сайтов на разных движках
  • ispmanager
  • strongswan

не сломался. Единственное, для нормальной работы ispmanager необходимо сохранить ip-адрес при первых запусках. После того как всё заработает, можно поменять.

Я обрёл клавиатуру без кнопки выключения, к которой привык

Первые дни было больно — я привык отправлять комп спать комбинацией клавиш, а тут такая засада:

Нету кнопки «выкл» и всё тут.

А потом, я подумал — яж в линукс, тут такая проблема должна решаться просто назначением клавиш.

Не тут-то было, в новом Gnome в комбинациях клавиш нет «сон» или «выкл»:

Вместо этого, можно «выбрать действие кнопки питания

Казалось бы, боль и страдания, но это ж линукс, так что надо просто создать новую комбинацию клавиш для команды

$ systemctl suspend

Что делать:

Перейти в «Параметры — Комбинации клавиш«

Нажать « внизу экрана

Добавить комбинацию клавиш по вашему выбору и сохранить


pfSense ikev2 c авторизацией Active Directory

Подготовка

Сертификаты

Для того, чтобы ikev2 без головной боли работал на клиентах, серверу всегда нужен валидный сертификат от реального центра сертификации. Использовать самоподписанные и импортировать CA на всех клиентах то ещё развлечение, по этому

  1. Добавьте запись в DNS, со ссылкой на внешний айпшиник pfsense. Типа vpn.example.com или ещё как-то
  2. Установите в pfSense расширение acme, которое автоматизирует получение бесплатных сертификатов от Let’sEncrypt. Там всё достаточно просто и очевидно.
  3. Получите бесплатный сертификат. Я делал это с проверкой через DNS, что требует добавления текстовой записи вида _acme-challenge.vpn.exmaple.com в DNS
  4. Запомните на будущее, что клиент должен обращаться к серверу только по созданному и указанному в сертификате доменному имени (то самое vpn.example.com)

Авторизация

Для авторизации логично использовать стандартный доменный пароль пользователей, это облегчает жизнь администратору :), но EAP-MSCHAPv2 авторизация не поддерживает прямое обращение к LDAP, т.к. шифрует логин и пароль. Зато шифрованные пароли хорошо поддерживает RADIUS, а Windows умеет в RADIUS, по этому:

  1. Создайте в AD группу, в которую будут входить пользователи VPN. В отличие от LDAP, в pfsense, RADIUS-метод управляет на основе групп, а не на основе контейнеров
  2. Настройте Microsoft NPS по инструкции от NetGate Не забудьте сохранить в блокнот «общий секрет» из мастера — он понадобится при настройке pfSense
  3. Дополните настройку NPS по вот этой инструкции от NetGate
  4. Настройте связь pfSense с RADIUS. Я опять же пользовался инструкцией от NetGate Протокол авторизации — MS-CHAPv2

ikev2

Просто настройте ikev2 по инструкции от NetGate, внеся изменения.

1. Выберите RADIUS-сервер в настройках Mobile Client

2. Выберите EAP-RADIUS протоколом аутентификации при настройках phase 1

pfSense OpenVPN + Active Directory, тонкости

В целом, на сайте Netgate есть очень качественный пример настройки, который можно использовать «один в один», но сначала надо подготовить авторизацию через LDAP (из Active Directory).

В Windows для этого ничего делать не надо, кроме создания пользователя для связи, а в pfSense настроить связку с LDAP по вот этой инструкции

Чтобы не морочиться с тем, почему не работает, важно правильно ввести имя пользователя в поле «Bind credentials».

Инструкция рекомендует использовать либо короткую %username%, либо каноническую «CN=username,CN=Users,DC=domain,DC=suffix»

В реальной жизни, работает нотация username@domain.suffx (bob@example.local)

Ещё один важный момент — авторизация в LDAP в актуальном pfSense управляет доступом не на основе групп пользователей, а на основе контейнеров (CN, OU) в вашей доменной структуре, так что доступ получат все пользователи указанного в конфигурации LDAP подразделения (контейнера, CN, OU)