Cyrus kasutamine Gentooga

Allikas: Kuutõrvaja
Redaktsioon seisuga 15. september 2007, kell 15:06 kasutajalt Jj (arutelu | kaastöö) (Tarkvara install)

Sissejuhatus

Cyrus IMAP is named after Cyrus the Great (559 - 530 BC), founder of the Persian kingdom, and “King of the World”. Cyrus the great is remembered for his tolerance of the various minorities and generally benevolant leadership.

Antud näide on kirjutatud seletamaks kuidas gentoole ehitada cyruse abil võimas mysql ja openmailadminiga hallatav mailiserver.

cyrus kasutab üsna maildir laadset formaati kuid lisanud sellele andmebaasi muutes nii kõike tunduvalt kiiremaks. Seetõttu on cyrus üsna hea valik väga suurte emaili süsteemide tarbeks. Netis väidetakse ,et ka meie kodumaine hot.ee http://www.hot.ee (“The Hotmail of Estonia”) kasutab cyrust ning sellel hetkel 300,000 users.

Cyruse poolt toetatud protokollid on IMAP, IMAPS, POP3, POP3S, KPOP, LMTP

Süsteemi kirjeldus

Tähele tasub panna ,et cyruse juures postfix ise failide kettale kirjutamisega ei tegele. See on usaldatud täielikult cyrusele endale. Peale kirja saamist posfix kontrollib mysql tabelitest domeeni olemasolu ning annab selle edasi cyruse teenusele mis. Kontrollib taaskord kasutajat mysql'ist pam_mysql abil ning salvestab kirja enda modifitseeritud maildir++ laadsesse formaati ning samuti peab kõikide kirjade kohta enda sisemist andmebaasi.

Skeemid maili liikumisest serveris

Kirja saatmine Cyr12.jpg

Kirja vastuvõtmine Cyr22.jpg

Tarkvara install

  emerge cyrus
  emerge pam_mysql
  emerge cyrus-imap-admin

Lisaks vaja installida mysql juhul kui ei ole eraldiseisvat mysql serverit. Mysql install on kirjeldatud teises õpetuses.

 rc-update add cyrus default
 rc-update add postfix default
 rc-update add saslauthd default

Cyruse seadistus

Kõik cyruse poolt starditavad teenused ja nende startimine tuleb defineerida failis cyrus.conf.

Näitekonfis stardime teenused imap, imaps, pop3 ja pop3s ning sieve.


/etc/cyrus.conf

# Standard standalone server configuration.
START {
  recover       cmd="ctl_cyrusdb -r"
}

SERVICES {
  imap          cmd="imapd" listen="imap" prefork=5
  imaps           cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100 

  pop3          cmd="pop3d" listen="pop3" prefork=25 maxchild=-1
  pop3s         cmd="pop3d -s" listen="pop3s" prefork=25 maxchild=-1

  sieve         cmd="timsieved" listen="192.168.10:sieve" prefork=0
  lmtpunix      cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
}
 
EVENTS {
  checkpoint    cmd="ctl_cyrusdb -c" period=30
  delprune      cmd="ctl_deliver -E 3" period=1440
  tlsprune      cmd="tls_prune" period=1440
}

Kõigi teenuste täpsemaks häälestamiseks on fail imapd.conf

/etc/imapd.conf

Sellest toimib kaustade paikamääramine. Sertifikaatide seadistamine. Imap, pop3, sieve täpsem häälestus jpm.

configdirectory:        /var/imap
partition-default:     /mail/spool/imap
tls_ca_path:            /etc/imap
tls_cert_file:          /etc/imap/mail.crt
tls_key_file:           /etc/imap/mail.key
postmaster: postmaster

sievedir:              /mail/sieve
sieve_maxscriptsize: 64
sieve_maxscripts: 5

sendmail: /usr/sbin/sendmail
admins: cyrus
allowanonymouslogin: no
allowplaintext: yes
autocreatequota: 10000
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10

allowapop: no
popminpoll: 0

sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN

lmtp_overquota_perm_failure: no

