Поиск по этому блогу

понедельник, 25 мая 2009 г.

Postfix донастройка main.cf

Postfix и безопасность почтовой системы.

Страница в разработке

Эта страница в текущее время находится в разработке участником: Farataa

Статья направлена на описание:

Предложения и жалобы просьба излагать на странице обсуждения.

Содержание [убрать]
1 Введение.
2 Необходимые пакеты
3 Используемые USE-флаги
4 Настройка MailScanner
5 Настройка Postfix.

[править]
Введение.

В связи с засилием спама, а также вирусными эпидемиями, когда зараженные компьютеры внутри сети начинают спамить через ваш корпоративный или провайдерский релей, существует необходимость каким-то образом эту опасность уменьшить. В данной статье не рассматриваются вопросы установки почтовой системы и сопутствующих пакетов, а только настройка ограничений, реализуемых ими, в единое работоспособное целое. Также, я постараюсь не привязываться к определённому дистрибутиву UNIX или GNU/Linux.
[править]
Необходимые пакеты
mail-mta/postfix
dev-libs/cyrus-sasl
mail-filter/MailScanner
mail-filter/sqlgrey
app-antivirus/clamav
[править]
Используемые USE-флаги

nls clamav postfix pam sasl ssl authdaemond postgres
[править]
Настройка MailScanner Эта статья очень короткая. Вы можете помочь ru.gentoo-wiki.com добавив как минимум 25 строк к этой статье.

[править]
Настройка Postfix.

После установки postfix и начальной настройки, открываем файл /etc/postfix/main.cf.
Файл: /etc/postfix/main.cf
# Отклонять команду ETRN
smtpd_etrn_restrictions = reject

# Запретить исходящую почту с наших доменов, но с несуществующих у нас адресов
smtpd_reject_unlisted_sender = yes

# Запретить письма для неизвестных адресов получателей
smtpd_reject_unlisted_recipient = yes

# Отключает SMTP команду VRFY. В результате чего, невозможно определить существование определенного ящика.
#Данная техника (применение команды VRFY) используется спамерами для сбора имен почтовых ящиков.
disable_vrfy_command = yes

# Требует команды helo от подсоединившихся клиентов
smtpd_helo_required = yes

# требует окружать полученные в MAIL FROM и RCPT TO адреса угловыми скобками <>, а также, чтобы они не содержали лишних фраз
strict_rfc821_envelopes = yes

# Всегда отправлять EHLO вначале SMTP сессии
smtp_always_send_ehlo = yes

# Ожидание до RCPT TO перед выяснением smtpd_client_restrictions, smtpd_helo_restrictions и smtpd_sender_restrictions
# или до ETRN перед выяснением smtpd_client_restrictions, smtpd_helo_restrictions.
# Такое поведение еще обеспечивает лучшую читаемость логов.
smtpd_delay_reject = yes

# Максимальное количество ошибок, которое может сделать удаленный SMTP клиент. При превышение данного числа Postfix отсоединится.
smtpd_hard_error_limit = 1

# Интервал времени в течение которого SMTP сервер Postfix должен послать ответ, а удаленный SMTP клиент получить запрос
smtpd_timeout = 30s

# Интервал времени, в течение которого SMTP клиент должен послать SMTP команду HELO или EHLO и получить ответ сервера.
smtp_helo_timeout = 15s

# Интервал времени, в течение которого SMTP клиент должен послать SMTP команду RCPT TO и получить ответ сервера.
smtp_rcpt_timeout = 15s

# ограничение на количество одновременных получателей письма, по умолчанию 1000 :)
smtpd_recipient_limit = 40

# Время хранения в очереди боунсов
bounce_queue_lifetime = 1d

# Время хранения в очереди обычных писем, может принимать значения: s (seconds), m (minutes), h (hours), d (days), w (weeks).
maximal_queue_lifetime = 3d

# Минимальный интервал повторной отправки писем (если получатели использую грейлистинг небольшое значение этого интервала
# позволяет немного уменьшить очередь, по умолчанию здесь слишком большое значение в 4000s)
minimal_backoff_time = 180s

# Максимальный интервал повторной отправки писем. Письма которые уже давно лежат в очереди будут повторно
# отправляться раз в 6 часов. По умолчанию здесь наоборот маленькое значение.
maximal_backoff_time = 6h


# Включаем поддержку sasl аутентификации
smtpd_sasl_auth_enable = yes

# логи
smtpd_sasl_authenticated_header = yes

# Необходимо для корректной работы клиентов, использующих устаревший метод AUTH, например outlook express
broken_sasl_auth_clients = yes

# Запрещаем анонимную авторизацию
smtpd_sasl_security_options = noanonymous


#Определяем свои собственные классы запрета.
smtpd_restriction_classes = greylist, bolt

#Класс для применения грейлистинга. Подразумевается, что на порту 2501 интерфейса 127.0.0.1 уже запущен демон грейлистинга.
greylist = check_policy_service inet:127.0.0.1:2501, permit

#Класс для запрета отправки писем из нашего домена без авторизации.
bolt = reject_plaintext_session, permit

smtpd_client_restrictions =
# разрешаем "своим" все
# permit_mynetworks,
# проверяем валидность хостов
check_client_access regexp:/etc/postfix/client_check.pcre,
# разрешаем все для тех, кто пройдет SASL-авторизацию по SMTP
permit_sasl_authenticated,
# отклоняем письма с хостов, которые не имеют обратной записи и обратная запись которых не совпадает с прямой
reject_unknown_client_hostname,
# Проверяем IP клиента на наличие его в базе rbl
#reject_rbl_client http.dnsbl.sorbs.net,
#reject_rbl_client soks.dnsbl.sorbs.net,
#reject_rbl_client smtp.dnsbl.sorbs.net,
#reject_rbl_client dul.dnsbl.sorbs.net,
#reject_rbl_client,
#xbl.spamhaus.org,
# если все вышеперечисленное подошло, идем дальше
permit



