千家信息网

postfix

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,#################postfix###################1.postfix提供smtp协议用来投递邮件默认端口 25默认发布目录 /var/log/maillog ##服
千家信息网最后更新 2025年01月22日postfix

#################postfix###################

1.postfix提供smtp协议用来投递邮件

默认端口 25

默认发布目录 /var/log/maillog ##服务日志

mail root @..... 发邮件

主题:

内容....

.

mailq ###查看邮件队列

postqueue -f ###重新处理邮件队列

默认情况下邮件端口只在127.0.0.1上开启

2.

配置

vim /etc/postfix/main.cf

76 myhostname = westos-mail.westos.com ###25端口开启的网络借口

83 mydomain = westos.com ###指定mta的域名

99 myorigin = westos.com ###制定邮件来源结尾(@后面的字符内容)

116 inet_interfaces = all ###25端口开启的网络借口

164 mydestination = $myhostname, $mydomain, localhost ###接受邮件字符的指定

systemctl restart postfix.service

systemctl stop firewalld

3.邮件别名

[root@westos-mail named]# vim /etc/aliases

97 admin: root ##邮件别名

98 moreuser: :include:/etc/postfix/moreuser ##邮件群发

[root@qq-mail ~]# vim /etc/postfix/moreuser

user1

user2

[root@qq-mail ~]# systemctl restart postfix.service

mail -u 用户名

postsuper -d 删除排队邮件

postqueue -f 重新发送排队的邮件

postalias /etc/aliases

4.通过远程主机发送邮件

[kiosk@foundation75 Desktop]$ yum install -y telnet

[root@foundation75 Desktop]# telnet 172.25.254.101 25

Trying 172.25.254.101...

Connected to 172.25.254.101.

Escape character is '^]'.

220 westos-mail.westos.com ESMTP Postfix

ehlo hello

250-westos-mail.westos.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

mail from:root@westos.com

250 2.1.0 Ok

rcpt to:root@qq.com

250 2.1.5 Ok

data

354 End data with .

qwdq

qwdeq

qeq

.

测试

[root@qq-mail ~]# mail

Heirloom Mail version 12.5 7/5/10. Type ? for help.

"/var/spool/mail/root": 2 messages 1 new 2 unread

U 1 root Tue May 23 09:45 25/739 "qq"

>N 2 root@westos.com Tue May 23 09:53 15/494

& 2

Message 2:

From root@westos.com Tue May 23 09:53:48 2017

Return-Path:

X-Original-To: root@qq.com

Delivered-To: root@qq.com

Status: R

qwdq

qwdeq

qeq

5.邮件客户端的访问控制

mta上

postconf -e "smtpd_client_restrictions = check_client_access hash:/etc/postfix/access"

root@westos-mail named]# vim /etc/postfix/main.cf

681 smtpd_client_restrictions = check_client_access hash:/etc/postfix/acce ss

root@westos-mail named]# vim /etc/postfix/access

476 172.25.254.95 REJECT

[root@westos-mail named]# postmap /etc/postfix/access

[root@westos-mail named]# ls

data named.ca named.localhost qq.com.zone westos.com.zone

dynamic named.empty named.loopback slaves

[root@westos-mail named]# cd /etc/postfix

[root@westos-mail postfix]# ls

access canonical header_checks master.cf transport

access.db generic main.cf relocated virtual

测试

[root@test Desktop]# telnet 172.25.254.195 25

Trying 172.25.254.195...

Connected to 172.25.254.195.

Escape character is '^]'.

220 westos-mail.westos.com ESMTP Postfix

mail from:root@westos.com

250 2.1.0 Ok

rcpt to:root@qq.com

554 5.7.1 : Client host rejected: Access denied

##限制用户发送

[root@westos-mail postfix]# postconf -e "smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender"

[root@westos-mail postfix]# vim /etc/postfix/main.cf

681 smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender

[root@westos-mail postfix]# vim /etc/postfix/sender

student@westos.com REJECT

[root@westos-mail postfix]# postmap /etc/postfix/sender

[root@westos-mail postfix]# ls

access canonical header_checks master.cf sender transport

access.db generic main.cf relocated sender.db virtual

[root@westos-mail postfix]# systemctl restart postfix.service

测试

[root@foundation75 Desktop]# telnet 172.25.254.101 25

Trying 172.25.254.101...

Connected to 172.25.254.101.

Escape character is '^]'.

220 westos-mail.westos.com ESMTP Postfix

mail from:student@westos.com

250 2.1.0 Ok

rcpt to:root@westos.com

554 5.7.1 : Sender address rejected: Access denied

##限制用户接收

[root@westos-mail postfix]# postconf -e "smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/recip"

[root@westos-mail postfix]# vim /etc/postfix/main.cf

smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/recip

[root@westos-mail postfix]# vim /etc/postfix/recip

