diff --git a/docs/manual_setup.txt b/docs/manual_setup.txt new file mode 100644 index 0000000..3cd43bd --- /dev/null +++ b/docs/manual_setup.txt @@ -0,0 +1,269 @@ + 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 + + " ". + + 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 grep +() opkg install coreutils-sort + + : + +gzip busybox . gzip . +sort busybox . sort . +grep busybox -f. get_reestr_combined.sh. + , gnu grep +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 + + " ". + + , : + /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.txt b/docs/readme.txt index fbd3a7a..e6ea150 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -1097,152 +1097,11 @@ zapret_custom_firewall_nft tpws к http и nfqws к https. При этом поддерживаются установки из config. Его можно использовать как стартовую точку для написания своих скриптов. -Пример ручной установки на 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 - -Настроить параметры согласно разделу "Выбор параметров". - -Создать ссылку на 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 - Простая установка ----------------- -install_easy.sh автоматизирует описанные выше ручные варианты процедур установки. +install_easy.sh автоматизирует ручные варианты процедур установки (см manual_setup.txt). Он поддерживает OpenWRT, linux системы на базе systemd или openrc и MacOS. Для более гибкой настройки перед запуском инсталятора следует выполнить раздел "Выбор параметров". @@ -1274,133 +1133,6 @@ install_easy.sh автоматизирует описанные выше руч Деинсталяция выполняется через uninstall_easy.sh -Ручная установка на 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 grep -(опционально) opkg install coreutils-sort - -ЭКОНОМИЯ МЕСТА : - -gzip от busybox в разы медленней полноценного варианта. gzip используется скриптами получения листов. -sort от busybox медленней полноценного варианта и жрет намного больше памяти. sort используется скриптами получения листов. -grep от busybox катастрофически медленный с опцией -f. она применяется в get_reestr_combined.sh. если вы не собираетесь -пользоваться этим скриптом, gnu grep можно не устанавливать -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 - -Настроить параметры согласно разделу "Выбор параметров". - -Удалить старые листы, если они были созданы ранее : - /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. -Работа с листами РКН невозможна в принципе. - - Простая установка на openwrt ----------------------------