Loading...
 
[Zobrazit/Skrýt nabídky vlevo]
[Zobrazit/Skrýt nabídky vpravo]

mail.hosting.cldn.cz

Zpet na rozcestnik

big header

Architecture overview (mail)

Services access information

MariaDB:

AccountPasswordDatabaseDescription
root1:kdGLpIvdk6OepZGl0ZyIm97bhJrp -all- -all-
rc_uzzdb11:FikqBil4G3R7OgkFey17JRsWIQBMrc_bddb1Roundcube main
spamassassin1:eUgme0d4cyMnR394eSdKYXNcImUQsa_bayesSpamassassin Bayes for all domains


Testovaci domena a mailove ucty:

UcetDomenaHesloAliasy uzivateleAliasy domeny
cldnhosting.cldn.cz1:JBFATkREHgc0PBQYRBYvLXc=postmasterhosting.cldn.eu
clddhosting.cldn.cz1:/tvd1tHIyomKi7g= hosting.cldn.eu
testerhosting.cldn.cz1:URBUVQhbWhsCCWM= hosting.cldn.eu

Services list with short description

Dovecot ; as MDA (local storage delivery, pop3 and imap) and auth provider for postfix
Dovecot-pigeonhole ; implements managesieve protocol for sorting and filtering mail during delivery
Postfix ; as MTA
Amavis ; as the interface between Postfix and mail content checkers - Spamassassin , Clamd , ESETs (only on some installations)
Spamassassin ; content filter - spam-checker, applies serveral types of checks to the mail headers and it's content to determine whether to mark mail as spam. Scores are overridden by amavis rules
Clamd ; content filter - antivirus, checks mail content for virus signatures
ESET ; content filter - antivirus, checks mail content for virus signatures
OpenDKIM ; implementation of DKIM (Domain Keys Identified Mail) sender authentication system - milter-based filter application that can plug in to any milter-aware MTA
Roundcubemail ; webmail php application run inside php-fpm pool and provided by nginx web server
php-fpm ; alternative php FastCGI inplementation
nginx ; webserver
mariadb ; fork of MySQL , hosts databaes for roundcubemail and spamassasin bayes checker (with signatures held per-domain basis)
fail2ban ; scans log files and bans IP addresses that makes too many password attempts by applying iptables rules

Scripts list with short description

/usr/local/scripts/LDAP/ldap-scripts/ldadomain ; python script to work with domain ldap entries, run manually
/usr/local/scripts/LDAP/ldap-scripts/ldauser ; python script to work with domain user entries, run manually

/usr/local/scripts/mail/sa-learn ; goes trhough spam folders of each mailbox and processes mails to the bayes database, run by cron or manually
/usr/local/scripts/mail/sa-clean ; goes through spam folders of each mailbox and removes all spams older than 30 days, run by cron or manually

Uprava konfigurace SA a Amavisu.


1. Uprava score per user: Pridat k uctu objectclass amavisAccount a nastavit amavisSpamTag2Level.

Migration procedure for old mailservers

Postup migrace domeny/schranek z mail.netmax.cz
Kroky ve zkratce (detailni popis nasleduje)

  1. Priprava k migraci (provadi se nekolik dnu pred samotnou migraci)
    1. (s) Rozeslat mailing vsem uzivatelum migrovane domeny, aby vedeli, ze se migrace chysta
    2. Upravit TTL pro MX zaznam na DNS serveru a nastavit hodnotu na 300 (5 min), nebo mensi
  2. Migrace
    1. (n) Zalozit domenu v novem ldap serveru
    2. (n) Zmigrovat ldap zaznamy
    3. Pripravit databazi pro bayes spamassassinu (2 moznosti)
      1. (sn) Zmigrovat existujici databazi
      2. (n) Zalozit databazi pomoci example souboru
    4. (n) Vytvorit slozku pro maily do niz mailserver nebude moci zapsat
    5. (s) Nastavit na starem mailserveru preposilani mailu
    6. (n) Zmigrovat schranky
    7. Upravit DNS zaznam pro mx
    8. Upravit DNS zaznam pro DKIM Domain Key


Kroky detailne
1. Priprava k migraci (provadi se nekolik dnu pred samotnou migraci)

