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
Источник — «http://wiki.kryukov.biz/wiki/Imapd»
Инструменты
    
Личные инструменты