|
|
@ -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**. Однако, как и в других массовых коммерческих |
|
|
|