Как-то гуляя на авито, я увидел довольно много дешевых (200-1000р) фаерволов, которые 10-15 лет назад брали себе за много денег всякие организации. Сейчас эти девайсы потеряли свою актуальность (скорость работы/поддержка), и сливаются как мусор за копейки на барахолках.
В общем случае такой фаервол представляет из себя:
-ARM/MIPS SoC с linux и u-boot;
-Сколько-то сетевых портов (чаще всего подключены во внутренний управляемый свитч);
-Пару десятков/сотен мегабайт RAM и NAND;
-Иногда бонусами идут USB/WIFI/ADSL;
-Почти всегда есть консольный 8P8C (RJ-45) порт для Cisco совместимого кабеля (туда пишет загрузчик и ОС).
На особо старых девайсах можно увидеть мелкие SPI флешки и несколько десятков мегабайт ОЗУ + вместо u-boot увидеть redboot (или кастомный загрузчик).
По SoC может попасться рандом - как и отличный майнлайн SoC (который есть в OpenWRT таргетах), так и полностью закрытый SoC. По прошивке - чаще всего загрузчик не дает полноценную u-boot консоль + фирмварь подписана ключом вендора, но иногда решаемо - например шитьем своего загрузчика с помощью аппаратного загрузчика SoC (если нет secureboot в SoC).
В инете OpenWRT сборок под такие фаерволы довольно мало (как и вообще какой-либо инфы про них). И я уже было хотел закупить штук 5 рандомных девайсов и попробовать поднять на них OpenWRT, но в последний момент от такой идеи отказался. Причина - на практически всех девайсах дешевле 1500-2000р имеем стомегабитные порты (что в 2026 нафиг не надо). На этом бы все и закончилось, но я увидел Check Point L-50 за 1500р - за такое железо цена подарок. Рассмотрим его подробнее.

Что за девайс

Девайсы серии Check Point L-50 построены на многим знакомой платформе Marvell Kirkwood (она же в Depo A60, только в нём чуть лучше SoC).
Характеристики:
SoC: Marvell 88F6281 (1200MHz, armv5, 1 core);
RAM: 512MB DDR2;
NAND: 512MB (TSOP48);
Сеть: 10x 1Гбит портов (в SoC две сетевых: 1я сетевая - на WAN порт, 2я сетевая - на управляемый свитч с 8 LAN + 1 DMZ портами);
USB: 2x 2.0;
Слот SD: SDHC (SDIO);
Слот ExpressCard/34 (USB): можно всунуть древний модем (с USB протоколом);
Питание: 12 В 2.5 А (5.5х2.5).

Другие модели серии:
Check Point L-50W - имеет MiniPCI-e слот + WIFI антенны;
Check Point L-50D - имеет ADSL порт (в OpenWRT ADSL порт не работает);
Check Point L-50WD - имеет одновременно MiniPCI-e слот + WIFI антенны + ADSL порт.

Я же урвал обычный Check Point L-50 - без WIFI и ADSL. Осмотрим:

Перед
Зад
SD слот
Низ

Для разборки надо открутить всего один винтик, но разборка нам не потребуется, ибо для доступа к консоли загрузчика и ОС юзаем serial порт c подписью CONSOLE (по сути обычный COM порт в непривычном разъеме). Для работы с ним потребуется Cisco совместимый консольный кабель на 8P8C (RJ-45) - на озоне/вб они начинаются от 300р. Подойдет и USB и COM (в зависимости от портов на вашем компе):

COM
USB

По serial (параметры 115200n8) меня встретил залоченный вендорский u-boot 1.1.4 (с менюшкой вместо консоли), linux 2.6.22.18, и прошивка Check Point RD-6281-A.
Но сюрприз -Check Point L-50(W/D/WD) - это единственная серия Check Point девайсов с официальной поддержкой OpenWRT (на текущий момент), так что портировать ничего не придется - прошьем официальную OpenWRT. Вот страница девайса в OpenWRT вики, там фотки плат и инструкция по прошивке.
По прошивке вкратце: подписи стоковой прошивки не помеха, ибо прошьем нормальный u-boot от OpenWRT через аппаратный загрузчик SoC (по X-MODEM), и далее загрузимся в initramfs образ OpenWRT (с флешки или по tftp), и из него прошьем sysupgrade образ OpenWRT.
По прошивке подробнее (все делаем по serial):
1) Для начала надо сохранить MAC адреса (ибо прошивка нового u-boot их убьет): для этого в стоковом u-boot выбираем пункт "2. Start in debug Mode", и видим маки в строках вида "mac_addr 00:1c:....." (копируем их куда-нибудь). Ну или просто гляньте мак на наклейке на дне устройства, и остальные маки получайте прибавлением к нему единицы;
2) Качаем необходимые файлы: u-boot и initramfs + sysupgrade образы (на примере 24.10.5 потребуются: u-boot.kwb, openwrt-24.10.5-kirkwood-generic-checkpoint_l-50-initramfs-uImage и openwrt-24.10.5-kirkwood-generic-checkpoint_l-50-squashfs-sysupgrade.bin);
3) Для шитья потребуется linux (можно и livecd, я использовал Debian 13) + потребуется поставить пакет u-boot-tools (от рута apt install u-boot-tools). Выключаем питание, переходим в папку с файлом u-boot.kwb и передаем его в RAM девайса командой (от рута, или добавить себя в группу dialout):

Если все ок, то увидите:

Нажимаем любую клавишу чтобы прервать загрузку.

4) Дальше можно юзать флешку или tftp. Юзаем флешку как более простой путь - форматим её в FAT32 (MBR, один раздел), и кидаем в её корень файлы u-boot.kwb и openwrt-24.10.5-kirkwood-generic-checkpoint_l-50-initramfs-uImage;
5) Вставляем флешку в девайс, шьем u-boot.kwb, маки, и ребутаем девайс. Для этого в консоли u-boot пишем (маки подставить свои):

6) С NAND стартанет u-boot от OpenWRT и зашитыми маками. Нажимаем любую клавишу чтобы прервать загрузку. И грузим с флешки initramfs образ. Для этого в консоли u-boot пишем:

7) Оказавшись в OpenWRT - шьем sysupgrade образ. Для этого подключаемся в LAN (например в LAN1), получаем на компе DHCP от девайса, и из веб интерфейса (по 192.168.1.1) прошиваем файл openwrt-24.10.5-kirkwood-generic-checkpoint_l-50-squashfs-sysupgrade.bin без галки Keep settings (можно и из консоли через sysupgrade, закинув образ в /tmp через scp -O).

Проверяем результат:

И перед вами причина появления этой статьи - свободно 93 МБ, хотя NAND тут на 512 МБ. Вопрос к портировавшим - какого хрена? 😄 Давайте узнаем. На девайсе:

В OpenWRT wiki:

Классно, они решили сделать корень на разделах первого слота прошивки (kernel-1 и rootfs-1), а остальное выкинуть. Вернее "оставить на случай отката на сток". Но такой древний сток уже и даром не нужен, да и ссылка на бекапы стока приводятся на этой же странице (и нет проблем восстановить разметку и откатиться на сток при необходимости). Короче, так не пойдет, надо фиксить.

На большинстве роутеров OpenWRT хранит разметку в dts (dtb), и dtb встраивается в ядро в момент сборки, соответственно правка разделов требует пересборки OpenWRT. Есть и более извращенные варианты - границы вендорских разделов не трогаются, но в dts разделы объединяются в единый ubi под rootfs через ubi-concat (привет Smartbox роутерам) - такой способ тоже требует пересборки OpenWRT.

Но нам повезло - в конфиге ядра включен CONFIG_MTD_CMDLINE_PARTS - а значит разметку можно поправить параметрами ядра. Для отжимания всего места в корень нужно оставить только разделы: u-boot + bootldr-env (1 МБ), и ubi (все остальное место).
В ubi разделе на ubi партициях у нас и партиция ядра, и партиция sqashfs, и overlay rootfs. Соответственно, переразметка не помешает при будущих sysupgrade обновлениях, так как при них затрагивается только раздел ubi.
Идем в u-boot и смотрим текущую картину:

Отлично, даже переменная с разметкой разделов есть. Сейчас она используется только для u-boot, но имя nand драйвера что в u-boot что в linux совпадает (orion_nand), поэтому подправим разметку в прямо в этой перменной, и скормим её в параметры ядра.
Выполняем в u-boot:

Чётко, только теперь мы сломали уже поставленную OpenWRT. Для починки надо форматнуть ubi на весь новый раздел. Самый простой вариант - грузануть initramfs образ с флешки и из него прошить sysupgrade. Вставляем сделанную выше флешку в FAT32 с initramfs образом, и делаем в консоли u-boot:

Стартует initramfs образ из RAM. Видим в логе загрузки, что разделов теперь только три:

Все ок. Идем в веб интерфейс (или в консоль), и снова прошиваем openwrt-24.10.5-kirkwood-generic-checkpoint_l-50-squashfs-sysupgrade.bin (без Keep settings).
Проверяем результат:

Вот теперь другое дело.
И кстати, если вы еще не шили OpenWRT, но собираетесь это делать + хотите сразу получить полный объем флешки - нет смысла шить OpenWRT дважны. Просто шейте по инструкции выше, но после прошивки маков и до сохранения переменных (saveenv) задайте новую разетку в переменную mtdparts и добавьте её в параметры ядра (в bootargs) согласно инструкциям выше. С OpenWRT закончили.

Теперь пару слов про Debian.
Debian 13 на этот девайс тоже впихивается без проблем. Варианты:
-Полностью на NAND (после установки свободно около 250 МБ);
-Раздел /boot на NAND, а / на SD или USB;
-Все на SD или USB.
Но Debian 14 будет уже не впихнуть - в нем проект откажется от архитектуры armel (наш ARMv5 SoC как раз оно). Так что делать сборки Debian под этот девайс не вижу смысла. Да и на таком железе я больше предпочитаю OpenWRT.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

CAPTCHA ImageChange Image