Cyrus
Cyrus is one of the most widely used IMAP/POP servers. Cyrus is apreciated for virtualisation of mailboxes and cool stuff like server side filtering (sieve) or shared folders. It is frequently used in universities. This will be used to keep the mails of the local users on local machine.
Sendmail
Sendmail is the most popular mail transfer agent (MTA) on the Internet. Its popularity is due in part to its position as the standard MTA under most variants of the Unix and other Unix-like operating system.
Sendmail supports a variety of mail transfer protocols, including SMTP, ESMTP, DECnet's mail 11, HylaFax, QuickPage and UUCP. Additionally, Sendmail v8.12 as of September 2001 introduced support for milters - external mail filtering programs that can participate in each step of the SMTP conversation.
Bind
BIND is an implementation of the Domain Name System (DNS) protocols.
The BIND software distribution contains three parts:
- A Domain Name System server. This is a program called "named", which is pronounced "name-dee" and stands for "name daemon". It answers questions that are sent to it, following the rules specified in the DNS protocol standards. You can provide DNS service on the internet by installing this software on a server computer and giving it correct information about your domain names.
- A Domain Name System "resolver library". A "resolver" is a program that resolves questions about names by sending those questions to appropriate servers and responding appropriately to the servers' replies. A "resolver library" is a collection of software components that a programmer can add to software being developed, which will give that software the ability to resolve names. For example, a programmer who was programming a new web browser does not need to create the part of it that looks up names in DNS; he or she can plug in the resolver library and then send quesitons to the library software components. This saves time (the programmer does not need to re-invent that particular wheel) and helps ensure that the new browser correctly follows the DNS standards.
- Software tools for testing servers. These are the tools that we use for testing, and we include them in the distribution in case you would like to do your own testing, perhaps to make sure your server configuration is working properly.
Fetchmail
Fetchmail is a full-featured, robust, remote-mail retrieval and forwarding utility intended to be used over on-demand TCP/IP links (such as SLIP or PPP connections). It supports every remote-mail protocol now in use on the Internet: POP2, POP3, RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even support IPv6 and IPSEC.
Fetchmail retrieves mail from remote mail servers and forwards it via SMTP, so it can then be read by normal mail user agents such as mutt, elm(1) or BSD Mail. It allows all your system MTA's filtering, forwarding, and aliasing facilities to work just as they would on normal mail.
Fetchmail offers better protection against password-sniffing than any other Unix remote-mail client. It supports APOP, KPOP, OTP, Compuserve RPA, Microsoft NTLM, and IMAP RFC1731 encrypted authentication methods including CRAM-MD5 to avoid sending passwords en clair. It can be configured to support end-to-end encryption via tunneling with ssh, the Secure Shell.
Fetchmail can be used as a POP/IMAP-to-SMTP gateway for an entire DNS domain, collecting mail from a single drop box on an ISP and SMTP-forwarding it based on header addresses. (We don't really recommend this, though, as it may lose important envelope-header information. ETRN or a UUCP connection is better.)
References :
UUCP and rmail
UUCP can transfer anything. It can be told to transfer some data to remote system and execute some program on that remote system having this data as input. Or in back direction -- sending output of remote command to local system.
Rmail command is a traditional way for transmitting mail over uucp. One system prepares email message and tells uucp to deliver it to remote system and call `rmail' program there, so this program will read the message and deliver it using local (from the remote side) ways. Trivial rmail "program" is distributed with Postfix. It is a simple shell script that calls local /usr/sbin/sendmail with appropriate arguments, giving it the input received from remote side.
May be. The `server' is a system name configured in local /etc/uucp/sys file. If you name it `server.fq.dn', then you should use this name when invoking uucico (or uux for queuing a command for a system, or uucp for simple file transfer, or uustat for displaying a queue and so on).
UUCP (UNIX-to-UNIX Copy Protocol) is a set of unix program for copying (sending) files between different UNIX systems and for sending commands to be executed on another system. The main UUCP commands (each supported by a UUCP program) are:
- uucp, which requests the copying of a specific file to another specified system
- uux, which sends a UNIX command to another system where it is queued for execution
- uucico, which runs on a UNIX system as the program that carries out the copying and initiates execution of the commands that have been sent. Typically, this program is run at various times of day; meanwhile, the copy (uucp) and command (uux) requests are queued until the uucico program is run.
- uuxqt, which executes the commands sent by uux, usually after being started by the uucico program
The uucico programs are the programs that actually communicate across a network. There are several network protocols (variations on packet size and error-checking) that can be used by uucico programs, depending on the kinds of carrier networks being used.
Configuring UUCP on users' laptop:
Note :
Here example of User's laptop UUCP configuration is used as example.
* Hostname of the system : userabc.org.domain
* uucpqueue name : userabc.userdomain.com
* uucp queue created on mx server : server (uucp-in1.pub.org.domain).
Cyrus
/etc/imapd.conf
/etc/cyrus.conf
/etc/default/saslauthd
Sendmail
/etc/mail/sendmail.mc
/etc/mail/sendmail.conf
UUCP
/user/sbin/uusched
/etc/uucp/sys
Installing required packages
Cyrus
$ sudo apt-get install cyrus-admin-2.2 cyrus-clients-2.2 cyrus-imapd-2.2 sasl2-bin cyrus-pop3d-2.2 cyrus-doc-2.2 cyrus-sasl2-doc
On Postfix Configuration Screen
No configuration and hit .
Sendmail
sudo apt-get install sendmail-base sendmail-bin sendmail-cf sendmail-doc
Bind
$ sudo apt-get install bind9 bind9-doc
Fetchmail
$ sudo apt-get install fetchmail
UUCP and rmail
$ sudo apt-get install uucp rmail
Thunderbird
$sudo apt-get install thunderbird
Configuration
Cyrus
Please check the configuration of the following parameters in config files of cyrus.
/etc/default/saslauthd
# Other options (default: -c -m /var/run/saslauthd)
# Should saslauthd run automatically on startup? (default: no) START=yes # Which authentication mechanisms should saslauthd use? (default: pam) MECHANISMS="pam" # Additional options for this mechanism. (default: none) MECH_OPTIONS="" # How many saslauthd processes should we run? (default: 5) THREADS=5 |
/etc/cyrus.conf
# most services also accept -U (limit number of reuses) and -T (timeout) SERVICES { # --- Normal cyrus spool, or Murder backends --- # add or remove based on preferences imap cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100 #imaps cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100 pop3 cmd="pop3d -U 30" listen="pop3" prefork=0 maxchild=50 #pop3s cmd="pop3d -s -U 30" listen="pop3s" prefork=0 maxchild=50 #nntp cmd="nntpd -U 30" listen="nntp" prefork=0 maxchild=100 #nntps cmd="nntpd -s -U 30" listen="nntps" prefork=0 maxchild=100 .... # ---------------------------------------------- } |
/etc/imapd.conf
# UNIX Hierarchy Convention unixhierarchysep: no # and including 2.2.12-4. lmtp_downcase_rcpt: yes # Uncomment the following and add the space-separated users who # have admin rights for all services. admins: cyrus # Space-separated list of users that have imapd "admin" status, in # addition to those in the admins: entry above imap_admins: cyrus # Allow plaintext logins by default (SASL PLAIN) allowplaintext: yes # # SASL library options (these are handled directly by the SASL libraries, # refer to SASL documentation for an up-to-date list of these) # sasl_pwcheck_method: saslauthd |
Cyrus Mailbox creation
First, you have define a "password" for the user cyrus . With root make this:
# passwd cyrus
Enter new UNIX password: TYPE YOUR CYRUS PASSWORD HERE Retype new UNIX password: RETYPE YOUR CYRUS PASSWORD
You also have to create the mailboxes for the users. Use the cyradm utility for that:
$ cyradm --user cyrus -auth plain localhost password :IMAP Password: localhost>
You can have the full description of the commands available by typing help.
Mailbox creation is done like this:
localhost>cm user.userabc
Dot not forget the prefix user. or the mailbox created will be considered as a shared mailbox.
$ telnet localhost imap Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
imap login userabc passowrd
imap OK User logged in
Sendmail
/etc/mail/sendmail.conf
DAEMON_NETMODE="Dynamic"; QUEUE_INTERVAL="5m"; MSP_MODE="Daemon"; MSP_INTERVAL="1m"; |
/etc/mail/sendmail.mc
FEATURE(`no_default_msa')dnl FEATURE(`use_cw_file')dnl FEATURE(`accept_unresolvable_domains')dnl dnl DAEMON_OPTIONS(`Family=inet, Name=MTA-v6, Port=smtp, Addr=127.0.0.1')dnl DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, Addr=127.0.0.1')dnl dnl define(`LUSER_RELAY', `local:cyrusv2')dnl FEATURE(`always_add_domain')dnl dnl MASQUERADE_AS(`org.domain')dnl dnl define(`confDOMAIN_NAME', `org.domain')dnl define(`ALIAS_FILE',`/etc/aliases') define(`confBIND_OPTS', `WorkAroundBrokenAAAA')dnl define(`confLOCAL_MAILER',`cyrusv2')dnl define(`confCON_EXPENSIVE',`False')dnl define(`confQUEUE_LA',`40')dnl define(`confREFUSE_LA',`60')dnl define(`confMIN_QUEUE_AGE',`2m')dnl define(`confMAX_DAEMON_CHILDREN',`20')dnl dnl define(`confMIN_FREE_BLOCKS',`250000')dnl Minimum number of free blocks needed to accept new mail dnl define(`confMAX_MESSAGE_SIZE',`50000000')dnl Maximum size of the message to accept define(`UUCP_MAILER_MAX', `50000000') define(`confTO_IDENT', `0')dnl define(`SMART_HOST',`uucp-dom:uucp-in1.pub.org.domain')dnl define(`CYRUSV2_MAILER_ARGS',`FILE /var/run/cyrus/socket/lmtp')dnl FEATURE(`smrsh')dnl dnl FEATURE(`allmasquerade')dnl dnl FEATURE(`masquerade_envelope')dnl dnl FEATURE(`virtusertable', `hash /etc/mail/virtusertable')dnl MAILER_DEFINITIONS MAILER(`local')dnl MAILER(`smtp')dnl MAILER(`cyrusv2')dnl MAILER(`uucp')dnl dnl MODIFY_MAILER_FLAGS(`SMTP',`+e')dnl dnl MODIFY_MAILER_FLAGS(`UUCP',`+e')dnl dnl MODIFY_MAILER_FLAGS(`CYRUSV2',`+we')dnl dnl MODIFY_MAILER_FLAGS(`ESMTP',`+e')dnl LOCAL_CONFIG C{LOCALUSER}userabc userabc C{LOCALDOMAIN}org.domain LOCAL_RULE_0 R$={LOCALUSER} < @ $={LOCALDOMAIN} > $#cyrusv2 $: userabc R$={LOCALUSER} < @ $={LOCALDOMAIN} . > $#cyrusv2 $: userabc |
local cyrus mail box of userabc.
Converting sendmail.mc to sendmail.cf
$ m4 sendmail.mc > /var/tmp/sendmail.cf
$ ci -l o sendmail.cf
$ cp /var/tmp/sendmail.cf /etc/mail/
Restart the sendmail :
$ /etc/init.d/sendmail restart
UUCP
Creating UUCP ssh key for uucp user
# su uucp
# sh-keygen -t dsa -b 1024 -C "UUCP user key for userabc.org.domain"
use blank passphrase.
Add public key uucp user to Server's uucptunnel user's authorized_keys file.
Creating uucp queue on server for laptop user
Login in to server
Specifying user queue parameters in /etc/uucp/sys
System userabc.org.domain - Name of the user's queue myname uucp-in1.pub.org.domain - Server's UUCP name called-login userabc.org.domain - Host name of laptop user time any commands rmail |
Adding password for user in /etc/uucp/passwd
userabc.org.domain password |
Adding alias in file /etc/alias
If you want to forward one mail copy to current server queue and one to new uucp queue change the /etc/mail/alias and /etc/virtusrtable as
Add/modify entry of userabc to /etc/mail/alias
|
Add this entry to /etc/mail/virtusertable
userabc@org.domain userabc |
If your do not want to forward mail to other queue except uucp queue /etc/mail/virtusertable
userabc@org.domain uucp-dom:userabc.org.domain |
Rebuilding virtusertable and aliases
$ makemap hash /var/tmp/virtusertable.db < /etc/mail/virtusertable
$ ci -l /etc/mail/virtusertable.db
$ cp /var/tmp/virtusertable.db /etc/mail/
$newaliases
On user's Laptop
Add entry in /etc/uucp/sys
system uucp-in1.pub.org.domain myname userabc.org.domain port type tcp port service 7071 address localhost chat ogin: userabc.org.domain word: password time any chat-timeout 300 protocol t |
uusched script
This script actually activate the send/receive mail facility for UUCP. This script creates a ssh tunnel to the uucp-in1.pub.org.domain futher communication is done over this ssh tunnel.
For creating a ssh tunnel we need to add a ssh key to server.Create a ssh key for uucpp user of laptop. Add this key to servers uucptunnel user's authorized_file.
The script uusched provided with this document needs to be kept in /usr/local/sbin.
The existing /usr/sbin/uusched needs to be moved to /usr/sbin/uusched.orig,
and a softlink needs to be created:
/usr/sbin/uusched --> /usr/local/sbin/uusched
set script permission to 110 and owner to uucp.uucp
# cd /usr/sbin/
# mv uusched uusched.ori
# cd /usr/sbin/local
# cp /var/tmp/tmp/uucp/uusched .
# chmod 110 uusched
# chown uucp.uucp uusched
# cd /usr/sbin/
# ln -s /usr/sbin/uusched uusched
Adding uusched script in cron
Switch to uucp user
$ sudo su uucp
Add following line to crontab
*/5 * * * * /usr/sbin/uusched >/var/tmp/uusched.out 2>/var/tmp/uusched.err
$ crontab -e
Thunderbird
Configuring thunderbird -
account setting -
1. New Account Setup
New E-mail account
2. Identity
your name : userabc
Email-address : userabc@org.domain
3. Server Information
Select type : IMAP
Incomming server : localhost
4. User name : Incomming User Name : userabc
5. Account Name : account name : userabc@org.domai
6. FINISH
No comments:
Post a Comment