diff --git a/docs/bsd.md b/docs/bsd.md index 1f7414b..aee607c 100644 --- a/docs/bsd.md +++ b/docs/bsd.md @@ -1,5 +1,39 @@ # Настройка BSD-подобных систем +* [Поддерживаемые версии](#поддерживаемые-версии) +* [Особенности BSD систем](#особенности-bsd-систем) + * [Отсутствие nfqueue](#отсутствие-nfqueue) + * [Типы Firewall](#типы-firewall) + * [Сборка](#сборка) + * [Divert сокеты](#divert-сокеты) + * [Lookup Tables](#lookup-tables) + * [PF с файла](#pf-с-файла) + * [Отсутствие splice](#отсутствие-splice) + * [mdig и ip2net](#mdig-и-ip2net) +* [FreeBSD](#freebsd) + * [Подгрузка ipdivert](#подгрузка-ipdivert) + * [Авто-восстановление правил ipfw и работа в фоне](#авто-восстановление-правил-ipfw-и-работа-в-фоне) + * [tpws в прозрачном режиме](#tpws-в-прозрачном-режиме) + * [Запуск dvtws](#запуск-dvtws) + * [PF в FreeBSD](#pf-в-freebsd) + * [pfsense](#pfsense) +* [OpenBSD](#openbsd) + * [tpws бинд на ipv4](#tpws-бинд-на-ipv4) + * [tpws для проходящего трафика](#tpws-для-проходящего-трафика) + * [Запуск dvtws](#запуск-dvtws) + * [Проблемы с badsum](#проблемы-с-badsum) + * [Особенность отправки fake пакетов](#особенность-отправки-fake-пакетов) + * [Возможная оптимизация трафика](#возможная-оптимизация-трафика) + * [Перезагрузка PF таблиц](#перезагрузка-pf-таблиц) +* [MacOS](#macos) + * [Введение](#введение) + * [dvtws бесполезен](#dvtws-бесполезен) + * [tpws](#tpws) + * [Проблема link-local адреса](#проблема-link-local-адреса) + * [Сборка](#сборка) + * [Простая установка](#простая-установка) + * [Вариант Custom](#вариант-custom) + ## Поддерживаемые версии **FreeBSD** 11.x+ , **OpenBSD** 6.x+, частично **MacOS Sierra** + @@ -13,6 +47,7 @@ ## Особенности BSD систем + ### Отсутствие nfqueue В **BSD** нет `nfqueue`. Похожий механизм - divert sockets. Из каталога [`nfq/`](../nfq/) под **BSD** собирается `dvtws` вместо `nfqws`. Он разделяет с @@ -76,12 +111,13 @@ PF может загружать ip таблицы из файла. Чтобы **BSD** для его эмуляции используется epoll-shim - прослойка для эмуляции epoll на базе kqueue. -### mdig, ip2net +### mdig и ip2net mdig и ip2net полностью работоспособны в **BSD**. В них нет ничего системо-зависимого. ## FreeBSD + ### Подгрузка ipdivert Divert сокеты требуют специального модуля ядра - `ipdivert`. @@ -377,7 +413,7 @@ $ tpws --port=988 --user=daemon --bind-addr=::1 --bind-addr=127.0.0.1 > `/dev/pf`, поэтому прозрачный режим **требует root**. -### Запуск `dvtws` +### Запуск dvtws #### Весь трафик `/etc/pf.conf`: @@ -481,6 +517,7 @@ $ pfctl -Tl -f /etc/pf.conf ## MacOS + ### Введение Иначально ядро этой ОС "darwin" основывалось на **BSD**, потому в ней много похожего на другие версии **BSD**. Однако, как и в других массовых коммерческих