Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
router:zapret [2025/08/15 13:17] 192.168.1.159router:zapret [2025/09/27 22:24] (текущий) mirocow
Строка 15: Строка 15:
  
 <code bash> <code bash>
-$ wget https://github.com/bol-van/zapret/releases/download/v71.3/zapret-v71.3.tar.gz +$ wget https://github.com/bol-van/zapret/releases/download/v71.4/zapret-v71.4.tar.gz 
-$ tar -xvzf zapret-v71.3.tar.gz +$ tar -xvzf zapret-v71.4.tar.gz 
-$ cd zapret-v71+$ cd zapret-v71.4
 $ ./install_easy.sh $ ./install_easy.sh
 - Y - Y
 - Y - Y
 - Y - Y
-- 1+- Y 
 +- 1 : iptables
 - Y - Y
 - N - N
Строка 33: Строка 34:
 </code> </code>
  
-{{:network:7e86e3fac7f44f9d13c3a737d882a845.jpg?600|}}+  * **Выбираем iptables** 
 +  * **Выбираем имя внутреннего сетевого интерфейса (LAN), br0 - обычно в роутере** 
 +  * **Выбираем режим фильтрации трафика (none, ipset, hostlist, autohostlist)- none**
  
-Выбираем имя внутреннего сетевого интерфейса (LAN), br0 - обычно в роутере: +==== Режимы фильтрации ====
- +
-{{:network:7e777b8bf042462347c3d9ff20170beb.jpg?600|}} +
- +
-Но заворот трафика на nfqws происходит всегда после маршрутизации, поэтому к нему применима только фильтрация по WAN, так что LAN в этом режиме работы неважен. +
- +
-<note tip>Важно: выбираем режим фильтрации трафика (none, ipset, hostlist, autohostlist).</note>+
  
   * none - фильтрация отключена, весь трафик обрабатывается утилитой. Простейший вариант. Рекомендую его использовать, если не хотите заморачиваться настройкой списков адресов, а хотите просто, чтобы быстро и просто все работало.   * none - фильтрация отключена, весь трафик обрабатывается утилитой. Простейший вариант. Рекомендую его использовать, если не хотите заморачиваться настройкой списков адресов, а хотите просто, чтобы быстро и просто все работало.
Строка 49: Строка 46:
  
 Режим фильтра также можно потом менять через параметр MODE_FILTER в /opt/zapret/config. Режим фильтра также можно потом менять через параметр MODE_FILTER в /opt/zapret/config.
