Imapd
Материал из Wiki Open Book.
Содержание |
[править] Описание
Со Slackware Linux поставляется пакет imapd в котором находится две программы: imapd и ipopd. Соответственно это IMAP и POP3 сервера.
Обе программы, кроме передачи пароля в открытом виде, поддерживают CRAM-MD5. А ipop3 еще и APOP, что позволяет увеличить безопасность сервера.
[править] Запуск программ
Программы запускаются при помощи сетевого супер сервера, например inetd. Поэтому внесем кое какие изменения в его конфигурационный файл /etc/inetd.
Закоментируем строку, запускавшую сервер popa3d:
#pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/popa3d
Добавим запуск сервера ipopd и imapd:
pop3 stream tcp nowait.50 root /usr/sbin/tcpd /usr/sbin/ipop3d imap stream tcp nowait.50 root /usr/sbin/tcpd /usr/sbin/imapd
50 — максимальное количество соединений в секунду.
Сохраним файл и уведомим об этом inetd.
# killall -HUP inetd #
Проверим кто держит открытыми порты 110 и 143.
# netstat -nlp | grep 110 tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1952/inetd # netstat -nlp | grep 143 tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1952/inetd #
[править] Stunnel
Несмотря на то, что оба сервера могут использовать хешированные пароли, все же рекомендуется включить поддержку SSL. По аналогии с тем, как мы настраивали сервер popa3d, используем программу stunnel. Нам потребуется добавить только описание протокола IMAP, потому что POP3 уже был описан в конфигурационном файле /etc/stunnel/stunnel.conf (см. stunnel).
[imaps] accept = 993 connect = 143
Перезапустим программу:
/etc/rc.d/rc.stunnel restart
[править] Включение поддержки APOP и CRAM-MD5
По умолчанию обе программы поддерживают только PLAIN и LOGIN аутентификацию. Как Вы понимаете — это не самый безопасный метод. Хотя мы уже используем SSL, но если Вас мучает паранойя, можете немного усложнить себе жизнь.
Почему усложнить? Для включения поддержки APOP и CRAM-MD5 придется создавать отдельный конфигурационный файл с паролями пользователей! А именно /etc/cram-md5.pwd. В этом файле следует писать логин пользователя и его пароль в открытом виде, разделенные табуляцией. Поскольку пароли в файле хранятся в открытом виде, права доступа должны быть установлены в 400. Файл должен принадлежать пользователю root.
Пароли пользователей могут не совпадать с реальными паролями в /etc/shadow. Но все же...
[править] Способы хранения почты
По умолчанию, при использовании imapd и ipop3d, входящие письма хранятся в директории /var/spool/mail/user. Но Вы должны учесть, что если используется протокол IMAP, пользователь на сервере может создавать директории и хранить письма на сервере. Поэтому у пользователей обязательно должна быть домашняя директория.
Чтобы не хранить входящую почту в /var/spool/mail, можно в домашней директории создать файл mail.txt. После того как пользователь прочитает входящую почту, она будет помещена в этот файл.
В принципе, можно использовать специальный формат, поддерживаемый только серверами, написанными в Вашингтонском университете. Для этого прийдется зайти в систему и руками запустить imapd. В работающей программе ввести команду создания почтового ящика и выйти из программы.
$ /usr/sbin/imapd * PREAUTH [CAPABILITY IMAP4REV1 LITERAL+ IDLE NAMESPACE MAILBOX-REFERRALS BINARY UNSELECT SCAN SORT THREAD=REFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND] Pre-authenticated user artur artur.kryukov.ru IMAP4rev1 2004.357 at Wed, 11 Jan 2006 18:09:43 -0300 (GMT+3) 1 create #driver.mbx:INBOX 1 CREATE mailbox node /home/artur/INBOX 2 logout * BYE artur.kryukov.ru IMAP4rev1 server terminating connection 2 OK LOGOUT completed $ ls -l INBOX -rw------- 1 artur users 2048 2006-01-11 18:10 INBOX $
Если Вы собираетесь использовать эти файлы, что бы не создавать их вручную для каждого добавляемого пользователя. Поместите их в директорию /etc/skel.
[править] Firewall
В firewall откроем подключение к порту 993:
iptables -A INPUT -p tcp --dport 993 -j ACCEPT

