Επιτέλους μετά από πολύ καιρό δοκιμών εχθές τελείωσα κατά 99% ένα Debian mail server με HORDE .
Μου πήρε αρκετό καιρό γιατί δεν κατάφερα να βρω ένα help για την πλήρη εγκατάσταση του στο Internet ( μπορεί να μην έψαξα και εγώ αρκετά 😉 )
Παρακάτω θα σας πω με λίγα λόγια την διαδικασία που ακολούθησα.
Διαδικασία εγκατάστασης του Debian Etch δεν την αναφέρω. Απλά εγώ αυτό που έκανα όταν μου ζήτησε τα πακέτα που ήθελα να εγκαταστήσω αυτόματα, επέλεξα μόνο στο “standard system” και τίποτε άλλο.
— Το πρωτότυπο αρχείο τo έχω πάρει από εδω —
INFO
Ξεκινάμε κάνοντας εγκατάσταση τα παρακάτω πακέτα
apt-get install ssh openssh-server
Κάνουμε edit το /etc/ssh/sshd_confing ( nano /etc/ssh/sshd_config )
Αλλάζουμε καταρχάς την πόρτα στην οποία θα ακούει ο ssh server και απενεργοποιούμε την δυνατότητα του user root να μπορεί να κάνει login στον ssh server
το sshd_configure πρέπει να φαίνεται κάπως έτσι
[…] Port 2222 […] PermitRootGogin no […] |
Ελέγχουμε εάν έχουμε κάνει σωστά το newtwork config
nano /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface #allow-hotplug eth0 #iface eth0 inet dhcp auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 |
Άμα χρειαστεί να κάνουμε αλλαγή μέσα στο αρχείο interfaces πρέπει να κάνουμε restart το network
με
/etc/init.d/networking restart
Μετά αλλάζουμε το αρχείο /etc/hosts να μοιάζει κάπως έτσι
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts ### Θα αλλάξουμε μόνο το server1 στο όνομα του PC μας και το example.com στο Domain μας ### |
Τώρα δίνουμε
echo server1.example.com > /etc/hostname
και κάνουμε restart το pc με
shutdown -r now
Μετά από το restart δίνουμε
hostname
hostname -f
και στις 2 περιπτώσεις πρέπει να δώσει server1.example.com . Τώρα εάν το επιθυμούμε μπορούμε να συνδεθούμε από κάποιο άλλο μηχάνημα με κάποιον ssh client ( PuTTY )
ή από κονσόλα με
ssh username@192.168.0.1 -p 2222
Κάνουμε edit το /etc/apt/sources.list και βγάζουμε το CD
# deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ – Official i386 NETINST Binary-1 20070407-11:29]/ etch contrib main #deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ – Official #i386 NETINST Binary-1 20070407-11:29]/ etch contrib maindeb http://ftp2.de.debian.org/debian/ etch main deb-src http://ftp2.de.debian.org/debian/ etch maindeb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib |
Μέτα τρέχουμε
apt-get update
apt-get upgrade
Ας εγκαταστήσουμε κάποια προγράμματα που θα χρειαστούμε
apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev linux-kernel-headers lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++
Σειρά έχει η MySql
apt-get install mysql-server mysql-client libmysqlclient15-dev
Εάν θέλουμε η Mysql να απαντάει σε όλα τα interfaces του συστήματος μας έκτος του localhost
κάνουμε edit το αρχείο /etc/mysql/my.cnf και βγάζουμε το # από το
[…] #bind-address = 127.0.0.1 […] |
Κάνουμε restart την Mysql
/etc/init.d/mysql restart
Αλλάζουμε το password του root για την Mysql με
mysqladmin -u root password yourrootsqlpassword
Πλέον για να μπούμε στην MySql δίνουμε
mysql -p
Είναι ώρα να στίσουμε postfix με SMTP-AUTH και TLS
apt-get install postfix libsasl2 sasl2-bin libsasl2-modules libdb3-util procmail
Θα μας ρωτήσει κάποια πραγματάκια:
General type of configuration? <– Internet Site
Mail name? <– server1.example.com
Όταν τελειώσει η εγκατάσταση δίνουμε
dpkg-reconfigure postfix
Θα ξαναρωτηθούμε κάποια πραγματάκια:
General type of configuration? <– Internet Site
Where should mail for root go <– [blank]
Mail name? <– server1.example.com
Other destinations to accept mail for? (blank for none) <– server1.example.com, localhost.example.com, localhost.localdomain, localhost
Force synchronous updates on mail queue? <– No
Local networks? <– 127.0.0.0/8
Use procmail for local delivery? <– Yes
Mailbox size limit <– 0
Local address extension character? <– +
Internet protocols to use? <– all
μετά δίνουμε τα εξεις:
postconf -e ‘smtpd_sasl_local_domain =’
postconf -e ‘smtpd_sasl_auth_enable = yes’
postconf -e ‘smtpd_sasl_security_options = noanonymous’
postconf -e ‘broken_sasl_auth_clients = yes’
postconf -e ‘smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination’
postconf -e ‘inet_interfaces = all’
echo ‘pwcheck_method: saslauthd’ >> /etc/postfix/sasl/smtpd.conf
echo ‘mech_list: plain login’ >> /etc/postfix/sasl/smtpd.conf
μετά θα δημιουργήσουμε certificates για TLS
mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
Μετά έχει σειρά το configuration του Postfix με TLS
postconf -e ‘smtpd_tls_auth_only = no’
postconf -e ‘smtp_use_tls = yes’
postconf -e ‘smtpd_use_tls = yes’
postconf -e ‘smtp_tls_note_starttls_offer = yes’
postconf -e ‘smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key’
postconf -e ‘smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt’
postconf -e ‘smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem’
postconf -e ‘smtpd_tls_loglevel = 1’
postconf -e ‘smtpd_tls_received_header = yes’
postconf -e ‘smtpd_tls_session_cache_timeout = 3600s’
postconf -e ‘tls_random_source = dev:/dev/urandom’
postconf -e ‘myhostname = server1.example.com’
Το αρχείο /etc/postfix/main.cf θα πρέπει να μοιάζει κάπως έτσι
# line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailnamesmtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA’s job. append_dot_mydomain = no# Uncomment the next line to generate “delayed mail” warnings #delay_warning_time = 4h# TLS parameters smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a “$EXTENSION” mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom |
Κάνουμε restart τον postfix
/etc/init.d/postfix restart
Το authentication θα γίνεται από το saslauthd. Θα χρειαστεί να αλλάξουμε μερικά πραγματάκια για να τον κάνουμε να δουλεύει κατάλληλα.
mkdir -p /var/spool/postfix/var/run/saslauthd
Κάνουμε edit το αρχείο /etc/default/saslauthd
nano /etc/default/saslauthd
και αλλάζουμε 2 πραγματάκια
κάνουμε yes το START και αλλάζουμε το OPTIONS=”-c” σε
OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”:
Κάνουμε start το saslauthd
/etc/init.d/saslauthd start
Για να δούμε εάν δουλεύει ο SMTP:
telnet localhost 25
ehlo localhost
Εάν δούμε τις παρακάτω γραμμές στην απάντηση που θα πάρουμε
250-STARTTLS
250-AUTH PLAIN LOGIN
είμαστε ΟΚ
Δίνουμε quit
Courier-IMAP / Courier-POP3
Για να εγκαταστήσουμε τα παραπάνω πακέτα δίνουμε:
apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0
Θα μας ρωτήσει 2 πράγματα :
Create directories for web-based administration ? <– No
SSL certificate required <– Ok
Εάν δεν θέλουμε να χρησιμοποιήσουμε ISPConfig θα φτιάξουμε τον postfix να λαμβάνει τα emails στο maildir του κάθε χρήστη
postconf -e ‘mailbox_command =’ /etc/init.d/postfix restart |
Apache και PHP5
πρώτα ο Apache
apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
και μετά PHP5
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
στην ερώτηση θα απαντήσουμε yes
Continue installing libc-client without Maildir support? <– Yes
Μετά θα κάνουμε edit το αρχείο /etc/apache2/mods-available/dir.conf
nano /etc/apache2/mods-available/dir.conf
και θα αλλάξουμε το DirectoryIndex σε:
Κάνουμε edit το αρχείο /etc/apache2/ports.conf
nano /etc/apache2/ports.conf
και προσθέτουμε να ακούει ο Apache και στην πόρτα 443
Listen 80 Listen 443 |
Τώρα θα ενεργοποιήσουμε μερικά module του apache
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include
Κάνουμε reload το configuration του Apache
/etc/init.d/apache2 force-reload
και It’s works!
Στην συνέχεια… εγκατάσταση Horde , Secure Horde , εγκατάσταση SpamFilter