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-сокеты)
* [Lookup Tables](#lookup-tables)
* [PF с файла](#pf-с-файла)
* [Загрузка ip таблиц из файла](#загрузка-ip-таблиц-из-файла)
* [Отсутствие splice](#отсутствие-splice)
* [mdig и ip2net](#mdig-и-ip2net)
* [FreeBSD](#freebsd)
@ -23,7 +23,6 @@
* [Запуск dvtws](#запуск-dvtws)
* [Проблемы с badsum](#проблемы-с-badsum)
* [Особенность отправки fake пакетов](#особенность-отправки-fake-пакетов)
* [Возможная оптимизация трафика](#возможная-оптимизация-трафика)
* [Перезагрузка PF таблиц](#перезагрузка-pf-таблиц)
* [MacOS](#macos)
* [Введение](#введение)
@ -99,7 +98,7 @@ tables. Это прямой аналог ipset. lookup tables не раздел
выполняется команда из `LISTS_RELOAD`. В противном случае не делается ничего.
Если `LISTS_RELOAD=-`, то заполнение таблиц отключается даже при наличии ipfw.
### PF с файла
### Загрузка ip таблиц из файла
PF может загружать ip таблицы из файла. Чтобы использовать эту возможность
следует отключить сжатие gzip для листов через параметр файла config:
`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
```
#### Трафик только на таблицу zapret
> За исключением таблицы nozapret
#### Трафик только на таблицу zapret, за исключением таблицы nozapret
```sh
$ 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
```
#### Трафик только на таблицу zapret
> За исключением таблицы nozapret
#### Трафик только на таблицу zapret, за исключением таблицы nozapret
```sh
$ ipfw delete 100
@ -259,19 +256,17 @@ $ /opt/zapret/nfq/dvtws --port=989 --dpi-desync=split2
### pfsense
#### Что это
#### Описание
pfsense основан на **FreeBSD** и использует фаервол PF, имеющий проблемы с
divert. К счастью, модули ipfw и ipdivert присутствуют в поставке последних
версий pfsense. Их можно подгрузить через `kldload`.
#### Особенности
В некоторых более старых версиях pfsense требуется изменить порядок фаерволов
через `sysctl`, сделав ipfw первым. В более новых эти параметры `sysctl`
отсутствуют, но система работает как надо и без них. В некоторых случаях
фаервол PF может ограничивать возможности `dvtws`, в частности в области
фрагментации ip.
#### Исполняемые файлы
Присутствуют по умолчанию правила scrub для реассемблинга фрагментов. Бинарики
из [`binaries/freebsd-x64`](../binaries/freebsd-x64) собраны под **FreeBSD
11**. Они должны работать и на последующих версиях **FreeBSD**, включая
@ -428,8 +423,7 @@ $ pfctl -f /etc/pf.conf
$ ./dvtws --port=989 --dpi-desync=split2
```
#### Трафик только на таблицу zapret
> За исключением таблицы nozapret
#### Трафик только на таблицу zapret, за исключением таблицы nozapret
`/etc/pf.conf`:
```
@ -474,8 +468,6 @@ $ ./dvtws --port=989 --dpi-desync=split2
предотвращает повторный заворот diverted фреймов, поэтому проблемы зацикливания
нет.
### Возможная оптимизация трафика
divert-packet автоматически вносит обратное правило для перенаправления. Трюк с
no state и in правилом позволяет обойти эту проблему, чтобы напрасно не гнать
массивный трафик через `dvtws`.
@ -621,12 +613,6 @@ local. Скрывать link local не имеет смысла, а динами
$ make -C /opt/zapret mac
```
> [!IMPORTANT]
> Скрипты получения листов [`ipset/*.sh`](../ipset/) работают. Если будете
> пользоваться [`get_combined.sh`](../ipset/get_combined.sh), нужно установить
> GNU grep через `brew`. Имеющийся очень старый и безумно медленный с оцией
> `-f`.
### Простая установка
В **MacOS** поддерживается `install_easy.sh`