diff --git a/binaries/freebsd-x64/dvtws b/binaries/freebsd-x64/dvtws new file mode 100755 index 0000000..7b0227a Binary files /dev/null and b/binaries/freebsd-x64/dvtws differ diff --git a/binaries/freebsd-x64/ip2net b/binaries/freebsd-x64/ip2net new file mode 100755 index 0000000..4578596 Binary files /dev/null and b/binaries/freebsd-x64/ip2net differ diff --git a/binaries/freebsd-x64/mdig b/binaries/freebsd-x64/mdig new file mode 100755 index 0000000..1c3a6ca Binary files /dev/null and b/binaries/freebsd-x64/mdig differ diff --git a/binaries/freebsd-x64/tpws b/binaries/freebsd-x64/tpws new file mode 100755 index 0000000..d8d76eb Binary files /dev/null and b/binaries/freebsd-x64/tpws differ diff --git a/docs/bsd.eng.md b/docs/bsd.eng.md index b54362f..260abc3 100644 --- a/docs/bsd.eng.md +++ b/docs/bsd.eng.md @@ -171,13 +171,11 @@ Its not clear how to do rdr-to outgoing traffic. I could not make route-to schem ## pfsense pfsense is based on FreeBSD. -Binaries compiled in compatible FreeBSD versions should work. -It's been tested that dvtws binary from FreeBSD 13 works on pfsense 2.5.2 with FreeBSD kernel 12.2. +Binaries from `binaries/freebsd-x64` are compiled in FreeBSD 11 and should work. Use `install_bin.sh`. 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) ``` diff --git a/docs/bsd.txt b/docs/bsd.txt index e4f9811..970591d 100644 --- a/docs/bsd.txt +++ b/docs/bsd.txt @@ -167,13 +167,13 @@ 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 для реассемблинга фрагментов. +Бинарики из binaries/freebsd-x64 собраны под FreeBSD 11. Они должны работать и на последующих версиях FreeBSD, +включая pfsense. Можно пользоваться install_bin.sh. /usr/local/etc/rc.d/zapret.sh (chmod 755) ----------- diff --git a/install_bin.sh b/install_bin.sh index 60d5951..6baac4d 100755 --- a/install_bin.sh +++ b/install_bin.sh @@ -36,6 +36,8 @@ if [ "$UNAME" = "Linux" ]; then ARCHLIST="my x86_64 x86 aarch64 arm mips64r2-msb mips32r1-lsb mips32r1-msb ppc" elif [ "$UNAME" = "Darwin" ]; then ARCHLIST="my mac64" +elif [ "$UNAME" = "FreeBSD" ]; then + ARCHLIST="freebsd-x64" else ARCHLIST="my" fi