Pag-instalar og Kompleto nga Mail Server nga adunay Postfix ug Webmail sa Debian 9


Kini nga panudlo maggiya kanimo kung giunsa ang pag-install ug pag-configure sa usa ka kompleto nga mail server nga adunay Postfix sa pagpagawas sa Debian 9. Sakup usab niini kung giunsa ang pag-configure sa mga mailbox sa account gamit ang Dovecot aron makuha ug ma-compose ang mga mail pinaagi sa protocol sa IMAP. Ang mga tiggamit mogamit sa Rainloop Webmail interface ingon nga mail user agent sa pagdumala sa mail.

  1. Debian 9 Minimal nga Pag-instalar
  2. Usa ka static nga IP address nga gi-configure para sa network interface
  3. Usa ka lokal o publikong rehistradong domain name.

Sa kini nga panudlo mogamit kami usa ka pribado nga domain account alang sa pag-setup sa mail server nga gi-configure pinaagi sa /etc/hosts file lamang, nga wala’y bisan unsang DNS server nga nahilambigit sa pagdumala sa resolusyon sa DNS.

Lakang 1: Inisyal nga Pag-configure alang sa Postfix Mail Server sa Debian

1. Sa unang lakang, pag-log in sa imong makina gamit ang usa ka account nga adunay root privileges o direkta sa root user ug siguroa nga ang imong Debian system updated sa pinakabag-o nga security patch ug software ug packages releases, pinaagi sa pag-isyu sa mosunod nga command.

# apt-get update 
# apt-get upgrade 

2. Sa sunod nga lakang i-install ang mosunod nga mga pakete sa software nga gamiton alang sa pagdumala sa sistema, pinaagi sa pag-isyu sa mosunod nga sugo.

# apt-get install curl net-tools bash-completion wget lsof nano

3. Sunod, ablihi ang /etc/host.conf file para sa pag-edit gamit ang imong paborito nga text editor ug idugang ang mosunod nga linya sa sinugdanan sa file aron ang DNS resolution makabasa una sa hosts file.

order hosts,bind
multi on

4. Sunod, i-setup ang imong makina nga FQDN ug idugang ang imong domain name ug imong sistema nga FQDN sa /etc/hosts file. Gamita ang imong IP address sa sistema aron masulbad ang ngalan sa domain ug FQDN sama sa gihulagway sa screenshot sa ubos.

Ilisan ang IP address ug domain sumala niana. Pagkahuman, i-reboot ang makina aron magamit ang hostname sa husto.

# hostnamectl set-hostname mail.linux-console.net
# echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
# init 6

5. Human sa pag-reboot, pamatud-i kung ang hostname husto nga gi-configure pinaagi sa pag-isyu sa mosunod nga serye sa mga sugo. Ang domain name, ang FQDN, ang hostname ug ang IP address sa sistema kinahanglan ibalik pinaagi sa hostname command.

# hostname
# hostname -s
# hostname -f
# hostname -A
# hostname -i
# cat /etc/hostname 

6. Usab, sulayi kung ang domain husto nga motubag sa lokal nga mga pangutana pinaagi sa pag-isyu sa ubos nga mga sugo. Hibaloi nga ang domain dili mo-replay sa layo nga mga pangutana nga gi-isyu sa ubang mga sistema sa imong network, tungod kay wala kami naggamit og DNS server.

Bisan pa, ang domain kinahanglan nga motubag gikan sa ubang mga sistema kung imong idugang ang domain name sa matag usa sa ilang /etc/hosts file. Usab, hibaloi nga ang DNS nga resolusyon alang sa usa ka domain nga gidugang sa /etc/hosts file dili molihok pinaagi sa pagkalot sa mga sugo.

# getent ahosts mail.linux-console.net
# ping linux-console.net
# ping mail.linux-console.net

Lakang 2: I-install ang Postfix Mail Server sa Debian

7. Ang labing importante nga piraso sa software nga gikinahanglan alang sa usa ka mail server nga molihok sa husto mao ang MTA ahente. Ang MTA usa ka software nga gitukod sa usa ka server-client nga arkitektura, nga responsable sa pagbalhin sa mail tali sa mga mail server.

Niini nga giya atong gamiton ang Postfix isip ahente sa pagbalhin sa mail. Aron ma-install ang postfix sa Debian gikan sa opisyal nga mga repository ipatuman ang mosunud nga mando.

# apt-get install postfix

