Автор Тема: Почтовый сервер  (Прочитано 7416 раз)

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Почтовый сервер
« : 27.04.2010 17:19:51 »
Почтовый сервер. Исходящая почта.

Ролик по этой теме можно скачать по адресу: http://salomatin.ru/postfix_1.ogv


Ставим Школьный сервер 5.0.1

Даже если мы имеем свой домен и запись MX для приема почты, есть смысл не рисковать своим доменом и отправлять всю почту через почтовый сервер провайдера. Также, если мы еще не имеем домен и хотим использовать сервер только для исходящей почты. Провайдер обычно принимает почту для отправки с клиентов внутренних IP адресов, без опроса пароля и не проводя строгого контроля на спам.

В нашем примере почтовый сервер провайдера это mail.chel-net.ru.
Два почтовых ящика, условно:
in@mail.ru - адрес получателя
out@mail.ru - адрес отправителя
mail.ru достаточно консервативен и подходит для тестирования, в качестве принимающей стороны.

Шаг № 1: Проверяем на рабочем столе.

Берем любую рабочую станцию на ALT.

Открываем клиент почты. В профиле записываем обратный адрес, который может быть расположен не на вашем сервере, а на любом общественном. (mail.ru; rambler.ru и т.п)

В профиле нам обязательны параметры:
Электронный адрес: out-at-mail-dot-ru
Тип отправки smtp - сервер mail.chel-net.ru

Создаем тестовое письмо на in-at-mail-dot-ru и оправляем.
Если письмо получили и прочитали, запоминаем параметры.

Заходим рутом на нашу рабочую станцию ( пока не на сервер). Должен быть уже установлен postfix и существовать каталог /etc/postfix
если нет ставим и запускаем
[root@client ~]#apt-get install postfix
[root@client ~]#chkconfig postfix on
[root@client ~]#control postfix server
Добавляем наш релей - всего одну строку:
cat >>/etc/postfix/main.cf
relayhost = [mail.chel-net.ru]
<ctrl-d> # сохранить

Перегружаем
service postfix restart
Подгружаем удобную для тестирования программку
apt-get install nail
От имени простого пользователя даем команду
nail -r out@mail.ru  -s TEST_client_1 in@mail.ru (аргументы: -r -адрес отправителя ; -s - тема письма)
Набирает текст тестового сообщения (тело письма)
Нажимаем Ввод
Затем <ctrl-d>

проверяем получение адресатом нашего письма.

Шаг № 2: Отправляем почту с самого сервера

Заходим в Центр управления Школьного сервера , в раздел Почтовый сервер, выбираем позицию Посредник. Указываем наш релей mail.chel-net.ru.

Проверяем. В /etc/postfix/main.cf появилась строка
relayhost = [mail.chel-net.ru]
Подгружаем на сервере
apt-get install nail
и даем команду
nail -r out@mail.ru  -s TEST_server_1 in@mail.ru проверяем получение адресатом нашего письма.

Шаг № 3: Отправляем почту через сервер - посредник
На сервере в Центре управления системой, в разделе Почтовый сервер - посредник, разрешаем локальную сеть 192.168.0.0/24

Проверяем. В /etc/postfix/mynetworks появилась строка
192.168.0.0/24Открываем клиент почты рабочей станции.
Изменяем адрес сервера с mail.chel-net.ru на локальный Школьного сервера 192.168.0.1

Создаем тестовое письмо на in@mail.ru и оправляем.
Проверяем получение адресатом нашего письма.

Шаг № 4: Отправляем почту через сервер в режиме Почтовый сервер

Заходим в Центр управления Школьного сервера , в раздел Почтовый сервер, выбираем позицию Сервер.
В /etc/postfix/main.cf находим relayhost =
и дополняем
relayhost = [mail.chel-net.ru] Перегружаем postfix из командной строки ( если перегрузим через Центр управления, то релей исчезнет).
service postfix restartОткрываем клиент почты рабочей станции. Отправляем письмо через Почтовый сервер.

Таким образом мы можем отправлять почту с любого клиента локальной сети.
Сам сервер будет оправлять письма от имени любого приложения (Joomla, phpBB), если там указывается опция: "Использовать SMTP- сервер".
Кроме того, сам сервер может отправлять служебные сообщения и другую почту (не спам), при написании администратором скриптов.
« Последнее редактирование: 03.11.2010 22:21:01 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Re: Почтовый сервер
« Ответ #1 : 10.10.2010 13:37:10 »
Почтовый сервер. Входящая почта.

