Пассивная проверка операционной системы хоста отправителя для использования данного механизма нужно установить p0f и настроить работу в режиме демона: http://lcamtuf.coredump.cx/p0f.shtml http://lcamtuf.coredump.cx/p0f3/releases/ http://lcamtuf.coredump.cx/p0f3/releases/p0f-3.08b.tgz http://lcamtuf.coredump.cx/p0f3/releases/p0f-latest.tgz https://github.com/p0f/p0f https://github.com/threatstream/mhn/wiki/p0f-Sensor для FreeBSD: cd /usr/ports/net-mgmt/p0f && make install clean для RHEL/Oracle Linux/CentOS/Fedora: https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPMS/p/p0f-3.08b-1.fc22.src.rpm ftp://ftp.funet.fi/pub/Linux/mirrors/fedora/linux/development/rawhide/source/SRPMS/p/p0f-3.08b-1.fc22.src.rpm для Ubuntu apt-get update && apt-get install -y libpcap-dev wget http://lcamtuf.coredump.cx/p0f3/releases/p0f-latest.tgz tar -xvzf p0f-latest.tgz cd p0f-[0-9]* make all && ( cp -p p0f /usr/local/sbin/ ; cp -p p0f.fp /usr/local/etc/ ; mkdir -p /usr/local/share/doc/p0f ; cp -p docs/* /usr/local/share/doc/p0f/ ) cd tools make all && cp -p p0f-client p0f-sendsyn p0f-sendsyn6 /usr/local/bin/ cd ../.. отдельно нужно собрать exim-p0f3-dlfunc и скопировать файл exim-p0f3-dlfunc.so в каталог /usr/local/libexec/exim http://dist.epipe.com/exim/ http://dist.epipe.com/exim/exim-p0f3-dlfunc-0.1.README.txt http://dist.epipe.com/exim/exim-p0f3-dlfunc-0.1.tar.gz для сборки динамически загружаемой библиотеки потребутся исходные тексты exim пример для сборки exim из порта FreeBSD: fetch http://dist.epipe.com/exim/exim-p0f3-dlfunc-0.1.tar.gz tar -xzf exim-p0f3-dlfunc-0.1.tar.gz cd exim-p0f3-dlfunc-0.1 CPPFLAGS="-I`ls -1d /usr/ports/mail/exim/work/exim-4.*/build-FreeBSD-*`" ./configure --libdir=`ls -1d /usr/ports/mail/exim/work/exim-4.*/build-FreeBSD-*`/ make cp -p .libs/exim-p0f3-dlfunc.so /usr/local/libexec/exim/ cd .. пример для сборки exim из src rpm под RHEL/Oracle Linux/CentOS/Fedora: wget http://dist.epipe.com/exim/exim-p0f3-dlfunc-0.1.tar.gz tar -xzf exim-p0f3-dlfunc-0.1.tar.gz cd exim-p0f3-dlfunc-0.1 CPPFLAGS="-I`ls -1d /usr/src/redhat/BUILD/exim-4.*/build-Linux-* | tail -n 1`" ./configure --libdir=`ls -1d /usr/src/redhat/BUILD/exim-4.*/build-Linux-* | tail -n 1`/ make cp -p .libs/exim-p0f3-dlfunc.so /usr/local/libexec/exim/ cd .. пример для сборки exim из src rpm под Debian/Ubuntu: wget http://dist.epipe.com/exim/exim-p0f3-dlfunc-0.1.tar.gz tar -xzf exim-p0f3-dlfunc-0.1.tar.gz cd exim-p0f3-dlfunc-0.1 CPPFLAGS="-I`ls -1d /tmp/pbuild/exim4/exim4-4.*/build-tree/build-exim4-daemon-custom /tmp/pbuild/exim4/exim4-4.*/b-exim4-daemon-custom/build-* /tmp/pbuild/exim4/exim4-4.*/b-exim4-daemon-light/build-* | tail -n 1`" ./configure --libdir=`ls -1d /tmp/pbuild/exim4/exim4-4.*/build-tree/build-exim4-daemon-custom /tmp/pbuild/exim4/exim4-4.*/b-exim4-daemon-custom/build-* /tmp/pbuild/exim4/exim4-4.*/b-exim4-daemon-light/build-* | tail -n 1`/ make cp -p .libs/exim-p0f3-dlfunc.so /usr/local/libexec/exim/ cd .. пример использования пассивного определения операционной системы хоста отправителя в exim: acl_check_connect: warn set acl_c_sender_host_os = ${dlfunc{/usr/local/libexec/exim/exim-p0f3-dlfunc.so}{p0f3_os}{/var/run/p0f.sock}{$sender_host_address}} log_message = sender host OS $acl_c_sender_host_os detected on ${if eq{$sender_host_name}{}{}{$sender_host_name }}[$sender_host_address] https://mta.org.ua/pipermail/exim-conf/2014-November/001421.html https://mta.org.ua/pipermail/exim-conf/2018-September/001497.html