Используем Gmail в качестве внешнего фильтра для корпоративной почты::Журнал СА 8.2007
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6417
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7120
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4399
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3086
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3882
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3898
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6389
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3234
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3530
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7364
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10726
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12446
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14097
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9193
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7142
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5447
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4683
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3497
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3213
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3449
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3091
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Используем Gmail в качестве внешнего фильтра для корпоративной почты

Архив номеров / 2007 / Выпуск №8 (57) / Используем Gmail в качестве внешнего фильтра для корпоративной почты

Рубрика: Администрирование /  Электронная почта

Виктор Венявский

Используем Gmail в качестве внешнего фильтра для корпоративной почты

Уже многие оценили качество фильтрации спама и вирусов такого сервиса, как Gmail. Он позволяет размещать почтовую службу для целого домена на своих серверах, после чего почта становится доступна как через Web, так и по протоколу POP3. Такая комбинация возможностей и дает нам способ использовать Gmail как внешний фильтр для почты.

Структура и этапы настройки почты

В статье не описывается настройка почтовой системы на серверах, предполагаем, что почта на корпоративном сервере уже настроена и работает.

Из статьи вы узнаете, как разместить почтовые ящики на Gmail и как получать с них почту по протоколу POP3 для дальнейшего раскладывания в ящики на корпоративном почтовом сервере. Итак, шаги настройки будут включать:

  • Создание учетной записи на Gmail.
  • Проверка владельца домена на Gmail.
  • Создание пользователей на Gmail.
  • Установка и настройка fetchmail.
  • Изменение MX-записей.
  • Тестирование.
  • Дополнительные возможности.

Создание учетной записи на Gmail

Gmail предоставляет два уровня сервиса – коммерческий и бесплатный. В таблице 1 показаны наиболее значимые различия между ними.

Я оставлю выбор версии на ваше усмотрение. Исходя из личного опыта могу сказать, что бесплатная версия очень стабильная, и если нет необходимости коммерческой поддержки почты (например, почтовая служба предоставлена компании-владельцу домена на коммерческой основе), то, как правило, бесплатной версии более чем достаточно. В этой статье я расскажу об использовании бесплатной версии.

Таблица 1. Различия в уровнях сервиса

 

Платная версия

Бесплатная версия

Стоимость

$50 US в год на каждого пользователя

Гарантия 99.9% стабильности

Да

Нет

Дисковое пространство

10 Гб на пользователя

2 Гб на пользователя

Программный интерфейс (API)

Да

Нет

Круглосуточная поддержка

Да

Нет

Название пакета

Premier Edition

Standard Edition, Education Edition

Итак, начинаем создавать учетную запись на Gmail. Для этого идем по адресу http://www.google.com/a, нажимаем на кнопку «Get Started», затем выбираем один из уровней пакета «Standard Edition», «Premier Edition» или «Education Edition». Далее проходим стандартную процедуру регистрации. После завершения регистрации вы попадете на стартовую страницу (см. рис. 1).

Рисунок 1. Стартовая страница

Рисунок 1. Стартовая страница

Проверка владельца домена на Gmail

Служба Gmail требует прохождения этапа проверки владельца домена. Для этого необходимо перейти по ссылке «Verify domain ownership» на стартовой странице. Процедура проверки может происходить по одному из двух сценариев:

  • Создание CNAME в DNS.
  • Загрузку специального файла на сайт домена.

Автор выбрал загрузку файла на сайт домена. Для этого необходимо создать файл http://ваш-домен/googlehostedservice.html и положить в этот файл содержимое, которое вы получите на странице проверки владельца домена (cм. рис. 2).

Рисунок 2. Проверка владельца домена

Рисунок 2. Проверка владельца домена

Создание пользователей на Gmail

На этом этапе нам необходимо создать на Gmail все существующие почтовые ящики. Панель администратора на Gmail предоставляет возможность загрузки списка пользователей. Для перехода на страницу загрузки списка пользователей идем по ссылкам «Users accounts», затем «Upload many users at once». В результате попадаем на страницу, которая предлагает загрузку списка пользователей в формате csv (comma-separated values, данные, разделенные запятыми).