Ролик по этой теме можно скачать по адресу: http://salomatin.ru/postfix_2.ogv

Чтобы почта попала на наш сервер надо правильно настроить для домена так называемую MX-запись и обратную зону.

Запись типа MX (Mail Exchange - почтовый сервер) определяет почтовый сервер - машину, которая обрабатывает почту для вашего домена.

С помощью обратных доменов (обратных зон) IP-адреса преобразуются в имена хостов.

Существует немало серверов (обеспечивающих различные сервисы), настроенных таким образом, что они проверяют наличие записей о хосте, с которого к нему обращаются, в прямой и обратной зонах. Если запись в одной из них отсутствует, то доступ к сервису с данного хоста может быть закрыт.

В нашем примере настроено и выполнение команд с любого стороннего компьютера в интернете:

[vova@myserv ~]$ host mail.salomatin.ru
mail.salomatin.ru has address 77.247.90.85

и

[vova@myserv ~]$ nslookup mail.salomatin.ru
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   mail.salomatin.ru
Address: 77.247.90.85

Правильно настроенный сервер показывает открытым 25 порт:



[vova@myserv ~]$ nmap -p 25 mail.salomatin.ru

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2010-10-09 20:16 YEKST
Interesting ports on a790-h85.chel-net.ru (77.247.90.85):
PORT   STATE SERVICE
25/tcp open  smtp

в этом случае неважно открыт или нет 110 порт. По 110 порту сервер слушает запросы клиентов, чтобы отдать им почту. В нашем примере он наружу закрыт, так как почту клиенты получают по локальной сети.

Код:

[vova@myserv ~]$ nmap -p 110 mail.salomatin.ru

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2010-10-09 20:16 YEKST
Interesting ports on a790-h85.chel-net.ru (77.247.90.85):
PORT    STATE  SERVICE
110/tcp closed pop3


Прописываем дорогу до сервера: Если сервер включен в интернет через модем, то 25 порт должен быть переброшен на сервер


На самом сервере в ЦУС в разделе - Внешние сети -открыт порт для внешних сетей - Почтовый сервер (SMTP)

Далее заходим в Почтовый сервер, ставим флаг  "Включить службу SMTP"

Режим работы: "Сервер"

Список доменов: mail.salomatin.ru

Включаем:    * Включить службу POP3/IMAP

Если все настроено правильно, то при отправки с любого почтового адреса зарегистрированному на сервере пользователю vova в файле /var/spool/mail/vova мы увидим это письмо /var/spool/mail/vova

Этот файл создается при создании пользователя автоматически. Удалять его не стоит.

Остается настроить только почтовый клиент, который будет получать с этого сервера почту.
Имя сервера входящей почты IP - адрес
Порт 110
Входное имя vova
нажимаем "Получить"
и видим наше письмо.
« Последнее редактирование: 03.11.2010 22:21:28 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Re: Почтовый сервер
« Ответ #2 : 10.10.2010 18:14:42 »
Web-интерфейс для почты.

Ролик по этой теме можно скачать по адресу: http://salomatin.ru/squirrelmail.ogv

http://www.squirrelmail.org/ SquirrelMail или Белка - это один из  Open Source пакетов веб-почты, написанных на PHP.


Для начала ставим сам Apache2:

Шаг № 1: В /etc/httpd2/conf/sites-available/default.conf  находим строку:

DocumentRoot "/usr/share/doc/alt-docs/indexhtml/ "заменяем на
DocumentRoot "/var/www/html/"
В этом же файле находите строку:
<Directory "/usr/share/doc/alt-docs/indexhtml/">
заменяете
<Directory "/var/www/html/">
перегружаем apache2

[root@server ~]#service httpd2 restart
заходим по адресу http://192.168.0.1 и видим тестовую страницу   It Works
или новую, которую разместили сами в каталог /var/www/html/


Шаг № 2: Подгружаем

