From d900bd2797e92ca55e162409255730c1758785ef Mon Sep 17 00:00:00 2001 From: bol-van Date: Sun, 2 Jul 2023 18:49:28 +0300 Subject: [PATCH] fix manual_setup.txt, change to utf8 --- docs/manual_setup.txt | 227 +++++++++++++++++++++--------------------- 1 file changed, 112 insertions(+), 115 deletions(-) diff --git a/docs/manual_setup.txt b/docs/manual_setup.txt index 3cd43bd..4b7317e 100644 --- a/docs/manual_setup.txt +++ b/docs/manual_setup.txt @@ -1,53 +1,53 @@ - debian- +Пример ручной установки на debian-подобную систему -------------------------------------------------- - debian linux, ubuntu. - Debian 8+ Ubuntu 16+. - . - - systemd, apt . +На debian основано большое количество дистрибутивов linux, включая ubuntu. +Здесь рассматриваются прежде всего Debian 8+ и Ubuntu 16+. +Но с большой вероятностью может сработать и на производных от них. +Главное условие - наличие systemd, apt и нескольких стандартных пакетов в репозитории. - : +Установить пакеты : apt-get update apt-get install ipset curl dnsutils git - nftables, nftables, ipset . +Если хотите использовать nftables, то нужен пакет nftables, а ipset не обязателен. - zapret /opt git : +Скопировать директорию 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 +АЛЬТЕРНАТИВА : make -C /opt/zapret. Получите динамические бинарики под вашу ось. +Для сборки требуются dev пакеты : zlib1g-dev libcap-dev libnetfilter-queue-dev - " ". +Настроить параметры согласно разделу "Выбор параметров". - service unit systemd : +Создать ссылку на 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/zapret-hosts-user.txt свои домены. +Выполнить скрипт обновления листа : /opt/zapret/ipset/get_config.sh - systemd : +Настроить таймер 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 : +Принять изменения в 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 @@ -61,25 +61,25 @@ delete timer : systemctl disable zapret-list-update.timer ; rm /lib/systemd/syst Centos 7+, Fedora ----------------- -Centos 7 - systemd. - yum. +Centos с 7 версии и более-менее новые федоры построены на systemd. +В качестве пакетного менеджера используется yum. - : +Установить пакеты : yum install -y curl ipset dnsutils git - debian. +Далее все аналогично debian. OpenSUSE -------- - OpenSUSE systemd zypper. +Новые OpenSUSE основаны на systemd и менеджере пакетов zypper. - : +Установить пакеты : zypper --non-interactive install curl ipset - debian, systemd. - opensuse /lib/systemd, /usr/lib/systemd. - : +Далее все аналогично 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 @@ -88,51 +88,51 @@ OpenSUSE Arch linux ---------- - systemd. +Построен на базе systemd. - : +Установить пакеты : pacman -Syy pacman --noconfirm -S ipset curl - debian. +Далее все аналогично debian. Gentoo ------ - OpenRC - sysvinit. - : emerge - . +Эта система использует OpenRC - улучшенную версию sysvinit. +Установка пакетов производится командой : emerge +Пакеты собираются из исходников. - ipset, curl, git github. -git curl , ipset . +Требуются все те же ipset, curl, git для скачивания с github. +git и curl по умолчанию могут присутствовать, ipset отсутствует. emerge ipset - " ". +Настроить параметры согласно разделу "Выбор параметров". - . . +Запустить автоинсталятор бинариков. Он сам определит рабочую архитектуру и настроит все бинарики. /opt/zapret/install_bin.sh - : make -C /opt/zapret. . +АЛЬТЕРНАТИВА : make -C /opt/zapret. Получите динамические бинарики под вашу ось. - , : +Удалить старые листы, если они были созданы ранее : /opt/zapret/ipset/clear_lists.sh - /opt/zapret/ipset/zapret-hosts-user.txt . - : +По желанию прописать в /opt/zapret/ipset/zapret-hosts-user.txt свои домены. +Выполнить скрипт обновления листа : /opt/zapret/ipset/get_config.sh - : +Зашедулить обновление листа : crontab -e - "0 12 */2 * * /opt/zapret/ipset/get_config.sh" + Создать строчку "0 12 */2 * * /opt/zapret/ipset/get_config.sh" - init : +Подключить 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 @@ -141,129 +141,126 @@ stop : rc-service zapret stop - openwrt/LEDE 15.xx-21.xx +Ручная установка на openwrt/LEDE 15.xx-21.xx -------------------------------------------- -!!! , iptables+firewall3 -!!! openwrt nftables+firewall4, . install_easy.sh +!!! Данная инструкция написана для систем, основанных на 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 +(опционально) opkg install gzip +(опционально) 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 +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. +Самая главная трудность - скомпилировать программы на C. Это можно сделать на linux x64 при помощи SDK, который +можно скачать с официального сайта openwrt или LEDE. Но процесс кросс компиляции - это всегда сложности. +Недостаточно запустить make как на традиционной linux системе. +Поэтому в binaries имеются готовые статические бинарики для всех самых распространенных архитектур. +Статическая сборка означает, что бинарик не зависит от типа libc (glibc, uclibc или musl) и наличия установленных so. +Его можно использовать сразу. Лишь бы подходил тип CPU. У ARM и MIPS есть несколько версий. +Скорее всего найдется рабочий вариант. Если нет - вам придется собирать самостоятельно. +Для всех поддерживаемых архитектур бинарики запакованы upx. На текущий момент все, кроме mips64. - "zapret" /opt . +Скопировать директорию "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. +Скачать на комп с 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. +Если места совсем мало : +На linux системе скачать и распаковать zapret. Оставить необходимый минимум файлов. +Запаковать в архив zapret.tar.gz. nc -l -p 1111 1111 >zapret.tar.gz - zapret windows. chmod. +Не стоит работать с распакованной версией 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/zapret-hosts-user.txt свои домены. +Выполнить скрипт обновления листа : /opt/zapret/ipset/get_config.sh - : +Зашедулить обновление листа : crontab -e - "0 12 */2 * * /opt/zapret/ipset/get_config.sh" + Создать строчку "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. +ПРИМЕЧАНИЕ : на этапе старта системы интерфейсы еще не подняты. в некоторых случаях невозможно правильно +сформировать параметры запуска демонов, не зная имя физического интерфейса LAN. +Cкрипт из /etc/hotplug.d/iface перезапустит демоны по событию поднятия LAN. - firewall include : +Создать ссылку на firewall include : ln -fs /opt/zapret/init.d/openwrt/firewall.zapret /etc/firewall.zapret - firewall include : +Проверить была ли создана ранее запись о firewall include : uci show firewall | grep firewall.zapret - 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 : +Проверить не включен ли flow offload : uci show firewall.@defaults[0] - flow_offloading=1 flow_offloading_hw=1 , +Если 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" . +Посмотреть через iptables -nL, ip6tables -nL или через luci вкладку "firewall" появились ли нужные правила. - : , zapret -ipset, common, config, init.d/openwrt. - (ip2net, mdig, tpws, nfq) - binaries executables. +ЭКОНОМИЯ МЕСТА : если его мало, то можно оставить в директории zapret лишь подкаталоги +ipset, common, файл config, init.d/openwrt. +Далее нужно создать подкаталоги с реально используемыми бинариками (ip2net, mdig, tpws, nfq) +и скопировать туда из binaries рабочие executables. - : . get_user.sh +ЕСЛИ ВСЕ ПЛОХО С МЕСТОМ : откажитесь от работы со списком РКН. используйте только get_user.sh - : tpws . iptables, . - zapret ipset ( ip exclude) +ЕСЛИ СОВСЕМ ВСЕ УЖАСНО С МЕСТОМ : берете 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. - . +СОВЕТ : Покупайте только роутеры с USB. В USB можно воткнуть флэшку и вынести на нее корневую файловую систему +или использовать ее в качестве оверлея. Не надо мучать себя, запихивая незапихиваемое в 8 мб встроенной флэшки. +Для комфортной работы с zapret нужен роутер с 16 Mb встроенной памяти или USB разъемом и 128+ Mb RAM. +На 64 Mb без swap будут проблемы с листами РКН. Если у вас только 64 Mb, и вы хотите листы РКН, подключите swap. +32 Mb для современных версий openwrt - конфигурация на грани живучести. Возможны хаотические падения процессов в oom. +Работа с листами РКН невозможна в принципе.