- HOWTO setup ubuntu 18.04 sendmail+DKIM+SPF+DMARC или о том как мне удалось пробиться в бастион Gmail
- Инструкция по настройке spf+dkim на ubuntu 18.04
- 2. Настраиваем opendkim
- 3. Настраиваем ключи и правила подписывания
- 4. Настройка sendmail
- 5. Настройки DKIM TXT записи на DNS сервере
- 6. Настройка SPF
- 7. Настройка DMARC
- Проверка
- Возможные проблемы
- Базовая настройка sendmail, Ubuntu
- Page 3
- Установка Sendmail + Dovecot + DrWeb на Ubuntu
- Для начала ставим дополнительные компоненты для удобства работы это файловый менеджер MC и WebMin
- Устанавливаем MTA агент передачи почты Sendmail (MTA — mail transfer agent)
- Редактируем файл /etc/mail/access
- Управление sendmail
- Проверка сендмайла
- Настройка и установка Dovecot
- Проверка Dovecot
- Добавление записей в DNS
- Перенос и создание новых пользователей
- Отступление (Пароли и пользователи)
- Установка Drweb анти спам+антивирус
- Работа с пользователями через WebMin
- Настройка Sendmail как внешнего почтового шлюза
- Файл access
- Файл aliases
- Файл local-host-names
- Файл mailer.conf
- Файл mailertable
- Файл sendmail.mc
- Настройка DKIM-записи для работы с sendmail на сервере с Linux Ubuntu
- Сначала установка sendmail
- Приступаем к DKIM
- Пора добавить DNS-записи
- Проверяем результат
- Ещё пара полезных записей в DNS
HOWTO setup ubuntu 18.04 sendmail+DKIM+SPF+DMARC или о том как мне удалось пробиться в бастион Gmail
На моем сервере крутится 2 отдельных домена. До истории с блокировками Роскомнадзора мы собирали трафик около 2000 посещений в сутки, а почтовый сервер отправлял в сутки около 200 писем на все популярные почтовые сервисы, в т.ч. Гугл и Яндекс. Все было здорово.
Но как говорится в известном ролике: «Все было так хорошо, пока не пришел Навальный Роскомнадзор! Теперь, когда нам удалось найти хостера, чьи IP адреса не попадают под блокировки государственной цензуры появилась другая проблема. Корпорация добра Гугл перестала дальше порога пускать нашего почтальона.
MX сервер google выбрасывает мою почту с примерно следующим сообщением: „Твое сообщение похоже на нежелательное, давай до свидания…“
лог соединения с SMTP сервером гугла050 … Connecting to gmail-smtp-in.l.google.com. via esmtp…050 220 mx.google.com ESMTP v6-v6si38552789wrc.432 – gsmtp050 >>> EHLO sevenlight.ru050 250-mx.google.
com at your service, [2a02:c207:2018:3546::1]050 250-SIZE 157286400050 250-8BITMIME050 250-STARTTLS050 250-ENHANCEDSTATUSCODES050 250-PIPELINING050 250-CHUNKING050 250 SMTPUTF8050 >>> STARTTLS050 220 2.0.0 Ready to start TLS050 >>> EHLO sevenlight.ru050 250-mx.google.
com at your service, [2a02:c207:2018:3546::1]050 250-SIZE 157286400050 250-8BITMIME050 250-ENHANCEDSTATUSCODES050 250-PIPELINING050 250-CHUNKING050 250 SMTPUTF8050 >>> MAIL From: SIZE=297050 250 2.1.0 OK v6-v6si38552789wrc.432 – gsmtp050 >>> RCPT To:050 >>> DATA050 250 2.1.5 OK v6-v6si38552789wrc.432 – gsmtp050 354 Go ahead v6-v6si38552789wrc.432 – gsmtp050 >>> .050 550-5.
7.1 [2a02:c207:2018:3546::1 7] Our system has detected that this050 550-5.7.1 message is ly unsolicited mail. To reduce the amount of spam sent050 550-5.7.1 to Gmail, this message has been blocked. Please visit050 550-5.7.1 https://support.google.com/mail/?p=UnsolicitedMessageError050 550 5.7.1 for more information. v6-v6si38552789wrc.
432 – gsmtp
Этой командой я отправлял тестовое сообщение: echo “Subject: Hello baby!” | sendmail -v legale.legale@gmail.com Писать о своих танцах с бубном в попытках пробиться через спам-фильтры я не буду. Скажу только, что провозился я всю ночь, но добиться успеха смог только на следующий день. Именно поэтому я и решил написать сей мануал.
Инструкция по настройке spf+dkim на ubuntu 18.04
Крутизна данной инструкции в том, что она работает, в отличие от множества других. Я гарантирую, что как минимум 2 домена на 1 сервере ты сможешь настроить без особого труда.
2. Настраиваем opendkim
Конфиг лежит тут: /etc/opendkim.conf /etc/opendkim.
confAutoRestart Yes UMask 002 Syslog yes AutoRestartRate 10/1h Canonicalization relaxed/simple ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts KeyTable refile:/etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable LogWhy Yes Mode sv PidFile /var/run/opendkim/opendkim.pid SignatureAlgorithm rsa-sha256 Socket inet:8891@localhost SyslogSuccess Yes TemporaryDirectory /var/tmp UserID opendkim:opendkim
3. Настраиваем ключи и правила подписывания
Я опишу процедуру по созданию собственных ключей для тех, кто хочет полной автономности. Лично у меня используется яндексовый сервис «Почта для домена» pdd.yandex.ru, поэтому у меня ключи сгенерированные Яндексом. #сначала делаем каталогmkdir -p /etc/opendkim/keys/*****.ru#переходим тудаcd /etc/opendkim/keys/******.
ru#делаем ключи#-s определяет селектор -d домен для которого делать ключopendkim-genkey -s mail -d ******.ru#должны появится 2 файла mail.txt с открытым ключом и mail.private с закрытым#назначим владельцем файлов ключей opendkim:opendkimchown opendkim:opendkim mail.*#ограничим доступ к секретному ключуchmod 600 mail.
private Далее подключаем наш созданный или загруженный у Яндекса секретный ключ DKIM.
Нас интересуют вот эти три строчки из конфига opendkim: InternalHosts refile:/etc/opendkim/TrustedHostsKeyTable refile:/etc/opendkim/KeyTableSigningTable refile:/etc/opendkim/SigningTable
В первом файле /etc/opendkim/TrustedHosts хранятся хосты, которые будут иметь доступ к серверу opendkim для подписывания писем. /etc/opendkim/TrustedHosts127.0.0.
1 localhost ######.ru ******.ru
Во втором файле /etc/opendkim/KeyTable хранится таблица секретных ключей и связанных с ними записей DKIM, которые представляют из себя следующее: [selector]._domainkey.[domain_name] /etc/opendkim/KeyTablemail._domainkey.sevenlight.ru sevenlight.ru:mail:/etc/opendkim/keys/sevenlight.ru/mail.private mail._domainkey.st-goods.ru st-goods.
ru:mail:/etc/opendkim/keys/st-goods.ru/mail.private
В третьем файле /etc/opendkim/SigningTable лежит таблица правил подписывания писем. Тут указано чьи письма и каким именно ключом подписывать. /etc/opendkim/SigningTable*@sevenlight.ru mail._domainkey.sevenlight.ru *@st-goods.ru mail._domainkey.st-goods.ru Создаем эти файлы, указывая свой домен и свой путь к файлу ключа. На этом настройка opendkim закончена.
4. Настройка sendmail
Настройка sendmail максимально проста. Нам всего лишь нужно добавить в конец файла прототипа конфига /etc/mail/sendmail.mc следующие строчки: #Эта строка включает поддержу starttlsinclude(`/etc/mail/tls/starttls.
m4')dnl#Заставим sendmail пропускать письма через opendkimINPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost')dnl
Чтобы почта по умолчанию отправлялась с правильного домена надо сделать еще одно изменение в файле /etc/mail/sendmail.mc
Ищем строку, похожую на эту: MASQUERADE_AS(`st-goods.ru')dnl Заменяем на нужный домен.
Именно этот домен будет использован в качестве обратного адреса по умолчанию. Обратите внимание, что кавычки там разные, строго говоря, первый знак ` называется гравис. Так зачем-то заведено в конфиге sendmail.
Теперь добавим записи в файл /etc/hosts Это нужно для того, чтобы sendmail пропускал письма через фильтр. Опытным путем установлено, что если не добавлять записей, все логи остаются девственно чистыми, не показывая ни одной ошибки, однако письма не подписываются. #ipv4echo -e “127.0.0.1 st-goods.ru” >> /etc/hosts#ipv6echo -e “::1 st-goods.ru” >> /etc/hosts Теперь надо пересобрать sendmail с новыми настройками. #запускаем скрипт #на все вопросы отвечаем “да”sendmailconfig#перезапускам службы opendkim и sendmailservice opendkim restart && service sendmail restart Теперь наш сервер sendmail умеет пропускать исходящие письма через сервер opendkim, который добавляет цифровую подпись и шифрует заголовки отправляемых писем. Осталось опубликовать для принимающей стороны открытый ключ, чтобы можно было расшифровать заголовки и удостоверится, что заголовки не изменялись.
5. Настройки DKIM TXT записи на DNS сервере
Ключ надо подвесить на DNS сервере в строке типа TXT следующего содержания:
хост: mail._domainkey
значение: v=DKIM1; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2wtGTw/5KPjtlIEh282JY7ovxZ/8eqveFn9ivhzpYJldl3EOKw Пояснения:
p= это наш открытый ключ
v= определяет номер версии DKIM
t= устанавливает флаги, по умолчанию флаги не устанавливаются. Существует 2 флага 'y' и 's'.
y говорит о том, что DKIM работает в тестовом режиме.
s означает режим, когда правая часть почтового адреса после @ должна полностью совпадать с доменом указанным в параметре d= DKIM подписи письма.
Хост надо указать в следующем виде: [selector]._domainkey
У нас селектор mail, поэтому хост будет таким: mail._domainkey
Открытый ключ надо вытащить из файла /etc/opendkim/keys/st-goods.ru/mail.txt
/etc/opendkim/keys/st-goods.rumail._domainkey IN TXT ( «v=DKIM1; h=sha256; k=rsa; „ “p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsLFjSAqvfSrjvF0JfMkiSzqWRhXwwVPzW5OEtRFSoDVBwDxR6hMna1iESnUQ1OzbUQQPnDPbrFXkalDCAXigZqltTSAV+JQSyOwhi0b88WS3djb1IkA/qioCobjlhMFSatvcmz5kMkG8oeoHhVFQ/BE84PwDPTXRmcObDvg7meUmkYpdxeyr+tcG5ezuC+s15I00+6NSAaj0Tj» «Y/Bl2e2TE/WG45wVShlQ85E8IpYixscd0qDJ9/NbZrbWIfy8shujW5izNU4PqcWwW7/H9uTkhAbMu0fgqT8W9Jv/GRVAireOCzMl13E9PVANt4o+ywqyGk38vSY8QdgJsZPDUQIDAQAB» ); — DKIM key mail for st-goods.ru Ключ идет от p= до последней кавычки. Сами кавычки с пробелами надо удалить.
6. Настройка SPF
SPF (Sender Policy Frameword) это еще 1 технология защиты от спама, рассказывать про нее не буду. Только 2 слова для понимания сути этой технологии.
В DNS записи домена аналогично открытому ключу DKIM записываются адреса серверов, которые имеют право отправлять почту с этого домена. Нам нужно прописать в этой записи ip адреса своего сервера.
В моем случае в список также добавлен сервер Яндекса. Вот пример моей записи:
хост:@
значение:v=spf1 a mx include:_spf.yandex.net ip4:173.249.51.13 ip6:2a02:c207:2018:3546::1 ~all Синтаксис простой. Сначала указывается версия spf, а потом через пробел с плюсом или без него указываются адреса серверов, которые имеют право слать почту с этого домена. У меня указаны записи a и mx, что означает, что серверы из DNS записей A и MX тоже входят в список разрешенных. Через include: указан адрес сервера Яндекса, а дальше ipv4 и ipv6 адреса моего сервера. ~all означает softfail «мягкий отказ». Т.е. все адреса, которые не перечислены в разрешенных все таки могут пройти по усмотрению принимающего сервера. -all означал бы жесткий отказ.
7. Настройка DMARC
Последний гвоздь для проникновения в бастион gmail — DMARC. DMARC устанавливает что нужно делать с письмами, которые не проходят проверку SPF или DKIM. Все делаем точно также через DNS запись типа TXT.
хост: _dmarc
значение: v=DMARC1; p=none Здесь мы устанавливаем, что если письма не прошли SPF или DKIM ничего делать не надо. Можно поставить p=reject. Тогда такие письма будут забракованы.
Проверка
Отправляем себе письмо. echo “Subject: Hello baby!” | sendmail -v legale.legale@gmail.com
Смотрим последние записи лога почты. tail -f /var/log/mail.log | grep dkim
Должна появится строка похожая на эту: Jun 11 22:07:55 sevenlight opendkim[6473]: w5BK7sl9008069: DKIM-Signature field added (s=mail, d=st-goods.ru) Если строка есть, значит сервер sendmail и opendkim сработались и подписали твое письмо. Если такой строки нет, смотри раздел «Возможные проблемы». Теперь смотрим, что получилось в почтовом ящике. Открываем письмо и нажимаем в правом верхнем углу письма кнопку со стрелкой вниз. В выпадающем меню выбираем пункт «Show original». Вот что получилось у меня: Message ID Created on: 11 June 2018 at 22:07 (Delivered after 2 seconds)From: info@*****.ruTo: legale.legale@gmail.comSubject: Заказ №2221 Интернет-магазин напольных покрытий ******.ruSPF: PASS with IP 2a02:c207:2018:3546:0:0:0:1 Learn moreDKIM: 'PASS' with domain *****.ru Learn moreDMARC: 'PASS' Learn more PROFIT$$$
Возможные проблемы
Я искренне надеюсь, что нужды читать этот раздел не будет, но техника — вещь сложная… Иногда не понятно кто на кого работает. Сначала проверяем все ли ты сделал в точной последовательность указанной в инструкции.
Сначала проверяем файл /etc/hosts на предмет корректности изменений в нем. У меня больше всего проблем было именно там. Дальше проверим системный лог на предмет ошибок dkim.
Пока я ковырялся мне довелось столкнуться с ситуацией невозможности чтения opendkim секретного ключа, хотя я назначил владельцем файла пользователя opendkim.
Дальше следует внимательно изучить лог выполнения команды sendmailconfig У меня был случай, что я использовал обычную одиночную кавычку вместо положенного грависа, а sendmailconfig ругался на это. Если ничего не помогло напиши мне и keep trying.
- SPF
- DKIM
- DMARC
- SENDMAIL
- OPENDKIM
- UBUNTU 18.04
- SPAM
- спам-фильтр
Хабы:
- Спам и антиспам
- Настройка Linux
Источник: https://habr.com/ru/post/415569/
Базовая настройка sendmail, Ubuntu
Я не администратор, поэтому относитесь к этой заметке с осторожностью. Рассматривается такя ситуация: надо заставить sendmail сервера отправлять почту, но ничего в ответ не принимать. Строго для оповещений с сайтов.
У меня вдс-ка с предустановленным exim4 на который, насколько я понимаю, “ссылается” sendmail. Т.е. фактически работает exim4.
Сначала настраиваем хост (my-host-name это имя нашего хоста с которого все будет ездить)
sudo mcedit /etc/hosts В файле должны быть строки вида 127.0.0.1 localhost 111.111.111.111 hostname.my-hoster.net my-host-name Далее меняем имя хоста в файле sudo mcedit /etc/hostname Файл должен выглядеть вот так (полностью, т.е. только имя хоста и все) my-host-name Теперь перегружаем службу которая грубо говоря обновляет имя хоста глобально sudo /etc/init.d/hostname.sh stop sudo /etc/init.d/hostname.sh start # если такого скрипта нет, то пробуем иначе: sudo service hostname restart REM ещё такой вариант есть, для Debian 9 (stretch) hostnamectl set-hostname my-host-name Теперь выполняем команды hostname hostname -f Если все правильно сделано, то они обе должны вернуть значение my-host-name (т.е. имя вашего хоста)
Теперь надо настроить сам sendmail. В моем случае, нужно перенастроеить exim4. Делается это примерно так:
sudo dpkg-reconfigure exim4-config После этого в мастере просто нужно выбирать значения (именно для exim4)
- internet site..
- вводим название вашего хоста (my-host-name)
- ip для smtp устанавливаем только 127.0.0.1 т.к. нам не нужны внешние подключения по smtp
- другие допустимые назначения оставляем по умолчанию
- домены для разрешенного релея – оставляем пустым
- машины для релея – оставляем пустым
- кол-во днс запросов на ваше усмотрение, я не ограничивал
- метод доставки я оставил тот же который был, т.е. /var/mail
- разделять не разделять файлы конфигурации – на ваше усмотрение, аргументы там описаны, я разделять не стал
Теперь, чтобы проверить ходит ли почта делаем так sendmail -i my-email@my-host.com Далее вводим тект тестового сообщения. И по готовности нажимаем Ctrl+d Идем проверяем свою почту. Если письмо пришло – все ок и ура. Если нет – идем гуглить дальше
Дальше надо убедиться что на нашем сервере недоступен smtp, для этого нам надо сходить с локальной машины постучаться в 25 порт сервера и получить отлуп. Делается это например так:
telnet my-host-name 25 Trying 111.111.111.111… telnet: Unable to connect to remote host: Connection refused Если все так, то все тип-топ. Порт закрыт. Ещё маленькая фишка. Бывает так что по каким-то причинам, сервис рулящий веб-приложением надо перезапускать регулярно. В моем случае это node.js и делаю я это по крону раз в N времени. Так вот если перезапустить процесс кроном, то sendmail перестает работать, потому как приложение не знает где он, в path пути до него просто нет и соот-но он просто не находится. Точно так же можно передавать любые другие настройки переменных окружения. Как это делать смотрим ниже.
Сначала посмотрим где sendmail
which sendmail /usr/local/bin/sendmail Ок, видим путь. Если вдруг не видим то идем смотреть тоже самое но под sudo. Теперь идем в кронтаб и добавляем переменные окружения там. crontab -e Откроется редактирование заданий для текущего пользователя. То есть все задания будут выполнены с правами текущего пользователя и сервис запустится с правами этого пользователя, если он запускается конечно согласно вашему плану # это переменная которая рассказывает где искать sendmail, # другие нужные пути можно писать через разделитель – двоеточие # там будут искаться необходимые нам утилиты PATH=/usr/local/bin # это пример переменной окружения которую будет использовать само приложение NODE_ENV=production # это собственно само задание, гуглим по формату crontab чтобы понять что к чему # в данном случае скрипт будет срабатывать в 30 минут каждого четного часа */30 */2 * * * /home/user/blog/scripts/restart.sh Ну вот примерно так. Прошу не воспринимать эту заметку как полное руководство к действию, вполне возможно что для вашего случая все будет значительно отличаться. Но возможно это как-то поможет или хотя бы наведет на мысли в нужном направлении
Успехов!
Пользовался вот этим источником. Рекомендую на него взглянуть, надеюсь он ещё дышит.
Задача тривиальная, но как-то сумбурно пока гуглится. Много разных решений наковырял. Суть в том что нам нужно не перезагружая страницу отправить на сервер файл (и любые другие параметры в комплекте), почитать что нам напишут в ответ и какую-то реакцию показать пользователю. Пример ниже для одного файла, очевидно если у инпута выставлено multuple=”multiple” то по массиву файлов можно будет пробежаться и так же все их добавить в запрос.
В html
В скрипте var fd = new FormData(); fd.append('id', '123'); fd.append('type', 'one'); fd.append('img', $('#imgFile')[0].files[0]); $.ajax({ type: 'POST', url: '/url/to/action', data: fd, processData: false, contentType: false, dataType: “json”, success: function(data) { console.log(data); }, error: function(data) { console.log(data); } });
Page 3
Источник: https://wired-mind.info/post/155
Установка Sendmail + Dovecot + DrWeb на Ubuntu
Adatum
Я буду использовать белый ip 77.222.61.85 вы вместо него прописывайте свой.
Для начала ставим дополнительные компоненты для удобства работы это файловый менеджер MC и WebMin
sudo apt-get upgrade sudo apt-get install mc
теперь ставим графический WEB интерфейс
sudo nano /etc/apt/sources.list
В самом конце добавляем строку:
deb http://download.webmin.com/download/repository sarge contrib
Устанавливаем GPG ключ:
wget http://www.webmin.com/jcameron-key.asc sudo apt-key add jcameron-key.asc
Устанавливаем Webmin для этого вводим команду:
sudo apt-get update sudo apt-get install webmin
Запустить Webmin можно через браузер для этого введите следующий адресу в строку url:
https://77.222.61.85:10000
Устанавливаем MTA агент передачи почты Sendmail (MTA — mail transfer agent)
он отвечает за передачу почты по SMTP.
sudo apt-get install sendmail
После установки редактируем следующие файлы файлы
sudo nano /etc/hosts sudo nano /etc/mail/local-host-names sudo nano -w /etc/hostname
вписываем или меняем строку, она должна принять вид типа
77.222.61.85 mail.adatum.ru mail2
[/php]Редактируем файл /etc/mail/access
в файле /etc/mail/access устанавливаются права доступа nano /etc/mail/access
дописываем строки с нужными нам ip либо доменами от куда разрешена отправка почты
Connect:adatum.ru RELAY Connect:mail.adatum.ru RELAY Connect:192.168.0 RELAY Connect:77.222.61.85 RELAY
Управление sendmail
Просмотр очереди сообщений:
sudo mailq
Просмотр очереди сообщений по определенному адресу:
sudo mailq | grep 'email@adatum.ru' | wc -l
Очистка очереди сообщений sendmail:
sudo rm -r /var/spool/mqueue-client/*
Очистка очереди сообщений sendmail по адресату:
cd /var/spool/mqueue
Проверка сендмайла
telnet 77.222.61.85 smtp
Если зашёл все хорошо и продолжаем дальше.
Выход из телнета написать QUIT
netstat -nlp|grep sendmail
Перезагрузка конфига sendmail
/etc/init.d/sendmail restart
Настройка и установка Dovecot
sudo apt-get install dovecot-imapd dovecot-pop3d
IMAPS и POP3S более безопасные чем обычные IMAP и POP3, поскольку используют SSLшифрование для соединения. Как только вы выберете протокол,
исправьте следующую строку в файле /etc/dovecot/dovecot.conf
protocols = pop3 pop3s imap imaps
Далее выберите формат почтового ящика, который вы собираетесь использовать.
Dovecot поддерживает форматы maildir и mbox.
Выбрав тип почтового ящика, измените в файле /etc/dovecot/conf.d/10-mail.conf
nano /etc/dovecot/conf.d/10-mail.conf
следующую строку:
mail_location = maildir:~/Maildir #
для mbox:
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u #
в моем случае я использовал mbox.в моем случае отправка почты возможна только с локальной сети поэтому я использую передачу данных авторизации в открытом виде.
Редактируем dovecot.conf
nano /etc/dovecot/dovecot.conf
добавляем строку
disable_plaintext_auth = no
Этим параметром мы явно указываем что можно передавать данные для авторизации на сервере в открытом виде.
Проверка Dovecot
telnet 77.222.61.85 pop3
Если зашёл все хорошо и продолжаем дальше.
Выход из телнета написать QUIT
Перезагрузка конфига dovecot
/etc/init.d/dovecot restart
Добавление записей в DNS
Теперь чтобы это все виделось с интернета необходимо внести 2 записи в dns примерно такого вида.
/etc/bind/zone/adatum.ru.hosts
mail.adatum.ru. IN A 77.222.61.85 mail.adatum.ru. IN MX 5 mail.adatum.ru.
Перенос и создание новых пользователей
в моем случае нужно было перенести старых пользователей.
для этого создаем на новом сервере пользователей с такими же логинами как и на старом сервере командой.
sudo useradd -d /home/misa -m misa sudo useradd -d /home/ivanpetrovich -m ivanpetrovich sudo useradd -d /home/lolos -m lolos
Теперь нужно перенести ХЭШ паролей с старого сервера на новый, хэши хранятся в файле /etc/shadow
nano /etc/shadow
копируем записи нужных пользователей из старого файла в новый. Это актуально если не известны все пароли пользователей на сервере.
Отступление (Пароли и пользователи)
Все данные о пользователях хранятся в файлах ( /etc/passwd, /etc/shadow или /etc/master.passwd)
Cгенери́ровать хэш из командной строки можно так:
echo root:123 | chpasswd -S -c SHA512 SHA512 root:$6$ioakXVaHexL$nD9wXc6lxdbljUV1.MTKr8Z8McW7gzqbDbRh9o15y1t FSg8ezUDhbeioXY9s3PCFMT4sWoIENVIMlcIvdr/l8.
Шифрование паролей в Ubuntu .* Без признаков – DES (практически давно не используется, неадекватно слаб по сегодняшним меркам);* _ – Модификация имплементации алгоритма DES, сделанная BSDi;* $1$ – MD5 (наиболее популярный, но имеет математические уязвимости);* $2$, $2a$ – Blowfish (используется преимущественно в OpenBSD, FreeBSD);* $5$ – SHA-256;
* $6$ – SHA-512
Установка Drweb анти спам+антивирус
Репозиторий для Debian защищен с помощью механизма цифровой подписи. Для корректной работы нужно импортировать лицензионный ключ командой
wget -O – http://officeshield.drweb.com/drweb/drweb.key | apt-key add –
или
curl http://officeshield.drweb.com/drweb/drweb.key | apt-key add –
Внимание! Для установки пакетов и импорта ключа необходимы права администратора (root)
Чтобы подключить репозиторий, добавьте следующую строку в файл /etc/apt/sources.list:
nano /etc/apt/sources.list deb http://officeshield.drweb.com/drweb/debian stable non-free
Обновите репозиторий командой
sudo apt-get update
Для установки Dr.Web для почтовых серверов UNIX выполните команду:
sudo apt-get install drweb-sendmail-av-as
Ключк DrWeb-а помещаем в папку /opt/drweb он должен иметь название drweb32.key.Основные конфиги:-/etc/drweb/plugin_vaderetro.conf (основной файл настроек антиспама)-/etc/drweb/drweb32.ini-/etc/drweb/maild_sendmail.conf
-/etc/drweb/plugin_drweb.conf
Настройка белого листа (доменов от куда почта не проверяется)редактируем файл/etc/drweb/plugin_vaderetro.conf
редактируем строку
WhiteList = /etc/drweb/w.txt
файл w.txt следующего содержания
*@gov.ru *@mail.ru *@web.adatum.ru
Работа с пользователями через WebMin
Заходим браузером на https://77.222.61.85:10000 вводим наш логин и пароль(который установили при установки Ubuntu).
открываем вкладку System -> Users and Groups.
Нажимаем Create a new user. Заполняем необходимые поля и нажимаем кнопку CREATE. Для редактирования пользователя возвращаемся в System -> Users and Groups. В открывшемся окне можно сменить пароль, прочитать почту либо удалить пользователя.
Для настройки почтовой системы
‘cd /opt/drweb/maild/scripts/ && ./configure_mta.sh’
Для настройки Dr.Web MailD
‘cd /opt/drweb/maild/scripts/ && ./configure.pl’
Источник: http://adatum.ru/ustanovka-sendmail-dovecot-drweb-na-ubuntu.html
Настройка Sendmail как внешнего почтового шлюза
Задача – сделать почтовый шлюз на базе sendmail, для отправки/приема почты в интернет и взаимодействие с внутренним почтовиком в локальной сети предприятия.Что дано: есть сервер под управлением *nix (у меня стоит freebsd 8.
1), с двумя сетевыми картами, на одной карте настроен внешний IP интернета, вторая сетевая смотрит во внутреннюю сеть предприятия. Во внутренней сети стоит еще один сервер под управлением microsoft exchange 2010, куда и должны доставляться в конечном итоге все письма.
Также на стороне провайдера уже прописаны прямые и обратные зоны для нашего домена и MX запись нашего почтового сервера.
По умолчанию каталогом с конфигами в sendmail является /etc/mail, а сами файлы конфигов следующие:
- access – файл базы данных доступа sendmail
- aliases – синонимы почтовых ящиков
- local-host-names или sendmail.cw – список хостов, для которых sendmail принимает почту
- mailer.conf – настройки почтовой программы
- mailertable – куда перенаправлять почту (если требуется)
- sendmail.mc – основной файл конфигурации sendmail, для обработки препроцессором m4, для получения файла sendmail.cf
- sendmail.cf – основной файл конфигурации sendmail
- relay-domains – перечень доменов который поддерживает наш почтовый шлюз
- virtusertable – таблицы виртуальных пользователей и доменов
Файл access
В данный файл заносим ip нашего внутреннего почтового сервера microsoft exchange, разрешая ему соединяться с sendmail при отправке писем в интернет.
192.168.0.3 RELAY
Пересобираем файл access.db при любом изменении файла access. Файл access.db является бинарной базой данных и именно с ним работает sendmail.
#makemap hash /etc/mail/access < /etc/mail/access
Если у вас нет внутреннего почтовика, то в файл access заносим localhost
localhost RELAY
Файл aliases
Достаточно часто в unix данный файл находится по пути /etc/aliases, но тогда в /etc/mail/aliases должен находится его симлинк.
В конец файла дописываем строку
root: user
Вместо user заносим свой логин. Теперь вся системная почта, приходящая на пользователя root будет перенаправляться вам.
Пересобираем файл aliases.db командой
#newaliases
Файл local-host-names
Самый простой файл в конфигурации – заносим имя нашего почтового сервера и имена доменов для которых будем принимать почту. Каждый домен на новой строке
name.domain.ru domen.ru
Будьте внимательны, последняя строка этого фала должна быть пустой, т.к. она не читается конфигурацией sendmail (и как совет, примите к сведению, что последняя строка в конфигурационных файлах unix очень часто должна заканчиваться пустой строкой)
Для этого файла бинарная база данных не требуется
Файл mailer.conf
Если у вас дистрибутив linux, то данный файл вы не обнаружите в каталоге /etc/mail и по сути он вам не нужен. В системе FreeBSD в данном файле заносятся пути до программ, отвечающих за определенные действия по обработке почты.
В нашем случае за все действия будет отвечать команда sendmail. Если вы захотите поменять программы отвечающие за те или иные действия по обработке почты, то достаточно будет поменять пути до этих программ в mailer.conf.
Я файл не правил, оставил как было
sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail
Файл mailertable
Так как нам надо осуществлять маршрутизацию почты извне на локальный почтовый сервер, создаем таблицу маршрутизации. Здесь 192.168.0.3 почтовый сервер внутри локальной сети.
domen.ru relay:[192.168.0.3]
Пересобираем файл mailertable.db
#makemap hash /etc/mail/mailertable < /etc/mail/mailertable
Файл sendmail.mc
Вот и добрались до главного файла с помощью которого и формируется конфигурационный файл sendmail.cf с помощью препроцессора m4.
Препроцессор создает более понятный для машинной обработке файл, чтобы увеличить скорость работы почтовой программы.Файл не обязательно может называться sendmail.
mc, можно создавать свои названия файлов конфигураций, но расширение файла должно быть .mc.
Файл конфигурации у меня получился такой.
divert(-1) divert(0) include(`/usr/share/sendmail/cf/m4/cf.m4') OSTYPE(freebsd) DOMAIN(generic) FEATURE(`nouucp',`reject') FEATURE(`always_add_domain') FEATURE(`allmasquerade') MASQUERADE_AS(`domen.ru') FEATURE(`masquerade_envelope') Dmdomen.ru FEATURE(access_db, `hash -o -T /etc/mail/access') FEATURE(blacklist_recipients) FEATURE(local_lmtp) FEATURE(mailertable, `hash -o /etc/mail/mailertable') FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') FEATURE(use_cw_file) define(`confCW_FILE', `-o /etc/mail/local-host-names') define(`confTO_IDENT', `0') define(`conIND_OPTS', `WorkAroundBrokenAAAA') define(`confPRIVACY_FLAGS', `needmailhelo,authwarnings,noexpn,novrfy,noverb') FEATURE(`no_default_msa') DAEMON_OPTIONS(`Port=smtp, Name=MTA') DAEMON_OPTIONS(`Port=987, Name=MSA, M=E') MAILER(local)dnl MAILER(smtp)dnl
Кому интересно замысловатые названия команд и макросов, можно прочитать мои комментарии показать
divert(-1) – очистить буфер макросов от данных, оставшихся от предыдущих запусков m4
divert(0) – обозначение начала макросов
include(`/usr/share/sendmail/cf/m4/cf.m4′) – подключаем макросы препроцессора m4. Обязательно проверьте путь до cf.m4.
OSTYPE(freebsd) – обозначаем тип операционной системы, если у вас linux, то так и пишем.
DOMAIN(generic) – указание имени файла в директории /usr/share/sendmail/cf/domain/ . В этом файле содержится набор параметров подходящих для вашего типа ОС. Также можно создать свой набор параметров и подключить их этим макросом. Я оставил generic по умолчанию и рекомендовал бы поступить также
Источник: http://ruunix.ru/1604-nastrojka-sendmail-kak-vneshnego-pochtovogo-shlyuza.html
Настройка DKIM-записи для работы с sendmail на сервере с Linux Ubuntu
Если вдруг перед вами встала задача использования Sendmail для отправки почты вместо использования альтернативных способов, стоит подумать о том, чтобы верно настроить DKIM-запись, чем обезопасить свою корреспонденцию от придирчивых спам-фильтров. Однако, не всегда этот процесс проходит просто и быстро. В сети множество инструкций о том, как это сделать, но итогом нескольких часов настройки стал собственный опыт и этот мануал.
Сегодняшняя инструкция протестирована на сервере с Linux Ubuntu 16.04.
Сначала установка sendmail
Тут всё просто. Достаточно выполнить команду:sudo apt-get update
sudo apt-get install sendmail
Если не сработает, иногда приходится добавить также:sudo apt-get install sensible-mda
sudo apt-get install sendmail-bin
После этого стоит обновить файл hosts, открыв его на редактирование командой:
sudo nano /etc/hosts
127.0.0.1 localhost localhost.localdomain имя_вашего_хоста
Здесь обратите внимание на «имя вашего хоста», которое необходимо заменить на справедливое для вас значение.
Затем пересобираем конфиг и перезапускаем сервис:sendmailconfig
service sendmail restart
Приступаем к DKIM
Нам потребуются пакеты. Доустанваливаем тех, что скорее всего, пока не хватает:
apt-get install opendkim opendkim-tools
Затем создаём директорию для хранения ключей:mkdir -p /etc/opendkim/keys/ваш_домен_ру
Здесь и далее мы будем использовать в коде подстановку «ваш_домен_ру», которую необходимо заменить на соответствующее название домена. Будьте внимательны, это нам потребуется ещё ни один раз.
Далее потребуется сгенерировать ключи. Приватные будут храниться на вашем сервере, а публичные нужно будет прописать в виде DNS-записей у хостера. Здесь же придумываем название селектора, которое сейчас и в дальнейшем будем использовать. В нашем случае это будет слово «mail».
opendkim-genkey -D /etc/opendkim/keys/your-domain.com -d your-domain.com -s mail
После выполнения команды в директории хранения ключей будет создано два файла с именами «mail.private» и «mail.txt».
Теперь назначаем верные права доступа и владельца:chown -R opendkim:opendkim /etc/opendkim/keys/ващ_домен_ру
chmod 640 /etc/opendkim/keys/your-domain.com/mail.private
chmod 644 /etc/opendkim/keys/your-domain.com/mail.txt
Залезаем в конфиг командой:sudo nano /etc/opendkim.conf
И вставляем туда эти строки (это пример работающего конфига, который подойдёт для большинства пользователей):AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:8891@127.0.0.1
Domain ваш_домен_ру
Selector mail
Теперь создаём те самые три файла, что описали в конфиге. Сначала первый:
sudo nano /etc/opendkim/KeyTable
mail._domainkey.ваш_домен_ру ваш_домен_ру:mail:/etc/opendkim/keys/ващ_домен_ру/mail.private
sudo nano /etc/opendkim/SigningTable
*@ваш_домен_ру mail._domainkey.ваш_домен_ру
sudo nano /etc/opendkim/TrustedHosts
127.0.0.1
localhost
ваш_домен_ру
Снова конфигурируем sendmail, сообщая о том, что теперь есть подпись DKIM. Открываем на редактирование файл:sudo nano /etc/mail/sendmail.mc
И добавляем в конец файла строку:INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
Редактируем ещё один конфиг:sudo nano /etc/default/opendkim
Здесь нужно раскомментировать строку «SOCKET=”inet:8891@localhost”».
Затем снова пересобираем конфиг sendmail, перезапускаем службу и запускаем openDKIM:sendmailconfig
service sendmail restart
service opendkim start
Пора добавить DNS-записи
Для начала нам потребуется просмотреть содержимое файла ключа:
cat /etc/opendkim/keys/ваш_домен_ру/mail.txt
В итоге увидим что-то в духе:default._domainkey IN TXT ( «v=DKIM1; k=rsa; “«p=MIGfMA0000qGSIb3DQEBAQUAA4GNADCxxxxBgQCgmHiX7BojGFoggggXa25Xs444WRhLmNpnv7777TY7FU4mG/WxtgrpV////Tzt3EZQ1/BpyICjlJZXIhgggguePnyd/iNFh4xKF3pi8yoqWB0eyq6KI/fXUbUWdd+NiU4ffffv89St92g24UFaElEl54XXCa6GlllldHFMetkBXwID/QAB» ) ; —— DKIM key default for droidnews.ru
Теперь в панели хостера необходимо добавить TXT-Запись «mail._domainkey» (здесь «mail» снова выбранный нами ранее селектор). В качестве значения указываем всё, что прописано в кавычках, включая кавычки.
Проверяем результат
Чтобы понять, верно ли у нас всё получилось, можно, например, воспользоваться сервисом https://www.mail-tester.com или http://www.isnotspam.com, http://www.appmaildev.com/en/dkim, https://mxtoolbox.com/SuperTool.
aspx, которые расскажут о том, удалось отправить подписанное письмо с вашего сервера, а также проверить вашу DKIM-запись на валидность.
Кроме того, даст ещё некоторые полезные советы, как повысить рейтинг вашего отправления, чтобы оно было успешно доставлено до адресата, минуя спам-фильтры.
Ещё пара полезных записей в DNS
Почтовые сервисы также одобрят у вас появление записи DMARC.
Для этого в панели хостера добавляем TXT-запись «_ваш_домен_ру» (первый знак нижнего подчёркивания надо оставить) со следующим значением «v=DMARC1; p=none».
Кроме того, добавим SPF-запись. TXT-запись с названием «ваш_домен_ру» и значением «v=spf1 a mx -all».
Теперь ваши письма должны всегда успешно доходить до адресатов.
Если вам интересны наши материалы, не забудьте поставить лайк после прочтения статьи Ну и подписаться на канал, конечно же. Это вдохновляет нас на работу.
Ещё больше интересного из мира ИТ можно найти на нашем сайте. А ещё мы есть в Telegram, если вам так удобнее
Ну или во .
Источник.
Источник: https://zen.yandex.ru/media/droidnews.ru/nastroika-dkimzapisi-dlia-raboty-s-sendmail-na-servere-s-linux-ubuntu-5e831a89bd6e884c21178be7