docs: Fix bsd structure issues

This commit is contained in:
maximilionus 2024-11-07 21:04:02 +03:00
parent 7129923a70
commit ca39017d10

View File

@ -7,7 +7,7 @@
* [Сборка](#сборка) * [Сборка](#сборка)
* [Divert сокеты](#divert-сокеты) * [Divert сокеты](#divert-сокеты)
* [Lookup Tables](#lookup-tables) * [Lookup Tables](#lookup-tables)
* [PF с файла](#pf-с-файла) * [Загрузка ip таблиц из файла](#загрузка-ip-таблиц-из-файла)
* [Отсутствие splice](#отсутствие-splice) * [Отсутствие splice](#отсутствие-splice)
* [mdig и ip2net](#mdig-и-ip2net) * [mdig и ip2net](#mdig-и-ip2net)
* [FreeBSD](#freebsd) * [FreeBSD](#freebsd)
@ -23,7 +23,6 @@
* [Запуск dvtws](#запуск-dvtws) * [Запуск dvtws](#запуск-dvtws)
* [Проблемы с badsum](#проблемы-с-badsum) * [Проблемы с badsum](#проблемы-с-badsum)
* [Особенность отправки fake пакетов](#особенность-отправки-fake-пакетов) * [Особенность отправки fake пакетов](#особенность-отправки-fake-пакетов)
* [Возможная оптимизация трафика](#возможная-оптимизация-трафика)
* [Перезагрузка PF таблиц](#перезагрузка-pf-таблиц) * [Перезагрузка PF таблиц](#перезагрузка-pf-таблиц)
* [MacOS](#macos) * [MacOS](#macos)
* [Введение](#введение) * [Введение](#введение)
@ -99,7 +98,7 @@ tables. Это прямой аналог ipset. lookup tables не раздел
выполняется команда из `LISTS_RELOAD`. В противном случае не делается ничего. выполняется команда из `LISTS_RELOAD`. В противном случае не делается ничего.
Если `LISTS_RELOAD=-`, то заполнение таблиц отключается даже при наличии ipfw. Если `LISTS_RELOAD=-`, то заполнение таблиц отключается даже при наличии ipfw.
### PF с файла ### Загрузка ip таблиц из файла
PF может загружать ip таблицы из файла. Чтобы использовать эту возможность PF может загружать ip таблицы из файла. Чтобы использовать эту возможность
следует отключить сжатие gzip для листов через параметр файла config: следует отключить сжатие gzip для листов через параметр файла config:
`GZIP_LISTS=0`. `GZIP_LISTS=0`.
@ -168,8 +167,7 @@ $ ipfw add 100 fwd ::1,988 tcp from any to any 80,443 proto ip6 recv em1
$ /opt/zapret/tpws/tpws --port=988 --user=daemon --bind-addr=::1 --bind-addr=127.0.0.1 $ /opt/zapret/tpws/tpws --port=988 --user=daemon --bind-addr=::1 --bind-addr=127.0.0.1
``` ```
#### Трафик только на таблицу zapret #### Трафик только на таблицу zapret, за исключением таблицы nozapret
> За исключением таблицы nozapret
```sh ```sh
$ ipfw delete 100 $ ipfw delete 100
@ -214,8 +212,7 @@ $ ipfw add 100 divert 989 tcp from any 80,443 to any tcpflags syn,ack in not div
$ /opt/zapret/nfq/dvtws --port=989 --dpi-desync=split2 $ /opt/zapret/nfq/dvtws --port=989 --dpi-desync=split2
``` ```
#### Трафик только на таблицу zapret #### Трафик только на таблицу zapret, за исключением таблицы nozapret
> За исключением таблицы nozapret
```sh ```sh
$ ipfw delete 100 $ ipfw delete 100
@ -259,19 +256,17 @@ $ /opt/zapret/nfq/dvtws --port=989 --dpi-desync=split2
### pfsense ### pfsense
#### Что это #### Описание
pfsense основан на **FreeBSD** и использует фаервол PF, имеющий проблемы с pfsense основан на **FreeBSD** и использует фаервол PF, имеющий проблемы с
divert. К счастью, модули ipfw и ipdivert присутствуют в поставке последних divert. К счастью, модули ipfw и ipdivert присутствуют в поставке последних
версий pfsense. Их можно подгрузить через `kldload`. версий pfsense. Их можно подгрузить через `kldload`.
#### Особенности
В некоторых более старых версиях pfsense требуется изменить порядок фаерволов В некоторых более старых версиях pfsense требуется изменить порядок фаерволов
через `sysctl`, сделав ipfw первым. В более новых эти параметры `sysctl` через `sysctl`, сделав ipfw первым. В более новых эти параметры `sysctl`
отсутствуют, но система работает как надо и без них. В некоторых случаях отсутствуют, но система работает как надо и без них. В некоторых случаях
фаервол PF может ограничивать возможности `dvtws`, в частности в области фаервол PF может ограничивать возможности `dvtws`, в частности в области
фрагментации ip. фрагментации ip.
#### Исполняемые файлы
Присутствуют по умолчанию правила scrub для реассемблинга фрагментов. Бинарики Присутствуют по умолчанию правила scrub для реассемблинга фрагментов. Бинарики
из [`binaries/freebsd-x64`](../binaries/freebsd-x64) собраны под **FreeBSD из [`binaries/freebsd-x64`](../binaries/freebsd-x64) собраны под **FreeBSD
11**. Они должны работать и на последующих версиях **FreeBSD**, включая 11**. Они должны работать и на последующих версиях **FreeBSD**, включая
@ -428,8 +423,7 @@ $ pfctl -f /etc/pf.conf
$ ./dvtws --port=989 --dpi-desync=split2 $ ./dvtws --port=989 --dpi-desync=split2
``` ```
#### Трафик только на таблицу zapret #### Трафик только на таблицу zapret, за исключением таблицы nozapret
> За исключением таблицы nozapret
`/etc/pf.conf`: `/etc/pf.conf`:
``` ```
@ -474,8 +468,6 @@ $ ./dvtws --port=989 --dpi-desync=split2
предотвращает повторный заворот diverted фреймов, поэтому проблемы зацикливания предотвращает повторный заворот diverted фреймов, поэтому проблемы зацикливания
нет. нет.
### Возможная оптимизация трафика
divert-packet автоматически вносит обратное правило для перенаправления. Трюк с divert-packet автоматически вносит обратное правило для перенаправления. Трюк с
no state и in правилом позволяет обойти эту проблему, чтобы напрасно не гнать no state и in правилом позволяет обойти эту проблему, чтобы напрасно не гнать
массивный трафик через `dvtws`. массивный трафик через `dvtws`.
@ -621,12 +613,6 @@ local. Скрывать link local не имеет смысла, а динами
$ make -C /opt/zapret mac $ make -C /opt/zapret mac
``` ```
> [!IMPORTANT]
> Скрипты получения листов [`ipset/*.sh`](../ipset/) работают. Если будете
> пользоваться [`get_combined.sh`](../ipset/get_combined.sh), нужно установить
> GNU grep через `brew`. Имеющийся очень старый и безумно медленный с оцией
> `-f`.
### Простая установка ### Простая установка
В **MacOS** поддерживается `install_easy.sh` В **MacOS** поддерживается `install_easy.sh`