8. Atol sa proseso sa pag-instalar sa Postfix pangutan-on ka og sunodsunod nga mga pangutana. Sa una nga prompt, pilia ang opsyon sa Internet Site isip kinatibuk-ang tipo sa configuration sa Postfix ug pindota ang [enter] key aron magpadayon ug dayon idugang ang imong domain name sa system mail name, sama sa gihulagway sa mosunod nga mga screenshot.

Lakang 3: I-configure ang Postfix Mail Server sa Debian

9. Sunod, i-backup ang Postfix main configuration file ug i-configure ang Postfix para sa imong domain pinaagi sa paggamit sa mosunod nga mga sugo.

# cp /etc/postfix/main.cf{,.backup}
# nano /etc/postfix/main.cf

Karon i-configure ang Postfix configuration sa main.cf file sama sa gipakita.

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_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.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Ilisan ang myhostname, mydomain ug mynetworks variables aron mohaum sa imong kaugalingong mga configuration.

Mahimo nimong ipadagan ang postconf -n command aron matangtang ang Postfix main configuration file ug susihon ang mga sayup nga mahitabo, sama sa gipakita sa screenshot sa ubos.

# postconf -n

10. Human mabutang ang tanan nga mga pag-configure, i-restart ang Postfix daemon aron magamit ang mga pagbag-o ug susihon kung ang serbisyo nagdagan pinaagi sa pag-inspeksyon kung ang Postfix master service nagbugkos sa port 25 pinaagi sa pagpadagan sa netstat command.

# systemctl restart postfix
# systemctl status postfix
# netstat -tlpn

Lakang 3: Sulayi ang Postfix Mail Server sa Debian

11. Aron masulayan kung ang postfix makadumala sa pagbalhin sa mail, i-install una ang mailutils package pinaagi sa pagpadagan sa mosunod nga mando.

# apt-get install mailutils

12. Sunod, gamit ang mail command line utility, magpadala usa ka mail sa root account ug susiha kung ang mail malampuson nga gipadala pinaagi sa pag-isyu sa ubos nga sugo aron masusi ang mail queue ug ilista ang sulod sa root's home Maildir directory.

# echo "mail body"| mail -s "test mail" root
# mailq
# mail
# ls Maildir/
# ls Maildir/new/
# cat Maildir/new/[TAB]

13. Mahimo usab nimong pamatud-an kung unsang paagiha ang mail gidumala pinaagi sa serbisyo sa postfix pinaagi sa pagsusi sa sulud sa mail log file pinaagi sa pag-isyu sa mosunod nga mando.

# tailf /var/log/mail.log

Lakang 4: I-install ug I-configure ang Dovecot IMAP sa Debian

14. Ang ahente sa paghatod sa mail nga among gamiton niini nga giya sa paghatod sa mga mensahe sa e-mail ngadto sa mga mailbox sa lokal nga tigdawat mao ang Dovecot IMAP. Ang IMAP usa ka protocol nga nagdagan sa 143 ug 993 (SSL) nga mga pantalan, nga responsable sa pagbasa, pagtangtang o pagbalhin sa mga mail sa daghang mga kliyente sa email.

Ang IMAP protocol naggamit usab ug synchronization aron sa pagsiguro nga ang usa ka kopya sa matag mensahe gitipigan sa server ug nagtugot sa mga tiggamit sa paghimo og daghang mga direktoryo sa server ug pagbalhin sa mga sulat ngadto niini nga mga direktoryo aron sa paghan-ay sa mga e-mail.

Dili kini ang kaso sa POP3 protocol. Ang protocol sa POP3 dili motugot sa mga tiggamit sa paghimo og daghang mga direktoryo sa server aron maihap ang imong mail. Naa ra nimo ang folder sa inbox aron madumala ang mail.

Aron i-install ang Dovecot core server ug Dovecot IMAP package sa Debian ipatuman ang mosunod nga sugo.

# apt install dovecot-core dovecot-imapd

15. Human ma-install ang Dovecot sa imong sistema, ablihi ang mga file sa ubos nga dovecot para sa pag-edit ug himoa ang mosunod nga mga kausaban. Una, ablihi ang /etc/dovecot/dovecot.conf file, pangitaa ug i-uncomment ang mosunod nga linya:

listen = *, ::

16. Sunod, ablihi ang /etc/dovecot/conf.d/10-auth.conf para sa pag-edit ug pangitaa ug usba ang ubos nga mga linya aron tan-awon sama sa ubos nga kinutlo.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Ablihi ang /etc/dovecot/conf.d/10-mail.conf file ug idugang ang mosunod nga linya aron magamit ang lokasyon sa Maildir imbes nga Mbox format para magtipig og mga email.

