diff --git a/docs/manual.md b/docs/manual.md index bbf9cc1..ceaee6a 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -5110,3 +5110,66 @@ rc-update add zapret2 8. Перезапуск : `systemctl restart nfqws2@INSTANCE` Этот способ не поднимает правила ip/nf tables - вам это придется сделать отдельно, как и написать сами правила. Правила нужно прописать куда-то, чтобы они поднимались после старта системы. Например, можно сделать отдельный systemd unit с запуском шелл скрипта или `nft -f /path/to/file.nft`. + +## Другие прошивки + +Для статических бинарников не имеет значения на чем они запущены: PC, android, приставка, роутер, любой другой девайс. +Подойдет любая прошивка, дистрибутив Linux. Статические бинарники запустятся на всем. +Им нужно только ядро с необходимыми опциями сборки или модулями. +Но кроме бинарников в проекте используются еще и скрипты, в которых задействуются некоторые +стандартные программы. + +Основные причины почему нельзя просто так взять и установить эту систему на что угодно: +* отсутствие доступа к девайсу через shell +* отсутствие рута +* отсутствие раздела r/w для записи и энергонезависимого хранения файлов +* отсутствие возможности поставить что-то в автозапуск +* отсутствие cron +* неотключаемый flow offload или другая проприетарщина в netfilter +* недостаток модулей ядра или опций его сборки +* недостаток модулей iptables (/usr/lib/iptables/lib*.so) +* недостаток стандартных программ (типа ipset, curl) или их кастрированность (облегченная замена) +* кастрированный или нестандартный шелл sh + +Если в вашей прошивке есть все необходимое, то вы можете адаптировать zapret под ваш девайс в той или иной степени. + +Пересобрать ядро или модули для него будет скорее всего достаточно трудно. +Для этого вам необходимо будет по крайней мере получить исходники вашей прошивки. +User mode компоненты могут быть привнесены относительно безболезненно, если есть место куда их записать. +Специально для девайсов, имеющих область r/w, существует проект entware. +Некоторые прошивки даже имеют возможность его облегченной установки через веб интерфейс. +entware содержит репозиторий user-mode компонент, которые устанавливаются в /opt. +С их помощью можно компенсировать недостаток ПО основной прошивки, за исключением ядра. + +Можно попытаться использовать [sysv init script](#стартовые-скрипты). +В случае ругани на отсутствие каких-то базовых программ, их следует восполнить посредством entware. +Перед запуском скрипта путь к дополнительным программам должен быть помещен в PATH. + +Обратите внимание, что entware патчен на предмет замены стандартных путей файлов типа /etc/passwd на /opt/etc/passwd. +Статические бинарники zapret собраны без учета этой особенности, поэтому оцпия --user может не работать - юзер ищется в /etc/passwd, +который находится на r/o разделе, в том время как adduser добавляет юзеров в /opt/etc/passwd. +Поэтому может понадобиться раскомментировать в [config](#файл-config) WS_USER и указать юзера, который есть в /etc/passwd. + +Для keenetic существуют дополнительные важные особенности, без учетка которых zapret будет "слетать" каждые несколько минут или не работать с udp. +Существуют готовые сторонние решения по интеграции с keenetic. + +Подробное описание настроек для других прошивок выходит за рамки данного проекта. + +OpenWrt является одной из немногих относительно полноценных linux систем для embedded devices. +Она характеризуется следующими вещами, которые и послужили основой выбора именно этой прошивки: +* полный root доступ к девайсу через shell. на заводских прошивках чаще всего отсутствует, на многих альтернативных есть +* корень r/w. это практически уникальная особенность OpenWrt. заводские и большинство альтернативных прошивок + построены на базе squashfs root (r/o), а конфигурация хранится в специально отформатированной области + встроенной памяти, называемой nvram. не имеющие r/w корня системы сильно кастрированы. они не имеют + возможности доустановки ПО из репозитория без специальных вывертов и заточены в основном + на чуть более продвинутого, чем обычно, пользователя и управление имеющимся функционалом через веб интерфейс, + но функционал фиксированно ограничен. альтернативные прошивки, как правило, могут монтировать r/w раздел + в какую-то область файловой системы, заводские обычно могут монтировать лишь флэшки, подключенные к USB, + и не факт, что есть поддержка unix файловых системы. может быть поддержка только fat и ntfs. +* возможность выноса корневой файловой системы на внешний носитель (extroot) или создания на нем оверлея (overlay) +* наличие менеджера пакетов opkg и репозитория софта +* flow offload предсказуемо, стандартно и выборочно управляем, а так же отключаем +* в репозитории есть все модули ядра, их можно доустановить через opkg. ядро пересобирать не нужно. +* в репозитории есть все модули iptables, их можно доустановить через opkg +* в репозитории есть огромное количество стандартных программ и дополнительного софта +* наличие SDK, позволяющего собрать недостающее