Установка OpenWRT на CheckPoint T-120 (4200 appliance)

CheckPoint T-120 (4200 appliance)CheckPoint T-120 (4200 appliance)

В очередной раз просматривая объявления о продаже компьютерной техники и всяческой электроники наткнулся на интересного зверя — корпоративный файрвол CheckPoint T-120. Быстренько погуглив, нашел технические характеристики этого устройства. Вот они:

  • Intel Atom D525 1.80GHz Dual-Core

  • оперативная память 4 GB (DDR2)

  • 4×10/100/1000Base-T RJ45 ports

  • 250 гигабайт жесткий диск (SATA)

Очень даже неплохо, особенно учитывая то, что эта покупка обошлась мне в 4000 тенге, сейчас это чуть меньше $10. Заинтересовала эта железка тем, что внутри почти полноценный компьютер на базе процессора с пассивным охлаждением, крепкий блок питания, памяти достаточно. Единственное, там нет выхода на монитор/клавиатуру. Но есть консольный порт (RS232, разъем правда RJ45). Еще один аргумент к покупке — это то, что на него смогли установить pfSense. В этом случае теоретически можно и другой роутерный софт установить. Душа у меня лежит к OpenWRT. Его и будем ставить.

Консольный Кабель. Теперь вопрос с контролем процесса установки и вообще «Главный вопрос жизни, вселенной и всего такого». Фирменного кабеля — нет, Гугл подсказывает что можно использовать кабель Cisco, которого у меня тоже нет, купить — это совсем плохая идея, стоит как чугунный мост, с АлиЭкспресса — ждать долго. Выход один — ПАЯТЬ ! Достаем ЭПСН-25 и… Идем в гараж/кладовую/склад и берем оттуда кабель для подключения телефона Ericsson к компьютеру через RS232 и патч-корд RJ45. Фирменный кабель содержит 8 проводов, а в кабеле для телефона всего 5, отсутствуют провода CTS/DCD/DSR. Внизу распиновка фирменного кабеля.

8d6db14dab53af405c4ee4e61b6d8976.png

Фирменный кабель Cisco.

159c96bfb3cedd8025348fa1a2749a0a.png

За всю свою сознательную жизнь на практике я не встретил консольного кабеля, который использует больше, чем RXD/TXD/GND. Была не была, собираем простой кабель по следующей схеме.

45f2375215d20374ab7a892ab18ebb9f.png

Кабель спаяли.

ef684fe8783d64139e580df6b8bcbbe5.jpg

И подключаем его через переходник USB to RS232 к компьютеру.

ec4cb9882b2f5626305ca74d41b57640.jpg

Проверка работы кабеля. Подключаем все это хозяйство к компьютеру, настраиваем параметры порта: Baud rate = 9600 bps, Data bits = 8, Parity = None, Stop bits = 1, Flow Control = None. Включаем роутер и видим в терминале процесс начальной инициализации (BIOS) и загрузки этого убер девайса.

Установка OpenWRT. Теперь мы будем ставить на этот роутер OpenWRT. Ну как ставить ? Его прошивают либо в флеш-память роутера, либо на жесткий диск или на карту памяти.

Для этого нужно скачать сборку OpenWRT под процессор x86, тип сборки Combined-Ext4. Такая сборка необходима для того, чтобы потом изменить размер разделов на карте памяти/жестком диске.

В кладовых у меня есть пару видов переходников SD Card to SATA, CF Card to SATA. Почему то, SD Card to SATA не всегда определяется BIOS-ом как диск. Используем CompactFlash.

6ec03fdc666be72f0e5b1bfd36ed5575.jpg

Используем переходник для установки 2.5» жестких дисков вместо 3.5». Немного винтиков и болтиков М3 и получаем такую конструкцию.

6cda97903200bf4d5b2838b4b90b2160.jpg5972cbe4efaa841e4d288d9febf98900.jpg

Установка OpenWRT на карту памяти. Хорошее руководство можно найти здесь. У нас 64-х битный процессор, и как я упоминал выше, нужна сборка Combined-Ext4, вот ссылка на текущий стабильные билды.

Скачиваем образ, распаковываем архив и записываем на карту памяти файл *.img. В Линуксе — это можно сделать примерно так:

# Unpack image
gunzip openwrt-*.img.gz
 
