Мы ищем способ блокировать спам в зависимости от географического положения с помощью фильтрации с помощью geoip.
контекст: у нас редко бывает какая-либо электронная переписка за пределами США, поэтому мы хотели бы заблокировать всю входящую электронную почту за пределами США, за исключением, возможно, одной или двух стран.
После небольшого поиска в Google я нашел несколько решений, которые могут работать (или нет), но я хотел бы знать, что в настоящее время делают другие системные администраторы или что они порекомендуют в качестве решения.
Вот что я нашел на данный момент:
Используя PowerDNS и его бэкэнд GeoIP, можно использовать geoip для фильтрации. Обычно этот бэкэнд используется для распределения нагрузки как своего рода балансировки нагрузки, но я не понимаю, почему его нельзя использовать и для уничтожения спама?
Возможно, используйте базу данных стран Maxmind lite и некоторые сценарии для выполнения аналогичной работы.
В идеале я ищу решение, которое бы выдерживало приличную нагрузку и хорошо масштабировалось ... не так ли? ;)
Заранее спасибо за вашу помощь! :-)
Из этого исследовательская работа по SNARE, Представляю этот самородок:
Для радиолюбителей 90% сообщений проходят около 4 000 км или меньше. С другой стороны, для спама только 28% сообщений попадают в этот диапазон.
Мои личные наблюдения совпадают с вашими и отмечаю, что даже сейчас, в 2014 году, географическое положение по-прежнему является отличным средством прогнозирования спама. Как указывали другие, местоположение GeoIP (страна или расстояние) в одиночестве является не достаточно надежная основа для блокировки соединений. Однако объединение расстояния GeoIP с некоторыми другими частями данных о соединении, такими как FCrDNS, достоверность имени хоста HELO, ОС отправителя (через p0f) и SPF, обеспечивает надежность 99,99% (например, вероятность 0,01% FP) за отклонение 80% подключений перед фаза ДАННЫХ.
В отличие от некоторых тестов SMTP (таких как список DNSBL на zen.spamhaus.org), которые имеют очень низкие показатели FP, ни один из вышеупомянутых тестов по отдельности не является достаточным основанием для отклонения соединений. Вот еще один шаблон, который попадает в эту категорию - отправитель конверта пользователь совпадает с получателем конверта пользователь. Я заметил, что около 30% спама следует этой схеме: от: matt@spammer-controlled-domain.tld до: matt@my-domain.com. Такое случается далеко чаще в спаме, чем в действительных почтовых потоках. Другой шаблон спамера - несовпадающий конверт и заголовок из домена.
Эвристически оценивая эти характеристики "появления спама", можно создать основу для чрезвычайно надежной системы фильтрации. SpamAssassin уже делает (или может делать) большую часть того, что я описал. Но вы также просили решение, которое бы справлялось с достаточной нагрузкой и хорошо масштабировалось. Несмотря на то, что SpamAssassin великолепен, я не видел «значительного снижения потребления ресурсов» в примечаниях к выпуску 3.4.
Все тесты, перечисленные в первом абзаце, выполняются до SMTP DATA. Объединение этих ранних тестов создает достаточную основу для отклонения спам-соединений до SMTP DATA без каких-либо ложных срабатываний. Отклонение соединения до данных SMTP позволяет избежать затрат на полосу пропускания, связанных с передачей сообщения, а также большей нагрузки на ЦП и сеть из-за фильтров на основе содержимого (SpamAssassin, dspam, проверка заголовков, DKIM, URIBL, антивирус, DMARC и т. Д.) Для подавляющего большинства. подключений. Чем меньше работы на одно соединение, тем лучше масштабируется.
Для меньшего подмножества сообщений, которые не определены в SMTP DATA, соединение разрешено, и я оцениваю сообщение по результатам фильтров содержимого.
Чтобы выполнить все, что я описал, я немного взломал SMTP-сервер на основе node.js под названием Haraka. Масштабируется очень и очень хорошо. Я написал собственный плагин под названием Karma, который выполняет эвристическую оценку, и я поместил все оценки в файл конфигурации. Чтобы понять, как работает карма, взгляните на конфигурационный файл karma.ini. Я получаю результаты фильтрации "лучше, чем Gmail".
Взглянем на тесты, запускаемые FCrDNS, helo.checks и data.headers. Они могут предоставить вам дополнительные идеи для фильтрации. Если у вас есть дальнейшие идеи по надежному обнаружению спама с помощью дешевых (до DATA) тестов, мне интересно их услышать.
Другие вопросы, которые вам нужно задать: каков ваш допустимый уровень ложноположительных и ложноотрицательных результатов (сколько законной почты вы готовы потерять и сколько нежелательной почты вы готовы принять?)
Какую дополнительную задержку вы готовы принять? Некоторые очень эффективные методы защиты от спама с низким уровнем фальсификации (например серые списки) может задерживать почту. Это может раздражать некоторых пользователей, которые (нереально) ожидают, что электронная почта будет немедленным общением.
При планировании системы защиты от спама подумайте о том, насколько вы хотите привлечь внешние расходы. Например, черные списки на основе ipfilter неумолимы, но не влияют существенно на другие системы. Серые списки экономят пропускную способность отправителя и получателя, но дольше удерживают почту в удаленных очередях. Сообщения о недоставке почты и системы запроса / ответа могут (ab) использоваться для взлома почтовой бомбы на несвязанную третье лицо. Такие методы, как отказ от обвинений, активно привлекают внешние расходы за счет намеренного удержания открытых SMTP-соединений в течение длительных периодов времени. DNSBL требует, чтобы вы уступили некоторую часть контроля третьей стороне (составителям черного списка), но, в конечном итоге, как почтовый администратор, вы несете ответственность за разъяснение своей политики блокировки своим пользователям и руководству. В результате каждая технология имеет этические соображения, и важно осознавать свое влияние на других.
Насколько терпимо вы будете относиться к неправильно настроенным внешним системам? (например те, у кого нет FCrDNS, сломанные строки HELO / EHLO, несанкционированная конвейерная обработка, те, которые не повторяют должным образом после временного кода ошибки 4xx, и т.п.)
Сколько времени, денег, пропускной способности и оборудования вы хотите посвятить решению этой проблемы?
Ни один из методов не является эффективным, но согласованный подход глубокоэшелонированной защиты может существенно уменьшить входящий мусор. DNSBL, URIBL, серые списки, фильтрация контента и вручную настроенные белые и черные списки хорошо работают в моем небольшом домене, но я могу позволить себе быть более либеральным в том, что я отвергаю.
Если в последнее время ничего не изменилось, занесение IP-адресов в черный список по стране происхождения не очень эффективно. У меня была идея использовать ASN и отпечаток ОС (через p0f) для оценки качества входящего соединения, но я не стал ее преследовать; статистику было бы интересно посмотреть, но я не уверен, что она будет более полезной, чем уже описанные стандартные методы. Преимущество использования информации GeoIP, ASN и отпечатков ОС заключается в том, что, хотя они по отдельности могут быть слабыми предикторами качества соединения, они доступны во время соединения TCP / IP, задолго до того, как вы достигнете уровня SMTP (fsvo "long"). комбинации, они могут оказаться полезными, и это было бы полезно, потому что спам становится дороже блокировать по мере того, как он приближается к конечному пользователю.
Я не пытаюсь быть скептиком; «необычные» кодировки символов и информация GeoIP, вероятно, хорошо коррелируют со спамом, но могут быть недостаточно надежными для использования в качестве единственного критерия для блокировки почты. Однако они вполне могут быть полезными индикаторами в такой системе, как Spamassassin. Вывод заключается в том, что защита от спама - сложная проблема в анализе затрат, рисков и выгод, и важно знать, каковы ваши ценности, прежде чем внедрять или изменять систему.
Использование комбинации DNSBL на уровне почтового сервера / приложения и GEOIP на уровне сервера должно удалить большую часть вашего спама без необходимости выполнять оценку спама, положительные результаты и т. Д.
Это особенно верно, если ваш почтовый сервер / компания получает электронную почту только из нескольких известных стран, таких как США и Канада.
Почтовый сервер Argosoft для Windows отлично справляется с этим, но я не знаю аналогичного решения на базе Linux. Вот почему я бы рекомендовал использовать доверенный MTA в Linux (желательно с DNSBL), а затем использовать решение GEOIP на уровне сервера.
Надеюсь это поможет.
Разве вам не лучше было бы использовать что-то вроде черного списка Spamhaus ZEN (http://www.spamhaus.org/zen/) вместо этого? Это бесплатно, если трафик электронной почты вашей организации составляет менее 100 000 SMTP-подключений и 300 000 запросов DNSBL в день.
Конечно, их требования к использованию (http://www.spamhaus.org/organization/dnsblusage.html) может потребоваться подписка на канал данных, если у вас намного больше ежедневного почтового трафика, но на этом уровне использования (прочтите мелкий шрифт внизу страницы) вам, вероятно, не понадобится административная нагрузка по управлению своими собственными все равно заблокировать список.
Также есть патч geoip для netfilter / iptables для Linux. Вы можете использовать это, чтобы заблокировать 25 для вашего почтового сервера, если это Linux. Вы можете использовать Linux в качестве брандмауэра для своего почтового сервера с этим патчем iptables. Самое приятное то, что это бесплатно :-)
Я подумал, что вы, возможно, хотели бы услышать, что уже есть коммерческие поставщики средств защиты от спама, которые делают это ... хотя IME он добавляет "балл" спама для стран за пределами вашей родной территории, чтобы предотвратить чрезмерное блокирование.
Можно ли, например, хорошо интегрировать со SpamAssassin?
Вы также можете подумать, в каком наборе символов находится электронное письмо.
Что касается реализации - существует несколько недорогих коммерчески доступных баз гео-IP. Я был бы склонен интегрировать их «вручную» - чтобы вы могли, по крайней мере, позволить сообщению доходить до точки, где вы знаете пару отправителей-получателей, для регистрации.
HTH,
Том
Я использовал Отправить почту вместе с milter-greylist именно для этого в течение нескольких лет на нескольких почтовых серверах среднего объема без каких-либо проблем. Легко настроить желаемые правила GeoIP, SPF, белого списка, DNSBL и т. Д. В greylist.conf для выборочного применения серых списков.
Вот встроенное устройство, которое работает с маршрутизаторами и брандмауэрами для блокировки IP-трафика по странам и черных списков IP-адресов на скорости линии. И Arclight прав, если вы не готовы предполагать увеличенную задержку и падение TCP-соединений, вам нужно специализированное устройство, подобное этому Блокировщик IP от TechGuard для поддержания защиты линейной скорости. TechGuard также только что опубликовал данные о влиянии списков контроля доступа на маршрутизаторы и брандмауэры.