1.1 (s) Rozeslat mailing vsem uzivatelum migrovane domeny, aby vedeli, ze se migrace chysta:
Bash skript 'migration-warning' rozesilajici mailing se nachazi v /usr/local/scripts/mail/ na mailserveru netmaxu
Ve stejne slozce je i soubor migration-text.eml, ktery skript nacita jako textovou predlohu se samotnou zpravou.
Udaje o uzivatelich, jimz se bude posilat upozorneni se nacitaji primo z ldapu.
Skript bere dva parametry, <domena> a <datum>
<domena> je nazev domeny kterou budeme migrovat,
<datum> je datum, ktery se zobrazi zakaznikovi v mailu, kdy bude migrace probihat
Priklad pusteni:

bash /usr/local/scripts/mail/migration-warning "cldn.cz" "16.12.2014"


1.2 Upravit TTL pro MX zaznam na DNS serveru a nastavit hodnotu na 300 (5 min), nebo mensi
Uprava se provadi na prislusnem nameserveru.
Pokud se jedna o PowerDNS se zaznamy v ldapu, pod udaj mail.<domena>.cz prida atribut dNSTTL s hodnotou 300
Pokud se jedna o Bind s textovym konfigurakem, zaznam bude vypadat nasledovne:

mail 300 IN A 109.205.75.37


2. Migrace

2.1 Zalozeni domeny na novem mailserveru
Python skript 'ldadomain' vytvarejici top-level zaznam pro domenu se nachazi v /usr/local/scripts/LDAP/ldap-scripts na mailserveru mail.hosting.cldn.cz
Ve stejne sloze se nachazi konfiguracni soubor ldap.ini v nemz jsou ulozeny parametry pro spojeni s ldap serverem
Skript vytvori zaznam ve tvaru dc=<domena>,dc=domains,dc=hosting,dc=cldn,dc=cz v ldapu
Zaroven private, public klice a txt zaznam pro opendkim a umisti je jako /etc/pki/opendkim/{private,certs,txt}/<domena>.{key,pem,txt}
Pro zalozeni domeny bere skript tri paramentry, add <domena> <majitel domeny>
add - je klicove slovo pro pridani zaznamu, skript umi take mazat, klicove slovo - del
<domena> je porad tataz domena, ktera se migruje
<majitel domeny> je nazev spolecnosti, ktera tuto domenu vlastni/pouziva, usnadni to vyhledavani v budoucnu a mozna bude pouzite v billingu. Parametr je povinny, kdyz nevite co napsat, piste "Example".
Priklad pusteni:

python /usr/local/scripts/LDAP/ldap-scripts/ldadomain add "cldn.cz" "Cluster Design s.r.o."


2.2 Migrace ldap zaznamu
Python skript 'ldapmigrate' se nachazi v /usr/local/scripts/LDAP/ldap-scripts na mailserveru mail.hosting.cldn.cz
Skript se pripoji na stary ldap, nacte strom pozadovane domeny, uvnitr prepracuje a zapise upravene hodnoty do stromu ldapu noveho. Skript kontroluje, zda vychozi a cilova domena ve prislusnych ldap serverech existuji a kontroluje, zda ma domena do niz se migruje, jiz nejake uzivatelske ucty, pokud ano, migraci zamitne (urcen je na migraci nacisto).
bere jeden parameter <domena>
<domena> je porad tataz domena, ktera se migruje
Priklad pusteni:

python /usr/local/scripts/LDAP/ldap-scripts/ldamigrate "cldn.cz"


2.3 Priprava databazi pro bayes spamassassinu
2.3.a Backup-restore databaze z mail.netmax.cz
Pokud na netmaxu je zakaznicka bayes databaze, udela se jeji dump, prenese na novy mailserver a udela se restore.
Priklad:
1. Na mail.netmax.cz:

su spamassassin -c 'sa-learn --dbpath /var/lib/spamassassin/configs/cldn.cz/ --backup > /tmp/sa-cldncz-dump'

2. Na mail.hosting.cldn.cz

scp root@192.168.10.102:/tmp/sa-cldncz-dump /tmp/
su amavis -s /bin/bash -c 'sa-learn -u cldn.cz --restore /tmp/sa-cldncz-dump'

2.3.b Zalozeni databaze na mail.hosting.cldn.cz
Pokud na netmaxu databaze neni, zalozi se nova
Priklad:

su amavis -s /bin/bash -c 'sa-learn -u cldn.cz --spam ~/gtube.txt'


