欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 26_03 _邮件服务系列之pop3s、maildrop 看到 签署证书这一块 有大用

image.png


postfix + sasl + courier-authlib + MySQL(实现了虚拟用户,虚拟域) + dovecot + Webmail { extmail (extmain) }


tom , jerry

magedu@126.com

linux@foxmail.com  (它有验证功能,要加入白名单的,qq邮箱也是要加入白名单的)


下图是126的邮箱

image.png



下图是自己创建的邮箱

image.png

本地邮箱

image.png



image.png

我自己试了 ,可能要加入白名单(腾讯可能判断 来自magedu.com的邮件是垃圾邮件),才能向qq.com的邮箱发邮件


外网回复邮件回复不来(因为我们自己的域名 magedu.com 并没有真正在互联网上使用 ,如果 magedu.com 在互联网上解析了有MX记录就可以回复到我们这边来了)





发送到  linux@foxmail.com 




自己收到一封邮件

image.png

这里 反向解析和正向解析不匹配,判断为垃圾邮件

(如果 A,MX,PTR 记录对应起来就可以了)

image.png



image.png




再注册一个邮箱吧

image.png

image.png

image.png

image.png


用OE

image.png


新建帐号时有好几步,下图是其中一步(最重要的是要虚拟主机帐户名@域名)

image.png


建帐号,进行发送

image.png


192.168.1.85上的防火墙开启 可能有问题

image.png

image.png

看下 邮箱日志吧

image.png


先禁掉防火墙吧


[root@mail log]# iptables -F

[root@mail log]#


此时测试正常了

image.png




马哥发送出错了

image.png

看看下面的文件,,主要 就是红框中的指令使得报错拒绝

image.png

image.png



报 完全合格域名的错,我们配置一下 完全合格域名 我们改一下吧windows的解析吧

image.png

image.png

image.png

image.png

image.png



image.png






不浪费时间了 改 /etc/postfix/main.cf 文件吧
image.png


image.png


image.png


image.png




[root@mail log]# telnet 192.168.1.85 110

Trying 192.168.1.85...

Connected to www.a.org (192.168.1.85).

Escape character is '^]'.

+OK Dovecot ready.

USER hadoop@magedu.com  #(使用虚拟邮箱要加上@magedu.com)

+OK

PASS zhong1926

+OK Logged in.

LIST

+OK 0 messages:

.

quit

+OK Logging out.

Connection closed by foreign host.

[root@mail log]# 



[root@mail log]# mutt -f pop://hadoop@magedu.com@192.168.1.85   #hadoop@magedu.com会当作用户名

image.png


 /var/log/maillog  里面可以看到验证过程

[root@mail log]# tail /var/log/maillog   #日志太详细 可以在配置文件中关闭

Jul 12 04:53:37 mail dovecot: pop3-login: Aborted login: user=<hadoop@magedu.com>, method=PLAIN, rip=::ffff:          192.168.1.85, lip=::ffff:192.168.1.85, secured

Jul 12 04:53:59 mail dovecot: pop3-login: Login: user=<hadoop@magedu.com>, method=PLAIN, rip=::ffff:192.168.          1.85, lip=::ffff:192.168.1.85, secured

Jul 12 04:54:15 mail dovecot: POP3(hadoop@magedu.com): Disconnected: Logged out top=0/0, retr=0/0, del=0/0,           size=0

Jul 12 04:59:06 mail dovecot: pop3-login: Login: user=<hadoop@magedu.com>, method=PLAIN, rip=::ffff:192.168.          1.251, lip=::ffff:192.168.1.85

Jul 12 04:59:06 mail dovecot: POP3(hadoop@magedu.com): Disconnected: Logged out top=0/0, retr=0/0, del=0/0,           size=0

Jul 12 05:01:48 mail dovecot: pop3-login: Login: user=<hadoop@magedu.com>, method=PLAIN, rip=::ffff:192.168.          1.85, lip=::ffff:192.168.1.85, secured