Создаем простой текстовый файл, где каждая строка представляет информацию о каждом пользователе в формате: «Имя почтового ящика, имя, фамилия, пароль». Например:

info, Алексей, Федоров, password1

dns, Константин, Сергеев, password2

После создания файла загружаем его на страницу создания пользователей, и на этом этапе процесс создания почтовых ящиков на Gmail завершен.

Примечание: опцию «Require a password change when new or updated users sign in» (требовать от пользователя сменить пароль при следующем входе в систему) необходимо оставить выключенной.

Установка и настройка fetchmail

Fetchmail – программа, позволяющая получать почту по протоколам POP3, IMAP или SMTP для дальнейшей отправки по протоколу SMTP (локальная доставка тоже поддерживается). Мы будем получать почту с помощью протокола POP3 со всех почтовых ящиков на Gmail и отправлять ее на локальный SMTP-сервер.

Установка fetchmail

Я использую в работе дистрибутив CentOS версии 4.4 (один из дистрибутивов GNU/Linux). Для других платформ процедура не должна сильно отличаться. Скачиваем архив программы с домашней страницы проекта, расположенной на http://fetchmail.berlios.de.

Раскрываем и устанавливаем:

tar -xzvf fetchmail-xx.tgz

cd fetchmail-xx

./configure

make

make install

Конфигурация fetchmail

Работа fetchmail контролируется файлом, в котором описаны адреса POP-серверов, имена пользователей, а также куда отправлять почту после получения ее по протоколу POP3. Синтаксис для нашего случая приведен ниже:

poll pop3-servername proto protocol:

    user  "pop username" password  "password" options ssl to local_username here nokeep

где:

  • pop3-servername – адрес POP3-сервера. Для службы Gmail имя сервера – pop.gmail.com.
  • protocol – протокол, используемый для получения почты по POP3. Для Gmail протокол – POP3.
  • password – незашифрованный пароль для доступа к POP3-ящику.
  • local_username – имя почтового ящика на локальном почтовом ящике.

И таких записей должно быть столько, сколько у нас пользователей.

Для наших двух пользователей файл настройки может выглядеть следующим образом:

set syslog

poll pop.gmail.com proto pop3:

    user  "info@domain.tld" password "password1" options ssl to info here

poll pop.gmail.com proto pop3:

        user  "dns@domain.tld" password  "password2" options ssl to dns here

Первая строка указывает fetchmail на вывод отладочных сообщений в syslog.

Создаем файл fetcmailrc и выкладываем его на наш почтовый сервер в безопасное место. Помните, что этот файл содержит незашифрованные пароли пользователей, поэтому владелец файла должен быть root и права доступа должны быть 600. Автор расположил этот файл в /etc/fetchmail/fetchmailrc.

Запуск fetchmail

Одним из достоинств fetchmail является его способность работать в режиме демона. Для запуска fetchmail в этом режиме при перезагрузке сервера создаем скрипт запуска в /etc/init.d/fetchmail:

#!/bin/sh

# chkconfig: 2345 55 25

# description: fetchmail daemon

 

case "$1" in

    start)

        echo -n "Starting: fetchmail"

        /usr/bin/fetchmail -f /etc/fetchmailrc -D domain_name -d interval  -v

        echo "."

    ;;

    stop)

        echo -n "Stopping service: fetchmail"

                killall fetchmail

        echo "."

    ;;

    restart)

        $0 stop

        sleep 2

        $0 start

    ;;

    *)

        echo "Usage: /etc/init.d/fetchmail {start|stop|restart}" >&2

        exit 1

    ;;

esac

exit 0

где:

  • domain_name – имя нашего домена;
  • interval – время ожидания после каждого получения почты с Gmail.

Далее необходимо запустить демон и включить его в процесс загрузки при старте сервера:

/etc/init.d/fetchmail start

chkconfig fetchmail on

Процедура включения демона в процесс загрузки указано для RedHat-подобных систем.

Предварительное тестирование

Если все процедуры прошли удачно (включая процедуру проверки владельца домена и загрузки пользователей), то в сообщениях syslog (обычно это файл maillog) мы должны увидеть события:

6.2.5 querying pop.gmail.com (protocol POP3)

