diff --git a/docs/bsd.md b/docs/bsd.md index d0bc53b..46aaf41 100644 --- a/docs/bsd.md +++ b/docs/bsd.md @@ -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`