Debian 11 Bullseye
Sponsored Link

Mail Server : Install Postfix
2021/09/14
 
Install Postfix to configure SMTP Server. SMTP uses [25/TCP].
[1] This example shows to configure SMTP-Auth to use Dovecot's SASL function.
root@mail:~#
apt -y install postfix sasl2-bin
# on this example, proceed to select [No Configuration]
# because configure all manually

+------+ Postfix Configuration +-------+
| General type of mail configuration:  |
|                                      |
|       No configuration               |
|       Internet Site                  |
|       Internet with smarthost        |
|       Satellite system               |
|       Local only                     |
|                                      |
|                                      |
|       <Ok>           <Cancel>        |
|                                      |
+--------------------------------------+

root@mail:~#
cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf

root@mail:~#
vi /etc/postfix/main.cf
# line 78 : uncomment

mail_owner = postfix
# line 94 : uncomment and specify hostname

myhostname =
mail.srv.world
# line 102 : uncomment and specify domainname

mydomain =
srv.world
# line 123 : uncomment

myorigin = $mydomain
# line 137 : uncomment

inet_interfaces = all
# line 185 : uncomment

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# line 228 : uncomment

local_recipient_maps = unix:passwd.byname $alias_maps
# line 270 : uncomment

mynetworks_style = subnet
# line 287 : add your local network

mynetworks = 127.0.0.0/8,
10.0.0.0/24
# line 407 : uncomment

alias_maps = hash:/etc/aliases
# line 418 : uncomment

alias_database = hash:/etc/aliases
# line 440 : uncomment

home_mailbox = Maildir/
# line 576: comment out and add

#
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_banner = $myhostname ESMTP
# line 650 : add

sendmail_path =
/usr/sbin/postfix
# line 655 : add

newaliases_path =
/usr/bin/newaliases
# line 660 : add

mailq_path =
/usr/bin/mailq
# line 666 : add

setgid_group =
postdrop
# line 670 : comment out

#
html_directory =
# line 674 : comment out

#
manpage_directory =
# line 679 : comment out

#
sample_directory =
# line 683 : comment out

#
readme_directory =
# line 684 : if also listen IPv6, change to [all]

inet_protocols = ipv4
# add follows to the end
# disable SMTP VRFY command
disable_vrfy_command = yes

# require HELO command to sender hosts
smtpd_helo_required = yes

# limit an email size
# example below means 10M bytes limit
message_size_limit = 10240000

# 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

root@mail:~#
root@mail:~#
systemctl restart postfix

[2]
Configure additional settings for Postfix if you need.
It's possible to reject many spam emails with the settings below.
However, you should consider to apply the settings,
because sometimes normal emails are also rejected with them.
Especially, there are SMTP servers that forward lookup and reverse lookup of their hostnames on DNS do not match even if they are not spammers.
root@mail:~#
vi /etc/postfix/main.cf
# add to the end
# reject unknown clients that forward lookup and reverse lookup of their hostnames on DNS do not match
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client_hostname, permit

# rejects senders that domain name set in FROM are not registered in DNS or 
# not registered with FQDN
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sender

# reject hosts that domain name set in FROM are not registered in DNS or 
# not registered with FQDN when your SMTP server receives HELO command
smtpd_helo_restrictions = permit_mynetworks, reject_unknown_hostname, reject_non_fqdn_hostname, reject_invalid_hostname, permit

root@mail:~#
systemctl restart postfix

Matched Content