Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
router:zapret [2025/03/11 22:30] – [Фильтры] mirocow | router:zapret [2025/09/27 22:24] (текущий) – mirocow | ||
---|---|---|---|
Строка 5: | Строка 5: | ||
<code bash> | <code bash> | ||
- | $ amtm ep | + | $ amtm |
+ | ep | ||
+ | / | ||
</ | </ | ||
Строка 13: | Строка 15: | ||
<code bash> | <code bash> | ||
- | $ wget https:// | + | $ wget https:// |
- | $ tar -xvzf zapret-v70.tar.gz | + | $ tar -xvzf zapret-v71.4.tar.gz |
- | $ cd zapret-v70 | + | $ cd zapret-v71.4 |
$ ./ | $ ./ | ||
- Y | - Y | ||
- Y | - Y | ||
- Y | - Y | ||
- | - 1 | + | - Y |
+ | - 1 : iptables | ||
- Y | - Y | ||
- N | - N | ||
Строка 31: | Строка 34: | ||
</ | </ | ||
- | {{: | + | * **Выбираем iptables** |
+ | * **Выбираем имя внутреннего сетевого интерфейса (LAN), br0 - обычно в роутере** | ||
+ | * **Выбираем режим фильтрации трафика (none, ipset, hostlist, autohostlist). - none** | ||
- | Выбираем имя внутреннего сетевого интерфейса (LAN), br0 - обычно в роутере: | + | ==== Режимы фильтрации |
- | + | ||
- | {{: | + | |
- | + | ||
- | Но заворот трафика на nfqws происходит всегда после маршрутизации, | + | |
- | + | ||
- | <note tip> | + | |
* none - фильтрация отключена, | * none - фильтрация отключена, | ||
Строка 48: | Строка 47: | ||
Режим фильтра также можно потом менять через параметр MODE_FILTER в / | Режим фильтра также можно потом менять через параметр MODE_FILTER в / | ||
- | nano / | + | ==== Текущие настройки |
- | <code bash> | + | |
- | #!/bin/sh | + | |
- | ### BEGIN INIT INFO | + | |
- | # Provides: | + | |
- | # Required-Start: | + | |
- | # Required-Stop: | + | |
- | # Default-Start: | + | |
- | # Default-Stop: | + | |
- | ### END INIT INFO | + | |
- | + | ||
- | SCRIPT=$(readlink -f " | + | |
- | EXEDIR=$(dirname " | + | |
- | ZAPRET_BASE=$(readlink -f " | + | |
- | . " | + | |
- | + | ||
- | NAME=zapret | + | |
- | DESC=anti-zapret | + | |
- | + | ||
- | do_start() | + | |
- | { | + | |
- | + | ||
- | if lsmod | grep " | + | |
- | echo " | + | |
- | else | + | |
- | if insmod / | + | |
- | echo " | + | |
- | else | + | |
- | echo " | + | |
- | #exit 1 | + | |
- | fi | + | |
- | fi | + | |
- | + | ||
- | if lsmod | grep " | + | |
- | echo " | + | |
- | else | + | |
- | if insmod / | + | |
- | echo " | + | |
- | else | + | |
- | echo " | + | |
- | #exit 1 | + | |
- | fi | + | |
- | fi | + | |
- | + | ||
- | if lsmod | grep " | + | |
- | echo " | + | |
- | else | + | |
- | if insmod / | + | |
- | echo " | + | |
- | else | + | |
- | echo " | + | |
- | #exit 1 | + | |
- | fi | + | |
- | fi | + | |
- | + | ||
- | zapret_run_daemons | + | |
- | [ " | + | |
- | } | + | |
- | do_stop() | + | |
- | { | + | |
- | zapret_stop_daemons | + | |
- | [ " | + | |
- | } | + | |
- | + | ||
- | case " | + | |
- | 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=/ | + | |
- | echo " | + | |
- | exit 1 | + | |
- | ;; | + | |
- | esac | + | |
- | + | ||
- | exit 0 | + | |
- | </ | + | |
nano / | nano / | ||
<code bash> | <code bash> | ||
- | # Пользователь, | ||
WS_USER=nobody | WS_USER=nobody | ||
- | |||
- | # Тип фаервола (iptables, nftables, ipfw) | ||
FWTYPE=iptables | FWTYPE=iptables | ||
- | + | SET_MAXELEM=1048576 | |
- | # Максимальное количество элементов в ipset | + | |
- | SET_MAXELEM=522288 | + | |
- | + | ||
- | # Параметры для ipset (размер хэш-таблицы и максимальное количество элементов) | + | |
IPSET_OPT=" | IPSET_OPT=" | ||
- | |||
- | # Параметры для агрегации IP-адресов (IPv4) | ||
IP2NET_OPT4=" | IP2NET_OPT4=" | ||
- | + | IP2NET_OPT6=" | |
- | # Параметры для агрегации IP-адресов (IPv6) | + | |
- | IP2NET_OPT6=" | + | |
- | + | ||
- | # Порог повторных попыток для автоматического добавления хостов | + | |
AUTOHOSTLIST_RETRANS_THRESHOLD=3 | AUTOHOSTLIST_RETRANS_THRESHOLD=3 | ||
- | |||
- | # Порог ошибок для автоматического добавления хостов | ||
AUTOHOSTLIST_FAIL_THRESHOLD=3 | AUTOHOSTLIST_FAIL_THRESHOLD=3 | ||
- | + | AUTOHOSTLIST_FAIL_TIME=30 | |
- | # Время, через которое хосты удаляются из автоматического списка | + | |
- | AUTOHOSTLIST_FAIL_TIME=60 | + | |
- | + | ||
- | # Включение отладки для автоматического списка хостов | + | |
AUTOHOSTLIST_DEBUGLOG=0 | AUTOHOSTLIST_DEBUGLOG=0 | ||
- | + | MDIG_THREADS=50 | |
- | # Количество потоков для разрешения доменных имен | + | |
- | MDIG_THREADS=30 | + | |
- | + | ||
- | # Сжатие списков IP и доменов | + | |
GZIP_LISTS=1 | GZIP_LISTS=1 | ||
- | |||
- | # Метка для предотвращения зацикливания пакетов в nfqws | ||
DESYNC_MARK=0x40000000 | DESYNC_MARK=0x40000000 | ||
- | |||
- | # Метка для предотвращения зацикливания пакетов в post-nat режиме | ||
DESYNC_MARK_POSTNAT=0x20000000 | DESYNC_MARK_POSTNAT=0x20000000 | ||
- | + | TPWS_SOCKS_ENABLE=0 | |
- | # Включение SOCKS-прокси | + | |
- | TPWS_SOCKS_ENABLE=1 | + | |
- | + | ||
- | # Порт для SOCKS-прокси | + | |
TPPORT_SOCKS=987 | TPPORT_SOCKS=987 | ||
- | |||
- | # Настройки SOCKS-прокси | ||
TPWS_SOCKS_OPT=" | TPWS_SOCKS_OPT=" | ||
- | --filter-tcp=80 --methodeol < | + | --filter-tcp=80 --methodeol |
--filter-tcp=443 --split-pos=1, | --filter-tcp=443 --split-pos=1, | ||
" | " | ||
- | + | TPWS_ENABLE=0 | |
- | # Включение TPWS (Transparent Proxy Web Server) | + | |
- | TPWS_ENABLE=1 | + | |
- | + | ||
- | # Портs для TPWS | + | |
TPWS_PORTS=80, | TPWS_PORTS=80, | ||
- | |||
- | # Настройки TPWS | ||
TPWS_OPT=" | TPWS_OPT=" | ||
- | --filter-tcp=80 --methodeol | + | --filter-tcp=80 --methodeol |
- | --filter-tcp=443 --split-pos=1,midsld --disorder | + | --filter-tcp=443 --split-pos=2,midsld --disorder |
" | " | ||
- | |||
- | # Включение NFQWS (NetFilter Queue Web Server) | ||
NFQWS_ENABLE=1 | NFQWS_ENABLE=1 | ||
- | |||
- | # Портs для NFQWS (TCP) | ||
NFQWS_PORTS_TCP=80, | NFQWS_PORTS_TCP=80, | ||
- | |||
- | # Портs для NFQWS (UDP) | ||
NFQWS_PORTS_UDP=443 | NFQWS_PORTS_UDP=443 | ||
- | |||
- | # Лимит пакетов для исходящего TCP-трафика | ||
NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | ||
- | |||
- | # Лимит пакетов для входящего TCP-трафика | ||
NFQWS_TCP_PKT_IN=3 | NFQWS_TCP_PKT_IN=3 | ||
- | |||
- | # Лимит пакетов для исходящего UDP-трафика | ||
NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | ||
- | |||
- | # Лимит пакетов для входящего UDP-трафика | ||
NFQWS_UDP_PKT_IN=0 | NFQWS_UDP_PKT_IN=0 | ||
+ | MODE_HTTP=1 | ||
+ | MODE_HTTPS=1 | ||
+ | MODE_QUIC=1 | ||
+ | NFQWS_OPT=" | ||
+ | # YouTube rules | ||
+ | --filter-tcp=80 --dpi-desync=fake, | ||
+ | --filter-tcp=443 --dpi-desync=fake, | ||
+ | # | ||
+ | --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-ttl=0 --dpi-desync-any-protocol --dpi-desync-cutoff=d4 --dpi-desync-fooling=md5sig, | ||
- | # Основные настройки NFQWS_OPT для обхода блокировок | + | # Main rules |
- | NFQWS_OPT=" | + | --filter-tcp=80, |
- | --filter-tcp=80 | + | --filter-udp=443 --dpi-desync=fake --dpi-desync-ttl=0 |
- | --filter-tcp=443 --dpi-desync=fake, | + | |
- | --filter-udp=443 --dpi-desync=fake | + | |
" | " | ||
- | + | NFQWS_OPT_DESYNC=" | |
- | # Режим фильтрации (none, ipset, hostlist, autohostlist) | + | NFQWS_OPT_DESYNC_QUIC=" |
MODE_FILTER=none | MODE_FILTER=none | ||
- | + | FLOWOFFLOAD=disable | |
- | # Отключение flow offload (donttouch, none, software, hardware) | + | |
- | FLOWOFFLOAD=donttouch | + | |
- | + | ||
- | # Сетевой интерфейс для LAN | + | |
IFACE_LAN=br0 | IFACE_LAN=br0 | ||
- | |||
- | # Сетевой интерфейс для WAN | ||
IFACE_WAN=eth0 | IFACE_WAN=eth0 | ||
- | |||
- | # Применение правил фаервола при старте/ | ||
INIT_APPLY_FW=1 | INIT_APPLY_FW=1 | ||
- | |||
- | # Отключение IPv6 (0 — включен, | ||
DISABLE_IPV6=0 | DISABLE_IPV6=0 | ||
+ | DEBUGLOG=0 | ||
</ | </ | ||
- | Пример для подключения нескольких списков с раздельными правилами | ||
<code bash> | <code bash> | ||
- | # Основные настройки NFQWS_OPT для обхода блокировок | + | $ echo '' |
- | NFQWS_OPT=" | + | |
- | --filter-tcp=80 --dpi-desync=fake, | + | |
- | --filter-tcp=443 --dpi-desync=fake, | + | |
- | --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, | + | |
- | + | ||
- | --filter-tcp=80 --dpi-desync=fake, | + | |
- | --filter-tcp=443 --dpi-desync=fake, | + | |
- | --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, | + | |
- | " | + | |
</ | </ | ||
- | ==== Текущие настройки ==== | + | === Только для теста === |
- | + | ||
- | nano / | + | |
- | <code bash> | + | |
- | WS_USER=nobody | + | |
- | FWTYPE=iptables | + | |
- | SET_MAXELEM=522288 | + | |
- | IPSET_OPT=" | + | |
- | IP2NET_OPT4=" | + | |
- | IP2NET_OPT6=" | + | |
- | AUTOHOSTLIST_RETRANS_THRESHOLD=3 | + | |
- | AUTOHOSTLIST_FAIL_THRESHOLD=3 | + | |
- | AUTOHOSTLIST_FAIL_TIME=60 | + | |
- | AUTOHOSTLIST_DEBUGLOG=0 | + | |
- | MDIG_THREADS=30 | + | |
- | GZIP_LISTS=1 | + | |
- | DESYNC_MARK=0x40000000 | + | |
- | DESYNC_MARK_POSTNAT=0x20000000 | + | |
- | TPWS_SOCKS_ENABLE=0 | + | |
- | TPPORT_SOCKS=987 | + | |
- | TPWS_SOCKS_OPT=" | + | |
- | --filter-tcp=80 --methodeol | + | |
- | --filter-tcp=443 --split-pos=1, | + | |
- | " | + | |
- | TPWS_ENABLE=1 | + | |
- | TPWS_PORTS=80, | + | |
- | TPWS_OPT=" | + | |
- | --filter-tcp=80 --methodeol --split-pos=2, | + | |
- | --filter-tcp=443 --split-pos=2, | + | |
- | " | + | |
- | NFQWS_ENABLE=0 | + | |
- | NFQWS_PORTS_TCP=80, | + | |
- | NFQWS_PORTS_UDP=443 | + | |
- | NFQWS_TCP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | + | |
- | NFQWS_TCP_PKT_IN=3 | + | |
- | NFQWS_UDP_PKT_OUT=$((6+$AUTOHOSTLIST_RETRANS_THRESHOLD)) | + | |
- | NFQWS_UDP_PKT_IN=0 | + | |
- | MODE_HTTP=0 | + | |
- | MODE_HTTPS=0 | + | |
- | MODE_QUIC=0 | + | |
- | NFQWS_OPT=" | + | |
- | --filter-tcp=80 --dpi-desync=fake, | + | |
- | --filter-tcp=443 --dpi-desync=fake, | + | |
- | --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=15 --dpi-desync-ttl=0 | + | |
- | " | + | |
- | # | + | |
- | # | + | |
- | # | + | |
- | # | + | |
- | #" | + | |
- | # | + | |
- | # UDP 443 | + | |
- | # | + | |
- | # TCP 80 | + | |
- | # | + | |
- | # TCP 443 | + | |
- | # | + | |
- | #" | + | |
- | # | + | |
- | # | + | |
- | # | + | |
- | # | + | |
- | # | + | |
- | #" | + | |
- | MODE_FILTER=none | + | |
- | FLOWOFFLOAD=donttouch | + | |
- | IFACE_LAN=br0 | + | |
- | IFACE_WAN=eth3 | + | |
- | INIT_APPLY_FW=1 | + | |
- | DISABLE_IPV6=0 | + | |
- | DEBUGLOG=0 | + | |
- | </ | + | |
* [[: | * [[: | ||
- | * [[: | ||
- | * [[: | ||
- | * [[: | ||
===== NWQWS_OPT ===== | ===== NWQWS_OPT ===== | ||
Строка 452: | Строка 193: | ||
nano / | nano / | ||
< | < | ||
+ | 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 | ||
Строка 457: | Строка 207: | ||
l.google.com | l.google.com | ||
youtube.com | youtube.com | ||
+ | www.youtube.com | ||
play.google.com | play.google.com | ||
youtubei.googleapis.com | youtubei.googleapis.com | ||
Строка 462: | Строка 213: | ||
nhacmp3youtube.com | nhacmp3youtube.com | ||
googleusercontent.com | googleusercontent.com | ||
+ | googleads.g.doubleclick.net | ||
</ | </ | ||
Строка 478: | Строка 230: | ||
==== Скрипты ==== | ==== Скрипты ==== | ||
- | <code bash> | + | * [[: |
- | $ ls -la / | + | |
- | $ cp -a / | + | |
- | </ | + | |
- | * [[: | ||
==== Отключение проверки контрольной суммы пакетов ==== | ==== Отключение проверки контрольной суммы пакетов ==== | ||
Строка 521: | Строка 269: | ||
<code bash> | <code bash> | ||
- | $ /tmp/mnt/USB/ | + | $ /tmp/mnt/SYS/ |
$ / | $ / | ||
$ / | $ / | ||
Строка 529: | Строка 277: | ||
==== Автозапуск ==== | ==== Автозапуск ==== | ||
- | nano / | + | nano / |
<code bash> | <code bash> | ||
#!/bin/sh | #!/bin/sh | ||
Строка 537: | Строка 285: | ||
logger " | logger " | ||
- | /tmp/mnt/USB/ | + | /tmp/mnt/SYS/ |
logger " | logger " | ||
Строка 543: | Строка 291: | ||
/ | / | ||
/ | / | ||
+ | </ | ||
+ | <code bash> | ||
+ | $ chmod +x / | ||
</ | </ |