Debian levelező szerver telepítése

Debian mail szerver telepítése. Az alábbi leírás az interneten található dokumentumokból van összegyűjtve.

A telepítés végén, egy komplett levelező rendszert kapunk debian Etch-And-A-Half alapon, Postfix Virtual PostfixAdmin MySQL Courier Maildrop Amavisd-new SquirrelMail MailZu párosítással. A rendszer telepítésére most nem fordítok figyelmet. Az alábbi lemez képet használtam a leírás létrehozásához:
wget http://cdimage.debian.org/debian-cd/4.0_r4a/i386/iso-cd/debian-40r4a-etchnhalf-i386-netinst.iso
bootol a rendszer A telepítés tasksel kérdésénél kivettem az "Asztali környezet" elől a jelölést, így egy minimális rendszert kapva. A kész rendszerrel megkezdhetjük a munkát:
apt-get install ntpdate ssh mc
frissítsük le a rendszeridőt:
ntpdate time.kfki.hu
Állítsuk be a nekünk kényelmes lokalizációt, ha ezt a telepítés alatt elmulasztottuk volna:
cat /etc/environment
LANG="hu_HU.UTF-8"
Vegyük fel a contrib és non-free tárolókat is:
mcedit /etc/apt/sources.list
deb http://ftp.hu.debian.org/debian/ etch main contrib non-free
deb ftp://ftp.hu.debian.org/debian etch-proposed-updates main contrib non-free
deb http://security.debian.org/ etch/updates main contrib non-free
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free
frissítsük le:
apt-get update && apt-get dist-upgrade
Ha sima etch rendszeren végezzük a telepítést, a volatile tárolóhoz szükség van a pgp kulcsának felvételére:
gpg --keyserver subkeys.pgp.net --recv-key BBE55AB3
gpg --armor --export BBE55AB3 | apt-key add -
A frissítés után indítsuk újra a gépet az új kernellel:
reboot
Távolítsuk el a fölösleges programokat, a szerver nem fog megosztásokat kezelni:
apt-get remove nfs-common pidentd portmap
Hosszuk létre a levelező szerverhez a tűzfal szabályokat:
iptables -F
iptables -N TUZFAL
iptables -F TUZFAL
iptables -A INPUT -j TUZFAL
iptables -A FORWARD -j TUZFAL
iptables -A TUZFAL -p tcp -m tcp --dport 25 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --dport 110 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --dport 143 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --dport 443 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --dport 465 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --dport 587 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --dport 993 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --dport 995 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --dport 4650 --syn -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp -s 192.168.1.0/24 --dport 22 --syn -j ACCEPT
iptables -A TUZFAL -i lo -j ACCEPT
iptables -A TUZFAL -p udp -m udp --sport 53 -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A TUZFAL -p udp -m udp --dport 123 -j ACCEPT
iptables -A TUZFAL -p udp -m udp --sport 6277 -j ACCEPT
iptables -A TUZFAL -p udp -m udp --sport 24441 -j ACCEPT
iptables -A TUZFAL -p tcp -m tcp --syn -j REJECT
iptables -A TUZFAL -p udp -m udp -j REJECT
iptables-save > /etc/tuzfal-szabaly
iptables-restore < /etc/tuzfal-szabaly
Állítsuk be, hogy a tűzfal automatikusan betöltődjön a gép indulásakor. Az /etc/network/interfaces fájlba az "iface lo inet loopback" alatti üres sorba illesszük ezt be:
pre-up iptables-restore < /etc/tuzfal-szabaly
Az allow-hotplug eth0 sort cseréljük le auto eth0-ra. Telepítsük az ntp-t, a c fordítót a logcheck et és egyéb dolgokat:
apt-get install ntp make gcc bison flex libc6-dev logcheck logcheck-database flip psmisc dpkg-dev

Mysql szerver telepítése

apt-get install mysql-server
Növeljük meg az InnoDB táblákban a használt memória méreteit, és a logok méreteit:
cp /etc/mysql/my.cnf /etc/mysql/my.cnf-original
zcat /usr/share/doc/mysql-server-5.0/examples/my-medium.cnf.gz > /etc/mysql/my.cnf
cd /etc/mysql/
wget http://cvk.hu/mail_szerver/my-medium.cnf.patch.txt
patch my.cnf < my-medium.cnf.patch.txt
/etc/init.d/mysql restart
Adjunk jelszót az adatbázis 'root' felhasználójának ( a debian hosztnevet le kell cserélni az aktuálisra ):
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root_jelszo');
SET PASSWORD FOR 'root'@'debian' = PASSWORD('root_jelszo');
FLUSH PRIVILEGES;
SHOW VARIABLES LIKE 'innodb_fast_shutdown';
Ezzel ellenőrizzük az innodb_fast_shutdown státuszát. ha az '1', akkor kiléphetünk.
QUIT
A patchelt my.cnf miatt megváltozott a log fájl szerkezete, ezt állítsuk át kézzel:
/etc/init.d/mysql stop
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/iblogfile0-old
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/iblogfile1-old
/etc/init.d/mysql start
ls -l /var/lib/mysql/ib_*
-rw-rw---- 1 mysql mysql 50331648 2008-10-25 11:25 /var/lib/mysql/ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 2008-10-25 00:44 /var/lib/mysql/ib_logfile1
Ha sikerült átállítani, akkor az új mérettel láthatjuk a 48MB -os log fájlokat (50331648).

Apache, php telepítése

apt-get install apache-ssl libapache-mod-php5 php5 php5-common php5-mysql php5-gd php5-mcrypt mcrypt ca-certificates openssl

Country Name "HU"
State or Province Name "PEST"
Locality Name "Budapest"
Organisation Name "home.cvk.hu"
Organisational Unit Name "WebMail Szerver"
Host Name "home.cvk.hu"
Email Address "[email protected]"

Telepítsük az MTA-t:

apt-get install postfix postfix-pcre postfix-mysql libsasl2-modules-sql libsasl2-modules
A kérdésekre így válaszoljunk: General type of configuration? Internet Site Mail name? home.cvk.hu
apt-get install courier-imap-ssl courier-pop-ssl courier-authlib-mysql
Create directories for web-based administration ? [Nem]

Hozzuk létre, és állítsuk be az SSL tanúsítványokat