Jul 12 05:01:50 mail dovecot: POP3(hadoop@magedu.com): Disconnected: Logged out top=0/0, retr=0/0, del=0/0,           size=0

Jul 12 05:03:08 mail dovecot: pop3-login: Aborted login: user=<hadoop@magedu.com>, method=PLAIN, rip=::ffff:          192.168.1.85, lip=::ffff:192.168.1.85, secured

Jul 12 05:03:14 mail dovecot: pop3-login: Login: user=<hadoop@magedu.com>, method=PLAIN, rip=::ffff:192.168.          1.85, lip=::ffff:192.168.1.85, secured

Jul 12 05:04:04 mail dovecot: POP3(hadoop@magedu.com): Disconnected: Logged out top=0/0, retr=0/0, del=0/0,           size=0

[root@mail log]#




ssl: SMTP POP3 IMAP4

    plaintext:纯文本

http --> https (ssl/tls)

smtp --> smtps

    25-->465


smtps 不能保证完全的整个过程的安全

它有中继,所以它是不适用的

image.png

S/MIME   (S  Security 安全的)(MIME多用途互联网邮件扩展,能够让它传输非文本信息的) 

USER <--> USER  从用户到用户之间的安全传输的

每个用户都有 用户证书: 证书由两个用户公信的CA颁发的

        mail ,hash (finger print),私钥加密指纹存放在邮件的后面,生成一次性会话密钥加密这段数据,再用对方的公钥加密这段密码送给对方

openSSL, GPG(PGP的一种实现,PGP是一种规范,GPG是一种软件)

        GNU Privacy Guard  (GUN 的私有信息保护,简称为GPG)

        PGP:本来是私有公司,后来发布共用了


https 测试

也是 openssl s_client -connect SERVER:PORT -CAfile /path/to/CA_CERT

-CAfile 指定ca的证书文件,以便验证服务器端的证书


PKI:CA

pop3s: 995/tcp

imaps: 993/tcp


imaps tcp-993


pop3s tcp-995
smtps tcp-465 )

有些公司有 smpts,有些公司用S/MIME 


pop3s,imaps,,,,支持ssl的可靠的实现,但并不能保证邮件在存储的时候是加密的


SSL:会话加密的,传输过程加密,与存储过程加密是没有关系的

S/MIME:只是跟邮件相关的存储过程加密



建个CA证书


[root@mail log]# cd /etc/pki/CA/

生成私钥证书

[root@mail CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)

Generating RSA private key, 2048 bit long modulus

.......................................+++

...................................+++

e is 65537 (0x10001)

[root@mail CA]#



生成自签证书 

(加 -x509 生成自签证书 ,,,不加 -x509表示生成证书请求的)