- 
-nano /opt/zapret/init.d/sysv/zapret 
-<code bash> 
-#!/bin/sh 
-### BEGIN INIT INFO 
-# Provides: zapret 
-# Required-Start: $local_fs $network 
-# Required-Stop: $local_fs $network 
-# Default-Start:     2 3 4 5 
-# Default-Stop:      0 1 6 
-### END INIT INFO 
- 
-SCRIPT=$(readlink -f "$0") 
-EXEDIR=$(dirname "$SCRIPT") 
-ZAPRET_BASE=$(readlink -f "$EXEDIR/../..") 
-. "$EXEDIR/functions" 
- 
-NAME=zapret 
-DESC=anti-zapret 
- 
-do_start() 
-{ 
- 
-   if lsmod | grep "xt_multiport " &> /dev/null ;  then 
- echo "xt_multiport.ko is already loaded" 
-    else 
-        if insmod /lib/modules/$(uname -r)/xt_multiport.ko &> /dev/null; then 
- echo "iptable_raw.ko loaded" 
-        else 
- echo "Cannot find xt_multiport.ko kernel module, aborting" 
- #exit 1 
-        fi 
- fi 
- 
- if lsmod | grep "xt_connbytes " &> /dev/null ;  then 
-        echo "xt_connbytes.ko is already loaded" 
-    else 
-        if insmod /lib/modules/$(uname -r)/xt_connbytes.ko &> /dev/null; then 
- echo "xt_connbytes.ko loaded" 
-        else 
- echo "Cannot find xt_connbytes.ko kernel module, aborting" 
- #exit 1 
-        fi 
- fi 
- 
- if lsmod | grep "xt_NFQUEUE " &> /dev/null ;  then 
-        echo "xt_NFQUEUE.ko is already loaded" 
-    else 
-        if insmod /lib/modules/$(uname -r)/xt_NFQUEUE.ko &> /dev/null; then 
-            echo "xt_NFQUEUE.ko loaded" 
-        else 
-            echo "Cannot find xt_NFQUEUE.ko kernel module, aborting" 
-            #exit 1 
-        fi 
-    fi 
- 
- zapret_run_daemons 
- [ "$INIT_APPLY_FW" != "1" ] || { zapret_apply_firewall; } 
-} 
-do_stop() 
-{ 
- zapret_stop_daemons 
- [ "$INIT_APPLY_FW" != "1" ] || zapret_unapply_firewall 
-} 
- 
-case "$1" in 
- start) 
- do_start 
- ;; 
- 
- stop) 
- do_stop 
- ;; 
- 
- restart) 
- do_stop 
- do_start 
- ;; 
- 
- start-fw|start_fw) 
- zapret_apply_firewall 
- ;; 
- stop-fw|stop_fw) 
- zapret_unapply_firewall 
- ;; 
- 
- restart-fw|restart_fw) 
- zapret_unapply_firewall 
- zapret_apply_firewall 
- ;; 
- 
- start-daemons|start_daemons) 
- zapret_run_daemons 
- ;; 
- stop-daemons|stop_daemons) 
- zapret_stop_daemons 
- ;; 
- restart-daemons|restart_daemons) 
- zapret_stop_daemons 
- zapret_run_daemons 
- ;; 
- 
- reload-ifsets|reload_ifsets) 
- zapret_reload_ifsets 
- ;; 
- list-ifsets|list_ifsets) 
- zapret_list_ifsets 
- ;; 
- list-table|list_table) 
- zapret_list_table 
- ;; 
- 
-  *) 
- N=/etc/init.d/$NAME 
- echo "Usage: $N {start|stop|restart|start-fw|stop-fw|restart-fw|start-daemons|stop-daemons|restart-daemons|reload-ifsets|list-ifsets|list-table}" >&2 
- exit 1 
- ;; 
-esac 
- 
-exit 0 
-</code> 
- 
-nano /opt/zapret/config 
-<code bash> 
-# Пользователь, от имени которого запускаются демоны zapret 
-WS_USER=nobody 
- 
-# Тип фаервола (iptables, nftables, ipfw) 
-FWTYPE=iptables 
- 
-# Максимальное количество элементов в ipset 
-SET_MAXELEM=522288 
- 
-# Параметры для ipset (размер хэш-таблицы и максимальное количество элементов) 
-IPSET_OPT="hashsize 262144 maxelem $SET_MAXELEM" 
- 
-# Параметры для агрегации IP-адресов (IPv4) 
-IP2NET_OPT4="--prefix-length=22-30 --v4-threshold=3/4" 
- 
-# Параметры для агрегации IP-адресов (IPv6) 
-IP2NET_OPT6="--prefix-length=56-64 --v6-threshold=5" 
- 
-# Порог повторных попыток для автоматического добавления хостов 
-AUTOHOSTLIST_RETRANS_THRESHOLD=3 
- 
-# Порог ошибок для автоматического добавления хостов 
-AUTOHOSTLIST_FAIL_THRESHOLD=3 
- 
-# Время, через которое хосты удаляются из автоматического списка 
-AUTOHOSTLIST_FAIL_TIME=60 
- 
-# Включение отладки для автоматического списка хостов 
-AUTOHOSTLIST_DEBUGLOG=0 
- 
-# Количество потоков для разрешения доменных имен 
-MDIG_THREADS=30 
- 
-# Сжатие списков IP и доменов 
-GZIP_LISTS=1 
- 
-# Метка для предотвращения зацикливания пакетов в nfqws 
-DESYNC_MARK=0x40000000 
- 
-# Метка для предотвращения зацикливания пакетов в post-nat режиме 
-DESYNC_MARK_POSTNAT=0x20000000 
- 
-# Включение SOCKS-прокси 
-TPWS_SOCKS_ENABLE=1 
- 
-# Порт для SOCKS-прокси 
-TPPORT_SOCKS=987 
- 
-# Настройки SOCKS-прокси 
-TPWS_SOCKS_OPT=" 
---filter-tcp=80 --methodeol <HOSTLIST> --new 
---filter-tcp=443 --split-pos=1,midsld --disorder <HOSTLIST> 
-" 
- 
-# Включение TPWS (Transparent Proxy Web Server) 
-TPWS_ENABLE=1 
- 
-# Портs для TPWS 
-TPWS_PORTS=80,443 
- 
-# Настройки TPWS 
-TPWS_OPT=" 
---filter-tcp=80 --methodeol <HOSTLIST> --new 
---filter-tcp=443 --split-pos=1,midsld --disorder <HOSTLIST> 
-" 
- 
-# Включение NFQWS (NetFilter Queue Web Server) 
-NFQWS_ENABLE=1 
- 
-# Портs для NFQWS (TCP) 
-NFQWS_PORTS_TCP=80,443 
- 
-# Портs для NFQWS (UDP) 
-NFQWS_PORTS_UDP=443 
- 
-# Лимит пакетов для исходящего TCP-трафика 
-NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) 
- 
-# Лимит пакетов для входящего TCP-трафика 
-NFQWS_TCP_PKT_IN=3 
- 
-# Лимит пакетов для исходящего UDP-трафика 
-NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) 
- 
-# Лимит пакетов для входящего UDP-трафика 
-NFQWS_UDP_PKT_IN=0 
- 
-# Основные настройки NFQWS_OPT для обхода блокировок 
-NFQWS_OPT=" 
-# youtube 
---filter-tcp=80 --dpi-desync=fake,multisplit --dpi-desync-ttl=8 --dpi-desync-fooling=md5sig,badsum --ip-file=/opt/zapret/ipset/youtube_ip_list.txt --domain-file=/opt/zapret/ipset/youtube_domain_list.txt --new 
---filter-tcp=443 --dpi-desync=fake,multidisorder --dpi-desync-split-pos=method+2,midsld,5 --dpi-desync-ttl=8 --dpi-desync-fooling=md5sig,badsum,badseq --dpi-desync-repeats=15 --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --ip-file=/opt/zapret/ipset/youtube_ip_list.txt --domain-file=/opt/zapret/ipset/youtube_domain_list.txt --new 
---filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=15 --dpi-desync-ttl=0 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig,badsum --dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin --ip-file=/opt/zapret/ipset/youtube_ip_list.txt --domain-file=/opt/zapret/ipset/youtube_domain_list.txt 
-" 
- 
-# Режим фильтрации (none, ipset, hostlist, autohostlist) 
-MODE_FILTER=none 
- 
-# Отключение flow offload (donttouch, none, software, hardware) 
-FLOWOFFLOAD=donttouch 
- 
-# Сетевой интерфейс для LAN 
-IFACE_LAN=br0 
- 
-# Сетевой интерфейс для WAN 
-IFACE_WAN=eth0 
- 
-# Применение правил фаервола при старте/остановке 
-INIT_APPLY_FW=1 
- 
-# Отключение IPv6 (0 — включен, 1 — отключен) 
-DISABLE_IPV6=0 
-</code> 
  
 ==== Текущие настройки ==== ==== Текущие настройки ====
Строка 293: Строка 53:
 WS_USER=nobody WS_USER=nobody
 FWTYPE=iptables FWTYPE=iptables
-SET_MAXELEM=522288+SET_MAXELEM=1048576
 IPSET_OPT="hashsize 262144 maxelem $SET_MAXELEM" IPSET_OPT="hashsize 262144 maxelem $SET_MAXELEM"
 IP2NET_OPT4="--prefix-length=22-30 --v4-threshold=3/4" IP2NET_OPT4="--prefix-length=22-30 --v4-threshold=3/4"
-IP2NET_OPT6="--prefix-length=56-64 --v6-threshold=5"+IP2NET_OPT6="--prefix-length=48-64 --v6-threshold=3"
 AUTOHOSTLIST_RETRANS_THRESHOLD=3 AUTOHOSTLIST_RETRANS_THRESHOLD=3
 AUTOHOSTLIST_FAIL_THRESHOLD=3 AUTOHOSTLIST_FAIL_THRESHOLD=3
-AUTOHOSTLIST_FAIL_TIME=60+AUTOHOSTLIST_FAIL_TIME=30
 AUTOHOSTLIST_DEBUGLOG=0 AUTOHOSTLIST_DEBUGLOG=0
-MDIG_THREADS=30+MDIG_THREADS=50
 GZIP_LISTS=1 GZIP_LISTS=1
 DESYNC_MARK=0x40000000 DESYNC_MARK=0x40000000
Строка 324: Строка 84:
 NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD))
 NFQWS_UDP_PKT_IN=0 NFQWS_UDP_PKT_IN=0
-MODE_HTTP=0 +MODE_HTTP=1 
-MODE_HTTPS=0 +MODE_HTTPS=1 
-MODE_QUIC=0+MODE_QUIC=1
 NFQWS_OPT=" NFQWS_OPT="
-youtube +YouTube rules 
---filter-tcp=80 --dpi-desync=fake,multisplit --dpi-desync-ttl=0 --dpi-desync-fooling=badseq --hostlist=/opt/zapret/ipset/youtube_domain_list.txt --new +--filter-tcp=80 --dpi-desync=fake,multisplit --dpi-desync-ttl=--hostlist=/opt/zapret/ipset/youtube_domain_list.txt --new 
---filter-tcp=443 --dpi-desync=fake,multidisorder --dpi-desync-split-pos=method+2,midsld,--dpi-desync-ttl=--dpi-desync-fooling=badseq --dpi-desync-repeats=15 --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --hostlist=/opt/zapret/ipset/youtube_domain_list.txt --new +--filter-tcp=443 --dpi-desync=fake,multidisorder --dpi-desync-split-pos=--dpi-desync-ttl=--dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --hostlist=/opt/zapret/ipset/youtube_domain_list.txt --new 
---filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=15 --dpi-desync-ttl=0  --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=badseq --dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin --hostlist=/opt/zapret/ipset/youtube_domain_list.txt+#--filter-udp=443 --dpi-desync=fake --dpi-desync-ttl=--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin --hostlist=/opt/zapret/ipset/youtube_domain_list.txt 
 +--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=--dpi-desync-ttl=0 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig,badsum --dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin --hostlist=/opt/zapret/ipset/youtube_domain_list.txt
  
-Other+Main rules 
 +--filter-tcp=80,443 --dpi-desync=fake --dpi-desync-ttl=0 
 +--filter-udp=443 --dpi-desync=fake --dpi-desync-ttl=0
 " "
 +NFQWS_OPT_DESYNC="--dpi-desync=fake,disorder2 --dpi-desync-split-pos=1 --dpi-desync-ttl=0 --dpi-desync-fooling=md5sig,badsum --dpi-desync-repeats=6 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin"
 +NFQWS_OPT_DESYNC_QUIC="--dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-ttl=0 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig,badsum --dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin"
 MODE_FILTER=none MODE_FILTER=none
-FLOWOFFLOAD=donttouch+FLOWOFFLOAD=disable
 IFACE_LAN=br0 IFACE_LAN=br0
 IFACE_WAN=eth0 IFACE_WAN=eth0
Строка 343: Строка 108:
 DEBUGLOG=0 DEBUGLOG=0
 </code> </code>
 +
 +<code bash>
 +$ echo '' > /opt/zapret/ipset/youtube_domain_list.txt
 +</code>
 +
 +=== Только для теста ===
  
   * [[:config-default]]   * [[:config-default]]
-  * [[:config-2]] 
-  * [[:config-3]] 
-  * [[:config-4]] 
  
 ===== NWQWS_OPT ===== ===== NWQWS_OPT =====
Строка 425: Строка 193:
 nano /opt/zapret/ipset/youtube_domain_list.txt nano /opt/zapret/ipset/youtube_domain_list.txt
 <code> <code>
 +youtube.com
 +youtu.be
 +googlevideo.com
 +googleapis.com
 +ggpht.com
 +ytimg.com
 +youtube-nocookie.com
 +play.google.com
 +gstatic.com
 googlevideo.com googlevideo.com
 ggpht.com ggpht.com
Строка 452: Строка 229:
  
 ==== Скрипты ==== ==== Скрипты ====
- 
-<code bash> 
-$ ls -la /opt/zapret/ipset 
-$ cp -a /opt/zapret/init.d/custom.d.examples.linux/10-keenetic-udp-fix /opt/zapret/init.d/sysv/custom.d/10-keenetic-udp-fix 
-</code> 
  
   * [[:discord]]   * [[:discord]]
Строка 521: Строка 293:
 </code> </code>
  
-chmod +x /jffs/scripts/firewall-start+<code bash> 
 +chmod +x /jffs/scripts/firewall-start 
 +</code>