# Identify disk (to replace sdX in the following command below)
lsblk
 
# Write image
dd if=openwrt-21.02.0-x86-64-generic-ext4-combined.img bs=1M of=/dev/sdX

Далее мы вставляем карту памяти CompactFlash в переходник, устанавливаем в роутер и собираем все.

967de5414d7606d0bd09ece89718f1db.jpg

Через сетевой порт Lan1 подключаем к компьютеру или сети, Console — через самодельный кабель к компьютеру. Если после включения питания через некоторое время в окне терминала побежит вывод загрузки системы, значит Вы все сделали верно и все работает как нужно. Да, кстати, нужно сменить скорость терминала на порту на 115600, все остальные параметры без изменений.

182be9f0f223bccc64956c12bda25fd6.jpg

Первоначальная настройка OpenWRT. Подключаемся к веб-интерфейсу OpenWRT. IP/mask по умолчанию 192.168.1.1/24, пароль — по умолчанию пустой. Рекомендую сразу поменять пароль администратора. Затем необходимо донастроить сетевой интерфейс — гейт по умолчанию и DNS сервера. Иначе Вы не сможете установить нужные пакеты для изменения разделов.

Теперь мы можем изменить разделы установленного OpenWRT. По умолчанию размеры следующие:

/dev/sda1 is a 16MB ext4 /boot partition where GRUB and the kernel are stored.
/dev/sda2 is a 104MB partition containing the squashfs root filesystem and a read-write f2fs filesystem OR the ext4 root filesystem (depending on what image you have chosen).

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

Изменение разделов/размеров.

  1. Установить fdisk

  2. Запустить fdisk и посмотреть разделы

  3. Записать номер начального сектора /dev/sda2

  4. Удалить раздел /dev/sda2, но не записывать изменения на диск!!!

  5. Создать раздел /dev/sda2, при этом нужно указать начальный сектор, который Вы записали на шаге 3. Последний сектор — по умолчанию (до конца раздела).

  6. Записать изменения на диск.

Hidden text

Welcome to fdisk (util-linux 2.32).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /dev/sda: 7.2 GiB, 7751073792 bytes, 15138816 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcbad8a62

Device     Boot Start    End Sectors  Size Id Type
/dev/sda1  *      512  33279   32768   16M 83 Linux
/dev/sda2       33792 246783  212992  104M 83 Linux

Command (m for help): d
Partition number (1,2, default 2): 

Partition 2 has been deleted.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): 
Partition number (2-4, default 2): 
First sector (33280-15138815, default 34816): 33792
Last sector, +sectors or +size{K,M,G,T,P} (33792-15138815, default 15138815): 

Created a new partition 2 of type 'Linux' and of size 7.2 GiB.
Partition #2 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: n

Command (m for help): w

The partition table has been altered.
Syncing disks.

Пример изменения размеров разделов.

Hidden text

opkg update
opkg install fdisk
BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)"
DISK="${BOOT%%[0-9]*}"
PART="$((${BOOT##*[^0-9]}+1))"
ROOT="${DISK}${PART}"
OFFS="$(fdisk ${DISK} -l -o device,start | sed -n -e "\|^${ROOT}\s*|s///p")"
echo -e "p\nd\n${PART}\nn\np\n${PART}\n${OFFS}\n\nn\np\nw" | fdisk ${DISK}

Скрипт для изменения размеров разделов автоматически.

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

opkg update
opkg install losetup resize2fs
BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)"
DISK="${BOOT%%[0-9]*}"
PART="$((${BOOT##*[^0-9]}+1))"
ROOT="${DISK}${PART}"
LOOP="$(losetup -f)"
losetup ${LOOP} ${ROOT}
fsck.ext4 -y ${LOOP}
resize2fs ${LOOP}
reboot

Заключительным шагом — будет перезагрузка роутера. Пусть все хорошо утрясется…

OpenWRT установлен ! Далее можно делать из этого роутера — МегаУберРоутер. У меня на другом роутере, но на базе Intel D410 и 4 гигабайтах ОЗУ — крутится AdGuard и очень даже неплохо убирает рекламу и прочее. При этом загрузка системы в среднем еле превышает 5%.

P.S. чуть в обморок не упал, когда увидел, сколько стоил CheckPoint T-120 в свое время…

© Habrahabr.ru