[root@mail CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656

马哥的

image.png


我的

image.png




改配置文件

[root@mail CA]# vim /etc/pki/tls/openssl.cnf

[ CA_default ]


dir             = /etc/pki/CA           




[root@mail CA]# mkdir /etc/dovecot/ssl -pv    

mkdir: 已创建目录 “/etc/dovecot”

mkdir: 已创建目录 “/etc/dovecot/ssl”

[root@mail CA]#


/etc/dovecot/ssl   目录可以改成  750 的权限


建一个私钥

[root@mail ssl]# (umask 077;openssl genrsa 1024 > dovecot.key)

Generating RSA private key, 104 bit long modulus

...+++++++++++++++++++++++++++

..+++++++++++++++++++++++++++

e is 65537 (0x10001)

[root@mail ssl]#


根据私钥 生成一个证书请求 (里面可以提取公钥)

[root@mail ssl]# opsnssl req -new -key dovecot.key -out dovecot.csr


You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:Jiangsu

Locality Name (eg, city) [Newbury]:SZ

Organization Name (eg, company) [My Company Ltd]:MagEdu

Organizational Unit Name (eg, section) []:Tech   #上面几项要与上面的配置保持一致吧

Common Name (eg, your name or your server's hostname) []:mail.magedu.com

Email Address []:958186957@qq.com


Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

[root@mail ssl]#

image.png


image.png






签署证书 (提示目录不存在)

[root@mail ssl]# openssl ca -in dovecot.csr -out dovecot.crt -days 3656

Using configuration from /etc/pki/tls/openssl.cnf

I am unable to access the /etc/pki/CA/newcerts directory

/etc/pki/CA/newcerts: No such file or directory


有几个目录要建一下吧 

[root@mail ssl]# cd /etc/pki/CA/

[root@mail CA]# mkdir certs newcerts crl

[root@mail CA]# touch index.txt

[root@mail CA]# echo 01 > serial

[root@mail CA]#



[root@mail CA]# cd -

/etc/dovecot/ssl

[root@mail ssl]# pwd

/etc/dovecot/ssl

[root@mail ssl]#

签署证书



[root@mail ssl]# openssl ca -in dovecot.csr -out dovecot.crt -days 3656

Using configuration from /etc/pki/tls/openssl.cnf

Check that the request matches the signature

Signature ok

Certificate Details:

        Serial Number: 1 (0x1)

        Validity

            Not Before: Jul 12 00:29:34 2020 GMT

            Not After : Jul 16 00:29:34 2030 GMT

        Subject:

            countryName               = CN

            stateOrProvinceName       = Jiangsu

            organizationName          = MagEdu

            organizationalUnitName    = Tech

            commonName                = mail.magedu.com

            emailAddress              = 958186957@qq.com

        X509v3 extensions:

            X509v3 Basic Constraints:

                CA:FALSE

            Netscape Comment:

                OpenSSL Generated Certificate

            X509v3 Subject Key Identifier:

                61:8B:9B:75:39:48:95:90:31:EC:A2:8A:70:6E:31:35:3E:3A:92:E3

            X509v3 Authority Key Identifier:

                keyid:88:AE:F9:E6:C1:53:09:78:D9:3C:13:1E:9B:74:90:FC:07:79:24:22


Certificate is to be certified until Jul 16 00:29:34 2030 GMT (3656 days)

Sign the certificate? [y/n]:y



1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

image.png

[root@mail ssl]#



签署成功后 csr 就没有用了,里面有其它重要敏感的数据,所以改成其它用户没有读权限就成

[root@mail ssl]# ll

总计 24

-rw-r--r-- 1 root root 3850 07-12 08:30 dovecot.crt

-rw-r--r-- 1 root root  696 07-12 08:23 dovecot.csr

-rw------- 1 root root  891 07-12 08:22 dovecot.key

[root@mail ssl]#


配置 使ssl 支持 dovecot

[root@mail ssl]# vim /etc/dovecot.conf

protocols = pop3 pop3s

ssl_disable = no

#ssl_cert_file = /etc/pki/dovecot/certs/dovecot.pem

ssl_cert_file = /etc/dovecot/ssl/dovecot.crt

#ssl_key_file = /etc/pki/dovecot/private/dovecot.pem

ssl_key_file = /etc/dovecot/ssl/dovecot.key

ssl_key_password =   (如果私钥有密码的话)



[root@mail ssl]# service dovecot restart

停止 Dovecot Imap:                                        [确定]

启动 Dovecot Imap:                                        [确定]

[root@mail ssl]#


[root@mail ssl]# netstat -tnlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name

tcp        0      0 127.0.0.1:2208              0.0.0.0:*                   LISTEN      3832/./hpiod

tcp        0      0 0.0.0.0:678                 0.0.0.0:*                   LISTEN      3464/rpc.statd

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      3845/php-fpm

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      23668/mysqld

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      3414/portmap

tcp        0      0 192.168.1.85:53             0.0.0.0:*                   LISTEN      3772/named

tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      3772/named

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3866/sshd

tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      3880/cupsd

tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      23969/master

tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      3772/named

tcp        0      0 127.0.0.1:2207              0.0.0.0:*                   LISTEN      3837/python

tcp        0      0 :::995                      :::*                        LISTEN      7205/dovecot

tcp        0      0 :::110                      :::*                        LISTEN      7205/dovecot

tcp        0      0 :::80                       :::*                        LISTEN      28719/httpd

tcp        0      0 :::22                       :::*                        LISTEN      3866/sshd

tcp        0      0 ::1:953                     :::*                        LISTEN      3772/named

[root@mail ssl]#



不能通过 955 发信 (因为 995是暗文的 这里 telnet用的是明文的)

( telnet 无法进行ssl会话(加密的会话)的建立的 )

[root@mail ssl]# telnet 192.168.1.85 995 

Trying 192.168.1.85...

Connected to www.a.org (192.168.1.85).

Escape character is '^]'.

USER hadoop@magedu.com

Connection closed by foreign host.

[root@mail ssl]#



[root@mail ssl]# man openssl

有个 s_client 来测试 客户端与服务器端的连接的



[root@mail ssl]# man s_client

S_CLIENT(1)                         OpenSSL                        S_CLIENT(1)


NAME

       s_client - SSL/TLS client program


SYNOPSIS

       openssl s_client [-connect host:port] [-verify depth] [-cert filename] [-certform DER│PEM] [-key

       filename] [-keyform DER│PEM] [-pass arg] [-CApath directory] [-CAfile filename] [-reconnect]

       [-pause] [-showcerts] [-debug] [-msg] [-nbio_test] [-state] [-nbio] [-crlf] [-ign_eof] [-quiet]

       [-ssl2] [-ssl3] [-tls1] [-no_ssl2] [-no_ssl3] [-no_tls1] [-bugs] [-cipher cipherlist] [-starttls

       protocol] [-engine id] [-rand file(s)]





[root@mail ssl]# ping mail.magedu.com

PING mail.magedu.com (192.168.1.85) 56(84) bytes of data.

64 bytes from www.a.org (192.168.1.85): icmp_seq=1 ttl=64 time=0.025 ms

64 bytes from www.a.org (192.168.1.85): icmp_seq=2 ttl=64 time=0.022 ms


--- mail.magedu.com ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 999ms

rtt min/avg/max/mdev = 0.022/0.023/0.025/0.005 ms

[root@mail ssl]#


[root@mail ssl]# openssl s_client -connect mail.magedu.com:995

..........................

USER hadoop@magedu.com

+OK

PASS zhong1926

+OK Logged in.

LIST

+OK 0 messages:

.

quit

+OK Logging out.

read:errno=0

[root@mail ssl]#



mutt 获取加密,加密传输邮件?


[root@mail ssl]# mutt -f pops://hadoop@magedu.com@192.168.1.85

image.png

o表示接受一次,再输密码,登录

image.png

以上的过程都是加密的


windows客户端 OE如何基于ssl的会话来实现加密通信的


下面是最主要的关于 ssl 的配置

下图是马哥的设置

image.png


下图是我的设置

image.png



马哥发送邮件后 (windows上未提供 CA证书,不能验证CA证书)

image.png

如何把证书导入到 windows 


[root@mail ssl]# ls -la /etc/pki/CA/cacert.pem

-rw-r--r-- 1 root root 1619 07-12 07:50 /etc/pki/CA/cacert.pem

[root@mail ssl]#


 马哥把文件 从 linux虚拟机上弄到真机上,再从真机上拖到 windows 虚拟机上 (要想可拖的话,要安装 VMware Tools 工具)

image.png

可以在虚拟机的光驱上 进行点击安装(还是进去安装)  装好后 可以重启虚拟机就可以了(此时就可以从真机上拖到虚拟机上了)

image.png


而我用的是真机 (在 Git Bash 上 使用 scp 来进来从linux虚拟主机上复制到真机上  )


在 windows 机器上 cacert.pem 改名为 cacert.crt ,然后 双击直接安装 (这是客户端证书)

下两图是最重要的两步

image.png



image.png


最好把下面的 收发的服务器地址 由 ip 改成域名吧  (本地还要加 host解析)

image.png




image.png

image.png

image.png

-i 表示哪个网卡

-n 表示不反解主机名

-nn 表示既不反解主机名,也不反解端口号

-X 以十六进制或ASCII格式显示报文的内容

-XX 同时显示以太网首部

-v,-vv,-vvv越多,显示得更详细


ip host 192.68.1.85

ip src host 192.168.1.85

ip dst host 192.168.1.85

ip src or dst ( host )192.168.1.85

ip src and dst ( host )192.168.1.85



tcp src port 110 






协议报文分析器:

    sniffer:商业工具 

 tcpdump(一般系统自带的)

 wireshark(GUI),tshark (CLI)(它是wireshark的命令行形式)  (它比tcpdump功能强大吧)



tcpdump

    Protocol   Values(取值): ether(以太网帧),fddi(分布式光纤通道),ip(ip协议,在三层),arp(arp报文),tcp和udp(均在四层)

    Direction(流向):

    Host: portrang.(端口范围)

                src 10.1.1.1  =  src host 10.1.1.1   (省略了host)

                dst net 172.16.0.0/16  (一个网络,要有镜像端口才有意义)




    ip src 172.16.100.1  只抓ip包括,源地址是172.16.100.1 

    ip src and dst 172.16.100.1  只抓ip包括,源地址和目标地址都是172.16.100.1 

    ip src or dst  172.16.100.1  只抓ip包括,源地址或目标地址是172.16.100.1 



image.png


image.png




image.png

image.png



image.png


[root@mail ~]# tcpdump -i eth0 -X -nn -vv tcp port 110         # tcp 110 端口 就抓包

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

image.png




[root@mail ~]# tcpdump -i eth0 -X -nn -vv tcp port 110 and ip src 192.168.1.85     # tcp 110 端口 且 源地址是   192.168.1.85   才抓包

image.png

tcp 110 端口 且 源地址和目标地址都是   192.168.1.85   才抓包

[root@mail ~]# tcpdump -i eth0 -X -nn -vv tcp port 110 and ip host  192.168.1.85                                      



[root@mail ~]# tcpdump -i eth0 -X -nn -vv tcp port 995 and ip host  192.168.1.85                


把端口改成 995 

image.png







还使用 110 端口进行通信吧

image.png


发送邮件

image.png



 把OE改成 ssl (995端口)

image.png



在 01:09:00 之前的关于 tcpdump 好像我抓包不行,先跳过吧



image.png

image.png

image.png


image.png



image.png





要多种反垃圾邮件结合起来使用:

关闭OpenRelay


反垃圾邮件


内容过滤器:   (还有一种正反解过滤)

APACHE: Spamassassin                      

http://www.apache.org/

http://www.apache.org/index.html#projects-list

https://spamassassin.apache.org/

    perl:垃圾邮件分拣器

           根据垃圾邮件的特征码库,


RBL (实时黑名单列表) Realtime Black List

                可以搜一下免费的实时黑名单列表服务器,它们在dns解析那一段就能够完成黑名单拒收邮件

   


病毒邮件网关:

    clamav:开源杀毒软件  (本来是标记病毒邮件的,把它扔掉的,现在好像也能杀毒了)

            病毒邮件服务器网关,也要在线实时更新它的病毒库的;;;;

            软件不卖钱,病毒库有两种:1)社区版(由全球程序员贡献,有可能不比商业版差)    2)商业版


