dadv: (Default)
Наиболее быстрое применение патча из FreeBSD-SA-24:04.openssh для пользователей ветки STABLE (не использующих бинарные обновления системы) в предположении, что в /usr/src и /usr/obj осталось содержимое после предыдущего обновления. Если /usr/src осталось, но содержимое /usr/obj было полностью удалено, тоже подходит.

Подходит и для 12.4-STABLE, и для 14.x. Проблема не касается openssh-7.4 в базовой системе 11.4-STABLE.


fetch -o- https://security.FreeBSD.org/patches/SA-24:04/openssh-13.2.patch | sed '/version/,$d' > ~/openssh.patch
cd /usr/src
patch < ~/openssh.patch
cd secure/lib/libssh
make all install
cd ../../usr.sbin/sshd
make clean all install
service sshd restart
cd ../../usr.bin/ssh
make clean all install


Патчи в FreeBSD-SA-24:04.openssh для разных веток отличаются только контекстом в crypto/openssh/version.h, обновляя #define SSH_VERSION_FREEBSD. Команда sed вырезает из патча чанк, который меняет этот файл, оставляя в патче лишь собственно исправление проблемы (пламенный привет сотрудникам служб ИБ).

Команда service sshd restart не трогает процессы sshd, обслуживающие уже установленные сессии, так что её безопасно выполнить удаленно через сам sshd, сессия не будет оборвана. Новые подключения будет обрабатывать уже запатченный новый серверный процесс sshd.

Update: добавил пересборку и установку клиента ssh, так как он тоже использует libssh (libprivatessh.so) и после обновления библиотеки его тоже нужно пересобрать/перелинковать.
dadv: (Default)
В продолжение темы. Заметка о настройке VPN-доступа для клиентских устройств, с тем чтобы давать им удалённый доступ в локальную сеть. В качестве агента IKEv2 используем strongswan-5.9.11_3, плюс для клиенских подключений создаем интерфейсы ipsecX ради удобства настройки MTU, роутинга, диагностики при помощи bpf (tcpdump/tshark/wireshark/etc.), SNMP-статистики и прочего. Авторизация клиентов методом IKEv2 IPSEC MS-CHAPv2. Условное имя VPN-сервера для клиентов vpn.domain.net. Read more... )
dadv: (Default)
В современных версиях FreeBSD команда tar это оболочка над libarchive и умеет работать далеко не только с tar-файлами разных видов. Например, можно использовать tar для создания переносимых ZIP-архивов:

# tar --format zip --one-file-system --options compression-level=0,encryption,hdrcharset=UTF-8 -C / -cvf /var/tmp/archive.zip /

Такая команда создаёт ZIP-архив без сжатия, но со стандартным ZIP-шифрованием (пароль спросит интерактивно), с указанной кодировкой имён файлов и помещает в него содержимое корневой файловой системы, но без примонтированных других файловых систем (точки монтирования сохранит).

Не нашел аналога --one-file-system в документации к Info-ZIP, который устанавливается в качестве /usr/local/bin/zip из порта/пакета archivers/zip.

Страница системной документации tar(1) ссылается на libarchive-formats(5), на archive_write_set_options(3) и на archive_read_set_options(3), где всё это документировано.
dadv: (Default)
Попробовал тут понастраивать bhyve и заодно взглянуть на Windows 11, взятую с первого попавшегося торрента на рутрекере.

bhyve завёл на домашнем роутере (FreeBSD 12.3/amd64), мелкая железка на чипсете Intel Q270 с питанием от 12 вольт.

Read more... )

Процессор Intel i5-7200U @ 2.50GHz с двумя ядрами без гипертрединга, 32GB памяти.

Оказалось довольно просто (сразу скажу: никаких SecureBoot и TPM 2.0 не потребовалось). Первым делом включаем в /etc/rc.conf подгрузку ядерных модулей для работы bhyve: kld_list="nmdm vmm" (и подгружаем их через kldload).

Добавляем в систему портами или пакетами sysutils/bhyve-firmware и sysutils/vm-bhyve, в моём случае получились bhyve-firmware-1.0_1 и vm-bhyve-1.4.2.

В /etc/rc.conf добавляем на время создания виртуалки:
vm_enable="YES"
vm_dir="/usr/local/etc/vm" # или vm_dir="zfs:poolname/vm"


