Документация по ОС FreeBSD Воскресенье, 05.05.2024, 13:02
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Mail

Интеграция P0F с Amavisd-new и SpamAssassin [2009]

Постановка задачи

P0F – Linux/Unix-утилита, предназначенная для определения типа операционной системы удаленного компьютера путем анализа пакетов, перехваченных в момент установки соединения. В отличие от активных сканеров (например, nmap и queSO) p0f относится к пассивным сканерам, работает абсолютно прозрачно и не создает какой-либо дополнительный трафик с удаленным компьютером. Последние версии Amavisd-new и SpamAssassin позволяют использовать результаты работы p0f в качестве дополнительного критерия идентификации СПАМа. В этой заметке описан процесс интеграции p0f в существующую систему защиты от СПАМа на базе Amavisd-new и SpamAssassin.

Исходные данные

Имеется сервер с FreeBSD, находящийся на входе подсети центрального офиса. На этом сервере развернута почтовая система, имеющая примерно такую же подсистему защиты от СПАМа, как Почтовая система среднего офиса на базе Postfix. Утилита p0f будет автоматически установлена в процессе пересборки порта Amavisd-new. Программное обеспечение будет разворачиваться из портов, поэтому я рекомендую Вам обновить их перед выполнением действий, описанных ниже (я использовал FreeBSD 7.2 и последние версии портов для нее).

Интеграция p0f и Amavisd-new

Amavisd-new взаимодействует с p0f посредством демона amavis-p0fanalyzer, который входит в состав Amavisd-new. Демон amavis-p0fanalyzer обеспечивает прослушивание входящих TCP-подключений на 25й порт всех сетевых интерфейсов сервера с помошью p0f, соответствующую обработку, сохранение в кеше на 10 минут и отдачу собранных данных в ответ на специальные UDP-запросы на 2345 порт локального сетевого интерфейса от Amavisd-new. Получив информацию, Amavisd-new добавляет к сообщению заголовок X-Amavis-OS-Fingerprint, содержащий тип операционной системы, аптайм, IP-дистанцию, тип сетевого подключения, IP-адрес и порт почтового сервера, например:

X-Amavis-OS-Fingerprint: Linux 2.6 (newer, 2) (up: 4696 hrs), (distance 9, link: ethernet/modem), [209.85.219.216:57437]

Интеграцию p0f и Amavisd-new следует начать с пересборки Amavisd-new (в процессе пересборки будет автоматически установлена p0f):

cd /usr/ports/security/amavisd-new
make deinstall
make WITH_P0F=true reinstall clean

Для того, чтобы amavis-p0fanalyzer запускался при запуске операционной системы, необходимо добавить в файл /etc/rc.conf строку:

amavis_p0fanalyzer_enable="YES"

После этого следует запустить amavis-p0fanalyzer командой /usr/local/etc/rc.d/amavis-p0fanalyzer start. Для того, чтобы Amavisd-new начал запрашивать информацию у amavis-p0fanalyzer и добавлять к обрабатываемым сообщениям соответствующие заголовки, в файле /usr/local/etc/amavisd.conf необходимо раскомментировать строку:

$os_fingerprint_method = 'p0f:*:2345'; # to query p0f-analyzer.pl

На этом интеграция p0f и Amavisd-new заканчивается. Остается перезапустить Amavisd-new командой amavisd reload. Если Вы не допустили ошибок, то в заголовки принятых сообщений теперь будет добавляться поле X-Amavis-OS-Fingerprint. Следует отметить, что по умолчанию для снижения нагрузки на сервер обрабатываются только те сообщения, которые были отправлены из-за пределов доверенных сетей, определенных в файле /usr/local/etc/amavisd.conf с помощью переменной @mynetworks.

Интеграция p0f и SpamAssassin

Интеграция p0f и SpamAssassin заключается в добавлении правил, которые анализируют содержимое поля X-Amavis-OS-Fingerprint и выставляют соответствующие оценки. В официальной документации Amavisd-new представлена следующая статистика (ham – сообщения, получившие оценку ≤3 и не являющиеся СПАМом, spam – сообщения, получившие оценку ≥6 и являющиеся СПАМом).

Для того, чтобы SpamAssassin учитывал тип операционной системы почтового сервера, содержащийся в добавленном Amavisd-new заголовке X-Amavis-OS-Fingerprint, необходимо добавить в файл в файл /usr/local/etc/mail/spamassassin/local.cf следующие правила (оценки score обоснованы представленной выше диаграммой и могут быть уточнены в процессе точной настройки системы защиты от СПАМа):

describe __L_P0F_EXISTS A header field X-Amavis-OS-Fingerprint does exist
header   __L_P0F_EXISTS exists:X-Amavis-OS-Fingerprint
describe L_P0F_WXP      Remote system is truly a Windows XP, not Windows 2000
header   L_P0F_WXP      X-Amavis-OS-Fingerprint =~ /\AWindows XP(?![^(]*\b2000 SP)/m
score    L_P0F_WXP      2.3
describe L_P0F_W        Remote system is some Windows variant, except Win. XP
header   L_P0F_W        X-Amavis-OS-Fingerprint =~ /\AWindows(?! XP)/m
score    L_P0F_W        1.3
describe L_P0F_UNKN     P0f was unable to determine remote OS type
header   L_P0F_UNKN     X-Amavis-OS-Fingerprint =~ /\AUNKNOWN/m
score    L_P0F_UNKN     0.8
describe L_P0F_Unix     Remote system is running Unix, not Linux
header   L_P0F_Unix     X-Amavis-OS-Fingerprint =~ /\A((Free|Open|Net)BSD|Solaris|HP-UX|Tru64|AIX)/m
score    L_P0F_Unix     -1.0
describe L_P0F_Unix     Remote system is running Linux
header   L_P0F_Linux    X-Amavis-OS-Fingerprint =~ /\ALinux/m
score    L_P0F_Linux    -0.1

Правило, заданное в строках 3-5 срабатывает в случае использования на почтовом сервере Windows XP; в строках 6-8 – любой версии Windows, но не Windows XP; в строках 9-11 – неизвестной p0f операционной системы; в строках 12-14 – Unix, но не Linux; в строках 15-17 – Linux.
Также официальная документация Amavisd-new рекомендует учитывать IP-дистанцию в процессе идентификации СПАМа. Для того, чтобы SpamAssassin учитывал IP-дистанцию, содержащуюся в добавленном Amavisd-new заголовке X-Amavis-OS-Fingerprint, необходимо добавить в файл в файл /usr/local/etc/mail/spamassassin/local.cf следующие правила:

header   L_P0F_D1234    X-Amavis-OS-Fingerprint =~ /\bdistance [1-4](?![0-9])/m
score    L_P0F_D1234    -0.5
header   L_P0F_D5       X-Amavis-OS-Fingerprint =~ /\bdistance 5(?![0-9])/m
score    L_P0F_D5       -0.5
header   L_P0F_D6       X-Amavis-OS-Fingerprint =~ /\bdistance 6(?![0-9])/m
score    L_P0F_D6       -0.5
header   L_P0F_D7       X-Amavis-OS-Fingerprint =~ /\bdistance 7(?![0-9])/m
score    L_P0F_D7       -0.5
header   L_P0F_D8       X-Amavis-OS-Fingerprint =~ /\bdistance 8(?![0-9])/m
score    L_P0F_D8       -0.5
header   L_P0F_D9       X-Amavis-OS-Fingerprint =~ /\bdistance 9(?![0-9])/m
score    L_P0F_D9       -0.4
header   L_P0F_D10      X-Amavis-OS-Fingerprint =~ /\bdistance 10(?![0-9])/m
score    L_P0F_D10      -0.3
header   L_P0F_D11      X-Amavis-OS-Fingerprint =~ /\bdistance 11(?![0-9])/m
score    L_P0F_D11      -0.3

Правило, заданное в строках 1 и 2 срабатывает, если IP-дистанция равна 1-4; в строках 3 и 4 – если IP-дистанция равна 5; 5 и 6 – если IP-дистанция равна 6; 7 и 8 – если IP-дистанция равна 7; 9 и 10 – если IP-дистанция равна 8; 11 и 12 – если IP-дистанция равна 9; 13 и 14 – если IP-дистанция равна 10; 15 и 16 – если IP-дистанция равна 11. На мой взгляд, правила не требуют дополнительных пояснений.
На этом интеграция p0f и SpamAssassin заканчивается. Остается проверить файл /usr/local/etc/mail/spamassassin/local.cf на наличие ошибок командой spamassassin --lint и перезапустить Amavisd-new командой amavisd reload.

Заключение

Выполнив действия, описанные в этой статье, Вы поможете своей почтовой системе более адекватно идентифицировать СПАМ. На мой взгляд, актуальность рассмотренной доработки будет расти с течением времени, т.к. компьютеры, подключенные к Интернет, есть почти в каждом доме, однако, далеко не все пользователи заморачиваются с их грамотной настройкой и защитой от вредоносного программного обеспечения.



Источник: http://www.sergeysl.ru/p0f-amavisd-new-spamassassin/
Категория: Mail | Добавил: oleg (22.11.2009) | Автор: Сергей
Просмотров: 623 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024