image.png


呼叫器: caller,  呼叫Spamassin 或者 Clamav 来过滤病毒和垃圾的

            (MIMEDefang,Mailscanner,Amavisd-new )

Amavisd-new 通过smtp协议,将邮件首先拿来一份,过滤一遍,没有问题,再交给cleanup,所以 Amavisd-new 先进得多

image.png


amavised-new: spamassassin,clamav

amavised-new: spamassassin 都是由perl开发的,所以要先安装一堆perl模块

            perl: CPAN

            或者下载一堆软件,进行编译安装

                有个 install 命令可以安装

这些东西 马哥不讲了 ,可以借鉴 /node-admin/15313



把邮件服务器换掉吧

image.png

image.png

image.png

image.png

image.png




master.cf

顶格写的表示下一次,,不顶格写的(以空格开头的) 表示 上一行的继续


测一下 用 tom登进去 ,给 hadoop 发一封邮件

image.png

image.png


下载 maildrop 吧

image.png



https://osdn.net/projects/sfnet_courier/downloads/maildrop/2.6.0/maildrop-2.6.0.tar.bz2/

https://svwh.dl.sourceforge.net/project/courier/maildrop/2.6.0/maildrop-2.6.0.tar.bz2



[root@mail ~]# wget http://svwh.dl.sourceforge.net/project/courier/maildrop/2.6.0/maildrop-2.6.0.tar.bz2


