Как одно из решений - выдать такому пользователю логин/пароль и настроить
sendmail на прием почты, основываясь на этих данных, независимо от IP-адреса,
с которого пришел пользователь. Собственно рецепт настройки sendmail'a я и привожу
здесь.
Благодарность за рецепт уходит Victor Prylipko
<Victor.Prylipko АТ f4.n4635.z2.fidonet.org> из фидо-конференции ru.unix.bsd
Дано:
FreeBSD 4.8 STABLE;
sendmail - штатный.
Требуется:
настроить авторизацию клиента использующего Outlook Express при приеме
почты от него, нужно для возможности принимать почту от клиента, если он
отправляет почту с "чужих" IP-адресов.
1. Ставим из портов cyrus-sasl2 и cyrus-sasl2-saslauthd
# portinstall cyrus-sasl
и выбираем security/cyrus-sasl2
# portinstall cyrus-sasl2-saslauthd
2. Из /etc/defaults/make.conf копируем строки в /etc/make.conf
SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2
3. Пересобираем sendmail
# cd /usr/src/lib/libsm
# make clean && make obj && make depend && make
# cd /usr/src/lib/libsmutil
# make clean && make obj && make depend && make
# cd /usr/src/usr.sbin/sendmail
# make clean && make obj && make depend && make && make install
4. Добавляем строку в /etc/rc.conf
sasl_saslauthd_flags="-a sasldb"
5. Запускаем демон SASL-а
# /usr/local/etc/rc.d/saslauthd.sh start
Этот пункт рецепта спонсирован Slava Vovk aka vovk АТ km.ua
6. Создаем Sendmail.conf
# echo pwcheck_method: saslauthd > /usr/local/lib/sasl2/Sendmail.conf
Там же можно указать, где лежит srvtab:
# echo srvtab: /etc/srvtab >> /usr/local/lib/sasl2/Sendmail.conf
7. Добавляем сроки в ваш .mc файл
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 PLAIN LOGIN')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 PLAIN LOGIN')dnl
В принципе можно ограничится только одним методом LOGIN, если нужно только
для Outlook Express (других клиентов я не пробовал).
TRUST_AUTH_MECH(`LOGIN')dnl
define(`confAUTH_MECHANISMS', `LOGIN')dnl
8. Генерим sendmail.cf и устанавливаем его
# cd /etc/mail
# make install restart
9. Заводим пользователя в базу SASL
# saslpasswd2 -a sendmail newuser
проверка, что пользователь добавлен:
# sasldblistusers2
выдаст список пользователей в базе.
10. Создаем пустой файл /etc/srvtab чтобы sendmail в логах не ругался,
хотя можно этого и не делать. :-)
11. В настройках Outlook Express
Tools | Accounts... | нужный аккаунт | Properties | Servers |
ставим "галочку" My server requires authentication и жмем кнопку
Settings...
вводим Account name и Password которые занесли в базу в 8-м пункте.
Все, почта от пользователя принимается невзирая на /etc/mail/access.db
(c) 2003, Alexandr Peresunko <alex АТ freeman.org.ua>
$Id: index.html,v 1.7 2003/06/13 10:18:52 freeman Exp $