tpws: always compile PF support, use --enable-pf flag in FreeBSD

This commit is contained in:
bol-van
2022-01-23 23:11:11 +03:00
parent 0f55960460
commit cc5f0af5a8
9 changed files with 34 additions and 31 deletions

View File

@@ -21,9 +21,7 @@ FreeBSD содержит 3 фаервола : IPFilter, ipfw и Packet Filter (P
Под FreeBSD tpws и dvtws собираются через "make", под OpenBSD - "make bsd", под MacOS - "make mac".
FreeBSD make распознает BSDmakefile , OpenBSD и MacOS - нет. Поэтому там используется отдельный target в Makefile.
Сборка всех исходников : make -C /opt/zapret
Сборка всех исходников с поддержкой PF : make -C /opt/zapret CFLAGS=-DUSE_PF
В FreeBSD поддержку PF нужно включать только, если вы его используете. Иначе это нежелательно !
В OpenBSD и MacOS PF при сборке включается автоматически.
В FreeBSD поддержка PF в tpws отключена по умолчанию. Чтобы ее включить, нужно использовать параметр --enable-pf.
divert сокет - внутренний тип сокета ядра BSD. Он не привязывается ни к какому сетевому адресу, не участвует
в обмене данными через сеть и идентифицируется по номеру порта 1..65535. Аналогия с номером очереди NFQUEUE.
@@ -146,7 +144,7 @@ dvtws в FreeBSD отсылает ipv4 фреймы через raw socket. Та
PF в FreeBSD:
Настройка аналогична OpenBSD, но есть важные нюансы.
1) Не забыть собрать специальную версию под PF : make CFLAGS=-DUSE_PF
1) Не забыть указать параметр --enable-pf
2) Нельзя сделать ipv6 rdr на ::1. Нужно делать на link-local адрес входящего интерфейса.
Смотрите через ifconfig адрес fe80:... и добавляете в правило
3) Синтаксис pf.conf немного отличается. Более новая версия PF.
@@ -227,11 +225,10 @@ rdr pass on em1 inet6 proto tcp to port {80,443} -> fe80::20c:29ff:5ae3:4821 por
Добавьте в автозапуск /usr/local/etc/rc.d/zapret.sh :
-----------
pfctl -a zapret -f /etc/zapret.anchor
pkill ^tpws_pf$
tpws_pf --daemon --port=988 --split-http-req=method --split-pos=2
pkill ^tpws$
tpws --daemon --port=988 --enable-pf --split-http-req=method --split-pos=2
-----------
Обратите внимание, что запускается специальная версия tpws с поддежкой pf. Обычный tpws не работает с PF.
После перезагрузки проверьте, что правила создались :
-----------
[root@pfSense /]# pfctl -s nat