[root@mail ~]# tar  xf maildrop-2.6.0.tar.bz2

[root@mail ~]# cd maildrop-2.6.0

[root@mail maildrop-2.6.0]#


做 courier-authlib的库导出

[root@mail maildrop-2.6.0]# vim /etc/ld.so.conf.d/courier-authlib.conf

/usr/local/courier-authlib/lib/courier-authlib



[root@mail maildrop-2.6.0]# ls /usr/local/courier-authlib/lib/courier-authlib

libauthcustom.a     libauthpipe.a            libcourierauthcommon.so.0

libauthcustom.la    libauthpipe.la           libcourierauth.la

libauthcustom.so    libauthpipe.so           libcourierauthsasl.a

libauthcustom.so.0  libauthpipe.so.0         libcourierauthsaslclient.a

libauthldap.a       libauthuserdb.a          libcourierauthsaslclient.la

libauthldap.la      libauthuserdb.la         libcourierauthsaslclient.so

libauthldap.so      libauthuserdb.so         libcourierauthsaslclient.so.0

libauthldap.so.0    libauthuserdb.so.0       libcourierauthsasl.la

libauthmysql.a      libcourierauth.a         libcourierauthsasl.so

libauthmysql.la     libcourierauthcommon.a   libcourierauthsasl.so.0

