или linux, кроме sendmail есть postfix где настройка посложнее, но может на двух трех серверах бесплатно проверять на спамеров и вирусы. И может по 250 мегабайт отправлять письма, на мэйл ру и других бесплатных 15-20мб. fastmail вроде 40.
FreeBSD + sendmail
Задача:
Настроить SMTP сервер для отправки и приема почты для домена test.local
/etc/rc.conf:
sendmail_enable=”YES”
### Отправка
По умолчанию отправляется почта только локально (127.0.0.1), разрешим оправку от сети 192.168.0.0/24
/etc/mail/access:
Выполняем команду make в /etc/mail/
### Прием
#Способ 1 (Указываем домен test.local, для которого принимаем почту) с перезагрузкой:
/etc/mail/local-host-names:
test.local
/etc/rc.d/sendmail restart
#Способ 2 (/etc/mail/access и /etc/mail/mailertable) без перезагрузки:
/etc/mail/access:
/etc/mail/mailertable:
test.local local:
Выполняем команду make в /etc/mail/
### Адрес получателя почты root и postmaster, + группа пвссылки
/etc/mail/aliases:
root: user@test.local postmaster: root simpleuser: root, postmaster@test.local
Выполняем команду make в /etc/mail/ или newaliases
### Антивирус ClamAv
Подключается через интерфейс Milter к sendmail
cd /usr/ports/security/clamav/ && make install clean
[X] MILTER Compile the milter interface
Демоны ClamAv:
clamav – сам ClamAv
clamav-freshclam – отвечает за обновление антивирусных баз
clamav-milter — интерфейс Milter взаимодействия с sendmail
/etc/mail/sendmail.cf
В нем описаны действия с письмами, для изменения настроек есть макропроцессор m4
С помощью макропроцессора m4 генерируется файл настроек sendmail
При установке ОС в /etc/mail/ создаются файлы “имя_хоста”.mc и “имя_хоста”.submit.mc
(в примере test.local и test.local.submit.mc)
Это по сути есть макросы, на основе которых генерируются файлы настроек
Один для локальной отправки писем, второй во вне
Редактируем test.local.mc:
INPUT_MAIL_FILTER(clamav',
S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m;C:30s;E:10m’)dnl define(confINPUT_MAIL_FILTERS',
clamav’)
Выполняем команду make в /etc/mail/
Макропроцессор m4 создаст файл test.local.cf,
После этого выполняем команду make install в /etc/mail/
test.local.cf будет переименован в sendmail.cf
#Запускаем ClamAv
/etc/rc.conf:
clamav_clamd_enable=”YES”
clamav_freshclam_enable=”YES”
clamav_milter_enable=”YES”
/usr/local/etc/rc.d/clamav-freshclam start
/usr/local/etc/rc.d/clamav-clamd start
/usr/local/etc/rc.d/clamav-milter start
/etc/rc.d/sendmail restart
### Проверяем
Пользователь user у меня был добдавлен в сестеме
Если у вас нет, добавьте с помощью adduser
telnet localhost 25
ehlo test.local
mail from: user@test.local
rcpt to: simpleuser@test.local
data
Hello test!
.
quit
less /var/log/maillog
cat /var/mail/root
cat /var/mail/user
подтверждаю что проверка из telnet правильная. (на винде он ставится а на фряхе и убунту есть в базовых программах). clamav можно не настраивать.
чуть больше разьяснение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
Конфигурирование Sendmail Все удобочитаемые и неудобочитаемые конфигурационные файлы Sendmail находятся в каталоге /etc/mail. В большинстве случаев, когда сервер занимается приемом входящей почты, предметом беспокойства для вас будут всего четыре файла: /etc/mail/access, /etc/mail/aliases, /etc/mail/mailertable и /etc/mail/relay-domains. Файл access позволяет управлять доступом к почтовому серверу на уровне доменов и отдельных хостов. Файл aliases содержит карту перенаправлений электронной почты для локального хоста. Файл mailertable позволяет переопределять записи типа MX для данного почтового сервера. Файл mailertable особенно удобен при использовании системы FreeBSD для обеспечения дополнительной степени защиты в проприетарных системах с недостаточным уровнем безопасности, таких как Microsoft Exchange. Файл relay-domains содержит перечень имен доменов и адресов, для которых ваш сервер будет выполнять функции ретранслятора электронной почты. В основном, в этот список будут включаться клиенты, использующие вашу машину в качестве почтового сервера, однако в этот список могут попасть и другие домены, для которых ваш сервер будет играть роль резервного ретранслятора почты. Для каждого из этих файлов (за исключением relay-domains) имеется соответствующая база данных, файл с расширением .db. Подобно файлам /etc/passwd.db и /etc/spwd.db, они создаются из текстовых файлов для обеспечения программ более быстрым способом доступа к данным. После изменения текстового файла вам придется обновлять и соответствующий файл базы данных, о чем подробнее рассказано при рассмотрении каждого конкретного файла. Файл access Файл /etc/mail/access позволяет явно определить, кто сможет передавать почту через вашу систему. Этот файл обычно используется, чтобы ограничить прием почты от нежелательных корреспондентов. По умолчанию Sendmail отвергает любые почтовые сообщения, не предназначенные для локальной системы. Этот файл позволит переопределить другие правила Sendmail, в частности — черные списки. База данных с правилами доступа в идеале должна использоваться для описания редких исключений из других правил, описываемых параметрами настройки Sendmail, хотя есть и задачи, которые можно решить только с помощью базы данных access. Файл /etc/mail/access состоит из двух колонок. В левой колонке указываются имя домена, имя хоста, IP-адрес или блок IP-адресов, откуда приходит электронная почта. В правой колонке указываются инструкции, определяющие действия с электронной почтой. Это может быть одна из инструкций RELAY, OK, REJECT или DISCARD. Кроме того, здесь же с помощью инструкции ERROR можно определить текст своего сообщения об ошибке для определенных хостов или доменов. Умудренные опытом администраторы Sendmail могут также указывать свои коды ошибок, но для этого требуется более глубокое знание протокола SMTP, чем может дать эта книга. Например, ниже разрешается прием почты от локального хоста с IP-адресом 127.0.0.1. Это всегда желательное правило, на случай если кто-то по ошибке занесет локальный хост в черный список базы данных о спамерах. Правило RELAY предписывает Sendmail перенаправлять электронную почту локального происхождения в любом направлении. Перечень допустимых IP-адресов локальной сети также поможет преодолеть ограничения, если вдруг ваша компания попадет в черный список, которым вы пользуетесь. Безусловно, вы прекратите пользоваться черным списком, в котором перечислена ваша компания, но когда вас занесут в черный список, данное правило позволит безболезненно дожить до того момента, когда вы это обнаружите. Подобно /etc/login.access, в файле /etc/mail/access нельзя указывать диапазоны IP-адресов в современной нотации, но можно указывать часть IP-адреса, соответствующую диапазону адресов. Ниже я хотел включить диапазон адресов 192.168.0.0/23, но из-за недостатка, указанного выше, мне пришлось включить два блока IP-адресов 192.168.0 и 192.168.1: 127.0.0.1 RELAY 192.168.0 RELAY 192.168.1 RELAY Инструкция OK — более строгая, она означает, что демон Sendmail должен только принимать, но не ретранслировать электронную почту от указанных хостов. Допустим, у вас имеется компания-партнер, постоянно попадающая в черный список только потому, что ее интернет- провайдер также обслуживает известного спамера. В этом случае с помощью инструкции OK можно определить правило, по которому будет приниматься почта от этой компании: theircompany.com ОК Еще более строгой инструкцией является инструкция REJECT, которая предписывает категорически отвергать любую почту, поступающую из указанного источника. Предположим, некто с IP-адресом 192.168.8.83 передает вам огромные объемы электронной почты, пытаясь вызвать переполнение жесткого диска на вашем почтовом сервере. В этом случае вы можете отказаться от приема почты с помощью инструкции REJECT: 192.168.8.83 REJECT Вы можете отвергнуть почту, послав в ответ собственное сообщение об ошибке и указав текст сообщения правее инструкции ERROR. Обычно, отвергая прием почты, Sendmail генерирует код сообщения 550. Ваше сообщение об ошибке увидит конечный пользователь, поэтому проявляйте определенную долю такта при создании своих сообщений. Текст сообщения должен окружаться кавычками, чтобы Sendmail не удалил пробелы и не изменил его каким-либо другим способом. suckycompany.com ERROR: 550 "Ваша мама весьма забавно одевает вас" Наконец, некоторые хосты могут быть настолько недружелюбными к вам, что вы даже видеть не хотите почту, поступающую от них. И даже не желаете утруждать себя отклонением сообщений от них. В этом случае используйте инструкцию DISCARD: absolutefreebsd.com DISCARD Файл aliases Файл /etc/mail/aliases содержит пути перенаправления электронной почты для конкретных учетных записей или пользователей. Каждая строка в этом файле начинается с псевдонима, а после него через двоеточие указывается список действительных пользователей системы, которым должна быть перенаправлена почта. Почтовые псевдонимы учитываются как в конфигурации приема, так и в конфигурации передачи почты. Пересылка почты от одного пользователя другому Многие администраторы предпочитают пересылать почту, отправленную пользователю root, на действительную учетную запись. Следующий пример демонстрирует, как организовать пересылку почты пользователя root на другую учетную запись: root: mwlucas@AbsoluteFreeBSD.com В действительности многие адреса электронной почты не имеют учетных записей, связанных с ними. Например, обязательный адрес postmaster@ обычно не связан с действительной учетной записью. Пересылать такую электронную почту на действительную учетную запись можно с помощью псевдонима: postmaster: root Согласно этим двум примерам почта для postmaster будет пересылаться на адрес root, а с адреса root — мне, то есть я буду получать всю почту, которая поступает на адреса root@ и postmaster@ на этой машине. Файл aliases уже содержит несколько стандартных адресов интернет-сервисов, а также псевдонимы для всех учетных записей сервисов FreeBSD, используемых по умолчанию. Все они по умолчанию выполняют переадресацию на учетную запись root. Определив действительный адрес электронной почты для псевдонима root, вы автоматически будете получать все системные электронные сообщения. Псевдонимы как списки рассылки В определении псевдонима можно также перечислить несколько пользователей, создавая таким способом небольшие локальные списки рассылки электронной почты. Данный прием не подходит для организации динамических списков, где пользователи часто подписываются и отписываются, но он вполне подходит для быстрой организации простых списков: sales: mwlucas, bpollock, sales@nostarch.com Пересылка почты в файлы С помощью файла aliases можно реализовать еще более интересную возможность — пересылку сообщений в другие пункты назначения, не являющиеся адресами электронной почты. Если указать имя файла, Sendmail будет дописывать сообщения в этот файл. Можно организовать протоколирование всей почты, поступающей на электронный адрес, например так: mwlucas: /var/log/mwlucas-mail, mwlucas Пересылка почты программам Кроме того, можно пересылать почту программам для автоматической обработки. Для этого просто укажите полный путь к программе после символа вертикальной черты (|). Например, если у вас есть сценарий для обработки входящей почты, поступающей на определенный адрес, организовать пересылку почты можно с помощью такого определения псевдонима: orders: |/usr/local/bin/process-orders.pl Включения Наконец, в файл aliases можно включать содержимое других файлов. Это позволит доверенным пользователям изменять свои псевдонимы самостоятельно. Включаемый файл должен содержать список электронных адресов, по одному адресу в строке. clientlist: include:/usr/home/salesdude/clientlist.txt Файл mailertable Файл mailertable позволяет выборочно переопределять записи MX. Такая возможность была важна, когда сети использовались для подключения к почтовым системам вроде UUCP, но и сегодня она позволяет превратить FreeBSD в своего рода брандмауэр или бастион. В ряде случаев я применяю Microsoft Exchange — продукт, который нельзя напрямую соединять с Интернетом из соображений безопасности. Задействовав машину FreeBSD в качестве общедоступного ретранслятора почты и файл mailertable на ней, я смог организовать защиту системы Exchange без покупки дорогого брандмауэра электронной почты. У меня нет системы Exchange в домене absolutefreebsd.com, но для примера предположим, что она есть. Мои хосты называются freebsd.absolutefreebsd.com и exchange.absolutefreebsd.com. Моя запись DNS могла бы выглядеть так: absolutefreebsd.com IN MX 10 freebsd.absolutefreebsd.com Теперь все могут посылать электронную почту на машину с операционной системой FreeBSD. На этой машине я добавил бы в файл mailertable такую строку: .absolutefreebsd.com smtp:[exchange.absolutefreebsd.com] Это позволило бы машине с операционной системой FreeBSD игнорировать запись MX для домена, указанного в левой колонке, и пересылать всю почту для этого домена на хост exchange.absolutefreebsd.com. Файл relay-domains Sendmail упрощает создание резервных ретрансляторов почты для других доменов. Как и в случае со вторичными DNS, лучший способ обрести резервный ретранслятор состоит в том, чтобы найти близкую по размеру компанию для обмена услугами. Нет большого смысла тратить время на организацию резервного ретранслятора, особенно для организаций, сильно отличающихся от вашей, лучше найти примерно такую же организацию с близким уровнем подготовки технического персонала, чтобы ваш партнер не вызывал у вас дополнительных проблем. Файл /etc/mail/relay-domains содержит список всех доменов и/или IP-адресов, для которых ваш сервер будет играть роль ретранслятора. Имена доменов и адреса следует указывать по одному в строке. Например, ниже приводится запись, которая образует сервис резервного ретранслятора почты для домена absolutefreebsd.com: absolutefreebsd.com Трудно, да? Не забудьте указать сервер в DNS-записи домена, чтобы резервный МХ-сервис заработал. Активизация изменений Для файлов access, aliases и mailertable имеются соответствующие файлы базы данных (.db). Подобно файлу паролей, эти файлы обеспечивают простой и быстрый способ получения ссылки на содержимое конфигурационных файлов Sendmail и других программ. Изменив один из этих файлов, следует обновить и соответствующий ему файл базы данных. Современные версии Sendmail обеспечивают управление этими файлами базы данных с помощью утилиты make(1). Чтобы обновить файлы access и mailertable, следует перейти в каталог /etc/mail и ввести команду make maps: # cd /etc/mail # make maps Утилита make(1) сравнит время последнего изменения каждого файла с временем последнего изменения соответствующего файла базы данных и выполнит пересборку базы данных, если текстовый файл окажется новее. Чтобы перестроить базу данных aliases, нужно запустить команду newaliases(8) либо make aliases: # cd /etc/mail # make aliases Почему для перестройки базы данных aliases используется отдельная команда? Дело в том, что aliases стала первой базой данных в Sendmail, поэтому для ее обновления была написана специальная команда. С появлением новых файлов базы данных был выработан более универсальный метод. Изменения в базе данных вступают в силу немедленно, сразу после ее пересборки. Однако другие изменения требуют перезапуска всей почтовой системы. Изменения в файле mailertable относятся именно к таким изменениям. Почтовую систему можно перезапустить разными способами, но я рекомендую использовать для этого систему начального запуска FreeBSD, чтобы обеспечить нормальное поведение почтового сервера после перезагрузки: # /etc/rc.d/sendmail restart Это обеспечит вступление в силу всех изменений, включая изменения в текстовых файлах. Самые наблюдательные могут заметить, что /etc/rc.d/sendmail в действительности является интерфейсом к сценарию командного интерпретатора /etc/rc.sendmail. Файл /etc/rc.sendmail был создан еще до появления системы запуска rc.d и остается для обеспечения обратной совместимости. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Jun 9 17:49:07 pc1ibm sm-msp-queue[8354]: starting daemon (8.17.1): queueing@00:30:00 Jun 9 17:49:08 pc1ibm sm-mta[8343]: 2577rkFp070824: to=<a href="mailto:ginger.vojlukova_1984_@onet.pl">ginger.vojlukova_1984_@onet.pl</a>, ctladdr=<a href="mailto:www@pc1ibm.fritz.box">www@pc1ibm.fritz.box</a> (80/80), delay=2+06:55:22, xdelay=00:00:01, mailer=esmtp, p ri=9847812, relay=mx.poczta.onet.pl. [213.180.147.146], dsn=4.5.0, stat=Deferred Jun 9 17:49:08 pc1ibm sm-mta[8343]: 254HaaCP070191: to=<a href="mailto:146@5.busnessmail.top">146@5.busnessmail.top</a>, ctladdr=< www@pc1ibm.fritz.box> (80/80), delay=4+21:12:32, xdelay=00:00:00, mailer=esmtp, pri=210978 25, relay=5.busnessmail.top. [185.238.170.211], dsn=4.4.1, stat=Deferred: Connection refus ed by 5.busnessmail.top. .. обычный спам с подменой адреса отправителя на получателя - проверяем по ip в постфикс включая в настройках и отправляем на /dev/null Jun 9 17:53:11 pc1ibm sm-mta[8395]: 259EqLMb008395: Authentication-Warning: pc1ibm.fritz. box: Host localhost [IPv6:0:0:0:0:0:0:0:1] claimed to be yahobby.ru Jun 9 17:53:57 pc1ibm sm-mta[8395]: 259EqLMb008395: from=s antosha @yahobby.ru, size=14, cl ass=0, nrcpts=1, msgid=<a href="mailto:202206091453.259EqLMb008395@pc1ibm.fritz.box">202206091453.259EqLMb008395@pc1ibm.fritz.box</a>, proto=ESMTP, daemon =IPv6, relay=localhost [IPv6:0:0:0:0:0:0:0:1] Jun 9 17:53:57 pc1ibm sm-mta[8396]: 259EqLMb008395: to=santo sha@svetan.ru, ctladdr=sant o s ha@yahobby.ru (1002/1002), delay=00:00:22, xdelay=00:00:00, mailer=local, pri=30560, relay =local, dsn=2.1.5, stat=Sent |
docs.freebsd.org
открывать для всех не надо, open relay заблокируют
Рассылка 20000 писем это сейчас 7000 – 20000 рублей, если они отправлены. Не способ заработка, очень всем надоели спамеры.