diff --git a/docs/manual.md b/docs/manual.md index f163544..4fd3401 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -3755,3 +3755,103 @@ nfqws2 может работать и самостоятельно без скр На Windows система запуска не требуется - все как правило решается батниками для запуска winws2 в интерактивном режиме или управления службой. На BSD работает только система получения листов из ipset. На FreeBSD она умеет загружать ipset-ы (tables) в ipfw. На OpenBSD файлы с ip листами загружает сам pf. + +## Файл config + +Используется всеми компонентами скриптов запуска, имеет название "config" и располагается в корне директории zapret. Представляет собой shell include, в котором присваиваются переменные и поддерживаются комментарии, начинающиеся с '#'. Возможно и применение любых shell конструкций - таких, как адресация других переменных или арифметические операторы. + +Сам nfqws2 ничего не знает о скриптах запуска и файле config, не принимает ссылку на него в командной строке. + + + +## Система ведение листов + +Располагается в директории ipset и состоит из shell скриптов, которые обслуживают файлы с фиксированными именами внутри этой же директории. + +### Стандартные файлы листов + +Разделяются на хостлист и ip листы, на пользовательские и генерируемые. +Пользовательские листы ведутся вручную и не изменяются программно, генерируемые являются результатом работы программы и не предназначены для ручного редактирования. Изменения в генерируемых листах могут быть переписаны. Одним из вариантов генерируемых листов являются скачиваемые листы. + +Пользовательские хостлисты могут содержать имена хостов, ipv4 и ipv6 адреса или подсети CIDR. Генерируемые хостлисты могут содержать только имена хостов. + +Все листы могут сжиматься gzip. В этом случае к их именам добавляется ".gz". Сжатие gzip обычно не используется для пользовательских листов, потому что они как правило не слишком большие, а в gzip их неудобно редактировать. Для генерируемых листов gzip обычно используется, чтобы сократить занимаемое на диске место. Будет ли применено сжатие генерируемых листов зависит от переменной config [GZIP_LISTS](#файл-config). + +ip листы разделяются на ipv4 и ipv6. ipv6 листы имеют в конце файла перед расширением символ "6". + +В зависимости от режима хостлисты могут ресолвиться в ip листы через [mdig](#mdig) или применяться как есть. Если хостлисты применяются как есть в nfqws2, учитываются только имена доменов, а IP адреса и подсети - нет. + +| Хостлист | Тип | Назначение | ip листы | +|:---------|:-----|:-----------|:--------| +| zapret-hosts-user.txt | пользовательский | включающий | zapret-ip-user.txt
zapret-ip-user6.txt | +| zapret-hosts-user-exclude.txt | пользовательский | исключающий | zapret-ip-exclude.txt
zapret-ip-exclude6.txt | +| zapret-hosts-user-ipban.txt | пользовательский | заворот трафика | zapret-ip-user-ipban.txt
zapret-ip-user-ipban6.txt | +| -- | генерируемый | заворот трафика | zapret-ip-ipban.txt
zapret-ip-ipban6.txt | +| zapret-hosts.txt | генерируемый | включающий | zapret-ip.txt
zapret-ip6.txt | + +### Скрипты ipset + +#### clear_lists.sh + +Удаляет все генерируемые листы из ipset + +#### create_ipset.sh + +Загоняет все имеющиеся ip листы в соответствующие ipset. Под ipset здесь понимаются ipset от iptables, set от nftables или tables от ipfw. Скрипт выбирает ipset backend в зависимости от переменной config [FWTYPE](#файл-config) или автоматически в зависимости от ОС и установленных компонент, если переменная не задана. Нужно ли загонять ipv4 или ipv6 версии зависит от [DISABLE_IPV4](#файл-config) и [DISABLE_IPV6](#файл-config). + +Берет 1 параметр командной строки. Им может быть "clear" - очистить ipset-ы или "no-update" - загонять только если ipset еще не созданы, не выполнять обновление. + +#### get_config.sh + +Выполняет скрипт из ipset, заданный в переменной config [GETLIST](#файл-config). Если переменная не задана, выполняет `get_ipban.sh`. + +#### get_user.sh + +Ресолвит `zapret-hosts-user.txt`, `zapret-hosts-exclude.txt` и `zapret-hosts-ipban.txt`. + +#### get_ipban.sh + +Ресолвит `zapret-hosts-exclude.txt` и `zapret-hosts-ipban.txt`. + +#### get_exclude.sh + +Ресолвит `zapret-hosts-exclude.txt`. + +#### get_antifilter_*.sh + +Загружает ip или хостлисты с https://antifilter.network. + +Роскомнадзор в своей непрестанной заботе о благополучии граждан Российской Федерации ведет несколько списков ресурсов, на которые гражданам ходить нельзя. К сожалению, из-за нехватки сил, вызванной думами о будущем России, они не могут донести содержимое этого списка до каждого гражданина Российской Федерации. + +Мы решили оказать посильную помощь Роскомнадзору и предоставить каждому желающему актуальные и полные списки IP-адресов, на которые ходить нельзя. На их основе вы можете даже автоматизировать своё нехождение туда. + +На сайте указано, что списки берутся с zapret-info, который приказал долго жить, поэтому актуальность под вопросом. + +#### get_antizapret_domains.sh + +Загружает хостлисты с https://antizapret.prostovpn.org. + +Хостлист со старого сервиса обхода блокировок "prostovpn.org" + +#### get_refilter_*.sh + +Загружает ip или хостлист с https://github.com/1andrevich/Re-filter-lists. + +Re:filter — это попытка создать актуальный список заблокированных доменов и IP-адресов в РФ, а также популярных и заблокированных для пользователей из России. + +Исключает казино, порно, проституцию, наркотики и тому подобное. + +#### get_reestr_*.sh + +Загружает ip или хостлисты с https://github.com/bol-van/rulist. +IP листы содержат как ipv4, так и ipv6. + +* `get_reestr_resolvable_domains.sh` - список заблокированных доменов, которые ресолвятся. Среди заблокированных доменов больше половины уже мертвы. Чтобы не перегружать лист они удаляются. +* `get_reestr_preresolved.sh` - периодический ресолв списка заблокированных доменов. Не помогает от "прыгающих" доменов с регулярно изменяющимися IP и от доменов, которые ресолвятся по-разному в зависимости от geoip. +* `get_reestr_preresolved_smart.sh` - предыдущий список + подсети некоторых проблемных AS + исключение некоторых точно незаблокированных (белых) AS. Проблемными IP считаются популярные CDN с прыгающими IP и хостеры, к которым в России применяются особые более жесткие правила фильтрации. На момент написания проблемные AS : AS32934 (facebook,instagram), AS13414(twitter) , AS13335 (cloudflare), AS15169 (google), AS16509 (amazon), AS16276 (ovh), AS24940 (hetzner). Белые AS : AS47541 (vk), AS35237 (sberbank), AS47764 (mail.ru), AS13238 (yandex). + + +## Стартовые скрипты + +## Инсталлятор +