libauthmysql.so     libcourierauthcommon.la  libcourierauth.so

libauthmysql.so.0   libcourierauthcommon.so  libcourierauth.so.0

[root@mail maildrop-2.6.0]#



动态加载库文件

[root@mail maildrop-2.6.0]# ldconfig -v




创建头文件 (这里必须要单个链接,不能链接目录)

[root@mail maildrop-2.6.0]# ln -sv /usr/local/courier-authlib/include/* /usr/include/

创建指向“/usr/local/courier-authlib/include/courier_auth_config.h”的符号链接“/usr/include/courier_auth_config.h”

创建指向“/usr/local/courier-authlib/include/courierauthdebug.h”的符号链接“/usr/include/courierauthdebug.h”

创建指向“/usr/local/courier-authlib/include/courierauth.h”的符号链接“/usr/include/courierauth.h”

创建指向“/usr/local/courier-authlib/include/courierauthsaslclient.h”的符号链接“/usr/include/courierauthsaslclient.h”

创建指向“/usr/local/courier-authlib/include/courierauthsasl.h”的符号链接“/usr/include/courierauthsasl.h”

创建指向“/usr/local/courier-authlib/include/courierauthstaticlist.h”的符号链接“/usr/include/courierauthstaticlist.h”

[root@mail maildrop-2.6.0]#


[root@mail maildrop-2.6.0]# ln -sv /usr/local/courier-authlib/bin/courierauthconfig /usr/bin

创建指向“/usr/local/courier-authlib/bin/courierauthconfig”的符号链接“/usr/bin/courierauthconfig”

[root@mail maildrop-2.6.0]#


[root@mail maildrop-2.6.0]# pwd

/root/maildrop-2.6.0