mail_location = maildir:~/Maildir

18. Ang kataposang payl nga i-edit mao ang /etc/dovecot/conf.d/10-master.conf. Dinhi pangitaa ang Postfix smtp-auth block ug himoa ang mosunod nga pagbag-o:

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

19. Human nimo mahimo ang tanan nga mga pagbag-o sa ibabaw, i-restart ang Dovecot daemon aron mapakita ang mga pagbag-o, susihon ang kahimtang niini ug pamatud-i kung ang Dovecot nagbugkos sa port 143, pinaagi sa pag-isyu sa mga mando sa ubos.

# systemctl restart dovecot.service 
# systemctl status dovecot.service 
# netstat -tlpn

20. Sulayi kon ang mail server nagdagan sa husto pinaagi sa pagdugang og bag-ong user account ngadto sa sistema ug gamita ang telnet o netcat command aron makonektar sa SMTP server ug magpadala og bag-ong mail ngadto sa bag-ong gidugang nga user, sama sa gihulagway sa ubos nga mga kinutlo.

# adduser matie
# nc localhost 25
# ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

21. Susiha kon ang mail niabot na sa bag-ong user mailbox pinaagi sa paglista sa sulod sa home directory sa user sama sa gipakita sa screenshot sa ubos.

# ls /home/test_mail/Maildir/new/

22. Usab, mahimo ka makonektar sa mailbox sa user gikan sa command line pinaagi sa IMAP protocol, sama sa gipakita sa ubos nga kinutlo. Ang bag-ong mail kinahanglang ilista sa Inbox sa user.

# nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Lakang 5: I-install ug I-configure ang Webmail sa Debian

23. Ang mga tiggamit magdumala sa ilang mga email pinaagi sa kliyente sa Rainloop Webmail. Sa dili pa i-install ang Rainloop mail user agent, i-install una ang Apache HTTP server ug ang mosunod nga PHP modules nga gikinahanglan sa Rainloop, pinaagi sa pag-isyu sa mosunod nga command.

# apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Human ma-install ang Apache web server, usba ang path sa direktoryo ngadto sa /var/www/html/ directory, kuhaa ang index.html file ug i-issue ang mosunod nga command aron ma-install ang Rainloop Webmail.

# cd /var/www/html/
# rm index.html 
# curl -sL https://repository.rainloop.net/installer.php | php

25. Human ma-install ang kliyente sa Rainloop Webmail sa sistema, pag-navigate sa IP address sa imong domain ug pag-login sa Rainloop admin web interface nga adunay mosunod nga default nga mga kredensyal:

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Lakaw ngadto sa Domains menu, i-hit sa Add Domain button ug idugang ang imong domain name settings sama sa gipakita sa screenshot sa ubos.

27. Human nimo mahuman ang pagdugang sa imong domain settings, log out gikan sa Ranloop admin interface ug itudlo ang browser sa imong IP address aron maka-log in sa webmail client gamit ang e-mail account.

Human nimo malampuson nga naka-log in sa Rainloop webmail kinahanglan nimo nga makita ang email nga gipadala sa sayo pa gikan sa command line ngadto sa imong Inbox folder.

http://192.168.0.102
User: [email 
Pass: the matie password

27. Aron makadugang ug bag-ong user issue useradd command nga adunay -m flag aron makamugna ang user home directory. Apan, siguruha una nga imong gi-configure ang variable nga agianan sa Maildir alang sa matag tiggamit nga adunay mosunud nga mando.

# echo 'export MAIL=$HOME/Maildir' >> /etc/profile
# useradd -m user3
# passwd user3

28. Kung gusto nimo i-redirect ang email sa tanan nga gamut sa usa ka piho nga lokal nga mail account gikan sa sistema, padagana ang mga mando sa ubos. Ang tanan nga mga mail nga gi-redirect o gitakda sa root account ipasa sa imong mail user sama sa gipakita sa ubos nga imahe.

# echo "root: test_mail" >> /etc/aliases
# newaliases

Kana lang! Malampuson nimong na-install ug na-configure ang usa ka mail server sa imong lugar aron ang mga lokal nga tiggamit makakomunikar pinaagi sa mga e-mail. Bisan pa, kini nga matang sa pag-configure sa mail dili sigurado sa bisan unsang paagi ug girekomenda nga i-deploy lamang alang sa gagmay nga mga pag-setup sa mga sistema ug network nga naa sa imong hingpit nga kontrol.