Я установил сервер postfix на centos 7:
# postconf -n
canonical_maps = hash:/etc/postfix/canonical
config_directory = /etc/postfix
inet_interfaces = all
mydestination = localhost localhost.$mydomain $mydomain
mydomain = apptizer.net
myhostname = mail.apptizer.net
mynetworks = 127.0.0.0/8 10.3.0.0/16 $myhostname
myorigin = $mydomain
relay_domains =
smtp_tls_security_level = may
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated reject_invalid_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_destination, reject_unauth_pipelining, check_recipient_access hash:/etc/postfix/access_recipient hash:/etc/postfix/access_sysusers, reject_non_fqdn_hostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_key_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_security_level = may
smtpd_use_tls = yes
virtual_alias_domains = /etc/postfix/local-host-names
virtual_alias_maps = hash:/etc/postfix/virtusertable
В настоящее время я не хочу использовать mysql для пользователей - пользователи Linux работают для меня нормально. Единственная проблема в том, что я хочу, чтобы электронные письма типа bin@apptizer.net halt@apptizer.net не получали почту извне (например, от gmail.com). Однако я все еще хочу собирать локальные электронные письма - например, неудачное задание cron - и с помощью псевдонимов перенаправлять их на root, а затем на моего собственного пользователя.
Итак, если я сделаю это локально
php -r 'mail("apache","test","body");'
он должен работать, но если я сделаю это с удаленного сервера
php -r 'mail("apache@apptizer.net","test","body");'
письмо должно быть отклонено (в идеале с 550, но все, что угодно, например, 554, тоже подойдет)
Я пробовал это сделать:
awk -F ':' '$3<1000{print $1 "@ permit_mynetworks,REJECT"}' /etc/passwd >/etc/postfix/access_sysusers
postmap hash:access_sysusers
а затем добавьте это в smtpd_recipient_restrictions в main.cf:
check_recipient_access хеш: / etc / postfix / access_recipient hash: / etc / postfix / access_sysusers
с идеей создать access_sysusers
автоматически и access_recipient
для заполнения вручную для созданных мной пользователей, которым все еще нужно войти в систему, но у которых нет электронной почты.
но если я не удалю псевдоним, системный пользователь (например, apache) по-прежнему будет принимать электронную почту извне (например, apache@apptizer.net). И если я удалю псевдоним, локальный адрес электронной почты попадет в почтовый ящик отдельного пользователя. и я хочу, чтобы мой пользователь получал эти электронные письма.