[root@mail maildrop-2.6.0]#  

 ./configure \

    --enable-sendmail=/usr/sbin/sendmail \

    --enable-trusted-users='root vmail' \

    --enable-syslog=1 --enable-maildirquota \

    --enable-maildrop-uid=1001 \

    --enable-maildrop-gid=1001 \

    --with-trashquota --with-dirsync

我这边正常

马哥 出错

image.png

要安装pcre

image.png


maildrop 不是需要自我启动的独立的进程,它是一个由postfix的master按需启动的进程,不需要给它提供服务脚本



[root@mail maildrop-2.6.0]# groupadd -g 1001 vmail

[root@mail maildrop-2.6.0]# useradd -g 1001 -u 1001 -M -s /sbin/nologin vmail

[root@mail maildrop-2.6.0]#

[root@mail maildrop-2.6.0]# pwd

/root/maildrop-2.6.0

[root@mail maildrop-2.6.0]#

[root@mail maildrop-2.6.0]# make && make install

maildrop 安装时未指定安装路径是因为.默认安装路径与postfix中配置的路径是一模一样的

[root@mail maildrop-2.6.0]# vim /etc/postfix/master.cf   (下面两行,把前面的注释去掉了)

.......................

maildrop  unix  -       n       n       -       -       pipe

  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}

.......................




[root@mail maildrop-2.6.0]# maildrop -v   #看它是否支持 courier-authlib

maildrop 2.6.0 Copyright 1998-2005 Double Precision, Inc.

GDBM/DB extensions enabled.

Courier Authentication Library extension enabled.

Maildir quota extension are now always enabled.

This program is distributed under the terms of the GNU General Public

License. See COPYING for additional information.

[root@mail maildrop-2.6.0]#



(下面rc 表示资源配置的意思)

maildrop配置文件指定log文件

[root@mail maildrop-2.6.0]# vim /etc/maildroprc

logfile "/var/log/maildrop.log"


[root@mail maildrop-2.6.0]# touch /var/log/maidrop.log

[root@mail maildrop-2.6.0]# chown vmail:vmail /var/log/maidrop.log

[root@mail maildrop-2.6.0]#


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


#virtual_uid_maps = static:2525

virtual_uid_maps = static:1001

#virtual_gid_maps = static:2525

virtual_gid_maps = static:1001

#virtual_transport = virtual

virtual_transport = maildrop


[root@mail maildrop-2.6.0]# vim /etc/authmysqlrc


#MYSQL_UID_FIELD                2525

MYSQL_UID_FIELD         1001


#MYSQL_GID_FIELD                2525

MYSQL_GID_FIELD         1001



[root@mail maildrop-2.6.0]# vim /etc/httpd/httpd.conf

#User daemon

#User postfix

User vmail

#Group daemon

#Group postfix

Group vmail



[root@mail maildrop-2.6.0]# vim /var/www/extsuite/extman/webman.cf

#SYS_DEFAULT_UID = 2525

SYS_DEFAULT_UID = 1001


# sys_default_gid, if not set, webman will ignore it

#SYS_DEFAULT_GID = 2525

SYS_DEFAULT_GID = 1001



改属主属组

[root@mail maildrop-2.6.0]# chown -R vmail:vmail /var/mailbox/ /tmp/extman/

[root@mail maildrop-2.6.0]#




[root@mail maildrop-2.6.0]# service courier-authlib restart

Stopping Courier authentication services: authdaemond

Starting Courier authentication services: authdaemond

[root@mail maildrop-2.6.0]# service httpd restart

停止 httpd:                                               [确定]

启动 httpd:                                               [确定]

[root@mail maildrop-2.6.0]# service postfix restart

关闭 postfix:                                             [确定]

启动 postfix:                                             [确定]

[root@mail maildrop-2.6.0]#


发送邮件

image.png



image.png



有 windows 的 OE 接收邮件,也可以看到接受到邮件了

image.png


使用 maildrop 来过滤垃圾邮件,没时间弄,可能用不上

[root@mail maildrop-2.6.0]# vim /etc/maildroprc  #在这里配置过滤,马哥就不讲了


image.png


普通分类: