В этой статье, как и было обещано , мы хотели бы поделиться своим опытом борьбы со спамом.
Известно, что любая причина имеет следствие.
Эта фраза выражает одну из философских форм связи явлений.
Наша причина заключалась в неоднократных жалобах на спам, исходящий от клиентов нашего хостинга и VPS. Не всегда можно с уверенностью сказать, были ли это намеренные действия клиентов или они сами не подозревали, что стали жертвами спам-ботов.
Как бы то ни было, проблему нужно было решить.
Они не любят спам.
Спам оставляет «черное пятно» на лице провайдера, когда его IP-адреса заносятся в черный список, что затрагивает всех клиентов.
Удаление IP из черных списков – другое дело.
Но это одна сторона медали.
Хотя восстановить репутацию IP-адреса можно, восстановить репутацию и доверие компании гораздо сложнее.
Мы решили найти решение и внедрить в структуру Unihost комплекс защиты и предотвращения нежелательных рассылок.
После мозгового штурма и обсуждений мы начали проверять и сравнивать то, что может предложить сообщество СПАМ/АВ.
На рынке есть много вариантов.
Однако большинство качественных решений оплачиваются по тарифу 1 лицензия на 1 сервер или даже за количество исходящих/входящих писем, что приведет к повышению цен на тарифы.
Поэтому мы выбирали только среди opensource.
Популярные решения для борьбы со спамом с открытым исходным кодом
Расспамд
Подходит для систем различных размеров.Может интегрироваться с различными MTA (в документации описаны Exim, Postfix, Sendmail и Haraka) или работать в режиме SMTP-прокси.
Система оценки сообщений такая же, как и в SpamAssassin, в частности на основе различных факторов: регулярные выражения, черные списки DNS, белые, серые, черные списки, SPF, DKIM, статистика, нечеткие хеши и прочее - только в работе используются другие алгоритмы.
.
Rspamd поддерживает расширение с помощью плагинов.
Apache SpamAssassin
SA получила известность благодаря использованию технологии байесовской фильтрации.Каждое сообщение при прохождении тестов получает определенный балл и при достижении порога помещается в спам.
Легко интегрируется практически с любым почтовым сервисом.
В SA доступны популярные технологии, которые можно подключить в виде плагинов: DNSBL, SPF, DKIM, URIBL, SURBL, PSBL, Razor, RelayCountry, автоматический белый список (AWL) и другие.
Установка в целом не представляет сложности.
После установки SpamAssassin требуется тонкая настройка параметров и обучение работе со спамом.
АССП
Прокси-сервер SMTP для конкретной платформы, который принимает сообщения перед MTA и анализирует их на наличие спама.Поддерживаются все популярные технологии: белые и серые списки, байесовский фильтр, DNSBL, DNSWL, URIBL, SPF, DKIM, SRS, проверка на вирусы (с помощью ClamAV), блокировка или замена вложений и многое другое.
Обнаруживается спам и изображения в кодировке MIME (с использованием Tesseract).
Возможности расширяются с помощью модулей.
Проектная документация не всегда понятна, а инструкции зачастую устарели, но при наличии некоторого опыта разобраться можно.
MailScanner
MailScanner — комплексное решение для борьбы с фишинговыми письмами и проверки почты на вирусы и спам.Он анализирует содержимое письма, блокирует атаки, направленные на почтовые клиенты и HTML-теги, проверяет вложения (запрещенные расширения, двойные расширения, зашифрованные архивы и т. д.), контролирует подделку адресов в письмах и многое другое.
MailScanner легко интегрируется с любым MTA; он поставляется с готовыми файлами конфигурации.
Помимо собственных разработок, он может использовать сторонние решения.
SpamAssassin можно использовать для проверки на спам.
EFA-проект
Есть еще один проект с открытым исходным кодом — «eFa-project» — Email Filter Appliance. EFA изначально разрабатывался как виртуальное устройство для работы на Vmware или HyperV. Программа использует готовые пакеты MailScanner, Postfix, SpamAssasin (весь список ниже) для борьбы со спамом и вирусами, и они уже установлены и настроены для корректной работы в вм.Это значит, что вам не нужны костыли – все работает «из коробки».
EFA включает в себя следующие компоненты: Действует как MTA (агент по передаче почты) Постфикс — надежный, быстрый, проверенный годами; Ядро спам-фильтра - MailScanner — плечом к плечу с антивирусами, они принимают на себя весь удар; Спам-фильтр - Спам-убийца — определяет спам-сообщения.
Платформа включает в себя множество систем оценки, MTA и наборов регулярных выражений; КламАВ - антивирус, работающий с MailScanner; MailWatch — удобный веб-интерфейс для работы с MailScanner и другими приложениями; Контент-фильтр - ДКК — определяет массовую рассылку путем отправки хеш-суммы тела письма на специальный сервер, который в свою очередь выдает ответ в виде количества полученных хэшей.
Если число превышает порог баллов = 6, письмо считается спамом; Пызор И Бритва — помочь SpamAssassin более точно распознавать спам с помощью сетей обнаружения спама; Для серого списка используется SQLгрей — сервис постфиксной политики, позволяющий уменьшить количество спама, принимаемого получателями; Модуль используется для распознавания изображений ИзображениеЦебер — идентифицирует порноизображения и т. д. Мы выбрали EFA, потому что проект включает в себя все лучшие функции вышеперечисленных.
К тому же наши администраторы уже имели некоторый опыт работы с ним, поэтому выбрали EFA. Перейдем к описанию установки.
Установка и последующая настройка EFA
Мы решили установить на VPS с чистой CentOS 6.8 x64, которая выполняет роль ретрансляционного сервера.Прежде всего вам необходимо обновить все системные утилиты и компоненты до последних версий, доступных в репозиториях.
Для этого используем команду:
Затем установите утилиты wget и screen, если они не были установлены:yum -y update
yum -y install wget screen
После этого скачайте скрипт, который установит EFA:
wget https://raw.githubusercontent.com/E-F-A/v3/master/build/prepare-build-without-ks.bash
Даём скрипту права на выполнение:
chmod +x .
/prepare-build-without-ks.bash
Экран запуска:
screen
И запустите скрипт:
.
/prepare-build-without-ks.bash
Теперь вы можете свернуть наш экран с помощью комбинации Ctrl+A+D. После установки вам необходимо повторно войти на сервер через ssh, используя свои первые данные для входа.
Это необходимо для запуска сценария инициализации и первоначальной настройки EFA. После входа в систему система предложит вам ответить на несколько вопросов для настройки EFA. Список вопросов следующий:
Функция | Свойство |
---|---|
Имя хоста | Указывается имя хоста машины |
Доменное имя | Домен, к которому принадлежит машина.
В сочетании с именем хоста вы получаете полное доменное имя сервера.
|
Админпочта | Почтовый ящик администратора, куда будут поступать письма от самой системы (доступные обновления, различные отчеты и т.д.) |
Почтмейстерэлектронная почта | Почтовый ящик человека, который будет получать почту, связанную с MTA. |
айпи адрес | IP-адрес машины |
Сетевая маска | Маска |
Шлюз по умолчанию | шлюз |
Первичный DNS | Основной DNS-сервер |
Вторичный DNS | Вторичный DNS-сервер |
Локальный пользователь | Вход локального администратора.
Используется для входа в систему и веб-интерфейс MailWatch. |
Пароль локального пользователя | Пароль |
Корневой пароль | Пароль для пользователя root |
Инструменты VMware | Будет отображаться только в том случае, если установка происходит на виртуальной машине под управлением VMware. Требуется установить инструменты для работы с VMware. |
Время по всемирному координированному времени | Если ваш компьютер находится в часовом поясе UTC, необходимо выбрать Да.
|
Часовой пояс | Здесь вы можете выбрать другой часовой пояс, отличный от UTC. |
Раскладка клавиатуры | Раскладка клавиатуры, которая будет использоваться в системе |
Код IANA | Здесь указывается код страны, в которой находится автомобиль.
Это необходимо для того, чтобы определить, с каких зеркал в дальнейшем будут скачиваться обновления.
|
Ваш почтовый сервер | Индивидуальный параметр.
Используется, если EFA также работает для получения писем.
|
Название вашей организации | Название организации.
Используется для заголовков буквами.
|
Автоматические обновления | Политика автоматического обновления настроена.
По умолчанию отключено. В этом случае автоматических обновлений не будет, но уведомления о доступных обновлениях будут приходить на почту администратора.
|
Если что-то необходимо изменить, наберите номер вопроса и введите новые данные.
Когда вы будете готовы двигаться дальше, введите ОК и нажмите Enter. Система начнет процесс автонастройки.
По завершении настройки система перезагрузится и будет в полной боевой готовности.
При следующем входе по ssh сразу появится меню конфигурации EFA. В этом меню доступно множество полезных действий:
- Перезагрузка/выключение системы;
- Изменение параметров сети;
- Настройка MailScanner;
- Включить/отключить серый список;
- Включить/отключить автообновление;
- Настройка системы в качестве сервера исходящей ретрансляции;
- Изменение почтового ящика Adminemail;
- Добавление/удаление почтовых доменов;
- Изменение настроек спам-фильтра;
- Восстановление базы данных MySQL в случае повреждения из-за аварийного завершения работы.
Ручная настройка EFA
Мы пошли по сложному, но более гибкому пути.EFA настраивалась не через интерактивное меню, а через файлы конфигурации.
Нам хотелось не только все настроить, но и разобраться во всех компонентах и понять, что и как работает. Первым делом в файле main.cf настроек постфикса мы добавили mynetworks, из которых принимались соединения по SMTP. Затем устанавливаем ограничения на запросы helo, отправителей, получателей и указываемые пути к картам с политиками ACCEPT или REJECT при соблюдении определенных условий.
Кроме того, inet_protocols был изменен на ipv4, чтобы исключить соединения ipv6. Затем мы изменили политику действий со спамом на «Хранить» в файле конфигурации /etc/MailScanner/MailScanner.conf. Это означает, что если письмо будет признано спамом, оно будет помещено в карантин.
Это помогает в дальнейшем обучении SpamAssassin. После этих настроек мы столкнулись с первой проблемой.
Нас засыпали тысячами писем от получателей [email protected], [email protected], [email protected] и т. д. Получатели были похожи.
Также мы получали письма, отправленные MAILER-DAEMON, то есть фактически без отправителя.
В результате мы получили забитую очередь без возможности найти среди «красного белья» нормальные, не спамные письма.
Мы решили ОТКЛОНЯТЬ подобные письма, используя стандартный функционал карточек Postfix: helo_access, получателя_доступа, отправителя_доступа.
Сейчас вредные получатели и им подобные начали успешно ОТКЛОНЯТЬ.
А те письма, которые отправлял MAILER-DAEMON, фильтруются helo-запросами.
Когда очередь очистилась и наши нервы успокоились, мы приступили к настройке SpamAssassin.
Обучение SpamAssassin
Обучение SpamAssassin проводится на письмах, которые уже попали в спам.Есть два способа сделать это.
Через веб-интерфейс
Первый способ — через веб-интерфейс MailWatch. В каждом письме можно увидеть заголовки, тело, а также оценку по алгоритму Байеса и другим показателям.Это выглядит так:
Счет | Правило соответствия | Описание |
---|---|---|
-0.02 | ШИЛО | Скорректированная оценка репутации AWL: От: адрес.
|
0.80 | БАЙЕС_50 | Вероятность байесовского спама составляет от 40 до 60 %.
|
0.90 | DKIM_ADSP_NXDOMAIN | Нет действительной подписи автора и домена нет в DNS. |
0.00 | HTML_MESSAGE | HTML включен в сообщение |
1.00 | KAM_LAZY_DOMAIN_SECURITY | Домен-отправитель не имеет методов защиты от подделки.
|
0.00 | NO_DNS_FOR_FROM | У отправителя конверта нет записей MX или A DNS. |
0.79 | RDNS_NONE | Доставлено во внутреннюю сеть хостом без rDNS. |
2.00 | TO_NO_BRKTS_HTML_IMG | Кому: не хватает скобок, HTML и одного изображения.
|
0.00 | WEIRD_PORT | Использует нестандартный номер порта для HTTP |
- As Ham – пометить письмо как чистое (обучение алгоритма Байеса);
- As Spam – пометить письмо как спам (обучение алгоритма Байеса);
- Забыть – пропустить письмо;
- Как Spam+Report - пометить письмо как спам и отправить информацию о нем в спам-сеть (razor+pyzor);
- Как Ham+Revoke - пометить письмо как чистое и отправить информацию о нем в сеть обнаружения спама (razor+pyzor).
Через консоль
Это делается просто.
Команда выглядит следующим образом: sa-learn --ham /20170224/spam/0DC5B48D4.A739D
В этой команде письмо с ID: 0DC5B48D4.A739D, которое находится в архиве спам-писем за определённую дату /20170224/spam/, помечается как чистое (не спам).
bash--ham
.
Бытует мнение, что SpamAssassin достаточно обучить только эффективной фильтрации почты.
Мы решили обучить SpamAssassin, передавая ему абсолютно все электронные письма, как чистые, так и спам.
Кроме того, мы нашли базу спам-писем и оставили SA на растерзание.
Это обучение помогло более точно откалибровать байесовский алгоритм.
В результате фильтрация становится намного эффективнее.
Такое обучение мы проводим, когда почтовый трафик не очень велик, чтобы успеть проанализировать и отловить максимальное количество писем.
Чтобы SpamAssassin начал работать на полную мощность, на старте ему необходимо передать около 1000 различных писем.
Так что наберитесь терпения и приступайте к тренировкам.
О полной победе над спамом говорить пока рано.
Однако сейчас количество жалоб на спам с наших серверов равно нулю.
Подробнее о самом процессе обучения мы сейчас говорить не будем — не хочу раскрывать все тонкости.
Хотя, если поковыряться в настройках, разобраться не сложно.
P.S.: Эта статья не панацея.
Мы просто решили поделиться с вами одним из наших методов борьбы со спамом.
Всего доброго и да пребудет с вами ветчина! :) Теги: #Хостинг #Системное администрирование #Администрирование сервера #Конфигурация Linux #Спам и антиспам #спам #администрирование #efa
-
Сертификационный Тренинг Novell
19 Oct, 24 -
Поддержка Ноутбуков Acer И Ее Преимущества
19 Oct, 24 -
Оверсан Врёт?
19 Oct, 24 -
Встречайте Fring Для Linux!
19 Oct, 24 -
Скайп: Трафик Как Валюта
19 Oct, 24