POP3< +OK Gpop ready for requests from xx.xx.xx.xx 2pf796759nfv

POP3> USER info@domain.tld

POP3< +OK send PASS

POP3> PASS *

POP3< +OK Welcome.

POP3> DELE 1

POP3< +OK marked for deletion

POP3> QUIT

Часть сообщений удалена ввиду их ненужности.

Переключение MX-записей

Это наиболее важный момент, поэтому для переключения MX-записей нужно выбрать время использования с минимальным уровнем активности. Рекомендуется выставить минимальное время TTL (time to live) в DNS и выждать 2-3 дня. Я выставил 5 минут на время процедуры изменения MX-записей, чтобы в случае проблем можно переключить обратно.

Заходим на Gmail как администратор и идем на страницу получения списка MX-записей. Для этого необходимо перейти по ссылкам «Service settings -> Email -> Instructions on how to activate email -> Change MX records». В результате попадаем на страницу, где приведен список MX-записей, которые нужно внести в настройки DNS, обслуживающих вашу зону (см. рис. 3).

Рисунок 3. Список MX-настроек

Рисунок 3. Список MX-настроек

Вам необходимо удалить все MX-записи из настроек DNS-cервера, который обслуживает вашу зону, и добавить MX-записи, как указано на этой странице. Для DNS-сервера BIND это может выглядеть следующим образом:

IN      MX      1       ASPMX.L.GOOGLE.COM.

IN      MX      5       ALT1.ASPMX.L.GOOGLE.COM.

IN      MX      5       ALT2.ASPMX.L.GOOGLE.COM.

IN      MX      10      ASPMX2.GOOGLEMAIL.COM.

IN      MX      10      ASPMX3.GOOGLEMAIL.COM.

IN      MX      10      ASPMX4.GOOGLEMAIL.COM.

IN      MX      10      ASPMX5.GOOGLEMAIL.COM.

Опциально можно оставить адрес корпоративного сервера в списке MX с минимальным приоритетом на тот случай, если все почтовые серверы Gmail недоступны. Хотя в этом случае есть вероятность получения спама или вирусов. Об этом подробнее объяснено в последнем разделе.

Полное тестирование и завершение настроек

На данном этапе нужно протестировать все почтовые адреса для исключения ошибок. Для этого можно воспользоваться двумя простыми скриптами, один – для отправки, второй – для проверки факта получения тестового сообщения на локальном POP3-сервере после отработки fetchmail. Входными параметрами для обоих скриптов является список пользователей в формате CSV, который мы создали ранее для загрузки на Gmail.

Внимание! Скрипт, который отправляет почту, необходимо запускать на компьютере, отличном от почтового сервера, иначе почта будет доставлена напрямую локально, без участия Gmail.

Итак, первый скрипт для отправки тестового сообщения, скрипт send.pl:

#!/usr/bin/perl

use strict;

my $local_domain = 'domain.tld';

my @emails;

open(F, "users.csv") || die "can not open users.csv";

my @emails=<F>;

chomp(@emails);

close(F);

foreach my $i(@emails)

