mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-26 20:20:53 +03:00
bsd docs: pfsense info
This commit is contained in:
parent
bb7faca67e
commit
3345bf55b0
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
FreeBSD 11.x+ , OpenBSD 6.x+, partially MacOS Sierra+
|
FreeBSD 11.x+ , OpenBSD 6.x+, partially MacOS Sierra+
|
||||||
|
|
||||||
Older versions may work or not. pfSense is not supported.
|
Older versions may work or not.
|
||||||
|
|
||||||
## BSD features
|
## BSD features
|
||||||
|
|
||||||
@ -168,6 +168,32 @@ then
|
|||||||
Its not clear how to do rdr-to outgoing traffic. I could not make route-to scheme work.
|
Its not clear how to do rdr-to outgoing traffic. I could not make route-to scheme work.
|
||||||
|
|
||||||
|
|
||||||
|
## pfsense
|
||||||
|
|
||||||
|
pfsense is based on FreeBSD.
|
||||||
|
Binaries compiled in compatible FreeBSD versions shoud work.
|
||||||
|
It's been tested that dvtws binary from FreeBSD 13 works on pfsense 2.5.2 with FreeBSD kernel 12.2.
|
||||||
|
pfsense uses pf firewall which does not support divert.
|
||||||
|
Fortunately ipfw and ipdivert modules are present and can be kldload-ed.
|
||||||
|
It's also necessary to change firewall order using sysctl commands.
|
||||||
|
Sometimes pf may limit dvtws abilities. It scrubs ip fragments disabling dvtws ipfrag2 desync mode.
|
||||||
|
If something is absent, no ipfw.ko/ipdivert.ko or binaries do not work - try the latest pfsense version.
|
||||||
|
|
||||||
|
/usr/local/etc/rc.d/zapret.sh (chmod 755)
|
||||||
|
```
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
kldload ipfw
|
||||||
|
kldload ipdivert
|
||||||
|
sysctl net.inet.ip.pfil.outbound=ipfw,pf
|
||||||
|
sysctl net.inet.ip.pfil.inbound=ipfw,pf
|
||||||
|
sysctl net.inet6.ip6.pfil.outbound=ipfw,pf
|
||||||
|
sysctl net.inet6.ip6.pfil.inbound=ipfw,pf
|
||||||
|
ipfw add 100 divert 989 tcp from any to any 80,443 out not diverted not sockarg
|
||||||
|
dvtws --daemon --port 989 --dpi-desync=split2
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## OpenBSD
|
## OpenBSD
|
||||||
|
|
||||||
In OpenBSD default tpws bind is ipv6 only. to bind to ipv4 specify --bind-addr=0.0.0.0
|
In OpenBSD default tpws bind is ipv6 only. to bind to ipv4 specify --bind-addr=0.0.0.0
|
||||||
|
30
docs/bsd.txt
30
docs/bsd.txt
@ -6,8 +6,7 @@ FreeBSD 11.x+ , OpenBSD 6.x+, частично MacOS Sierra+
|
|||||||
На более старых может собираться, может не собираться, может работать или не работать.
|
На более старых может собираться, может не собираться, может работать или не работать.
|
||||||
На FreeBSD 10 собирается и работает dvtws. С tpws есть проблемы из-за слишком старой версии компилятора clang.
|
На FreeBSD 10 собирается и работает dvtws. С tpws есть проблемы из-за слишком старой версии компилятора clang.
|
||||||
Вероятно, будет работать, если обновить компилятор.
|
Вероятно, будет работать, если обновить компилятор.
|
||||||
На pfSense если и можно завести, то это не просто. Собранные на FreeBSD с той же версией ядра бинарики не работают.
|
Возможна прикрутка к последним версиям pfsense без веб интерфейса в ручном режиме через консоль.
|
||||||
Статические бинарики тоже. Модуль ipdivert отсутствует.
|
|
||||||
|
|
||||||
|
|
||||||
Особенности BSD систем
|
Особенности BSD систем
|
||||||
@ -164,6 +163,33 @@ rdr pass on em1 inet proto tcp to port {80,443} -> 127.0.0.1 port 988
|
|||||||
В PF непонятно как делать rdr-to с той же системы, где работает proxy. Вариант с route-to у меня не заработал.
|
В PF непонятно как делать rdr-to с той же системы, где работает proxy. Вариант с route-to у меня не заработал.
|
||||||
|
|
||||||
|
|
||||||
|
pfsense
|
||||||
|
-------
|
||||||
|
|
||||||
|
pfsense основано на FreeBSD.
|
||||||
|
На последних версиях pfsense работают бинарики, собранные в FreeBSD совместимых версий.
|
||||||
|
Проверено, что бинарик dvtws с FreeBSD 13 сработал на pfsense 2.5.2 с ядром FreeBSD 12.2.
|
||||||
|
pfsense использует фаервол pf, а он не поддерживает divert.
|
||||||
|
К счастью, модули ipfw и ipdivert присутствуют в поставке последних версий pfsense.
|
||||||
|
Их можно подгрузить через kldload. Еще требуется изменить порядок фаерволов через sysctl, сделав ipfw первым.
|
||||||
|
В некоторых случаях фаервол pf может ограничивать возможности dvtws, в частности в области фрагментации ip.
|
||||||
|
Присутствуют по умолчанию правила scrub для реассемблинга фрагментов.
|
||||||
|
|
||||||
|
/usr/local/etc/rc.d/zapret.sh (chmod 755)
|
||||||
|
-----------
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
kldload ipfw
|
||||||
|
kldload ipdivert
|
||||||
|
sysctl net.inet.ip.pfil.outbound=ipfw,pf
|
||||||
|
sysctl net.inet.ip.pfil.inbound=ipfw,pf
|
||||||
|
sysctl net.inet6.ip6.pfil.outbound=ipfw,pf
|
||||||
|
sysctl net.inet6.ip6.pfil.inbound=ipfw,pf
|
||||||
|
ipfw add 100 divert 989 tcp from any to any 80,443 out not diverted not sockarg
|
||||||
|
dvtws --daemon --port 989 --dpi-desync=split2
|
||||||
|
-----------
|
||||||
|
|
||||||
|
|
||||||
OpenBSD
|
OpenBSD
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user