Növeljük meg a létrehozandó tanusítványok elévülési idejét 1 évről 10 évre:
sed -i 's/= 365\t/= 3653\t/' /etc/ssl/openssl.cnf
grep 365 /etc/ssl/openssl.cnf
Hozzuk létre a tanusítványoknak a környezetet:
cd /root
mkdir CA
cd CA
mkdir demoCA
cd demoCA
mkdir newcerts
mkdir private
echo '01' > serial
touch index.txt
cd ..
Generáljuk le a root CA tanusítványt:
openssl req -new -x509 -extensions v3_ca -keyout demoCA/private/cakey.pem -out cacert.pem -days 3653
A generáláskor megadunk egy jelszót, ezt ne veszítsük el, mert ezzel tudjuk hitelesíteni a később létrehozott tanusítványokat. Adjuk meg a kért információkat:
Country Name "HU"
State or Province Name "PEST"
Locality Name "Budapest"
Organisation Name "home.cvk.hu"
Organisational Unit Name "WebMail Szerver"
Common Name (eg, YOUR name) "home.cvk.hu RootCA"
Email Address "[email protected]"

cp -i demoCA/private/cakey.pem demoCA/private/cakey.home.cvk.hu.pem
chmod 600 demoCA/private/*
cp -i cacert.pem cacert.home.cvk.hu.pem
cp -i cacert.pem cacert.home.cvk.hu.crt
A cacert.home.cvk.hu.pem és a cacert.home.cvk.hu.crt tanusítványokat kell publikálni a felhasználók felé, és az ő böngészőjükbe telepíteni, hogy elfogadhassák a titkosított weboldalakat. A következőkben létrehozott tanusítvány felel majd a web, imap, pop szerverek titkosításér. Arra ügyeljünk, hogy amit majd itt adunk meg Common Name-nek, annak KELL lennie az FQDN (fully qualified domain name) hostnévnek, amikre a böngészőkből érkezik a kérelem. Az FQDN az a név, melyet a gethostbyname rendel a gethostname által visszaadott hostnévhez. Ne írj be email címet, és a jelszót is hagyd üresen(enter).
openssl req -new -nodes -out req.pem
Country Name "HU"
State or Province Name "PEST"
Locality Name "Budapest"
Organisation Name "home.cvk.hu"
Organisational Unit Name "WebMail Szerver"
Common Name (eg, YOUR name) "home.cvk.hu"
Email Address

cp -i privkey.pem privkey.home.cvk.hu.pem
chmod 600 privkey.*
cp -i req.pem req.home.cvk.hu.pem
Írjuk alá a tanusítványt, a jelszó kérésekor adjuk meg azt, amit a Root CA nak megadtunk majd válaszoljuk 2x Y -al:
openssl ca -out cert.pem -cert cacert.pem -infiles req.pem

mv -i cert.pem temp.cert.home.cvk.hu.pem

openssl x509 -in temp.cert.home.cvk.hu.pem -out cert.pem

cp -i cert.pem cert.home.cvk.hu.pem
cat privkey.home.cvk.hu.pem cert.home.cvk.hu.pem > key-cert.pem
cp -i key-cert.pem key-cert.home.cvk.hu.pem
cp -i key-cert.pem key-cert-dh.home.cvk.hu.pem

openssl gendh >> key-cert-dh.home.cvk.hu.pem
chmod -R 600 /root/CA
Cseréljük le az apache-ssl certjét az elöbb generálttal, majd indítsuk újra a szolgáltatást:
cd /root/CA/
cp key-cert.home.cvk.hu.pem /etc/apache-ssl/
chmod 600 /etc/apache-ssl/key-cert.home.cvk.hu.pem
sed -i 's/apache.pem/key-cert.home.cvk.hu.pem/' /etc/apache-ssl/httpd.conf
/etc/init.d/apache-ssl stop
/etc/init.d/apache-ssl start
Állítsuk be a Postfixhez szükséges TLS kulcsokat:
cp -i /etc/postfix/main.cf /etc/postfix/main.cf-$(date +'%y%m%d')
mkdir -p /etc/postfix/ssl
cp privkey.home.cvk.hu.pem /etc/postfix/ssl
cp cert.home.cvk.hu.pem /etc/postfix/ssl
cp cacert.home.cvk.hu.pem /etc/postfix/ssl
postconf -e "smtpd_tls_key_file = /etc/postfix/ssl/privkey.home.cvk.hu.pem"
postconf -e "smtpd_tls_cert_file = /etc/postfix/ssl/cert.home.cvk.hu.pem"
postconf -e "smtpd_tls_CAfile = /etc/postfix/ssl/cacert.home.cvk.hu.pem"
postconf -e "smtpd_tls_received_header = yes"
postconf -e "smtpd_use_tls = yes"
chmod 600 /etc/postfix/ssl/*
postfix reload
Telepítsük a tanusítványt a Courier IMAP szerverhez: cp -i key-cert-dh.home.cvk.hu.pem /etc/courier/ chmod 600 /etc/courier/key-cert-dh.home.cvk.hu.pem chown daemon /etc/courier/key-cert-dh.home.cvk.hu.pem sed -i 's/imapd.pem/key-cert-dh.home.cvk.hu.pem/' /etc/courier/imapd-ssl /etc/init.d/courier-imap-ssl stop /etc/init.d/courier-imap-ssl start Telepítsük a tanusítványt a Courier POP3 szerverhez: sed -i 's/pop3d.pem/key-cert-dh.home.cvk.hu.pem/' /etc/courier/pop3d-ssl /etc/init.d/courier-pop-ssl stop /etc/init.d/courier-pop-ssl start Mentsük le a szerveren a létrehozott tanusítványokat: cp -r /root/CA /root/CA-$(date +'%y%m%d')

Engedélyezzük a PHP-t az apache-ssl ben:

sed -i 's|#AddType application/x-httpd-php .php|AddType application/x-httpd-php .php|' /etc/apache-ssl/httpd.conf cat /etc/apache-ssl/modules.conf |grep php5_module Ezt kell kapni: LoadModule php5_module /usr/lib/apache/1.3/libphp5.so Engedélyezzük a php modult, és indítsuk újra a szolgáltatást: apache-modconf apache-ssl enable mod_php5 /etc/init.d/apache-ssl restart Állítsuk be a kezdőlapot: cd /var/www wget http://cvk.hu/mail_szerver/virtual.index.html cp index.html index.html-apache-original cp virtual.index.html index.html sed -i 's/Our Organization/home.cvk.hu/' index.html sed -i 's/somehost.domain.tld/home.cvk.hu/' index.html sed -i 's/domain.tld/home.cvk.hu/' index.html chown root:www-data index.html

Telepítsük és állítsuk be a phpmyadmin -t

apt-get install phpmyadmin Változtassuk meg az eléréshez az alapértelmezett "admin" nevet: sed -i 's/admin/új_admin_neve/' /etc/phpmyadmin/htpasswd.setup Adjunk jelszót az új admin felhasználónknak: htpasswd -c /etc/phpmyadmin/htpasswd.setup új_admin_neve New password: új_admin_jelszava Re-type new password: új_admin_jelszava Hozzuk létre a konfigot, hogy kérjen jelszót: mcedit /etc/apache-ssl/conf.d/phpmyadmin.conf <Directory /var/www/phpmyadmin/> order deny,allow deny from all allow from 192.168.1.2 AuthUserFile /etc/phpmyadmin/htpasswd.setup AuthGroupFile /dev/null AuthName "phpMyAdmin" AuthType Basic require valid-user </Directory> /etc/init.d/apache-ssl restart Nyissuk meg a böngészőben a címet: https://home.cvk.hu/phpmyadmin Két jelszót fog kérni. Az első jelszó amit az elöbb adtunk meg az új_admin_jelszava. A másik már a phpmyadmin ba való belépéshez szükséges root és a hozzá tartozó root_jelszo. Az SSL tanusítványt vagy elfogadjuk minden alkalommal, vagy a RootCA-t telepítjük a böngészőnkbe.

Postfix konfiguráció

postconf -e "mydomain = home.cvk.hu" postconf -e "myorigin = home.cvk.hu" postconf -e "myhostname = home.cvk.hu" Ellenőrizzük a beállításokat: postconf -n alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix inet_interfaces = all mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 mydestination = home.cvk.hu, debian.cvk.home, localhost.cvk.home, localhost mydomain = home.cvk.hu myhostname = home.cvk.hu mynetworks = 127.0.0.0/8 myorigin = home.cvk.hu recipient_delimiter = + relayhost = smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_tls_CAfile = /etc/postfix/ssl/cacert.home.cvk.hu.pem smtpd_tls_cert_file = /etc/postfix/ssl/cert.home.cvk.hu.pem smtpd_tls_key_file = /etc/postfix/ssl/privkey.home.cvk.hu.pem smtpd_tls_received_header = yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtpd_use_tls = yes Töltsük le a Postfix forrását: cd /usr/local/src wget http://ftp.debian.org/debian/pool/main/p/postfix/postfix_2.3.8.orig.tar.gz tar xzf postfix_2.3.8.orig.tar.gz Válaszoljunk a következő parancs kérdéseire "n" el a "felülírod?" kérdésekre (5db): cp -i /usr/local/src/postfix-2.3.8/conf/* /etc/postfix cp -i /etc/postfix/header_checks /etc/postfix/body_checks cp -i /etc/postfix/access /etc/postfix/sender_access cp -i /etc/postfix/access /etc/postfix/rbl_client_exceptions cp -i /etc/postfix/access /etc/postfix/rbl_sender_exceptions cp -i /etc/postfix/access /etc/postfix/rbl_recipient_exceptions cp -i /etc/postfix/access /etc/postfix/reject_over_quota

Telepítsük a Squirrelmail -t

apt-get install squirrelmail squirrelmail-locales maildrop apt-get install sudo php-pear php5-mysql php5-gd php5-cli php5-common php5-mcrypt apt-get install php-db php-net-socket php-log php-net-smtp

A PostfixAdmin és a maildorp telepítése, konfigurálása

Hozzuk létre a virtuális felhasználót és csoportot: groupadd vmail -g 6060 useradd vmail -u 6060 -g 6060 Hozzuk létre a katalógusát, ahova a levelek fogak érkezni: mkdir /var/vmail chown -R vmail:vmail /var/vmail chmod -R 700 /var/vmail Telepítsük a subversiont és töltsük le vele a postfixadmin friss svn forrását: apt-get install subversion cd /var/www svn -r 1 co https://postfixadmin.svn.sourceforge.net/svnroot/postfixadmin/trunk postfixadmin cd /var/www/postfixadmin cp -i DATABASE_MYSQL.TXT DATABASE_MYSQL.TXT~ sed -i "s/password('postfix')/password('pfix_jelszo')/" DATABASE_MYSQL.TXT sed -i "s/password('postfixadmin')/password('pfixadm_jelszo')/" DATABASE_MYSQL.TXT wget http://cvk.hu/mail_szerver/database_mysql.patch.txt patch DATABASE_MYSQL.TXT < database_mysql.patch.txt mysql -u root -p < DATABASE_MYSQL.TXT Itt meg kell adni az SQL hez tartorzó root_jelszo -t. chmod 600 DATABASE_MYSQL.TXT cp config.inc.php.sample config.inc.php sed -i "s|admin_url'] = ''|admin_url'] = 'https://home.cvk.hu/postfixadmin'|" config.inc.php sed -i "s|admin_path'] = ''|admin_path'] = '/var/www/postfixadmin'|" config.inc.php sed -i "s/password'] = 'postfixadmin'/password'] = 'pfixadm_jelszo'/" config.inc.php sed -i 's/[email protected]/[email protected]home.cvk.hu/' config.inc.php sed -i 's/[email protected]/[email protected]home.cvk.hu/' config.inc.php sed -i 's/[email protected]/[email protected]home.cvk.hu/' config.inc.php sed -i 's/[email protected]/[email protected]home.cvk.hu/' config.inc.php sed -i 's/[email protected]/[email protected]home.cvk.hu/' config.inc.php sed -i 's/autoreply.change-this-to-your.domain.tld/autoreply.home.cvk.hu/' config.inc.php sed -i 's|to change-this-to-your.domain.tld|to https://home.cvk.hu/postfixadmin|' config.inc.php sed -i 's|http://change-this-to-your.domain.tld|https://home.cvk.hu/postfixadmin|' config.inc.php sed -i "s/domain_path'] = 'NO/domain_path'] = 'YES/" config.inc.php sed -i "s/domain_in_mailbox'] = 'YES/domain_in_mailbox'] = 'NO/" config.inc.php sed -i "s/mailboxes'] = '10'/mailboxes'] = '300'/" config.inc.php sed -i "s/maxquota'] = '10'/maxquota'] = '500'/" config.inc.php sed -i "s/quota'] = 'NO/quota'] = 'YES/" config.inc.php sed -i 's/EHLO/HELO/' functions.inc.php Az adminisztrációs részhez hozzunk létre nevet és jelszót: cd /var/www/postfixadmin/admin htpasswd -c .htpasswd pfadmin_felhasználóneve Hozzuk létre a konfigot: mcedit /etc/apache-ssl/conf.d/postfixadmin.conf <Directory /var/www/postfixadmin/admin/> order deny,allow deny from all allow from 192.168.1.2 AuthUserFile /var/www/postfixadmin/admin/.htpasswd AuthGroupFile /dev/null AuthName "Postfix Admin" AuthType Basic require valid-user </Directory> /etc/init.d/apache-ssl restart Amikor hozzáadunk egy felhasználót postfixadminhez, ez rekordokat hoz létre a MySQL adatbázisban de ez nem hoz létre egy Maildirt annak a felhasználónak. Ezzel a javítással ez megoldódik. cd /var/www/postfixadmin/ wget http://cvk.hu/mail_szerver/postfixadmin.autocreate.patch.txt wget http://cvk.hu/mail_szerver/postfixadmin.lowercase.patch.txt wget http://cvk.hu/mail_szerver/postfixadmin.multipatch.txt wget http://cvk.hu/mail_szerver/admin-edit-mailbox.patch.txt wget http://cvk.hu/mail_szerver/edit-mailbox.patch.txt cp create-alias.php create-alias.php.original cp create-mailbox.php create-mailbox.php.original cp edit-mailbox.php edit-mailbox.php.original cp admin/create-alias.php admin/create-alias.php.original cp admin/create-admin.php admin/create-admin.php.original cp admin/create-domain.php admin/create-domain.php.original cp admin/create-mailbox.php admin/create-mailbox.php.original cp admin/edit-mailbox.php admin/edit-mailbox.php.original cp users/vacation.php users/vacation.php.original cp stylesheet.css stylesheet.css.original cp admin/list-virtual.php admin/list-virtual.php.original cp templates/overview.tpl templates/overview.tpl.original cp templates/admin_list-virtual.tpl templates/admin_list-virtual.tpl.original cp templates/login.tpl templates/login.tpl.original cp templates/header.tpl templates/header.tpl.original cp templates/admin_list-domain.tpl templates/admin_list-domain.tpl.original cp languages/de.lang languages/de.lang.original cp search.php search.php.original patch -p0 < postfixadmin.lowercase.patch.txt patch -p0 < postfixadmin.multipatch.txt patch -p0 < postfixadmin.autocreate.patch.txt patch -p0 < edit-mailbox.patch.txt patch admin/edit-mailbox.php <admin-edit-mailbox.patch.txt cd /usr/sbin wget http://cvk.hu/mail_szerver/maildirmake.sh.txt mv maildirmake.sh.txt maildirmake.sh chmod +x maildirmake.sh wget http://cvk.hu/mail_szerver/quotachange.sh.txt mv quotachange.sh.txt quotachange.sh chmod +x quotachange.sh Adjuk hozzá a sudoers fájlhoz a scriptek futtatási jogát a www-data felhasználónak. A debian nevet le kell cserélni az adott gép hostnevére. mcedit /etc/sudoers www-data debian=NOPASSWD: /usr/sbin/maildirmake.sh www-data debian=NOPASSWD: /usr/sbin/quotachange.sh Állítsuk be a jogokat cd /var/www/postfixadmin chown -R root:www-data ../postfixadmin chmod 640 *.php *.txt *.original chmod 600 *.TXT chmod 640 admin/*.php admin/*.original chmod 640 images/*.png chmod 640 languages/*.lang languages/*.original chmod 640 templates/*.tpl templates/*.original chmod 640 users/*.php users/*.original Futtassuk le a böngészőnkben a postfixadmin setup scriptjét: https://home.cvk.hu/postfixadmin/setup.php Ellenőrizzük, hogy minden sor végén OK legyen. Ha így van, nevezzük át a setup.php fájlt. mv /var/www/postfixadmin/setup.php /var/www/postfixadmin/setup.php.txt A postfixadmin admin részében lépjünk be. https://home.cvk.hu/postfixadmin/login.php Első belépéskor az [email protected] névvel, és admin jelszóval tudunk belépni. Hozzuk létre az első tartományunkat pl.: home.cvk.hu. Kattintsunk a felső menüben az Új Domain menüpontra, majd töltsük ki a mezőket. Hagyjuk üresen a Mail server is backup MX jelölő négyzetet. Hozzunk létre egy új admin felhasználót. Kattintsunk az Új Admin menüpontra. Adjuk meg az adminisztrátor email címét, pl: [email protected] és a hozzá tartozó ajánlottan erős jelszót. Ha a felhasználót felvettük, kattintsunk az Admin Lista menüre, és az újonan felvett admin sorában válasszuk a szerkesztés linket. Itt tudjuk felvenni Super Adminnak a felhasználót, a Super Admin jelölő négyzet bejelölésével. Amint ez megtörtént, jelentkezzünk ki, majd lépjünk be az új adminisztrátorunkkal, és töröljük a felesleges [email protected] szuperadmint. Hozzunk létre egy normális postafiókot. Válassuk ki Új postafiók menüpontot. Írjuk be a felhasználónevet, és adjunk jelszót neki. Ellenőrizzük, hogy a felhasználó felvételekor automatikusan létrejöttek-e a beállításoknak megfelelő katalógusok, és fájlok: ls -l /var/vmail/home.cvk.hu/ összesen 4 drwx------ 6 vmail vmail 4096 2008-10-25 20:12 cvk ls -l /var/lib/squirrelmail/data összesen 4 -rw------- 1 www-data www-data 50 2008-10-25 20:12 [email protected] Állítsuk be a virtuális felhasználókat cd /etc/postfix wget http://cvk.hu/mail_szerver/mysql_virtual_alias_maps.cf wget http://cvk.hu/mail_szerver/mysql_virtual_domains_maps.cf wget http://cvk.hu/mail_szerver/mysql_virtual_mailbox_maps.cf sed -i 's/password = postfix/password = pfix_jelszo/' mysql_virtual_alias_maps.cf sed -i 's/password = postfix/password = pfix_jelszo/' mysql_virtual_domains_maps.cf sed -i 's/password = postfix/password = pfix_jelszo/' mysql_virtual_mailbox_maps.cf chmod 640 mysql_* chown root:postfix mysql_* cp /etc/postfix/main.cf /etc/postfix/main.cf-domain postconf -e "mydestination = home.cvk.hu, localhost.home.cvk.hu, localhost" touch /etc/postfix/virtual postmap /etc/postfix/virtual postconf -e "virtual_minimum_uid = 6060" postconf -e "virtual_gid_maps = static:6060" postconf -e "virtual_uid_maps = static:6060" postconf -e "virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf, hash:/etc/postfix/virtual" postconf -e "virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf" postconf -e "virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf" postconf -e "virtual_transport = maildrop" postconf -e "virtual_mailbox_base = /var/vmail/" postconf -e "maildrop_destination_concurrency_limit = 2" postconf -e "maildrop_destination_recipient_limit = 1"

Maildrop beállítása

cd /etc mv maildroprc maildroprc-old wget http://cvk.hu/mail_szerver/maildroprc.txt cp maildroprc.txt maildroprc touch /var/log/maildroprc.log chown vmail:vmail /var/log/maildroprc.log cd /etc/logrotate.d/ wget http://cvk.hu/mail_szerver/maildrop.logrotate.txt mv maildrop.logrotate.txt maildrop cp -i /etc/postfix/master.cf /etc/postfix/master.cf-$(date +'%y%m%d') mcedit /etc/postfix/master.cf Keressük meg a következő sorokat, és cseréljük ki: #maildrop unix - n n - - pipe # flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} maildrop unix - n n - - pipe flags=ODRhu user=vmail:daemon argv=/usr/bin/maildrop -w 90 -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop} postfix stop postfix start

Courier  beállítása

cd /etc/courier mv authmysqlrc authmysqlrc~ wget http://cvk.hu/mail_szerver/authmysqlrc.txt mv authmysqlrc.txt authmysqlrc sed -i "s/MYSQL_PASSWORD\tpostfix/MYSQL_PASSWORD\tpfix_jelszo/" authmysqlrc chown daemon:daemon authmysqlrc chmod 660 authmysqlrc sed -i 's/authmodulelist="authpam"/authmodulelist="authmysql"/' authdaemonrc /etc/init.d/courier-authdaemon restart cp -ip /etc/courier/imapd /etc/courier/imapd~ sed -i 's/SORT QUOTA IDLE/SORT QUOTA AUTH=CRAM-MD5 IDLE/' /etc/courier/imapd /etc/init.d/courier-pop restart /etc/init.d/courier-pop-ssl restart /etc/init.d/courier-imap restart /etc/init.d/courier-imap-ssl restart

Maildircheck

cp -i /var/www/postfixadmin/ADDITIONS/cleanupdirs.pl /usr/sbin/maildircheck touch /var/log/maildircheck.log sed -i "s|/home/vmail|/var/vmail|" /usr/sbin/maildircheck sed -i "s/removed_maildirs.log/maildircheck.log/" /usr/sbin/maildircheck sed -i "s/someuser/postfix/" /usr/sbin/maildircheck sed -i "s/somepass/pfix_jelszo/" /usr/sbin/maildircheck sed -i "s/      rmtree/#     rmtree/" /usr/sbin/maildircheck sed -i "s/'\$to_delete'/\$to_delete/" /usr/sbin/maildircheck sed -i "s/Need to delete/Orphaned/" /usr/sbin/maildircheck chmod 700 /usr/sbin/maildircheck cd /etc/logrotate.d wget http://cvk.hu/mail_szerver/maildircheck.txt mv maildircheck.txt maildircheck A következő script 24 óránként törli a Spam mappába került leveleket cd /etc/cron.daily wget http://cvk.hu/mail_szerver/rmmailboxspam.txt mv rmmailboxspam.txt rmmailboxspam chmod +x rmmailboxspam

SASL és TLS beállítása

Hozzuk létre az smtpd konfigot a következő tartalommal mcedit /etc/postfix/sasl/smtpd.conf pwcheck_method: authdaemond log_level: 3 mech_list: PLAIN LOGIN CRAM-MD5 authdaemond_path: /var/run/courier/authdaemon/socket auxprop_plugin: sql sql_hostnames: 127.0.0.1 sql_user: postfix sql_passwd: pfix_jelszo sql_database: postfix sql_select: select clear from mailbox where username = '%[email protected]%r' cp -i /etc/postfix/main.cf /etc/postfix/main.cf-sasl-elott postconf -e "broken_sasl_auth_clients = yes" postconf -e "smtpd_sasl_auth_enable = yes" postconf -e "smtpd_sasl_local_domain = \$myhostname" postconf -e "smtpd_sasl_security_options = noanonymous" postconf -e "smtpd_sasl_authenticated_header = yes" postconf -e "smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination" /etc/init.d/postfix restart mcedit /etc/postfix/master.cf smtp inet n - - - - smtpd -o smtpd_use_tls=no -o smtpd_sasl_auth_enable=no # -o receive_override_options=no_address_mappings # If they want to relay, make them use port 587 (submission) or port 465 (smtps) # If using submission port, configure client to use CRAM-MD5 submission inet n - - - - smtpd -o smtpd_use_tls=no -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o receive_override_options=no_address_mappings # Outlook and OE (and many others) expect smtpd_tls_wrappermode, # so have them submit here (port 465): smtps inet n - - - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o receive_override_options=no_address_mappings # We will use port 4650 for clients that use STARTTLS: 4650 inet n - - - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o receive_override_options=no_address_mappings #628 inet n - - - - qmqpd /etc/init.d/postfix restart Így néz ki jelenleg a "postconf -n" kimenete: alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no broken_sasl_auth_clients = yes config_directory = /etc/postfix inet_interfaces = all mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 mydestination = home.cvk.hu, debian.cvk.home, localhost.cvk.home, localhost mydomain = home.cvk.hu myhostname = home.cvk.hu mynetworks = 127.0.0.0/8 myorigin = home.cvk.hu recipient_delimiter = + relayhost = smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous smtpd_tls_CAfile = /etc/postfix/ssl/cacert.home.cvk.hu.pem smtpd_tls_cert_file = /etc/postfix/ssl/cert.home.cvk.hu.pem smtpd_tls_key_file = /etc/postfix/ssl/privkey.home.cvk.hu.pem smtpd_tls_received_header = yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtpd_use_tls = yes virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf, hash:/etc/postfix/virtual virtual_gid_maps = static:6060 virtual_mailbox_base = /var/vmail/ virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 6060 virtual_transport = maildrop virtual_uid_maps = static:6060

Az amavisd-new a ClamAV és a SpamAssassin telepítése és beállítása

apt-get install amavisd-new spamassassin razor pyzor lha apt-listchanges nomarch cabextract pax p7zip apt-get install clamav clamav-daemon clamav-freshclam apt-get install arj libio-string-perl libhtml-format-perl libmail-spf-query-perl libnet-dns-perl unrar gpasswd -a clamav amavis /etc/init.d/clamav-daemon stop freshclam /etc/init.d/clamav-daemon start sa-update cd /etc/amavis/conf.d/ sed -i 's/#@bypass_virus_/@bypass_virus_/' 15-content_filter_mode sed -i 's/#   \\%bypass_vi/   \\%bypass_vi/' 15-content_filter_mode sed -i 's/#@bypass_spam_/@bypass_spam_/' 15-content_filter_mode sed -i 's/#   \\%bypass_s/   \\%bypass_s/' 15-content_filter_mode cat 15-content_filter_mode amavisd-new reload cd /usr/sbin wget http://cvk.hu/mail_szerver/sa-update1.sh.txt mv sa-update1.sh.txt sa-update.sh chmod +x sa-update.sh sa-update.sh cd /usr/sbin wget http://cvk.hu/mail_szerver/amavisd-new-trim-whitespace.patch.txt patch amavisd-new <amavisd-new-trim-whitespace.patch.txt rm amavisd-new-trim-whitespace.patch.txt wget http://cvk.hu/mail_szerver/amavisd-new-trim-whitespace.patch2.txt patch amavisd-new <amavisd-new-trim-whitespace.patch2.txt rm amavisd-new-trim-whitespace.patch2.txt crontab -e PP ÓÓ * * * /usr/sbin/sa-update.sh Vegyük fel az /etc/amavis/conf.d/50-user fájlba a következőket az "use strict;" és az "1;" közé, és módosítsuk a kiemelt részeket # nice to have $log_level (1-5) available: $log_level = 0; # If sender matches ACL, turn debugging fully up, just for this one message #@debug_sender_maps = ( ["test\@$mydomain"] ); # explicitly set $mydomain and $myhostname: $mydomain = 'home.cvk.hu'; $myhostname = 'home.cvk.hu'; # Set number of processes. Rough guide for dual processor, 1GB = 6, 2GB = 12, 4GB = 24 # you MUST also change maxproc for the smtp-amavis transport to match this number, e.g: # smtp-amavis unix - - n - 6 smtp $max_servers = 6; # We discard (and quarantine) viruses, discard (and quarantine) spam (>= kill_level), # bounce (and quarantine) banned files and pass bad headers: $final_virus_destiny = D_DISCARD; $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_DISCARD; $final_bad_header_destiny = D_PASS; # don't quarantine bad headers (no need since we pass them all): $bad_header_quarantine_to = undef; # We use plus addressing to place spam in user's Spam folder: $recipient_delimiter = '+'; # Spam gets the Subject line prepended with: $sa_spam_subject_tag = 'Spam> '; # We tag all headers (for 'local' domains) with X-Spam info: $sa_tag_level_deflt = undef; # This is the system default spam tag level that will be overridden by user's preferences in MySQL $sa_tag2_level_deflt = 6.31; ## For relay domains not set up in MySQL you can create a static domain wide (or individual) map: #@spam_tag2_level_maps = ( # { '[email protected]' => 99.0, # '.example.net' => 8.0, # '.example.org' => 6.0 }, # \$sa_tag2_level_deflt, # catchall default #); # The default is to not quarantine any spam (outside of what users get in their Spam folder), # so set default kill_level high. Users can choose their own kill_level however. kill_level # will trigger quarantining (to MailZu). $sa_kill_level_deflt = 9999; ## Once again, relay domains may want something different: #@spam_kill_level_maps = ( # { '[email protected]' => 99.0, # '.example.net' => 8.0, # '.example.org' => 10.0 }, # \$sa_kill_level_deflt, # catchall default #); ## And some relay domains may wish to quarantine up to a certain level, then discard: #@spam_quarantine_cutoff_level_maps = ( # { '.example.net' => 20.5, # '.example.org' => 25 }, # \$sa_quarantine_cutoff_level, # catchall default (currently undef) #); # We will quarantine viruses to /var/lib/amavis/virusmails (the default). # We will use a cron job to automatically delete these files older than 14 days from the quarantine. # We can use amavisd-release or MailZu to release quarantined messages. We warn the recipients # and expect them to contact us (via the MailZu interface) if they need a banned file released. # Each domain can have their own administrators. @virus_admin_maps = ({ '.home.cvk.hu' => '[email protected]home.cvk.hu', '.' => '[email protected]home.cvk.hu', }); @banned_admin_maps = ({ '.home.cvk.hu' => '[email protected]home.cvk.hu', '.' => '[email protected]home.cvk.hu', }); $warnbannedrecip = 1; $defang_banned = 1; # recipient's local address(es) will be rewritten to user+spam when spam exceeds tag2_level # and as a result will be delivered to their Spam folder (thanks to maildrop) @addr_extension_spam_maps = ('spam'); # list domains in an external file (created by local_domains.sh script): @local_domains_maps = ( read_hash("$MYHOME/local_domains") ); # Since we configured SQL, we can use penpals feature: $penpals_bonus_score = 5; $penpals_threshold_low = 1; $penpals_threshold_high = 18; # We are going to create policy banks that will notify us of internally created spam # but also let banned files out (provided they are compressed). @mynetworks = qw( 127.0.0.0/8 [::1] [FE80::]/10 [FEC0::]/10 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 ); $inet_socket_port = [10024, 10026]; ## If using Mailzu, use this instead: #$inet_socket_port = [10024, 10026, 9998]; $inet_socket_bind = '127.0.0.1'; ## If using Mailzu, use this instead: #$inet_socket_bind = undef; ## Interface to MailZu #$interface_policy{'9998'} = 'MAILZU'; #$policy_bank{'MAILZU'} = { # protocol => 'AM.PDP', # inet_acl => [qw( 127.0.0.1 [::1] 84.21.23.173 )], #}; # We create a custom set of banned rules for the MYNETS and TRUSTED policy # banks. See also the 'DEFAULT' $banned_filename_re settings in 20-debian_defaults %banned_rules = ( 'BLOCK_EXE' => new_RE( # block double extensions in names: qr'\.[^./]*\.(exe|vbs|pif|scr|bat|cmd|com|cpl|dll)\.?$'i, # allow any name or type (except viruses) within an archive: [ qr'^\.(Z|gz|bz2|rpm|cpio|tar|zip|rar|arc|arj|zoo)$' => 0], # blocks MS executable file(1) types, unless allowed above: qr'^\.(exe|exe-ms)$', ), 'DEFAULT' => $banned_filename_re, ); $policy_bank{'MYNETS'} = { # mail originating from @mynetworks spam_admin_maps => ["postmaster\@$mydomain"], # alert of internal spam final_spam_destiny => D_BOUNCE, # so the sender knows they are a spammer spam_kill_level_maps => [10.0], spam_dsn_cutoff_level_maps => [9999], banned_filename_maps => ['BLOCK_EXE'], }; $interface_policy{'10026'} = 'TRUSTED'; $policy_bank{'TRUSTED'} = { # mail originating from trusted senders spam_admin_maps => ["postmaster\@$mydomain"], # alert of internal spam final_spam_destiny => D_BOUNCE, # so the sender knows they are a spammer spam_kill_level_maps => [10.0], spam_dsn_cutoff_level_maps => [9999], banned_filename_maps => ['BLOCK_EXE'], }; # Here we set up access to MySQL data: @lookup_sql_dsn = ( ['DBI:mysql:amavis:localhost', 'amavis', 'amavis_jelszo'] ); @storage_sql_dsn = @lookup_sql_dsn; # If using MailZu, store banned files and spam to MySQL if you want to give users the # ability to read those messages in the MailZu interface: #$banned_files_quarantine_method = 'sql:'; #$spam_quarantine_method = 'sql:'; # If using MailZu and you do not wish to quarantine spam to MySQL but instead want to # quarantine to /var/lib/amavis/virusmails, MailZu cannot have spam messages # compressed (which is the default), so you would have to change from the default to this: #$spam_quarantine_method = 'local:spam-%m'; # Note: If you quarantine items locally, you would also need to create a script delete # old quarantined items. Look to /etc/cron.daily/rmvirusquar for an example # required because we set msgs.time_iso to type TIMESTAMP (required by MailZu) $timestamp_fmt_mysql = 1; # specific to the amavisnewsql SquirrelMail plugin $sql_select_white_black_list = 'SELECT wb FROM wblist'. ' WHERE (rid=?) AND (wblist.email IN (%k))'. ' ORDER BY wblist.priority DESC'; #---------------------------------------------------------- cd wget http://cvk.hu/mail_szerver/amavis-sqmail.sql.txt sed -i "s/BY 'password'/BY 'amavis_jelszo'/" amavis-sqmail.sql.txt chmod 600 amavis-sqmail.sql.txt mysql -u root -p < amavis-sqmail.sql.txt chmod 640 /etc/amavis/conf.d/50-user Hozzuk létre az alábbi scriptet: mcedit /usr/sbin/local_domains.sh #!/bin/bash mysql -upostfix -ppfix_jelszo postfix -B -N -e "select concat('.',domain) from domain" >/var/lib/amavis/local_domains chmod 700 /usr/sbin/local_domains.sh local_domains.sh cat /var/lib/amavis/local_domains mcedit /etc/sudoers www-data debian=NOPASSWD: /usr/sbin/local_domains.sh Frissítsük le a PostfixAdmint: cd /var/www/postfixadmin/admin cp edit-domain.php edit-domain.php.original wget http://cvk.hu/mail_szerver/domain.patch.txt patch -p0 < domain.patch.txt chown root:www-data * amavisd-new reload cd /usr/sbin wget http://cvk.hu/mail_szerver/trim-amavis-msgs.txt mv trim-amavis-msgs.txt trim-amavis-msgs sed -i 's/Passw0rd/amavis_jelszo/' trim-amavis-msgs chmod 750 trim-amavis-msgs cd /etc wget http://cvk.hu/mail_szerver/trim-amavis.sql.txt mv trim-amavis.sql.txt trim-amavis.sql cd /etc/cron.daily/ wget http://cvk.hu/mail_szerver/trim-amavis.txt mv trim-amavis.txt ztrim-amavis sed -i 's/password/amavis_jelszo/' ztrim-amavis chmod 750 ztrim-amavis ./ztrim-amavis Most bekonfiguráljuk a postfixet, hogy az amavis al működjön: mcedit /etc/postfix/master.cf smtp inet n - - - - smtpd -o smtpd_use_tls=no -o smtpd_sasl_auth_enable=no -o content_filter=smtp-amavis:[127.0.0.1]:10024 # -o receive_override_options=no_address_mappings # If they want to relay, make them use port 587 (submission) or port 465 (smtps) # If using submission port, configure client to use CRAM-MD5 submission inet n - - - - smtpd -o smtpd_use_tls=no -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o content_filter=smtp-amavis:[127.0.0.1]:10026 # -o receive_override_options=no_address_mappings # Outlook and OE (and many others) expect smtpd_tls_wrappermode, # so have them submit here (PORT 465): smtps inet n - - - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o content_filter=smtp-amavis:[127.0.0.1]:10026 # -o receive_override_options=no_address_mappings # We will use port 4650 for clients that use STARTTLS: 4650 inet n - - - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o content_filter=smtp-amavis:[127.0.0.1]:10026 # -o receive_override_options=no_address_mappings #628 inet n - - - - qmqpd pickup fifo n - - 60 1 pickup -o content_filter= smtp-amavis unix - - n - 6 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks postconf -e "recipient_delimiter = +" /etc/init.d/postfix restart Pyzor konfigurálása pyzor discover su amavis -c 'pyzor discover' echo "82.94.255.100:24441" > /var/lib/amavis/.pyzor/servers echo "82.94.255.100:24441" > /root/.pyzor/servers su amavis -c 'pyzor ping' A pingre OK választ kell kapni. Ha mégsem, akkor egy tűzfal blokkolja valahol. amavisd-nanny beállítása: cd /usr/local/src wget http://www.ijs.si/software/amavisd/amavisd-new-2.4.2.tar.gz tar xzf amavisd-new-2.4.2.tar.gz cp amavisd-new-2.4.2/amavisd-release /usr/sbin cp amavisd-new-2.4.2/amavisd-nanny /usr/sbin sed -i 's|/var/amavis/amavisd.sock|/var/run/amavis/amavisd.sock|' /usr/sbin/amavisd-release sed -i 's|/var/amavis/db|/var/lib/amavis/db|' /usr/sbin/amavisd-nanny

SpamAssassin tanítása

mcedit /etc/spamassassin/local.cf # explicitly set our internal_networks (might be the same or similar to mynetworks) clear_internal_networks internal_networks 192.168.1.0/24 # add the same to trusted_networks, and possibly other computers/networks whose mail we trust clear_trusted_networks trusted_networks 192.168.1.0/24 spamassassin --lint amavisd-new stop amavisd-new start cd /etc/cron.daily wget http://cvk.hu/mail_szerver/rmvirusquar.txt mv rmvirusquar.txt rmvirusquar chmod +x rmvirusquar ./rmvirusquar

Bayes és AWL táblák beállítása a MySQL ben:

cd /etc/spamassassin/ wget http://cvk.hu/mail_szerver/gv-bayes-awl.sql.txt sed -i 's/paSSw0rd/amavis_jelszo/' gv-bayes-awl.sql.txt mysql -u root -p < gv-bayes-awl.sql.txt rm gv-bayes-awl.sql.txt wget http://cvk.hu/mail_szerver/local.cf-bayes-awl.txt cp local.cf local.cf-before-mysql cat local.cf-bayes-awl.txt local.cf-before-mysql > local.cf sed -i 's/paSSw0rd/amavis_jelszo/' local.cf spamassassin --lint amavisd-new reload cd wget http://cvk.hu/mail_szerver/sample-spam.txt sa-learn --spam sample-spam.txt sa-learn --dump magic spamassassin --lint su amavis -c 'spamassassin <sample-spam.txt' cd /etc wget http://cvk.hu/mail_szerver/trim-awl.sql.txt mv trim-awl.sql.txt trim-awl.sql cd /usr/sbin wget http://cvk.hu/mail_szerver/trim-awl.txt mv trim-awl.txt trim-awl chmod +x trim-awl sed -i 's/paSSw0rd/amavis_jelszo/' trim-awl cd /etc/cron.weekly/ wget http://cvk.hu/mail_szerver/trim-sql-awl-weekly.txt mv trim-sql-awl-weekly.txt trim-sql-awl-weekly chmod +x trim-sql-awl-weekly su - amavis /usr/sbin/trim-awl ./trim-sql-awl-weekly

A SquirrelMail konfigurálása

echo "Include /etc/squirrelmail/apache.conf" >> /etc/apache-ssl/httpd.conf cd /etc/squirrelmail/ sed -i "s|Alias /squirrelmail|Alias /mail|" apache.conf sed -i "s|allow from 127.0.0.1|allow from 192.168.1.0/24|" apache.conf /etc/init.d/apache-ssl restart cd /usr/share/squirrelmail/plugins/ wget http://www.squirrelmail.org/plugins/quota_usage-1.3.1-1.2.7.tar.gz tar xzf quota_usage-1.3.1-1.2.7.tar.gz cp quota_usage/config.php.sample quota_usage/config.php wget http://www.squirrelmail.org/plugins/timeout_user-1.1.1-0.5.tar.gz tar xzf timeout_user-1.1.1-0.5.tar.gz wget http://www.squirrelmail.org/plugins/compatibility-2.0.7-1.0.tar.gz tar xzf compatibility-2.0.7-1.0.tar.gz wget http://www.squirrelmail.org/plugins/amavisnewsql-0.8.0-1.4.tar.gz tar xzf amavisnewsql-0.8.0-1.4.tar.gz mkdir /var/lib/amavis/.notstored chown -R amavis:amavis /var/lib/amavis sed -i 's/minutes = 120;/minutes = 20;/' timeout_user/config.php cd amavisnewsql cp config.php.dist config.php sed -i 's|pgsql://postgres:@localhost|mysql://amavis:amavis_jelszo@localhost|' config.php sed -i 's|"yourdomain.com"|"home.cvk.hu"|' config.php sed -i 's|use_quarantine"] = true|use_quarantine"] = false|' config.php sed -i 's|http://webmail.yourdomain.com|https://home.cvk.hu/mail|' config.php sed -i 's|[email protected]|[email protected]home.cvk.hu|' config.php sed -i 's|/htdocs/squirrel/|/usr/share/squirrelmail/|' utils/cleanquarantine.php sed -i 's|/htdocs/squirrel/|/usr/share/squirrelmail/|' utils/generatedigest.php sed -i 's|/htdocs/squirrel/|/usr/share/squirrelmail/|' utils/process_bsmtp.php sed -i 's|/var/virusmails|/var/lib/amavis/virusmails|' utils/process_bsmtp.php chown -R root:root /usr/share/squirrelmail/plugins/amavisnewsql chmod 644 * chmod 755 contrib htmlMimeMail-2.5.1 locale po utils chmod 640 contrib/* chmod 640 htmlMimeMail-2.5.1/* chmod 640 utils/soap/* chmod 640 utils/*php chmod 640 utils/*sql chmod 640 config.php chown root:www-data config.php wget http://cvk.hu/mail_szerver/amavisnewsql.patch1.txt sed -i 's/host.domain.tld/home.cvk.hu/' amavisnewsql.patch1.txt cp -p functions.php functions.php.original cp -p amavisnewsql.class.php amavisnewsql.class.php.original cp -p amavisnewsql.php amavisnewsql.php.original patch -p0 < amavisnewsql.patch1.txt squirrelmail-configure
1. Organization preferences.

 1.  Organization Name home.cvk.hu

 7.  Provider link https://home.cvk.hu/mail/

4.  General Options

 5.  Usernames in Lowercase true

 7.  Hide SM attributions  true

 10. Allow server thread sort true

 11. Allow server-side sorting true

D.  Set pre-defined settings for specific IMAP servers courier

8.  Plugins

 Plugins

  Installed Plugins

   1. amavisnewsql

   2. quota_usage

   3. timeout_user

S   Save data
Q   Quit
A következő címen ellenőrizhetjük, hogy minden beállítás rendben van-e. https://home.cvk.hu/mail/src/configtest.php

Razor beállítása

cd rm /etc/razor/razor-agent.conf razor-admin -create razor-admin -create razor-admin -register sed -i 's/= 3/= 0/' /root/.razor/razor-agent.conf cp -r /root/.razor /var/lib/amavis chown -R amavis:amavis /var/lib/amavis

pflogsumm beállítása

apt-get install pflogsumm cd /etc/cron.daily wget http://cvk.hu/mail_szerver/pflogsumm.sh sed -i 's|DAILY mail|DAILY debian mail|' pflogsumm.sh mv pflogsumm.sh pflogsumm chmod +x pflogsumm

Kiegészítő postfix beállítások

postmap /etc/postfix/sender_access postmap /etc/postfix/rbl_client_exceptions postmap /etc/postfix/rbl_sender_exceptions postmap /etc/postfix/rbl_recipient_exceptions postmap /etc/postfix/reject_over_quota cp /etc/postfix/main.cf /etc/postfix/main.cf-valtoztatasok postconf -e "smtpd_hard_error_limit = 10" postconf -e "smtpd_soft_error_limit = 8" postconf -e "smtpd_helo_required = yes" postconf -e "smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, reject_non_fqdn_sender, reject_unknown_sender_domain" postconf -e "smtpd_data_restrictions = reject_unauth_pipelining" postconf -e "smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_unlisted_recipient, check_recipient_access hash:/etc/postfix/reject_over_quota, check_sender_access hash:/etc/postfix/rbl_sender_exceptions, check_client_access hash:/etc/postfix/rbl_client_exceptions, check_recipient_access hash:/etc/postfix/rbl_recipient_exceptions, reject_rbl_client sbl-xbl.spamhaus.org" /etc/init.d/postfix restart tail -f /var/log/mail.log
Egy kis riport naponta a levelekről:
mcedit /etc/cron.d/qshape-cron PATH=/usr/sbin 50 6 * * * postfix /usr/sbin/qshape incoming active deferred 2>&1 |/usr/bin/mail -s "qshape debian" root
Egy ripot naponta a logcheck állapotáról:
echo "^\w{3} [ :0-9]{11} [._[:alnum:]-]+ postfix/pickup\[[0-9]+\]: [[:alnum:]]+: uid=[0-4]+ from=<postfix>" >>/etc/logcheck/ignore.d.server/postfix
A memória limit megemelése 48M ra:
sed -i 's/memory_limit = 16M/memory_limit = 48M/' /etc/php5/apache/php.ini sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 48M/' /etc/php5/apache/php.ini /etc/init.d/apache-ssl restart postconf -e "message_size_limit = 40960000" /etc/init.d/postfix restart postconf message_size_limit grep memory_limit /etc/php5/apache/php.ini
Az esetleges kiegészítésekkel ha le sz időm, majd érkezni fog a folytatás, illetve a telepítés átrakása ubuntu linux rendszerre.

Hozzászólások

A szervereden biztosítasz hosting szolgáltatásokat?

igen :-)

Tudsz adni nekem 2-3gb helyet. Ha iegn mennyilrt?

Mennyiért? Késő van már, nem tudok írni.