westos@westos.com REJECT

[root@westos-mail postfix]# postmap /etc/postfix/recip

[root@westos-mail postfix]# systemctl restart postfix.service

测试

[root@foundation75 Desktop]# telnet 172.25.254.101 25

Trying 172.25.254.101...

Connected to 172.25.254.101.

Escape character is '^]'.

220 westos-mail.westos.com ESMTP Postfix

mail from:root@qq.com

250 2.1.0 Ok

rcpt to:westos@westos.com

554 5.7.1 : Recipient address rejected: Access denied

#出站地址伪装

做好dns解析

[root@westos-mail named]# postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"

[root@westos-mail named]# vim /etc/postfix/main.cf

smtp_generic_maps = hash:/etc/postfix/generic

[root@westos-mail named]# vim /etc/postfix/generic

westos@westos.com hello@sb.com

[root@westos-mail named]# postmap /etc/postfix/generic

[root@westos-mail named]# cd /etc/postfix/

[root@westos-mail postfix]# ls

access canonical generic.db main.cf recip relocated sender.db virtual

access.db generic header_checks master.cf recip.db sender transport

[root@westos-mail postfix]# id westos

uid=1001(westos) gid=1001(westos) groups=1001(westos)

测试

From hello@sb.com Tue May 23 11:55:08 2017

Return-Path:

X-Original-To: root@qq.com

Delivered-To: root@qq.com

Date: Tue, 23 May 2017 11:55:08 -0400

To: root@qq.com

Subject: qdq

User-Agent: Heirloom mailx 12.5 7/5/10

Content-Type: text/plain; charset=us-ascii

From: hello@sb.com

Status: R

##入站地址转换

做好dns解析

[root@westos-mail postfix]# postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"

[root@westos-mail postfix]# vim /etc/postfix/virtual

295 hello@sb.com westos@westos.com

[root@westos-mail postfix]# vim /etc/postfix/main.cf

virtual_alias_maps = hash:/etc/postfix/virtual

[root@westos-mail postfix]# postmap /etc/postfix/virtual

[root@westos-mail postfix]# systemctl restart postfix.service

[root@westos-mail postfix]# mail hello@sb.com

Subject: qwdq

qwdq

dq

wdq

.

EOT

测试

[root@westos-mail postfix]# mail -u westos

Heirloom Mail version 12.5 7/5/10. Type ? for help.

"/var/mail/westos": 1 message 1 new

>N 1 root Tue May 23 12:10 20/560 "qwdq"

& 1

Message 1:

From root@westos.com Tue May 23 12:10:01 2017

Return-Path:

X-Original-To: hello@sb.com

Delivered-To: westos@westos.com

Date: Tue, 23 May 2017 12:10:00 -0400

To: hello@sb.com

Subject: qwdq

User-Agent: Heirloom mailx 12.5 7/5/10

Content-Type: text/plain; charset=us-ascii

From: root@westos.com (root)

Status: R

######################################

###########dovecot####################

1.dovecot用来提供收件协议

pop3 110

imap 143

imaps 993

pop3s 995

给定用户名称,用户密码,dovecot程序代替我们去看这个用户的邮件文件

2.yum intsall -y dovecot

3.

[root@westos-mail named]# vim /etc/dovecot/dovecot.conf

24 protocols = imap pop3 lmtp

48 login_trusted_networks = 0.0.0.0/0

49 disable_plaintext_auth = no

[root@westos-mail named]# vim /etc/dovecot/conf.d/10-mail.conf

30 mail_location = mbox:~/mail:INBOX=/var/mail/%u

[root@westos-mail ~]# su westos

[westos@westos-mail root]$ cd ~

[westos@westos-mail ~]$ mkdir /home/westos/mail/.imap -p

[westos@westos-mail ~]$ touch /home/westos/mail/.imap/INBOX

[root@westos-mail westos]# passwd westos

Changing password for user westos.

New password:

BAD PASSWORD: The password is a palindrome

Retype new password:

passwd: all authentication tokens updated successfully.

[root@westos-mail westos]# systemctl restart dovecot.service

[root@westos-mail ~]# mkdir /etc/skel/mail/.imap -p

[root@westos-mail ~]# touch /etc/skel/mail/.imap/INBOX

[root@westos-mail ~]# useradd zhang

[root@westos-mail ~]# passwd zhang

Changing password for user zhang.

New password:

BAD PASSWORD: The password is a palindrome

Retype new password:

passwd: all authentication tokens updated successfully.

[root@westos-mail ~]# systemctl restart dovecot.service

测试

主机安装mutt

[root@foundation75 Desktop]# mutt -f pop://zhang@172.25.254.101

安装雷鸟

用真机

rpm -ivh thunderbird-31.2.0-1.el7.x86_64.rpm

接下来进行以下操作

进去之后进行登陆并且给westos@westom.com恢复邮件