Создаём конфигурацию гипервизора для виртуалки командой vm create -t windows -s 120G win11, где "windows" имя шаблона, а "win11" имя новой виртуалки. Эта команда создала win11.conf, в который я немедленно залез редактором.

Поменял memory=2G на memory=8G; закомментировал network0_type и network0_switch, чтобы во время установки у виртуалки не было сети.

Там же была строчка disk0_name="disk0.img", указывающая на 120-гигабайтный файл-образ disk0.img, который создала команда vm create выше. Это мне не подходит, так как нужна возможность создавать снапшоты, так что поменял этот блок настроек на следующее:

disk0_type="ahci-hd"
disk0_dev="custom"
disk0_name="/dev/zvol/z/win11"


Удалил disk0.img и создал zvol с "секторами" 4K:
zfs create -o compression=lz4 -V 120g -b 4096 z/win11

Положил инсталляционный ISO в vm/.iso/win11.iso и запустил установку:
vm install win11 win11.iso

После начала установки подключился к системе VNC-клиентом, получил экран с предложением запустить инсталляцию с CD/DVD. Установка прошла совершенно гладко, с тремя ребутами (VNC каждый раз приходилось переподключать). После появления десктопа выбрал завершение работы системы и поглядел показания ZFS:
z/win11  referenced            3.96G                  -
z/win11  compressratio         1.10x                  -
z/win11  volsize               120G                   local
z/win11  volblocksize          4K                     -
z/win11  compression           lz4                    local
z/win11  written               3.96G                  -
z/win11  logicalused           4.32G                  -

Настало время дать виртуалке сеть. Мне не нравится идея бриджевать виртуалки по умолчанию, я предпочитаю роутить гостевой трафик средствами хоста, а заодно фильтровать и делать NAT. Поэтому не стал раскомментировать настройки network0_*, а вместо этого добавил в конфиг виртуалки:
bhyve_options="-s 2,e1000,tap0"

То есть, посадил эмулируемую сетевую карту Intel на PCI-шину 2 с подключением к системному интерфейсу tap0, который создается через /etc/rc.conf:

cloned_interfaces="tap0"
ifconfig_tap0="inet 192.168.100.1/30 link0"
ifconfig_tap0_descr="Windows 11"


Флаг link0 запрещает отключать (down) сетевой интерфейс при гашении виртуалки, вместо этого у него просто будет статус no carrier.

Ещё полезно в конфиг виртуалки добавить graphics_res="1856x960", чтобы увеличить размер рабочего стола Windows до указанного размера с дефолтных 1024x768. Циферки подбирайте под себя, я выбрал такие, чтобы в VNC не было скроллинга и окно VNC вместе с декорациями влазило в разрешение FullHD.

dadv: (Default)

Довелось попробовать настроить IPSec в туннельном режиме под FreeBSD в «новом стиле», с созданием системного интерфейса ipsec0 со всеми причиндалами, включая MTU, чего раньше очень не хватало при настройке туннеля в «традиционном» стиле одними политиками IPSec, без туннельного интерфейса.

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

Сначала поставил strongswan-5.8.2_1 из портов и настроил его через новомодный vici-интерфейс. Создал файл с произвольным именем и расширением .conf:

# cat /usr/local/etc/swanctl/conf.d/hq.conf
connections {
  hq {
    version             = 2
    pull                = no
    mobike              = no
    send_certreq        = no
    dpd_delay           = 5
    keyingtries         = 0

    local_addrs         = 1.1.1.1
    local_port          = 500
    remote_addrs        = 2.2.2.2
    remote_port         = 500

    proposals           = aes256-sha256-modp2048
    reauth_time         = 28800

    local {
      auth              = psk
      id                = 1.1.1.1
    }

    remote {
    }

    children {
      net-net {
        mode            = tunnel
        dpd_action      = restart
        ipcomp          = yes
        copy_df         = no
        start_action    = start
        stop_action     = start
        reqid           = 100
        # policies        = no

        local_ts        = 192.168.18.0/24
        remote_ts       = 10.0.0.0/8,192.168.21.0/24

        esp_proposals   = aes256-sha256-modp2048
      }
    }
  }
}

secrets {
  ike-hq {
    id-hq       = 1.1.1.1
    secret      = XXX
  }
}
#EOF

В этом виде после запуска strongswan согласует IPSec в туннельном режиме, но системный интерфейс ipsec0 не используется и strongswan сам инсталлирует в ядро и политики SPD, и маршруты до удалённых сетей в таблицу маршрутизации. Туннель, тем не менее, работает.

Чтобы теперь добавить в картинку p2p-интерфейс ipsec0, добавляем в /usr/local/etc/strongswan.d/charon.conf команду "install_routes = no" внутрь блока charon {}, так что strongswan перестаёт сам добавлять маршруты до сетей 10.0.0.0/8,192.168.21.0/24 через внешний интерфейс (WAN) и раскомментируем "policies = no" в hq.conf (см. выше), чтобы strongswan не добавлял SPD в ядро, их ядро само создаёт при использовании route-based IPSec-туннеля.

Остальные настройки в /etc/rc.conf по такому типу:

cloned_interfaces="ipsec0"
ifconfig_ipsec0="tunnel 1.1.1.1 2.2.2.2 reqid 100 mtu 1460 up"
static_routes="hq1 hq2"
route_hq1="10.0.0.0/8 -iface ipsec0"
route_hq2="192.168.21.0/24 -iface ipsec0"

strongswan_enable="YES"
strongswan_interface="vici"

Индекс 100 после слова reqid должен быть одинаковым в настройках одного и того же туннеля в rc.conf и в конфигурации strongswan, а если есть ещё туннели, то отличаться для разных туннелей.

Update: Добавил keyingtries = 0 (см. выше), так как оказалось, что без этого при запуске strongswan делает 5 переповторов при попытке подключиться к пиру и если он в это время недоступен, прекращает дальшейшие попытки. Нулевое значение заставляет его делать бесконечное число повторов (каждый с 5 переповторами). Кроме того, в /usr/local/etc/strongswan.d/charon.conf полезно прописать make_before_break = yes и retransmit_base = 1 - последнее для того, чтобы сильно ускорить восстановление туннеля после временных обрывов из-за перезагрузки пира или просто аварии по трассе до него.

Update 2: добавил close_action = start, без этого strongswan может бросить попытки восстановить работу туннеля при обрыве.

dadv: (Default)

По мотивам народной шотландской песни:

Henry Lee



Приляг, приляг, милый Генри Ли )

оригинал )

dadv: (Default)

Тестирую кросспостинг в ЖЖ через DW.

Заодно выдержка из новогоднего объявления от DW:

DW пережил огромный наплыв новых пользователей в последнюю декаду 2016, более 100000 новых аккаунтов и увеличение трафика на 25%. Многие из них из России и Украины.

DW

2016-12-25 12:11
dadv: (chuck)
Оригинал взят у [livejournal.com profile] kika в валить-валить

Чтобы перенести в dreamwidth всю френдленту, надо при импорте
https://www.dreamwidth.org/tools/importer
указать импортировать список френдов, потом когда задание на импорт встанет в очередь, дождаться выполнения, пойти в http://www.dreamwidth.org/manage/circle/edit и поставить там галочки subscribe у всех, кого вы хотите читать.
Если у вас френдов в ЖЖ много и кликать на всех лень, то в консоли броузера можно выполнить вот это:
document.querySelectorAll("[id^='editfriend_edit_'][id$='_watch']").forEach(function(el){el.setAttribute('checked', 'checked');el.setAttribute('value', 1);})
И потом просто нажать кнопку Save changes.

Я пишу в LJ уже года три через dw на самом деле, просто убрал баннер трансляции из постов, поэтому этого было не видно. Наверное после устаканивания текущей бури в стакане и когда станет понятно что dw нормально справился с всплеском нагрузки, я трансляцию уберу. Не то чтобы я тут сильно подрывал и очень уж отчаянно плевал и уж тем более я не собираюсь в ближайшее время ехать в РФ (делать там совершенно нечего), но просто как-то неаккуратненько что-ли. Пусть меня читают только гебисты с прямыми руками и не крышующие ларьки, у которых дазы банных не "утекают" на рынок.


Надо будет тоже присмотреться к альтернативам. Не в ФБ же идти, в самом деле.
dadv: (chuck)

Отметил свой сороковой день рождения подарком $100 фонду FreeBSD через PayPal. Курс банка 63.29, что немного меньше прошлогоднего. URL прежний: https://www.freebsdfoundation.org/donate/ (биткойны принимают по-прежнему :-)

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Syndicate

RSS Atom

Tags

Style Credit

Powered by Dreamwidth Studios