postfix源码下载的简单介绍
本文目录一览:
- 1、如何将高级入侵检测环境安装到CentOS上
- 2、Postfix Mail Server管理
- 3、跪求一个企业邮局的服务器源码最好linux的!
- 4、如何让postfix支持cyrus-sasl认证
- 5、源码安装postfix 启动的时候日志 报的错,请问是哪里出问题了。.第一次架设postfix...请多多指教。。。
- 6、安装了Postfix的Centos服务器是用什么方法来抓取远程邮件服务器上的邮件到本地的?
如何将高级入侵检测环境安装到CentOS上
postfix sendmail qmail 都可以 如何架构 你自己要看看书了 这样直接说你也有点雾水 如果是postfix 下载所需组件 或者源码包 设置/etc/postfix/mail.cf 创建用户 权限 防火墙
Postfix Mail Server管理
用Postfix建立你自己的Mail Server!
如有错误,请指正,谢谢
这是一个用你的机子建立E-mail服务器的简单方法。如果要接收邮件,你需要POP/IMAP服务器,比如qpopper.为了使本文简洁明了,本文主要解决发送邮件(Sending)部分。如何在LAN上设置qpopper并从外界接收邮件,将在以后进行讨论。我选择源码安装方式。
本文假设你的FreeBSD已经安装好了,并且可已连上Internet.在这里,邮件服务器(Mail server)就是指要安装Postfix 的计算机。邮件客户端(Mail Client)指的是同一台机子或者是LAN上不同计算机(可以是任何操作系统)上接收邮件的程序(比如Kmail)。
.用sysinstall建立postdrop组,和postfix用户(不要设置密码):
# /stand/sysinstall
然后Configure - User Management - Group Add添加组postdrop后选择OK.接下来选择Configure - User Management - User添加用户postfix后选择OK.次过程忽略所有的警告。
[注意]你也可以选择其他的方法来完成组和用户的添加!
.进入postfix 源码所在目录后:
# make install
接下来会有几个问题要你回答,你只需简单的回车就可以完成。最后要求你配置/etc/postfix/main.cf文件。我们不管,接着:# /usr/bin/newaliases
.假如你是拨号上网的话,你的邮件就很有可能要在服务器中排队,以等待网络的空闲。所以你就有必要在/etc/postfix/main.cf中设置:defer_transports = smtp(对于一直连上Internet网络,比如 Cable, DSL就不需要设置此项 )
.启动postfix:
# postfix start
[注意]:postfix在下次启动系统时会自动启动。
[测试]:
打开你喜欢的Mail Client,设置smtp服务器为:localhost (假如和服务器在同一台机子上,也可以设置本机的IP),端口为:25.然后随便一段测试信息,填写好接收邮件的地址,按发送。你的Mail Client会提示邮件已发送。实际上你的邮件还在计算机上排队,并未发出!要发送所有排队的邮件,你需要连上网,然后你root身份登陆,并运行:# sendmail -q .现在你的邮件就会发送到指定的邮箱中。
跪求一个企业邮局的服务器源码最好linux的!
介绍下9种企业常用postfix源码下载的Linux和Unix服务器
1.CentOS:
CentOS-5,CentOS-6,CentOS-7:
2.Debian:
Debian 8.0:
Old Debian Archive:
Getting Debian from the Internet:
3.Oracle Linux:
Oracle Linux Download:
4.Red Hat
Red Hat Download:
5.suse linux enterprise server
6.Oracle Solaris
7.Ubuntu
8.IBM Aix
9.HP-UX
如何让postfix支持cyrus-sasl认证
首先要保证您的postfix版本是snapshot-20000507及其以上的版本postfix源码下载,从而保证postfix对SASL的支持。强烈建议您升级至postfix-20010228及其以上版本。可以从下载postfix的源代码包postfix源码下载,在测试过程中我们使用的是postfix-20010228-pl04.tar.gz。
然后,要保证您的SASL的版本是1.5.5及其以上版本,因为已经有报告称这些版本的SASL可以和postfix工作得很好。可以从下载SASL,在测试过程中我们使用的是cyrus-sasl-1.5.24-17.rpm和cyrus-sasl-devel-1.5.24-17.rpm,即RedHat7.1自带的SASL的rpm包。
另外说明一点,整个测试过程都是在RedHat7.1中进行的。
步骤postfix源码下载:
1.检查系统中是否安装了cyrus-sasl-1.5.24
执行以下命令查看系统中是否安装了cyrus-sasl:
rpm –qa |grep cyurs
如果您看到以下提示,则说明已经安装了cyrus-sasl-1.5.24-17和cyrus-sasl-devel-1.5.24-17:
[root@test bye2000]# rpm -qa |grep sasl
cyrus-sasl-devel-1.5.24-17
cyrus-sasl-1.5.24-17
否则,请用rpm –ivh 命令先安装所需sasl-cyrus包。
2.编译postfix
首先,下载postfix-20010228-pl04.tar.gz,然后解开源代码包:
[root@test /tmp]# tar xvzf postfix-20010228-pl04.tar.gz
命令执行完后,会生成postfix-20010228-pl04目录,然后进入该目录:
[root@test /tmp]# cd postfix-20010228-pl04
接下来,依次执行以下命令编译postfix:
[root@test postfix-20010228-pl04]# make tidy
[root@test postfix-20010228-pl04]#make makefiles CCARGS='-DUSE_SASL_AUTH -I/usr/include' AUXLIBS='-L/usr/lib -lsasl'
[root@test postfix-20010228-pl04]# make
建立一个新用户“postfix”,该用户必须具有唯一的用户id和组id号,同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用的用户宿主目录。我们可以先用adduser postfix 添加用户再编辑/etc/passwd文件中的相关条目如下所示:
postfix:*:12345:12345:postfix:/no/where:/no/shell
最后执行安装脚本安装postfix
[root@test postfix-20010228-pl04]# ./INSTALL.sh
对于安装脚本的问题,可以统统回车确定。
3.配置postfix
安装完postfix后,就可以编辑/etc/postfix/main.cf文件来配置postfix了,关于如何配置
postfix,可以参考本站解决方案中的相关文章来获取更多的信息。
唯一需要补充的是,为了告诉postfix采用sasl来进行SMTP的用户认证,我们必须在/etc/postfix/main.cf文件的最后添加以下几行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
说明如下:
smtpd_sasl_auth_enable:告诉SMTP客户,该SMTP服务器需要进行用户认证。
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination
reject:仅仅中继通过SMTP认证的客户端邮件,以及接收本postfix为最后一站的邮件。
broken_sasl_auth_clients = yes:有一些Microsoft 的SMTP客户端,比如Outlook Express 4.X采用的是非标准的SMTP认证协议,将该选项设置为yes可以解决这类不兼容问题。
smtpd_sasl_security_options = noanonymous:控制本地SMTP认证所采用的机制,这里是允许任何非匿名认证方法。
4.配置SASL
进入/usr/lib/sasl/目录,用touch新建这样一个文件:
[root@test sasl]# touch smtpd.conf
在该文件中加入以下内容:
[root@test sasl]# more smtpd.conf
pwcheck_method:pam
也就是指定通过PAM来进行用户认证。
5.配置PAM
进入/etc/pam.d/目录,用touch新建这样一个文件:
[root@test pam.d]# touch smtp
在该文件中加入如下内容:
[root@test pam.d]# more smtp
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
也即和/etc/pam.d/pop文件的内容是一致的。
6.修改/etc/shadow文件权限
因为PAM最终要去读取/etc/shadow文件的内容来进行用户认证,但是/etc/shadow文件
权限是设置为只有root用户可以读写,而我们的postfix是运行在postfix用户权限之下,所以我们要合理的设置/etc/shadow文件权限,以便让pam可以读取其内容。
执行以下命令,让root组也可以读取shadow:
[root@test /etc]# chmod 640 /etc/shadow
然后再将postfix用户加入root组,采用以下命令:
[root@test /etc]# usermod -G root postfix
7.启动postfix
执行
[root@test /etc]# postfix start
这样,一个支持SMTP认证的postfix就开始工作了。
源码安装postfix 启动的时候日志 报的错,请问是哪里出问题了。.第一次架设postfix...请多多指教。。。
解答如下:
其实没有必要源码安装。如果非要这样升级最新的,下面是之前操作过程,参考:
1,一般情况是停止和卸载Sendmail。再来安装。
2,其次根据我之前在Centos上安装经验,因系统默认安装了Postfix。你安装源码的话,如果卸载
比如用yum -y remove postfix这样会将Crontab一起卸载。而且后面折腾不上。
所以,源码安装我选择是在现有基础上安装升级。命令如下:
cd postfix-src
make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_TLS \
-DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"' \
'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient \
-lz -lm -lssl -lcrypto'
####interactive,update and non-interactive install postfix
make sh postfix-install -non-interactive tempdir=/tmp || exit 1
#################################################
你现在的问题,用下面的三段尝试一下:如果不行可以用yum -y install postfix 然后再下载最新的Postfix包,加上上面的内容肯定可以。里面参数是配合Mysql和Dovecot。并且整个安装是成功的。
# /etc/init.d/sendmail stop
# mkfifo /var/spool/postfix/public/pickup
# /etc/init.d/postfix restart
安装了Postfix的Centos服务器是用什么方法来抓取远程邮件服务器上的邮件到本地的?
1 总体框架
1.1 体系架构
Postfix:提供smtp标准协议,进行邮件的收发
Cyrus-Imap:管理通过smtp收到的邮件,并为用户的邮件客户端如outlook/foxmail之类提供pop3/imap服务。用户通过连接到cyrus-imap进行个人邮件的管理
Cyrys-sasl:为smtp/pop3/imap提供SASL验证服务的中间层
PAM:为sasl提供一种验证算法的模块,通过mysql插件可以将验证数据存储在mysql数据库中
Mysql:为PAM提供基本的用户数据,同时为postfix提供数据库别名表
1.2 主要处理流程
收邮件:
1、 postfix收到邮件
2、 postfix到mysql的用户表中检索是否有与收件地址匹配的用户
3、 postfix将邮件转发给cyrus-imap的对应用户邮箱
4、 用户通过邮件客户端登陆cyrus-imap收取邮件
发邮件
1、用户通过邮件客户端登陆cyrus-imap,输入用户密码进行验证
2、用户编写并发送信邮件,提交到cyrus-imap
3、cyrus-imap将邮件提交给postfix,postfix通过smtp将邮件发送给目的地址
2 模块安装
2.1 rpm包及源代码准备
主要rpm包可以直接从CentOS 5.1中提取,postfix和pam_mysql因为需要重新编译,所以需要使用源代码
rpm:
pam-0.99.6.2-3.26.el5.i386.rpm
pam-devel-0.99.6.2-3.26.el5.i386.rpm
cyrus-sasl-2.1.22-4.i386.rpm
cyrus-sasl-lib-2.1.22-4.i386.rpm
cyrus-sasl-md5-2.1.22-4.i386.rpm
cyrus-sasl-plain-2.1.22-4.i386.rpm
cyrus-sasl-devel-2.1.22-4.i386.rpm
db4-4.3.29-9.fc6.i386.rpm
db4-utils-4.3.29-9.fc6.i386.rpm
db4-devel-4.3.29-9.fc6.i386.rpm
cyrus-imapd-utils-2.3.7-1.1.el5.i386.rpm
cyrus-imapd-perl-2.3.7-1.1.el5.i386.rpm
cyrus-imapd-2.3.7-1.1.el5.i386.rpm
mysql-5.0.22-2.1.0.1.i386.rpm
mysql-server-5.0.22-2.1.0.1.i386.rpm
mysql-devel-5.0.22-2.1.0.1.i386.rpm
libsysfs-2.0.0-6.i386.rpm
源代码:
postfix 版本 2.5稳定版,下载地址
文件名 postfix-2.5.2.tar.gz
pam_mysql 版本 0.7RC1,下载地址
文件名 pam_mysql-0.7RC1.tar.gz
2.2 安装rpm包
安装指令:rpm –ivh rpm包名称
安装顺序:mysql-pam-db4-cyrus-sasl-cyrus-imap
2.3 编译postfix
1.将源代码解压缩到/usr/src/
#cd /usr/src
#tar zxfv postfix-2.5.2.tar.gz
#cd postfix-2.5.2
2.确定mysql及cyrus-sasl的库安装位置(必须先安装mysql-devel和cyrus-sasl-devel两个rpm包)
一般位置
mysql include:/usr/include/mysql lib:/usr/lib/mysql
cyrus-sasl include:/usr/include/sasl lib:/usr/lib/sasl2
3.编译postfix
编译postfix需要指定支持mysql和cyrus-sasl功能,并根据上一步指定正确的库和包含文件位置
#make makefiles 'CCARGS=-DUSE_SASL_AUTH -DHAS_MYSQL -DUSE_CYRUS_SASL -I/usr/include/mysql -I/usr/include/sasl' 'AUXLIBS=-L/usr/lib/mysql -L/usr/lib/sasl2 -lmysqlclient -lsasl2 -lz -lm'
#make install
编译过程中,postfix会提示确认各参数,全部按回车使用默认值即可
4.创建初始别名表
#postalias /etc/postfix/aliases
#postmap /etc/postfix/virtual
5.验证postfix
如果原来已经安装了sendmail,则需要做以下步骤删除sendmail,才能启动postfix
#service sendmail stop
#rpm –e sendmail
启动并测试postfix
#postfix start
#telnet localhost 25
如果可以正常输出以下内容则确认postfix启动成功。
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 hostname.localdomain ESMTP Postfix
ehlo localhost
250- hostname.localdomain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
#postconf –a
如果输出包含有cyrus,则说明已经支持cyrus-sasl验证,如:
cyrus
dovecot
#postconf –m
如果输出包含有mysql,则说明已经支持mysql存取,如:
btree
cidr
environ
hash
mysql
nis
proxy
regexp
static
unix
2.4 编译pam_mysql
pam_mysql我们选择0.7RC1的版本,因为可以使用配置文件的方式使配置管理更加简单。
1.解压源代码
# cd /usr/src/
# tar zxfv pam_mysql-0.7RC1.tar.gz
2.预配置
#cd pam_mysql-0.7RC1
# ./configure --with-cyrus-sasl2
# make install
3.验证
# cd /lib/security/
# ls pam_mysql.so
如果该so存在,则编译成功
3 模块配置
首先我们需要为邮件系统创建一个统一的用户表,能够为sasl提供用户验证信息的存取,同时能为postfix提供用户邮箱的信息。
然后将sasl以及imap的认证都设定为通过mysql用户表验证。最后将postfix的别名信息也使用该用户表即可。
我们假定后续配置中,我们使用的库名为mail,登陆用户mail,密码suntek,对应的用户表名为USER,主机名为sample,所属域为sample.eboxhome.com。
我们需要创建两个邮箱用户cyrus和test。cyrus是cyrus-imap的管理用户,test是我们用来测试邮箱功能的测试用户,用户密码均为’suntek’
3.1 配置mysql
先使用mysql登陆本地数据库
1.创建库
CREATE DATABASE mail;
2.创建用户mail,设置密码,并将库mail的权限全部赋给用户mail
GRANT ALL ON mail.* TO mail@localhost IDENTIFIED BY "suntek";
FLUSH PRIVILEGES;
3.创建USER表
USE mail
CREATE TABLE USER (
ID int(10) unsigned NOT NULL auto_increment,
USERNAME varchar(128) NOT NULL default '',
PASSWORD varchar(40) NOT NULL default '',
FORWARD varchar(128) NOT NULL default '',
DOMAIN varchar(64) NOT NULL default '',
MAIL varchar(64) NOT NULL default '',
FILTER varchar(64) NOT NULL default 'OK',
PARTITION varchar(32) NOT NULL default 'default',
QUOTA int(11) NOT NULL default '10485760',
STATUS tinyint(4) NOT NULL default '1',
PRIMARY KEY (ID),
UNIQUE KEY USERNAME (USERNAME),
UNIQUE KEY MAIL (MAIL)
);
主要字段定义:
USERNAME:用于验证的用户名,如test
PASSWORD:使用encrypt方法加密的用户密码
FORWARD:cyrus-imap中对应的邮箱名,也可以用于别名邮箱转发
DOMAIN:该用户所属的邮件域,如sample.eboxhome.com
MAIL:该用户的完整邮箱名,如test@sample.eboxhome.com
4.创建邮件用户
备注:ENCRPTY是mysql提供的函数,用来生成加密后的密码
INSERT INTO USER (USERNAME,PASSWORD,FORWARD,DOMAIN,MAIL)
VALUES ('cyrus',ENCRYPT('suntek'),'postmaster','sample.eboxhome.com','cyrus@sample.eboxhome.com');
INSERT INTO USER (USERNAME,PASSWORD,FORWARD,DOMAIN,MAIL)
VALUES ('test',ENCRYPT('suntek'),'test','sample.eboxhome.com','test@sample.eboxhome.com');
脚本
3.2 配置pam
pam的配置主要分两步,首先设置好如何通过mysql的用户表进行验证,然后将smtp/pop3/imap的验证方式都设置为mysql用户表验证
1.创建mysql验证配置文件
#cd /etc/security
#vi pam_mysql.conf
输入以下内容并保存
users.host=localhost
users.database=mail
users.db_user=mail
users.db_passwd=suntek
users.table=USER
users.user_column=USERNAME
users.password_column=PASSWORD
users.password_crypt=y
verbose=1
log.enabled=0
log.table=logs
log.message_column=msg
log.pid_column=pid
log.user_column=user
log.host_column=host
log.rhost_column=rhost
log.time_column=logtime
说明:
users.table是要做select查询的用户表名
users.user_column是用于检索用户名的列
users.password_column是指定要验证密码的列
users.password_crypt是指定密码的加密方式,设置为y,与我们添加用户时的加密方式匹配
verbose=1表示认证部分输出日志,日志位置在/var/log/secure
2.设置邮件验证配置信息
# cd /etc/pam.d/
#vi mail
输入以下内容并保存
account required pam_mysql.so config_file=/etc/security/pam_mysql.conf
auth sufficient pam_mysql.so config_file=/etc/security/pam_mysql.conf
以上参数说明验证时使用pam_mysql驱动,配置文件为/etc/security/pam_mysql.conf
3.设置各服务使用库表验证
# cd /etc/pam.d/
首先先将pop imap smtp三个文件进行备份或者移动到其他地方
# ln -s mail smtp
# ln -s mail pop
# ln -s mail imap
4.验证用户
我们需要启动pop3服务验证在库内添加的用户是否有效
首先启动pop3服务
#service cyrus-imapd start
登陆pop3服务
#telnet localhost 110
如果输出以下内容,则说明数据库验证功能ok,加粗字体为用户输入部分(因为现在还没配置用户邮箱,所以验证成功后会提示找不到邮箱)
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK suntekbj Cyrus POP3 v2.3.7-Invoca-RPM-2.3.7-1.1.el5 server ready 2661826789.1212052774@sample
user test
+OK Name is a valid mailbox
pass suntek
-ERR [SYS/PERM] Unable to locate maildrop: Mailbox does not exist
quit
+OK
如果验证失败,请检查/var/log/secure的日志内容,以排除故障
配置文件
3.3 配置postfix
postfix配置主要涉及三部分,邮件服务器本身信息、mysql别名表和启用sasl验证的配置
1.设置cyrus的转发处理接口
首先确认cyrus的可执行文件的路径为/usr/lib/cyrus-imapd,然后修改master.cf
#cd /etc/postfix/
#vi master.cf
查找以下行,将前面注释去掉,并将调用路径改为上述路径。注意,我们使用的cyrus-imap 2.3的版本,如果使用后面的2.1.5的语句,会导致cyrus返回Bad Protocol。
====================================================================
#
# The Cyrus deliver program has changed incompatibly, multiple times.
#cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
2.创建mysql别名信息
postfix增加了mysql支持功能后,可以根据用户指定的信息,从库表中读取别名信息,我们这里直接使用前面创建的用户表进行别名管理。
#vi mysql-aliases.cf
写入以下信息,并进行保存
#mql config file for alias lookups on postfix
#
# the user name and password to log into the mysql server
hosts = localhost
user = mail
password = suntek
# the database name on the servers
dbname = mail
query = select FORWARD from USER where USERNAME = '%u' and STATUS = 1 limit 1
query是postfix新增加的功能,可以直接编写查询语句,运行时postfix会取出收件邮箱的用户名部分,替换到%u然后进行查询。
3.修改邮件服务器信息
该部分需要设置邮件服务器的主要信息,同时启动sasl认证以及指定mysql别名表
# vi main.cf
需要修改的参数如下:
#本机完整地址
myhostname = sample.eboxhome.com
#发出邮件的域名
myorigin = $myhostname
#指定从mysql中读取别名
alias_maps = hash:/etc/aliases, mysql:/etc/postfix/mysql-aliases.cf
#指定将邮件转给cyrus处理
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
local_destination_recipient_limit = 300
local_destination_concurrency_limit = 5
fallback_transport = lmtp:unix:/var/lib/imap/socket/lmtp
#启用sasl验证
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
smtpd_sasl_authenticated_header = yes
4.重新加载postfix参数
#postfix reload
配置文件:
3.4 配置cyrus-imap
cyrus-imap提供了一个管理工具cyradm,以便用户进行邮箱创建及管理,我们需要为创建一个测试用户test的邮箱,以接收从postfix转发过来的test用户邮件。
1.配置imapd
首先需要允许imap里使用完整的命名空间,以及用’.’间隔的地址
#cd /etc
#vi imapd.conf
在后面追加两行:
unixhierarchysep: yes
altnamespace: yes
保存后重新imapd服务
#service cyrus-imapd restart
2.登陆管理终端
#cyradm --user=cyrus localhost
创建用户邮箱,注意邮箱名必须为user/用户名,否则cyrus接收到邮件时会提示Mailbox not exists
创建用户test邮箱
#cm user/test
设置最大空间为10M
#sq user/test STORAGE 1048570
允许管理员使用dm指令删除该用户邮箱
#sam user/test cyrus cd
3.验证
启动邮件客户端outlook/foxmail,将pop3/smtp服务器设置为邮件服务器ip,使用test用户登录,验证是否可以进行邮件收发功能
3.5 配置自动启动服务
所有服务配置完成之后,我们需要设定sasl认证/smtp/pop3/imap服务都能在下次开机时自动启动
#chkconfig –add postfix
如果以前安装了sendmail,则需要卸除该服务
#chkconfig –del sendmail
#chkconfig saslauthd on
#chkconfig cyrus-imapd on
#chkconfig postfix on