Installatie blog

From Hobbynet Admin Wiki
Jump to navigation Jump to search

Installatie mailserver

Uitgaande van een situatie van herbouw waarbij de Postfix(admin), Dovecot config van 16.04 nog beschikbaar is.

apt-get install aptitude
apt-get install postfix postfix-mysql postfix-pcre postfix-doc
apt-get install dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql dovecot-pop3d dovecot-sieve
apt-get install opendkim opendkim-tools

Haal de werkende config op van de al werkende mailserver (mail-lb1 18.04) of van de locatie met de gebackupte bestanden van de oude mailserver.

cd /etc/postfix
scp -pr * mail-lb2-int.hobby.nl:/etc/postfix
cd /etc/postfixadmin
scp -pr * mail-lb2-int.hobby.nl:/etc/postfixadmin
cd /etc/dovecot
scp -pr * mail-lb2-int.hobby.nl:/etc/dovecot
cd /etc/opendkim
scp -pr * mail-lb2-int.hobby.nl:/etc/opendkim
scp -pr ../opendkim.conf mail-lb2-int.hobby.nl:/etc/opendkim.conf

Ownership

Alle virtuele mailboxen hebben allemaal de zelfde eigenaar: vmail:vmail. Maak de user vmail aan door onderstaande in /etc/passwd, /etc/group en /etc/shadow te plaatsen.

/etc/passwd: vmail:x:5000:5000::/home/vmail/:/bin/sh
/etc/group : vmail:x:5000:
/etc/shadow: vmail:!:14466:0:99999:7:::

Filters

Installeer amavis-new, spamassassin, clamav

apt-get -y install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl postgrey

Postfix

Postfix configuratie is een resultaat van lange evolutie. Postfix is nauw verbonden met postfixadmin en dovecot via de MySQL database postfixadmin. De "mysql*.cf" files in /etc/postfix zijn het interface met de tabellen. Zie main.cf em master.cf voor de configuratie.

postfixadmin

Postfixadmin is beschikbaar via de repo maar gaf een foutmelding. Dan maar via tarball. Postfixadmin 3.2.0 opgehaald en uitgepakt. Al snel bleek dat de Hobbynet patch voor {CRYPT} wachtwoorden niet zonder meer in te bouwen is. De code is drastisch veranderd sinds 3.0.2. Daarom 3.0.2 gebruikt. Het is mogelijk dat {CRYPT} in 3.2.0 zit. Upgrade naar 3.2.0 komt op de TODO list.

Vacation

Postfixadmin komt met een "vacation plugin" waarmee Out-Of-Office ingesteld kan worden. Configuratie en plugin script gaan in /etc/postfixadmin. De config is uit het eigenlijke script gehaald en als apart bestand. Die optie staat in het perl script beschreven. Hiervoor moet een user vacation gemaakt worden. Het script en de config file worden in /etc/postfixadmin geplaatst. De locatie moet ook in /etc/postfix/master.cf komen staan. Script en installatie beschrijving staan in de postfixadmin distributie in VIRTUAL_VACATION (dus ook in de webtree /var/www/postfixadmin/VIRTUAL_VACATION).

Roundcube

Roundcube is ook van tarball geinstalleerd. Bechrijving elders in de Hobby-adm wiki.

Dovecot

Dovecot config is verdeeld over meerdere bestanden. Ze bevinden zich in /etc/dovecot/conf.d. Dovecot heeft hooks voor postlogin scripts. Vanouds loggen wij de laatste login in een directory sruktuur op /disk/mail/login. De postlogin scripts voor imap en pop3 zijn echter verloren gegaan. Er zijn nieuwe scripts gemaakt die nu in /etc/dovecot staan onder de naam <protocol>-wrapper.sh in 10-master.conf. De laatste login wordt nu in de "home directory" gezet. Dus in /disk/mail/vmail/vandenbussche.nl/egbert/. De timestamp van de (lege) file ".last_login" is het tijdstip van login.

Apache

Apache is nodig voor de postfixadmin en roundcube. Installeer apache2 en enige modules. Sommige zijn misschien niet nodig maar doen geen kwaad. (overgenomen uit Perfect Server beschijving).

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.2 php7.2-common php7.2-gd php7.2-mysql php7.2-imap phpmyadmin php7.2-cli php7.2-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt  imagemagick libruby libapache2-mod-python php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl memcached php-memcache php-imagick php-gettext php7.2-zip php7.2-mbstring php-soap php7.2-soap
a2enmod suexec rewrite ssl actions include cgi

Create file to mitgate HTTPOXY (ook op mail-lb1)

 
vi /etc/apache2/conf-available/httpoxy.conf

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

a2enconf httpoxy

Vervolgens de /etc/apache2/... overgenomen van mail-lb1

AppArmor

Deels overgenomen uit Perfect Server beschijving.

Apparmor verwijderd

service apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

Bash i.p.v. Dash

/bin/sh veranderen van dash naar bash.

dpkg-reconfigure dash <- NO

Patch voor amavis-new

Er zit een bug in amavis-new waardoor DKIM niet goed werkt. Mogelijk is de patch al toegepast.

cd /tmp
wget https://git.ispconfig.org/ispconfig/ispconfig3/raw/stable-3.1/helper_scripts/ubuntu-amavisd-new-2.11.patch
cd /usr/sbin
cp -pf amavisd-new amavisd-new_bak
patch < /tmp/ubuntu-amavisd-new-2.11.patch
systemctl restart postfix
systemctl restart dovecot

freshclam

service clamav-daemon start

Referenties

de 18.04 Perfect Server beschijving.