smtpd_helo_restrictions =
# разрешаем все для внутренних клиентов
#permit_mynetworks,
# разрешаем все для тех, кто пройдет SASL-авторизацию по SMTP
# permit_sasl_authenticated,
# проверяем отправителей
# check_sender_access pcre:/etc/postfix/stupid_programs.regex,
# Отклоняем запрос, когда синтаксис HELO или EHLO невернен
reject_invalid_helo_hostname,
# Отклоняем запрос, когда доменное имя хоста в HELO или EHLO не является полностью удовлетворяющим требованиям RFC.
reject_non_fqdn_helo_hostname,
# Отклоняем запрос, когда имя хоста в HELO или EHLO не имеет A или MX днс-записи
reject_unknown_helo_hostname,
# Если надо, проверяем по спискам rbl, есть ли домен из HELO/EHLO в них
# reject_rhsbl_helo dnsbl.sorbs.net
# если все вышеперечисленное подошло, идем дальше
permit

smtpd_sender_restrictions =
# "своим" можно и "просто"
# permit_mynetworks,
# см комментарий к разделу smtpd_helo_restrictions
# permit_sasl_authenticated,
reject_non_fqdn_sender,
# Отклоняется запрос, если Постфикс не обнаруживает окончательного места назначения для адреса отправителя и адрес в MAIL FROM не содержит A/MX днс-записиили когда имеется MX запись в виде хоста нулевой длины
reject_unknown_sender_domain,
# если надо заблокировать
# check_sender_access pcre:/etc/postfix/block_bad.regex,
# Отклоняем запрос, когда письмо на адрес из MAIL FROM отбивается или когда адрес отправителя недоступен. Проверка адресов управляется сервером проверки verify (см. verify(8), также http://www.postfix.org/ADDRESS_VERIFICATION_README.html)
#reject_unverified_sender,
# Если адрес из MAIL FROM есть в rbl, то отклоняем
# reject_rhsbl_sender dnsbl.sorbs.net,
# если все вышеперечисленное подошло, идем дальше
permit

smtpd_recipient_restrictions =
# разрешаем "своим" все
#permit_mynetworks,
permit_sasl_authenticated,
# см комментарий к разделу smtpd_sender_restrictions
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
# запрещаем принимать письма для несуществующих в системе адресов
reject_unlisted_recipient,
#reject_plaintext_session,
# Отклоняем письмо, если домены из RCPT TO содержатся в rbl
#reject_rhsbl_recipient dnsbl.sorbs.net,
# Отклоняет запросы, кроме тех, что относятся к релею на наш домен, указанный в $relay_domains или для локальной доставки на домены, указанные в $mydestination, $inet_interfaces, $proxy_interfaces, $virtual_alias_domains, or $virtual_mailbox_domains,
# без этой строки сервер становится открытым релеем.
reject_unauth_destination,
# отдельные правила для получателей:
check_recipient_access pcre:/etc/postfix/recipient_checks.pcre,
# проверяем отправителей
check_sender_access pcre:/etc/postfix/sender_access.regex,
#reject_plaintext_session,
# если все вышеперечисленное подошло, идем дальше
permit

smtpd_data_restrictions =
# запрещаем выдачу писем и команд в поток, как это делают нетерпеливые спамеры
reject_unauth_pipelining
В файле /etc/postfix/client_check.pcre укажите критерии, по которым будут фильтроваться клиентские хосты, причем, желательно развёрнуто указать, что надо сделать валидным хостам, если они таки попали под ограничение.
Файл: /etc/postfix/client_check.pcre
/(modem|dia(l|lup)|dialin|dsl|p[cp]p|cable|catv|poo(l|les)|dhcp|client|customer|user|[0-9]{6,})(-|\.|[0-9])/ REJECT Are you spamer? Please contact with postmaster@yourdoamin.tld over correct ISP.
/([0-9]{,4}\-[0-9]{,4}\-[0-9]{,4}\-[0-9]{,4})/ REJECT Are you spamer? Please contact with postmaster@yourdomain.tld over correct ISP.
/([0-9]{,4}\.[0-9]{,4}\.[0-9]{,4}\.[0-9]{,4}.{4,})/ REJECT Are you spamer? Please contact with postmaster@yourdomain.tld over correct ISP.
Файл /etc/postfix/recipient_checks.pcre служит для отдельной обработки некоторых получателей, например тех, кому не нужен грейлистинг.
Файл: /etc/postfix/recipient_checks.pcre
/^anyone\@yourdomain\.tld$/ bolt
Соответственно, /etc/postfix/sender_access.regex регулирует обработку для отправителей. Поскольку нам не надо свой собственный домен в серый список помещать, мы разрешим отсылать ему письма после авторизации, а остальных прогоняем через серый список:
Файл: /etc/postfix/sender_access.regex
/yourdomain.tld$/ bolt

/./ greylist

среда, 20 мая 2009 г.

Кнопка home консоль freebsd

кнопка home в freebsd
кнопка end в freebsd
кнопка delete в freebsd

В (homedir)/.cshrc
забиваем

bindkey "\e[3~" delete-char
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line