Miután szépen megágyaztunk a Postfix levelezőszervernek, itt az idő feltelepíteni.
aptitude install postfix-mysql
A szerver típusa Internet Site legyen, a neve pedig az alapértelmezett mailserver.comega7.local
Készítsük el a Postfix számára a MySQL táblákra mutató konfigurációs fájlokat:
mkdir /etc/postfix/sql cd /srv/web/www/postfixadmin.comega7.local/DOCUMENTS sh ./POSTFIX_CONF.txt
A szkript a /tmp mappában készít egy postfixadmin-XXXX nevű mappát, ahol az elkészített konfigurációs fájlok szerepelnek. Az XXX négy számjegye véletlenszerű. Másoljuk be a fájlokat a megfelelő helyre:
cd /tmp/postfixadmin-xxxx cp * /etc/postfix/sql
A Postfix fő konfigurációs fájlja a /etc/postfix/main.cf:
#Basic settings myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no append_dot_mydomain = no readme_directory = /usr/share/doc/postfix html_directory = /usr/share/doc/postfix/html myhostname = mailserver.comega7.local mydomain = comega7.local mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.100.0/24 inet_interfaces = all alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = mailserver.comega7.local, localhost relayhost = mailbox_size_limit = 0 recipient_delimiter = + notify_classes = resource, software message_size_limit = 31457280 # TLS parameters smtpd_tls_cert_file=/etc/postfix/ssl/certs/postfix.pem smtpd_tls_key_file=/etc/postfix/ssl/private/postfix.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_security_level = may smtpd_tls_auth_only = yes # PostfixAdmin configuration options virtual_gid_maps = static:5000 virtual_uid_maps = static:5000 dovecot_destination_recipient_limit = 1 virtual_transport = dovecot virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf # SASLAUTH options smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous smtpd_sasl_authenticated_header = yes broken_sasl_auth_clients = yes # SMTPD basic settings smtpd_delay_reject = yes smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, check_helo_access hash:/etc/postfix/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, permit # SMTPD sender restrictions smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain, permit # SMTPD relay restrictions smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination, permit # SMTPD recipient restrictions smtpd_recipient_restrictions = permit_mynetworks, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, permit smtpd_data_restrictions = reject_unauth_pipelining #content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings
A részletes magyarázatba most nem megyek bele, de nagyon ajánlom a Postfix dokumentáció szorgalmas tanulmányozását. Levelező szerver üzemeltetőjeként ez vitathatatlan kötelességed lesz a jövőben.
A Postfix szervernek szüksége lesz egy tanúsítványra, amelynek segítségével az 587-es porton bejövő SMTP kapcsolatokat titkosítja le (TLS). Ez az a port, ahol felhasználónév és jelszó megadásával a Postfix Admin segítségével felvett felhasználók levelek küldésére is használhatják szerverünket.
mkdir -p /etc/postfix/ssl/certs mkdir -p /etc/postfix/ssl/private openssl req -new -x509 -days 365 -nodes -out /etc/postfix/ssl/certs/postfix.pem -keyout /etc/postfix/ssl/private/postfix.key
A válaszok pedig:
Country Name: HU State or Province Name: Pest Locality Name: Budapest Organization Name: Comega7 Organizational Unit Name: IT Common Name: mailserver.comega7.local Email Address: bolemanyi.attila@comega7.local
Az adatokat itt is szabadon variálhatod, egyetlen kivétellel: a Common Name itt az a név, amelyet a Postfix szervered használ, amikor bemutatkozik másoknak.
Az 587-es port (submission) kinyitásához az alábbi sorokat add hozzá a /etc/postfix/master.cf fájl végéhez:
submission inet n - n - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=private/auth -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_local_domain=$myhostname -o smtpd_helo_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,defer_unauth_destination
(A félkövérrel kiemelt kiegészítést köszönöm Harasztia Rolandnak) Szükségünk lesz egy olyan felhasználóra, aki létezik a Debian rendszerben, és akinek a tulajdonában lesz valamennyi tartomány és postafiók a szerver fájlrendszerében:
mkdir /srv/mail groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /srv/mail/vmail -m rm /srv/mail/vmail/.*
Készítsük el a /etc/postfix/helo_access fájlt:
mailserver.comega7.local REJECT comega7.local REJECT 192.168.100.200 REJECT
Készítsük el a fájl hash változatát:
postmap /etc/postfix/helo_access
Indítsuk újra a Postfix szervert:
service postfix restart