diff --git a/docs/bsd.en.md b/docs/bsd.en.md index 3c3bffb..d739a45 100644 --- a/docs/bsd.en.md +++ b/docs/bsd.en.md @@ -217,8 +217,9 @@ ipfrag2 desync mode. There's autostart script example in `init.d/pfsense`. It should be placed to `/usr/local/etc/rc.d` and edited. Write your ipfw rules and daemon start -commands. Because git is absent the most convinient way to copy files is ssh. -curl is present by default. +commands. +curl is present by default. You can use it to download `tar.gz` release directly from github. +Or you can copy files using sftp. Copy zip with zapret files to `/opt` and unpack there as it's done in other systems. In this case run `dvtws` as `/opt/zapret/nfq/dvtws`. Or just copy @@ -227,9 +228,6 @@ present. It's possible to renew lists. If you dont like poverty of default repos its possible to enable FreeBSD repo. Change `no` to `yes` in `/usr/local/etc/pkg/repos/FreeBSD.conf` and `/usr/local/etc/pkg/repos/pfSense.conf`. -Then it becomes possible to install all the required software including git to download -zapret from github directly. - `/usr/local/etc/rc.d/zapret.sh` (chmod 755) ``` diff --git a/docs/manual_setup.txt b/docs/manual_setup.txt deleted file mode 100644 index 5dbdcc0..0000000 --- a/docs/manual_setup.txt +++ /dev/null @@ -1,282 +0,0 @@ -Пример ручной установки на debian-подобную систему --------------------------------------------------- - -На debian основано большое количество дистрибутивов linux, включая ubuntu. -Здесь рассматриваются прежде всего Debian 8+ и Ubuntu 16+. -Но с большой вероятностью может сработать и на производных от них. -Главное условие - наличие systemd, apt и нескольких стандартных пакетов в репозитории. - -Установить пакеты : - apt-get update - apt-get install ipset curl dnsutils git - -Если хотите использовать nftables, то нужен пакет nftables, а ipset не обязателен. - -Скопировать директорию zapret в /opt или скачать через git : - cd /opt - git clone --depth 1 https://github.com/bol-van/zapret - -Запустить автоинсталятор бинариков. Он сам определит рабочую архитектуру и настроит все бинарики. - /opt/zapret/install_bin.sh -АЛЬТЕРНАТИВА : make -C /opt/zapret. Получите динамические бинарики под вашу ось. -Для сборки требуются dev пакеты : zlib1g-dev libcap-dev libnetfilter-queue-dev - -Создать конфиг по умолчанию : - cp /opt/zapret/config.default /opt/zapret/config - -Настроить параметры согласно разделу "Выбор параметров". - -Создать user листы по умолчанию : - cp /opt/zapret/ipset/zapret-hosts-user-exclude.txt.default /opt/zapret/ipset/zapret-hosts-user-exclude.txt - echo nonexistent.domain >/opt/zapret/ipset/zapret-hosts-user.txt - touch /opt/zapret/ipset/zapret-hosts-user-ipban.txt - -Создать ссылку на service unit в systemd : - ln -fs /opt/zapret/init.d/systemd/zapret.service /lib/systemd/system - -Удалить старые листы, если они были созданы ранее : - /opt/zapret/ipset/clear_lists.sh -По желанию прописать в /opt/zapret/ipset/zapret-hosts-user.txt свои домены. -Выполнить скрипт обновления листа : - /opt/zapret/ipset/get_config.sh -Настроить таймер systemd для обновления листа : - ln -fs /opt/zapret/init.d/systemd/zapret-list-update.service /lib/systemd/system - ln -fs /opt/zapret/init.d/systemd/zapret-list-update.timer /lib/systemd/system - -Принять изменения в systemd : - systemctl daemon-reload - -Включить автозапуск службы : - systemctl enable zapret - -Включить таймер обновления листа : - systemctl enable zapret-list-update.timer - -Запустить службу : - systemctl start zapret - -Шпаргалка по управлению службой и таймером : - -enable auto start : systemctl enable zapret -disable auto start : systemctl disable zapret -start : systemctl start zapret -stop : systemctl stop zapret -status, output messages : systemctl status zapret -timer info : systemctl list-timer -delete service : systemctl disable zapret ; rm /lib/systemd/system/zapret.service -delete timer : systemctl disable zapret-list-update.timer ; rm /lib/systemd/system/zapret-list-update.* - -Centos 7+, Fedora ------------------ - -Centos с 7 версии и более-менее новые федоры построены на systemd. -В качестве пакетного менеджера используется yum. - -Установить пакеты : - yum install -y curl ipset dnsutils git - -Далее все аналогично debian. - -OpenSUSE --------- - -Новые OpenSUSE основаны на systemd и менеджере пакетов zypper. - -Установить пакеты : - zypper --non-interactive install curl ipset - -Далее все аналогично debian, кроме расположения systemd. -В opensuse он находится не в /lib/systemd, а в /usr/lib/systemd. -Правильные команды будут : - - ln -fs /opt/zapret/init.d/systemd/zapret.service /usr/lib/systemd/system - ln -fs /opt/zapret/init.d/systemd/zapret-list-update.service /usr/lib/systemd/system - ln -fs /opt/zapret/init.d/systemd/zapret-list-update.timer /usr/lib/systemd/system - -Arch linux ----------- - -Построен на базе systemd. - -Установить пакеты : - pacman -Syy - pacman --noconfirm -S ipset curl - -Далее все аналогично debian. - -Gentoo ------- - -Эта система использует OpenRC - улучшенную версию sysvinit. -Установка пакетов производится командой : emerge -Пакеты собираются из исходников. - -Требуются все те же ipset, curl, git для скачивания с github. -git и curl по умолчанию могут присутствовать, ipset отсутствует. - - emerge ipset - -Настроить параметры согласно разделу "Выбор параметров". - -Запустить автоинсталятор бинариков. Он сам определит рабочую архитектуру и настроит все бинарики. - /opt/zapret/install_bin.sh -АЛЬТЕРНАТИВА : make -C /opt/zapret. Получите динамические бинарики под вашу ось. - -Удалить старые листы, если они были созданы ранее : - /opt/zapret/ipset/clear_lists.sh -По желанию прописать в /opt/zapret/ipset/zapret-hosts-user.txt свои домены. -Выполнить скрипт обновления листа : - /opt/zapret/ipset/get_config.sh -Зашедулить обновление листа : - crontab -e - Создать строчку "0 12 */2 * * /opt/zapret/ipset/get_config.sh" - -Подключить init скрипт : - - ln -fs /opt/zapret/init.d/openrc/zapret /etc/init.d - rc-update add zapret - -Запустить службу : - - rc-service zapret start - -Шпаргалка по управлению службой : - -enable auto start : rc-update add zapret -disable auto start : rc-update del zapret -start : rc-service zapret start -stop : rc-service zapret stop - - - -Ручная установка на openwrt/LEDE 15.xx-21.xx --------------------------------------------- - -!!! Данная инструкция написана для систем, основанных на iptables+firewall3 -!!! В новых версиях openwrt переходит на nftables+firewall4, инструкция неприменима. Пользуйтесь install_easy.sh - -Установить дополнительные пакеты : -opkg update -opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptables-mod-ipopt iptables-mod-conntrack-extra ipset curl -(ipv6) opkg install ip6tables-mod-nat -(опционально) opkg install gzip -(опционально) opkg install coreutils-sort - -ЭКОНОМИЯ МЕСТА : - -gzip от busybox в разы медленней полноценного варианта. gzip используется скриптами получения листов. -sort от busybox медленней полноценного варианта и жрет намного больше памяти. sort используется скриптами получения листов. -iptables-mod-nfqueue можно выкинуть, если не будем пользоваться nfqws -curl можно выкинуть, если для получения ip листа будет использоваться только get_user.sh - -Самая главная трудность - скомпилировать программы на C. Это можно сделать на linux x64 при помощи SDK, который -можно скачать с официального сайта openwrt или LEDE. Но процесс кросс компиляции - это всегда сложности. -Недостаточно запустить make как на традиционной linux системе. -Поэтому в binaries имеются готовые статические бинарики для всех самых распространенных архитектур. -Статическая сборка означает, что бинарик не зависит от типа libc (glibc, uclibc или musl) и наличия установленных so. -Его можно использовать сразу. Лишь бы подходил тип CPU. У ARM и MIPS есть несколько версий. -Скорее всего найдется рабочий вариант. Если нет - вам придется собирать самостоятельно. -Для всех поддерживаемых архитектур бинарики запакованы upx. На текущий момент все, кроме mips64. - -Скопировать директорию "zapret" в /opt на роутер. - -Если места достаточно, самый простой способ : - opkg update - opkg install git-http - mkdir /opt - cd /opt - git clone --depth 1 https://github.com/bol-van/zapret - -Если места немного : - opkg update - opkg install openssh-sftp-server unzip - ifconfig br-lan -Скачать на комп с github zip архив кнопкой "Clone or download"->Download ZIP -Скопировать средствами sftp zip архив на роутер в /tmp. - mkdir /opt - cd /opt - unzip /tmp/zapret-master.zip - mv zapret-master zapret - rm /tmp/zapret-master.zip - -Если места совсем мало : -На linux системе скачать и распаковать zapret. Оставить необходимый минимум файлов. -Запаковать в архив zapret.tar.gz. - nc -l -p 1111 1111 >zapret.tar.gz - -Не стоит работать с распакованной версией zapret на windows. Потеряются ссылки и chmod. - -Запустить автоинсталятор бинариков. Он сам определит рабочую архитектуру и настроит все бинарики. - /opt/zapret/install_bin.sh - -Создать ссылку на скрипт запуска : - ln -fs /opt/zapret/init.d/openwrt/zapret /etc/init.d -Создать ссылку на скрипт события поднятия интерфейса : - ln -fs /opt/zapret/init.d/openwrt/90-zapret /etc/hotplug.d/iface - -Создать конфиг по умолчанию : - cp /opt/zapret/config.default /opt/zapret/config - -Настроить параметры согласно разделу "Выбор параметров". - -Создать user листы по умолчанию : - cp /opt/zapret/ipset/zapret-hosts-user-exclude.txt.default /opt/zapret/ipset/zapret-hosts-user-exclude.txt - echo nonexistent.domain >/opt/zapret/ipset/zapret-hosts-user.txt - touch /opt/zapret/ipset/zapret-hosts-user-ipban.txt - -Удалить старые листы, если они были созданы ранее : - /opt/zapret/ipset/clear_lists.sh -По желанию прописать в /opt/zapret/ipset/zapret-hosts-user.txt свои домены. -Выполнить скрипт обновления листа : - /opt/zapret/ipset/get_config.sh -Зашедулить обновление листа : - crontab -e - Создать строчку "0 12 */2 * * /opt/zapret/ipset/get_config.sh" - -Включить автозапуск службы и запустить ее : - /etc/init.d/zapret enable - /etc/init.d/zapret start -ПРИМЕЧАНИЕ : на этапе старта системы интерфейсы еще не подняты. в некоторых случаях невозможно правильно -сформировать параметры запуска демонов, не зная имя физического интерфейса LAN. -Cкрипт из /etc/hotplug.d/iface перезапустит демоны по событию поднятия LAN. - -Создать ссылку на firewall include : - ln -fs /opt/zapret/init.d/openwrt/firewall.zapret /etc/firewall.zapret -Проверить была ли создана ранее запись о firewall include : - uci show firewall | grep firewall.zapret -Если firewall.zapret нет, значит добавить : - uci add firewall include - uci set firewall.@include[-1].path="/etc/firewall.zapret" - uci set firewall.@include[-1].reload="1" - uci commit firewall -Проверить не включен ли flow offload : - uci show firewall.@defaults[0] -Если flow_offloading=1 или flow_offloading_hw=1 , - uci set firewall.@defaults[0].flow_offloading=0 - uci set firewall.@defaults[0].flow_offloading_hw=0 - uci commit firewall -Перезапустить фаервол : - fw3 restart - -Посмотреть через iptables -nL, ip6tables -nL или через luci вкладку "firewall" появились ли нужные правила. - -ЭКОНОМИЯ МЕСТА : если его мало, то можно оставить в директории zapret лишь подкаталоги -ipset, common, файл config, init.d/openwrt. -Далее нужно создать подкаталоги с реально используемыми бинариками (ip2net, mdig, tpws, nfq) -и скопировать туда из binaries рабочие executables. - -ЕСЛИ ВСЕ ПЛОХО С МЕСТОМ : откажитесь от работы со списком РКН. используйте только get_user.sh - -ЕСЛИ СОВСЕМ ВСЕ УЖАСНО С МЕСТОМ : берете tpws и делаете все своими руками. поднятие iptables, автостарт бинарика. -С некоторых версий скрипты запуска zapret без ipset не работают (он требуется для ip exclude) - -СОВЕТ : Покупайте только роутеры с USB. В USB можно воткнуть флэшку и вынести на нее корневую файловую систему -или использовать ее в качестве оверлея. Не надо мучать себя, запихивая незапихиваемое в 8 мб встроенной флэшки. -Для комфортной работы с zapret нужен роутер с 16 Mb встроенной памяти или USB разъемом и 128+ Mb RAM. -На 64 Mb без swap будут проблемы с листами РКН. Если у вас только 64 Mb, и вы хотите листы РКН, подключите swap. -32 Mb для современных версий openwrt - конфигурация на грани живучести. Возможны хаотические падения процессов в oom. -Работа с листами РКН невозможна в принципе. - diff --git a/docs/readme.md b/docs/readme.md index 393bc32..7775595 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -1814,7 +1814,7 @@ zapret_custom_firewall_nft поднимает правила nftables. ## Простая установка -`install_easy.sh` автоматизирует ручные варианты процедур установки (см [manual_setup.txt](./manual_setup.txt)). +`install_easy.sh` автоматизирует ручные варианты процедур установки. Он поддерживает OpenWRT, linux системы на базе systemd или openrc и MacOS. Для более гибкой настройки перед запуском инсталлятора следует выполнить раздел "Выбор параметров".