Loome kaustad /var/imap ja /mail/spool/imap

postfixi konf

main.cf

mailbox_transport = cyrus
virtual_alias_domains = mysql:/etc/postfix/mydestination.mysql
virtual_alias_maps = mysql:/etc/postfix/virtual.mysql
sender_canonical_maps = mysql:/etc/postfix/canonical.mysql


mysql kasutamiseks failid

/etc/postfix/mydestination.mysql

mydestination.mysql

hosts = localhost
user = database
password = parool
dbname = mailedu
table = domains
select_field = domain
where_field = domain

/etc/postfix/virtual.mysql

virtual.mysql

hosts = localhost
user = baas
password = parool
dbname = mailedu
table = virtual
select_field = dest
where_field = address
additional_conditions = and active = '1'

/etc/postfix/canonical.mysql

canonical.mysql

hosts = host
user = baas
password = parool
dbname = mailedu
table = user
select_field = canonical
where_field = mbox
additional_conditions = and active = '1' limit 1

Mysql baasi seadistus

teeme imap pam konfiguratsiooni

 nano /etc/pam.d/imap


#auth       required     pam_nologin.so
#auth       include      system-auth
#account    include      system-auth
#session    include      system-auth

auth    sufficient pam_mysql.so user=mailedu passwd=parool host=localhost db=baas table=user usercolumn=mbox passwdcolumn=password crypt=1 sqlLog=0
account required   pam_mysql.so user=mailedu passwd=parool host=localhost db=baas table=user usercolumn=mbox passwdcolumn=password crypt=1 sqlLog=0

Juhul kui pam autentimine mingil põhjusel tõrgubnvõb auto ja account ridade lõppu lisada verbose ,et saada rohkem infot /var/log/auth.log'i

Lisada võib samuti where=mailboxes.active=1 mis puhul disabletud kasutajate ligipääsu piiratakse.

Teeme loodud imap failist symlingid teistele pam failidele.

 ln /etc/pam.d/imap  /etc/pam.d/pop
 ln /etc/pam.d/imap  /etc/pam.d/sieve
 ln /etc/pam.d/imap  /etc/pam.d/smtp
 ln /etc/pam.d/imap  /etc/pam.d/nntp


 mkdir /var/lib/amavis


cyruse halduse käsurida

Kõik cyruse tööd toimuvad cyradm utiliidi vahendusel

Serveri administraatoriks on kasutaja Cyrus. Selleks ,et saaks cyradm abil cyruse shelli kasutada on vaja esimesena seada cyrus kasutajale parool. muudame cyruse parooli ja testime selle toimimist

saslpasswd2 -c cyrus

Nüüd võib logida cyruse konsoolile.

cyradm -user cyrus -host 127.0.0.1

Nimekiri peamistest vajalikest cyruse käskudest

cm Loob mailbox'i
dm kustutabmailbox
exit väljumiseks cyradm'ist
lm nimekiri mailbox'idest
lq Näitab quota informatsiooni
lqm Quota info etteantud mailboxi kohta
renm Muudab mailboxi nime
sq Quota seadistamiseks

Cyruses kasutajale mailboxi luues tuleb pidada meeles ,et see tuleb luua kujul user.kasutajanimi

näiteks cyrus.mart

cm user.mart

testimine

 emerge net-misc/netkit-telnetd
 telnet 127.0.0.1 143

Loome sql tabelisse domeeni test.ee ja kasutaja mart@test.ee cyradmiskäivitame käsu cm cyrus.mart

telnet 192.168.1.10 143
Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.
* OK gentoo20070412 Cyrus IMAP4 v2.2.12-Gentoo server ready
1 LOGIN mart parool
1 OK User logged in

Testime mailisaatmist

Openmailadmin

paigaldame php ja apache

  emerge php
  emerge dev-php/PEAR-Log
  emerge dev-php/adodb


http://openmailadmin.ossdl.de/

installime openmailadmini

  wget http://static.ossdl.de/openmailadmin/downloads/openmailadmin-0.10.1.tbz2
  tar -xf  openmailadmin-0.10.1.tbz2