2.4 Vytvorit slozku pro maily ve formatu /home/<domena> na serveru mail.hosting.cldn.cz s pravy root:root ; umask 077,
timto je znemozneno dovecotu dorucovat prichozi postu do schranky (schranky jeste nemame), a mail serveru bude vracet 451, takze pokud odesilaci server se bude chovat jak ma, nic se neztrati
Priklad:

mkdir -p /home/cldn.cz
chown root:root /home/cldn.cz
chmod 700 /home/cldn.cz


2.5 Nastavit na starem mailserveru preposilani mailu
Transportni pravidlo pro courier se nastavuje v /etc/courier/esmtproutes na mail.netmax.cz,
format:
<domena>: [<cilova ip adresa>]
Courier tento soubor pouziva pri kazdem dorucovani, proto je aktivovano okamzite, ale...
Zaroven s pustenim transport pravidla je potreba zakomentovat v /etc/courier/hosteddomains/<domena> radky pro prijem mailu na teto domene, jinak courier bude dorucovat lokalne dal, a pustit "makehosteddomains". Nasledne restart couriera.
Priklad:

sed -i '1i <cldn.cz>: [109.205.75.91]' /etc/courier/esmtproutes
sed -i 's/^/#/g' /etc/courier/hosteddomains/cldn.cz
makehosteddomains
service courier restart


V tomto okamziku posta stale chodi na stary mailserver, ale je preposilana na mailserver novy, ktery ji prijme (mame ldap zaznam), ale hodi 451 a nedoruci (dovecot nema pravo na zapis do slozky).



2.6 Migrace schranek
Bash skript 'get-maildirs' ktery migruje schranky se nachazi v /usr/local/scripts/mail/ na mail.hosting.cldn.cz
Ve stejne slozce je i perl skript napsany autorem dovecotu, ktery migruje flagy a serial data o mailech z formatu courieru do formatu dovecotu.
Bash skript se postara o stazeni slozek s mailama do tempu, spravne zavolani perloveho skrtiptu, ocisteni slozek po konvertaci a umisteni do /home/<domena>, zaroveni nastavi prava tak, ze dovecot zacne dorucovat
Skript bere dva parametry, <domena> <top-domena>.
<domena> je porad tataz domena, ktera se migruje
<top-domena> je historicke umisteni postovni domeny pod prvni domenou zakaznika. V praxi to znamena ze pod <top-domena> <uvt.cz> se skryvaji <domena> <cldn.cz><bosson.cz><cluster-design.cz> atd.
Priklad spusteni:

bash /usr/local/scripts/mail/get-maildirs "cldn.cz" "uvt.cz"


2.7 Uprava DNS zaznamu pro mx
dns zaznam pro mx domeny se ma zmenit z 109.205.75.37 na 109.205.75.91 pro ipv4
a zaroven se muze pridat AAAA zaznam 2a00:1238:4:10::170 pro ipv6

Priklad pro bind:

mail 300 IN A 109.205.75.91
mail 300 IN AAAA 2a00:1238:4:10::170


2.8 Uprava DNS zaznamu pro DKIM Domain Key
Je potreba vytvorit zaznam ve tvaru mail._domainkey.<domena> s polozkou TXTRecord, ktery vytvoril ldadomain ve druhem kroku
TXTRecord bude ulozen v /etc/pki/opendkim/txt/<domena>.txt na mail.hosting.cldn.cz

Priklad:

cat /etc/pki/opendkim/txt/cldn.cz.txt


Priklad pro bind:

mail._domainkey IN TXT "v=DKIM1; k=rsa; t=y:s; s=email; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArSgW61f5Sa42yqVuRACt2fh9Kr7FmhZ6Gbugut8XGdUIBcQzU2UAKDLOUrKZZsfHEWmDyliqKXOFlWx/+/PpIntsSE1ah6C6k3dTz4C7UncrkG+62ZN8tIZQ14xfM8csIO8SkzqRi//vEfILcpXMJj+4uUgukrNB4iaAiXsE5hfa4/SjP8FVv6GtDpDORt2h9dqSLpqNSkVDKXS/SWInj8msNBRMnHEhJMX+Cy7GxxsxHvZyTVV+OZdIQC4LvB4wWeiisvIj4v3oE1NZe/aeKdwz/3LkIzNKp0sYrP3t0gYjN4lYEiatda7utOx2aYn9g57PbQlRkIfBUDLQxz45JwIDAQAB"

Created by deghost. Last Modification: Úterý 29 of srpen, 2017 10:24:22 CEST by komodo.