测试

[root@westos-mail ~]# mail

Heirloom Mail version 12.5 7/5/10. Type ? for help.

"/var/spool/mail/root": 2 messages 1 new

1 root Tue May 23 11:22 21/572 "qwew"

>N 2 westos@westos.com Wed May 24 11:52 32/940 "Re:123"

& 2

Message 2:

From westos@westos.com Wed May 24 11:52:52 2017

Return-Path:

X-Original-To: root@westos.com

Delivered-To: root@westos.com

Date: Wed, 24 May 2017 23:52:52 +0800

From: "westos@westos.com"

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/

31.2.0

To: root

Subject: Re:123

Content-Type: text/plain; charset=UTF-8; format=flowed

Status: R

################postfix+mariadb##############

[root@westos-mail ~]# yum install -y httpd php php-mysql mariadb-server

[root@westos-mail ~]# systemctl start mariadb

[root@westos-mail ~]# vim /etc/my.cnf

[root@westos-mail ~]# systemctl restart postfix.service

[root@westos-mail ~]# systemctl restart mariadb.service

[root@westos-mail ~]# mysql_secure_installation

[root@westos-mail ~]# cd /var/www/html

[root@westos-mail html]# ls

phpMyAdmin-3.4.0-all-languages.tar.bz2

[root@westos-mail html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2

[root@westos-mail html]# rm -fr *.bz2

[root@westos-mail html]# ls

phpMyAdmin-3.4.0-all-languages

[root@westos-mail html]# mv phpMyAdmin-3.4.0-all-languages/ myadmin

[root@westos-mail html]# ls

myadmin

[root@westos-mail html]# cd myadmin

[root@westos-mail myadmin]# cp config.sample.inc.php config.inc.php

[root@westos-mail myadmin]# vim config.inc.php

[root@westos-mail myadmin]# systemctl restart httpd

[root@westos-mail myadmin]# mysql -uroot -p

Enter password:

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 32

Server version: 5.5.35-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create user postuser@localhost identified by 'postuser';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant select,update,insert on email.* to postuser@localhost;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit

Bye

[root@westos-mail myadmin]# mysql -upostuser -p

Enter password:

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 33

Server version: 5.5.35-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> select * from email.emailuser;

+-------------+----------+---------+-------------------+

| username | password | domain | maildir |

+-------------+----------+---------+-------------------+

| lee@lee.com | lee | lee.com | /mnt/lee.com/lee/ |

+-------------+----------+---------+-------------------+

[root@westos-mail ~]# cd /etc/postfix/

[root@westos-mail postfix]# vim mailuser.cf ####用户名查询

1 hosts = localhost ##数据库所在的主机

2 user = postuser ##登陆数据库的用户

3 password = postuser ##登陆数据库的密码

4 dbname = email ##postfix要查询的名称

5 table = emailuser ##postfix要查询表的名称

6 select_field = username ##postfix要查询的字段

7 where_field = username ##用户给定postfix的查询条件

[root@westos-mail postfix]# postmap -q "lee@lee.com" mysql:/etc/postfix/mailuser.cf

lee@lee.com

[root@westos-mail postfix]# vim maildomain.cf ####用户域名查询

1 hosts = localhost

2 user = postuser

3 password = postuser

4 dbname = email

5 table = emailuser

6 select_field = domain

7 where_field = domain

[root@westos-mail postfix]# postmap -q "lee.com" mysql:/etc/postfix/maildomain.cf

lee.com

[root@westos-mail postfix]# vim mailbox.cf ####用户邮箱位置查询

1 hosts = localhost

2 user = postuser

3 password = postuser

4 dbname = email

5 table = emailuser

6 select_field = maildir

7 where_field = username

[root@westos-mail postfix]# postmap -q "lee@lee.com" mysql:/etc/postfix/mailbox.cf

/mnt/lee.com/lee/

附图



####配置postfix

[root@westos-mail ~]# groupadd -g 666 vmail

[root@westos-mail ~]# id vmail

uid=666(vmail) gid=666(vmail) groups=666(vmail)

[root@westos-mail ~]# postconf -d | grep virtual

[root@westos-mail ~]# postconf -e "virtual_mailbox_base = /home/vmail"

[root@westos-mail ~]# postconf -e "virtual_uid_maps = static:666"

[root@westos-mail ~]# postconf -e "virtual_gid_maps = static:666"

[root@westos-mail ~]# postconf -e "virtual_alias_maps = mysql:/etc/postfix/mailuser.cf"

[root@westos-mail ~]# postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/mailbox.cf"

[root@westos-mail ~]# postconf -e "virtual_mailbox_domain = mysql:/etc/postfi/maildomain.cf"

systemctl restart postfix.service

测试

lee@lee.com的邮件在/home/vmail/lee.com/new/里面可以找到


附图



0