Евгений Борисов
среда, 21 января 2004 г.
Построить систему обмена электронной почтой с internet для небольшой LAN, учитывая особенности dialup.
При cвязи с internet через модем обычно хочется минимизировать время сеанса связи и число процедур дозвона. Исходя из этого требования систему построим так :
# cd /usr/ports/mail/fetchmail # make all install clean
poll pop.ukrpost.net proto POP3 interface tun0/0.0.0.0/0.0.0.0 user "moo" with pass "mOOmOO" is "boo" hereвся почта moo@ukrpost.net переписывается в ящик локального пользователя boo
# cd /usr/ports/mail/popd # make all install clean
#!/bin/sh /usr/local/libexec/popd
Для отправки почты будем использовать sendmail [4].
# sendmail -d0.1 -bv root | grep SASL
# cd /usr/ports/security/cyrus-sasl2 # make all install clean
SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2 SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl2
# 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
hosts filesт.е. говорим sendmail использовать только информацию из файла /etc/hosts при разрешении имён во время доставки почты.
AuthInfo:smtp.yandex.ru "U:iam" "P:mypsswd" "M:LOGIN"создаём файл паролей :
makemap hash /etc/mail/authinfo.db < /etc/mail/authinf( /etc/mail/authinfo можно удалить )
VERSIONID(`FreeBSD:20/01/2004') OSTYPE(freebsd4) DOMAIN(generic) FEATURE(local_lmtp) FEATURE(nocanonify) FEATURE(accept_unresolvable_domains) FEATURE(accept_unqualified_senders) FEATURE(`authinfo') define(`SMART_HOST', `smtp.yandex.ru') define(`confBIND_OPTS', `-DNSRCH -DEFNAMES') define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch') define(`confSMTP_MAILER', `smtp8') define(`confTO_IDENT', `0') define(`confTO_QUEUEWARN', `5h') define(`confTO_QUEUERETURN', `1d') define(`confCON_EXPENSIVE', `True') define(`SMTP_MAILER_FLAGS', `e') MAILER(local) MAILER(smtp)
т.е. говорим sendmail что :
создаём файл настроек sendmail :
m4 /usr/share/sendmail/cf/m4/cf.m4 freebsd.mc > sendmail.cf
sendmail_enable="YES" sendmail_flags="-bd"
killall sendmail /usr/sbin/sendmail -bd
В такой конфигурации успешно запускать fetchmail и sendmail может только root. Для устранения этого ограничения обмен почтой можно производить автоматически из скрипта установки связи. Другое решение - установить suid :
chmod +s /usr/local/bin/fetchmail chmod +s /usr/sbin/sendmail
Evgeny S. Borisov