mirror of
https://github.com/bol-van/zapret2.git
synced 2026-03-14 06:13:09 +00:00
update docs
This commit is contained in:
107
docs/manual.md
107
docs/manual.md
@@ -738,6 +738,10 @@ ipcache представляет собой структуру в памяти
|
||||
Параметр `--dry-run` позволяет протестировать корректность опций командной строки и доступность используемых файлов под сброшенными привилегиями.
|
||||
`--dry-run` не инициализирует движок LUA, и поэтому не может обнаружить синтаксические ошибки LUA.
|
||||
|
||||
## Виртуальные машины
|
||||
|
||||
Большинство десктопных гипервизоров ломают техники обхода при подключении сети через встроенный в гипервизор NAT. Это настройка по умолчанию. Необходимо подключение через мост (bridge). Проблема точно есть в vmware и virtualbox.
|
||||
|
||||
## Песочница
|
||||
|
||||
В целях безопасности nfqws2 после инициализации сбрасывает свои привилегии.
|
||||
@@ -4159,3 +4163,106 @@ nft_first_packets()
|
||||
|
||||
## Инсталлятор
|
||||
|
||||
Состоит из файлов `install_bin.sh`, `install_prereq.sh`, `install_easy.sh`, `uninstall_easy.sh`.
|
||||
|
||||
* `install_bin.sh` - средство автоматического поиска и настройки подходящих по архитектуре бинарных файлов из `binaries`. Создает линки в директориях nfq2, mdig, ip2net на файлы внутри одной из субдиректорий из binaries. Заточено на максимально обрезанные прошивки, где много чего нет. Работает почти на всем, но не 100%. Отсутствие или обрезанный вариант какой-нибудь стандартной программы может сломать скрипт - типично для неподдерживаемых прошивок типа padavan, merlin и тому подобных. Если не работает - создайте линки вручную.
|
||||
* `install_prepreq.sh` - установщик пре-реквизитов - требуемых пакетов для работы zapret. Работает в OpenWRT и на большинстве дистрибутивов Linux, но не на всех, поскольку могут использоваться очень разные системы управления пакетами и иметься индивидуальные особенности, которые все учесть невозможно. Если скрипт не справляется - требуется установить пакеты вручную.
|
||||
* `install_easy.sh` - основной установщик. Рассчитан на запуск из любого расположения. Работает в диалоговом режиме, задает вопросы. Автоматически настраивает binaries и устанавливает пре-реквизиты (отдельный запуск предыдущих скриптов не требуется). На неподдерживаемых системах Linux не может прописать автозапуск - вам это придется сделать вручную.
|
||||
* `uninstall_easy.sh` - деинсталлятор. Не может убрать автозапуск на неподдерживаемых системах. Предлагает удалить пре-реквизиты только на OpenWRT, на остальных системах - нет. Не удаляет саму директорию установки - для полного удаления ее надо удалить самостоятельно.
|
||||
|
||||
Отдельные файлы `install_bin.sh` и `install_prereq.sh` полезны, когда вы не собираетесь запускать установку, но вам нужен рабочий [blockcheck2](#blockcheck2) или есть необходимость запускать [стартовые скрипты](#стартовые-скрипты) самостоятельно.
|
||||
|
||||
Инсталлятор всегда копирует файлы в `/opt/zapret2`, если исходный вариант находится где-то в другом месте. При замещении целевой директории удаляет все файлы оттуда. Опционально сохраняет стандартные файлы - config, [custom скрипты](#custom-скрипты), [user-листы](#стандартные-файлы-листов) из ipset, автохостлист.
|
||||
|
||||
При копировании в `/opt/zapret2` выставляет нужные права на файлы и директории, даже если они были испорчены (например, перепаковкой в Windows) в исходном расположении. Для запуска из расположения с испорченными правами достаточно вызвать "sh install_easy.sh".
|
||||
|
||||
Бинарные файлы присутствуют только в релизах. После git clone их нет. В случае отсутствия binaries инсталлятор попытается их собрать. Для этого ему нужен компилятор C, make и несколько dev пакетов. Подробности см в `docs/compile`.
|
||||
|
||||
Ниже описаны действия, выполняемые инсталлятором для интеграции с различными вариантами Linux. Можно отказаться от инсталлятора, сделав эти действия самостоятельно и настроив [config](#файл-config).
|
||||
|
||||
### Принципы интеграции с OpenWRT
|
||||
|
||||
1. Автозапуск.
|
||||
```
|
||||
ln -s /opt/zapret2/init.d/openwrt/zapret2 /etc/init.d
|
||||
/etc/init.d/zapret2 enable
|
||||
```
|
||||
2. Обновление правил firewall по событию поднятия/опускания интерфейсов.
|
||||
```
|
||||
ln -s /opt/zapret2/init.d/openwrt/90-zapret2 /etc/hotplug.d/iface
|
||||
```
|
||||
3. (только для fw3) Интеграция с firewall.
|
||||
```
|
||||
ln -s /opt/zapret2/init.d/openwrt/firewall.zapret2 /etc
|
||||
uci add firewall include
|
||||
uci set firewall.@include[-1].path="/etc/firewall.zapret"
|
||||
uci set firewall.@include[-1].reload=1
|
||||
uci commit
|
||||
```
|
||||
4. Обновление листов - cron job на вызов `/opt/zapret2/ipset/get_config.sh` ночью в случайное время каждые 2 дня - для обновления листов. Рассчет идет на роутер, работающий круглосуточно.
|
||||
|
||||
### Шпаргалка OpenWRT
|
||||
|
||||
* Запуск службы : /etc/init.d/zapret2 start
|
||||
* Останов службы : /etc/init.d/zapret2 stop
|
||||
* Рестарт службы : /etc/init.d/zapret2 restart
|
||||
* Состояние службы : /etc/init.d/zapret2 status
|
||||
* Отключение автозапуска : /etc/init.d/zapret2 disable
|
||||
* Включение автозапуска : /etc/init.d/zapret2 enable
|
||||
|
||||
### Принципы интеграции с systemd
|
||||
|
||||
1. Автозапуск
|
||||
```
|
||||
cp /opt/zapret2/init.d/systemd/zapret2.service /lib/systemd/system
|
||||
systemctl daemon-reload
|
||||
systemctl enable zapret2
|
||||
```
|
||||
2. Таймер для обновления листов - в случайное время суток каждые 2 дня. Рассчет идет на любую систему, в том числе десктопную, которую могут включать только днем.
|
||||
```
|
||||
cp /opt/zapret2/init.d/systemd/zapret2-list-update.* /lib/systemd/system
|
||||
systemctl daemon-reload
|
||||
systemctl enable zapret2-list-update.timer
|
||||
systemctl start zapret2-list-update.timer
|
||||
```
|
||||
|
||||
### Шпаргалка systemd
|
||||
|
||||
* Запуск службы : systemctl start zapret2
|
||||
* Останов службы : systemctl stop zapret2
|
||||
* Рестарт службы : systemctl restart zapret2
|
||||
* Состояние службы : systemctl status zapret2
|
||||
* Отключение автозапуска : systemctl disable zapret2
|
||||
* Включение автозапуска : systemctl enable zapret2
|
||||
|
||||
### Принципы интеграции с openrc
|
||||
|
||||
1. Автозапуск
|
||||
```
|
||||
ln -s /opt/zapret2/init.d/openrc/zapret2 /etc/init.d
|
||||
rc-update add zapret2
|
||||
```
|
||||
2. Обновление листов - cron job на вызов `/opt/zapret2/ipset/get_config.sh` днем в случайное время каждые 2 дня. Рассчет идет на любую систему, в том числе десктопную, которую могут включать только днем.
|
||||
|
||||
### Шпаргалка openrc
|
||||
|
||||
* Запуск службы : rc-service zapret2 start
|
||||
* Останов службы : rc-service zapret2 stop
|
||||
* Рестарт службы : rc-service zapret2 restart
|
||||
* Состояние службы : rc-service zapret2 status
|
||||
* Отключение автозапуска : rc-update del zapret2
|
||||
* Включение автозапуска : rc-update add zapret2
|
||||
|
||||
## Альтернативная установка на systemd
|
||||
|
||||
На классическом Linux с systemd можно использовать готовый шаблонный юнит `init.d/systemd/nfqws2@.service` для запуска инстансов nfqws2.
|
||||
|
||||
1. `cp /opt/zapret2/init.d/systemd/nfqws2\@.service /lib/systemd/system`
|
||||
2. `systemctl daemon-reload`
|
||||
3. `mkdir /etc/zapret2`
|
||||
4. Создаете в `/etc/zapret2` текстовый файл с параметрами коммандной строки nfqws2. Файл называется INSTANCE.conf, где INSTANCE - название инстанса, которое вы придумываете сами.
|
||||
5. Запуск : `systemctl start nfqws2@INSTANCE`
|
||||
6. Останов : `systemctl stop nfqws2@INSTANCE`
|
||||
7. Перезапуск : `systemctl restart nfqws2@INSTANCE`
|
||||
|
||||
Этот способ не поднимает правила ip/nf tables - вам это придется сделать отдельно, как и написать сами правила. Правила нужно прописать куда-то, чтобы они поднимались после старта системы. Например, можно сделать отдельный systemd unit с запуском шелл скрипта или `nft -f /path/to/file.nft`.
|
||||
|
||||
Reference in New Issue
Block a user