[root@server ~]#apt-get install php5-mysql
и ставим саму Белку
[root@server ~]# apt-get install squirrelmail squirrelmail-i18n
Шаг № 3:
Запускаем скрипт
[root@server ~]#/var/www/html/squirrelmail/config/conf.plи видим в командной строке конфигуратор. Он простой. Надо изменить:
во второй позиции:
1.  Domain                 : mail.salomatin.ru
3.  Sendmail or SMTP       : SMTP
В десятой позиции:
1.  Default Language       : ru_RU
2.  Default Charset        : utf8
Выйти через Q с сохранением.


Шаг № 4:
Даем права

[root@server ~]#chown root.apache2 /var/spool/squirrelmail/attach/  
[root@server ~]#chown root.apache2 /var/lib/squirrelmail/prefs/
и перегружаем
[root@server ~]#service httpd2 restart

заходим:

http://192.168.0.1/squirrelmail/src/login.php

логин и пароль нашего системного пользователя vova
видим наше письмо.
« Последнее редактирование: 03.11.2010 22:21:48 от Salomatin »
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн Salomatin

  • Модератор
  • *****
  • Сообщений: 981
    • Пошаговые инструкции
    • Email
Re: Почтовый сервер
« Ответ #3 : 10.10.2010 20:44:31 »

Почтовый сервер Sendmail

(Почтовик сложный, литературы в интернете очень мало.)

Ролик по этой теме можно скачать по адресу: http://roliki.salomatin.ru/sendmail.ogv

Шаг № 1: Удаляем postfix
[root@server ~]#apt-get remove postfixдобавляем недостающие программы
[root@server ~]#apt-get install popa3d sendmail sendmail-cf
Шаг № 2: Включаем popa3d
[root@server ~]#chkconfig popa3d onв /etc/xinetd.d/popa3d добавляем строчку
only_from += 192.168.0.0/24и перезапустить xinetd.
[root@servser ~]#service xinetd restartубедиться что он стартует всегда :
[root@servser ~]## chkconfig xinetd on
Шаг № 3: создаем файл:
[root@server ~]#cat >> /usr/share/sendmail-cf/cf/my.mc
include(`../m4/cf.m4')dnl
VERSIONID(`Myperconal cf')dnl
OSTYPE(linux)dnl
define(`SMART_HOST',`[mail.chel-net.ru]')dnl
FEATURE(use_cw_file)dnl
FEATURE(`access_db',`hash -T<TMPF> /etc/mail/access.db')dnl
MAILER(smtp)dnl
MAILER(local)dnl
пустая строка
(ctrl+d) - сахраняем
в конце обязательно пустая строка, иначе работать не будет. Также надо обратить внимание на одинарные кавычки, они разные.
Строка
define(`SMART_HOST',`[mail.chel-net.ru]')dnl
очень интересная, это  mail.chel-net.ru - тот самый релей провайдера

Сам файл создается следующим образом: Для чего переходим в
[root@server ~]# cd /usr/share/sendmail-cf/cfи даем команду
[root@server cf]# m4 my.mc > /etc/mail/sendmail.cf
Шаг № 4: разрешаем прием почты сервером
[root@server ~]#cat >> /etc/mail/local-host-names
salomatin.ru
пустая строка - обязательно
(ctrl+d) - сахраняем
и пересылку почты на машины локалки 192.168.0.0/24
[root@server ~]#cat>>/etc/mail/access
Connect:192.168.0 RELAY
пустая строка - обязательно
(ctrl+d) - сахраняем
создать сам файл access.db - для этого перейти в директорию /etc/mail
[root@server mail]#makemap hash access < access
Шаг № 5:
старт почтового сервера sendmail:
[root@server ~]#service sendmail start
Все. Должно работать.

остановить сервер можно только уничтожив процесс, так как команда restart в этом случае не работает
[root@salomatin ~]#killall sendmail

Перед стартом обязательно проверить остановлен ли, так как может быть запущен не один sendmail . Остановить нужно все работающие. Для этого просто повторяйте команду, пока не получите сообщение, что удалять нечего..
 
На  сервере должно быть правильно установлено время, так как может конфликтовать с другими почтовыми серверами, когда будет делать отметки о времени пересылки.
[root@server ~]#service ntpd restart
Почта хранится также в одноименном файле пользователя в каталоге /var/mail  (/var/spool/mail)
Файл можно удалять целиком.  При поступлении нового письма пользователю sendmail создаст новый файл.
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"