{

    my ($email,$fname,$lname,$password) = split(/\,/,$i);

    open(M, "| mail -s gmail-test $email\@$local_domain");

    print M "gmail-test\n";

    close(M);

Вместо домена «domain.tld» в 3-й строке необходимо поставить имя вашего домена.

Второй скрипт подключается к локальному POP3-серверу, получает сообщения для каждого почтового ящика и ищет сигнатуру «gmail-test» в содержимом сообщений.

Скрипт receive.pl:

01. #!/usr/bin/perl

02. use Net::POP3;

03. use strict;

04. my $pop3_host = 'pop3.domain.tld';

05. my $local_domain = 'domain.tld';

06. my @emails;

07. open(F, "users-list.csv") || die "can not open users-list.csv";

08. my @emails=<F>;

09. chomp(@emails);

10. close(F);

11. foreach my $i(@emails)

12. {

13.   my ($email,$fname,$lname,$password) = split(/\,/,$i);

14.   my $pop_username=$email;

15.   $pop_username .= '@' . $local_domain;

16.   print "testing $email with $password\n";

17.   my $pop = Net::POP3->new($pop3_host, Timeout => 60);

18.   if ($pop->login($pop_username, $password) > 0)

19.   {

20.     my $msgnums = $pop->list;

21.     foreach my $msgnum (keys %$msgnums)

22.     {

23.         my $msg = $pop->get($msgnum);

24.         if(grep /test/, @$msg){

25.             print "email $email is fine\n";

26.         }

27.         else{

28.              print "email $email is bad\n";

29.         }

30.     }

31.   }

32.   else{

33.       print "failed to login to pop3 using $pop_username with password $password\n";

34.   }

35.     $pop->quit;

36. }

Несколько замечаний:

  • В строке 4 необходимо прописать адрес вашего POP3-сервера в переменной $pop3_host.
  • В строке 5 в переменной $local_domain нужно прописать имя вашего домена.
  • Если для авторизации на вашем почтовом сервере используются длинные имена в формате «username@domain.tld», то строку 15 нужно раскомментировать.

Сам процесс тестирования очень прост и включает в себя четыре шага:

  • Отправляем тестовые сообщения на Gmail с помощью send.pl.
  • Ждем несколько минут, пока сообщения не будут доставлены на Gmail.
  • Запускаем демон fetchmail и ждем, пока он не отработает (процесс можно увидеть в системных сообщениях).
  • Запускаем скрипт receive.pl и наблюдаем процесс сканирования сообщений уже на локальном POP3-сервере.

В зависимости от результата этот скрипт распечатает «email email@domain.tld is fine» или «email email@domain.tld is bad». Если в момент проверки какого-либо почтового ящика получаем сообщение об ошибке, необходимо проверить настройки этого почтового ящика на всех компонентах системы.

Gmail на Web

Если на вашем сервере отсутствует такая служба, как webmail, то можно опять воспользоваться возможностями Gmail, которая позволяет пользователям заходить на почтовую службу под вашим доменным именем, например http://webmail.domain.tld. В этом разделе я расскажу, как активировать эту возможность. Для этого нам надо предпринять следующие шаги:

  • Настройка адреса webmail на службе Gmail.
  • Написание скрипта для проверки действительности паролей.
  • Настройка SPF.
  • Тестирование SPF (опционально).

Настройка адреса webmail на службе Gmail

Для начала необходимо сообщить Gmail, что у нас есть собственный адрес для webmail. Для этого входим на Gmail по адресу https://www.google.com/a/cpanel/domain.tld/EmailSettings как администратор домена, далее идем по ссылкам «Service Settings», «Email». Находим пункт «Web address» и нажимаем на ссылку «Change URL».

Далее выбираем «Custom http» и вводим адрес, на котором мы хотим видеть нашу веб-почту. На следующей странице, после нажатия на кнопку «Continue», вы обнаружите инструкции по настройке вашего DNS для создания адреса веб-почты. Эти инструкции сводятся к добавлению записи CNAME, указывающей на ghs.google.com, как приведено для программы BIND (Berkeley Internet Name Domain):

webmail IN CNAME dhs.google.com

Первый шаг для доступа к почте через Web выполнен.

Написание скрипта для проверки валидности паролей

Некоторые пользователи после получения доступа к почте Gmail через webmail захотят поменять пароль учетной записи на cерверах Gmail. Тогда демон fetchmail, который забирает почту с Gmail и раскладывает по почтовым ящикам, не сможет забрать почту для этого пользователя. Есть два варианта для решения этой проблемы:

  • Использование Google API, который позволяет управлять учетными записями автоматически.
  • Периодическое тестирование всех POP3-учетных записей на Gmail с помощью специально разработанного скрипта. Этот скрипт, если не может подключиться к какому-нибудь POP3-ящику, будет отсылать предупреждение системному администратору.

Я пошел по второму пути и создал этот скрипт, который работает по следующему алгоритму:

  • Загружает список пользователей из нашего файла users-list.csv. Подключается к Gmail по протоколу POP3 и пытается аутентифироваться, используя имя пользоваля и пароль.
  • Если аутентификация прошла успешно, то осуществляется переход к проверке следующего адреса. Если произошла ошибка, то через один час (как в данной конфигурации) делается еще одна попытка подключиться. Если после 3 попыток удачного соединения так и не произошло, то скрипт посылает сообщение системному администратору. Несколько попыток необходимы во избежание ложных срабатываний в случае неполадок на Gmail.

Кроме этого, на случай глобального отсутствия соединения с Gmail (например, не работает подключение к Интернету), этот скрипт проверяет доступность сервера Gmail с помощью диагностического средства ping.

Скрипт проверки учетных записей POP3:

#!/usr/bin/perl

use Net::Ping;

use IO::Socket::SSL;

use Mail::POP3Client;

use strict;

my $gmail_host='pop.gmail.com';

my $gmail_port=995;

my $attempts=3;

my $sleep_between_attempts=60*60;

my $domain='domain.tld';

my $admin_email = 'admin@domain.tld';

my $p = Net::Ping->new('icmp');

if(!$p->ping($gmail_host))

{

    print "Failed to ping $gmail_host\n";

    print "Exiting\n";

    exit;

}

my @emails;

open(F, "users-list.csv") || die "can not open users-list.csv";

my @emails=<F>;

chomp(@emails);

close(F);

foreach my $i(@emails)

{

  my ($email,$fname,$lname,$password) = split(/\,/,$i);

    my $succesful=1;

    foreach(my $j=0;$j<$attempts;$j++)

    {

        if(test_pop3account("$email\@$domain",$password))

        {

            $succesful=1;     #successful, lets test next

            last;

        }

        else  # failed for now, lets do it again a bit later

        {

            print "failed to connect to gmail for $email\@$domain.\n";

            print "Sleeping for $sleep_between_attempts seconds\n";

            sleep($sleep_between_attempts);

        }

    }

    # sending alert to admin if the test has failed

    # completelly

    if(!$succesful)

    {

        print "Completelly failed for $email\@$domain\n";

        open (MAIL, '|/usr/sbin/sendmail -t ') || die "Can't open sendmail service";

        print MAIL "To: $admin_email\n";

        print MAIL "From: $admin_email\n";

        print MAIL "Alert! gmail pop3 is bad for $email\@$domain\n";

        print MAIL "\n\nAlert! gmail pop3 is bad for $email\@$domain\n\n";

        print MAIL "Please verify\n\n";

        close MAIL;

    }

    else{

        print "Testing for $email\@$domain was successful\n";

    }

}

sub test_pop3account

{

    my ($email, $password) = @_;

    my $socket = IO::Socket::SSL->new( PeerAddr => $gmail_host,

                       PeerPort => $gmail_port, 

                       Proto    => 'tcp') || die "No socket!";

    my $pop = Mail::POP3Client->new();

    $pop->User($email);

    $pop->Pass($password);

    $pop->Socket($socket);

    return $pop->Connect();

}

В начале скрипта прописаны переменные, которые необходимо установить в соответствии с параметрами вашего домена. Описание переменных приведено в таблице 2.

Таблица 2. Описание переменных скрипта проверки учетных записей POP3

Переменная

Назначение

$attempts

Количество попыток подключиться к серверу Gmail

$sleep_between_attempts

Время выжидания между попытками неудачного подключения, в секундах

$domain

Адрес нашего домена

$admin_email

E-mail-адрес, куда должны отсылаться сообщения о полной невозможности подключения к почте

Теперь можно настроить запуск этого скрипта через CRON с необходимым интервалом. Интервал может сильно разниться, например, если у вашей компании нестабильное или непостоянное подключение к Интернету, то для предотвращения ложных срабатываний скрипт можно запускать с интервалом 2-3 дня.

Настройка SPF

SPF (Sender Policy Framework) известно как средство, которое служит для борьбы с таким явлением, как спам. Подробности о работе этого инструмента можно прочитать на http://www.openspf.org. Суть этой технологии сводится к размещению в DNS-зоны специальной записи TXT, которая описывает серверы, с которых позволена отправка почты от имени вашего домена. Все остальные источники почты от имени вашего домена рассматриваются как отправители спама на серверах-получателях, где есть поддержка проверки SPF.

Итак, у нас может быть две ситуации с SPF:

  1. Отсутствует в записях DNS для вашего домена. Тогда вы можете решить, нужно ли это вам, хотя настройка SPF рекомендуется, потому что в этом случае спам-фильтры на серверах-получателях будут рассматривать письма с вашего домена как посланные из доверенного источника. Если вы решили, что SPF не нужен, тогда оставшуюся часть раздела можно пропустить.
  2. Если у вас уже настроена SPF-запись для вашего домена, то, кроме описания вашего почтового сервера, необходимо внести серверы Gmail в записи, описывающей ваше SPF-правило.

Для создания или обновления SPF необходимо прописать следующую TXT-запись, которая описывает все серверы, отправляющие почту от вашего домена:

«v=spf1 a:10.10.10.15 include:aspmx.googlemail.com ~all»

Инструкция по созданию записей для SPF в DNS взята с адреса http://www.google.com/support/a/bin/answer.py?hl=en&answer=33786.

В таблице 3 смотрите описание каждого элемента.

Таблица 3. Описание элементов записи для SPF

Элемент

Описание

v=spf1

Версия SPF

a:10.10.10.15

Указывает, что сервер с IP-адресом 10.10.10.15 тоже может отправлять почту с нашего домена. Здесь надо указать ваш собственный почтовый сервер, с которого отправляется почта во внешний мир

include:aspmx.googlemail.com

Включить записи SPF службы Gmail в процедуру проверки. Таким образом, если  пользователь почты вашего домена отсылает  сообщение с webmail службы Gmail, то сервер-получатель сообщения обнаружит, что серверы Gmail также разрешены для отправки почты от имени вашего домена

~all

Если предыдущие элементы не совпали с характеристиками сервера-отправителя, то тогда для этого отправителя применяется шаблон «all».  Модификатор «~» перед шаблоном «all» означает  SoftFail, и эта оценка может  учитываться спам-фильтрами для оценки вероятности, что сообщение – спам

Тестирование SPF-настроек

Для тестирования нужно отправить сообщение самому себе с сервера, который разрешен для отправки почты от имени нашего домена. Почтовая служба Gmail при прохождении через нее писем вносит в заголовок результаты работы SPF, поэтому нужно, чтобы наше сообщение прошло через указанную службу. После получения тестового сообщения нужно проверить заголовки. Если все нормально настроено, то должен присутствовать такой элемент:

Received-SPF: pass (google.com: domain of info@domain.tld

designates 10.10.10.15 as permitted sender)

Дополнительные возможности

В этом разделе будут упомянуты две вещи, на которые я настоятельно рекомендую обратить внимание. Моя практика показала, что многие спамеры создают базы данных с IP‑адресами MX-записей, и эти базы хранятся в течение длительного времени, что приводит к получению спама напрямую. Для решения этой проблемы можно немного поменять наше решение и выполнить два взаимосвязанных шага:

  • Удалить MX-запись, которая указывает на наш почтовый сервер (описание MX-записей было приведено в разделе «Переключение MX-записей».
  • Запретить входящие соединения на портах 25 и 465.

Разумеется, эта дополнительная защита от спама может быть осуществлена, если все домены на вашем почтовом сервере обслуживаются Gmail.

Также рекомендуется создать пользователя abuse@domain.com на Gmail. Этот адрес используется, как правило, для получения жалоб, если ваш домен вовлечен в нелегальные действия, такие как спам или размещение нелегального содержимого на корпоративном сайте. Если вы вовремя не отреагируете на жалобы, то Gmail может прекратить обслуживать ваш домен (с возможным перемещением в черный список). Пользователь abuse@domain.com зарезервирован на Gmail, поэтому создать эту запись как обычного пользователя не получится.

Для перенаправления почты с адреса abuse@ в административной панели Gmail нужно перейти по ссылкам «Users accounts -> Create mailing list» и на этой странице создать mailing list abuse@domain.com и в качестве подписчика добавить адрес пользователя, который обрабатывает жалобы.

Заключение

Эта статья дает основные понятия и шаги по использованию Gmail как внешний почтовый фильтр. За рамками статьи остались такие вопросы как:

  • Поддержка множественных доменов в fetchmail.
  • Создание скрипта для автоматической проверки правильности настроек.

Последователям этого метода следует ознакомиться с правилами Gmail перед началом использования данного сервиса.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru