当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 基于Fedora上建立功能强大的邮件服务器

Linux服务器
Linux/UNIX命令dd简介
分级防御 针对Linux服务器攻击防范
Linux下Apache配置虚拟主机+SSL
Linux系统的服务器攻防技术详解
Linux环境使用TC进行服务器流量控制方法
Apache服务器使用.htaccess实现图片防盗链
整理一些linux系统一些常用的系统信息查看命令
修改Linux系统下22端口两种方法
加强Linux系统在安全方面的管理
linux创建一定大小文件命令--dd
linux下configure命令详细介绍
使用linux cd命令来改变所在目录
巧用linux cd命令和Pushd切换目录
linux中Find命令的使用
DB2在Linux和UNIX环境下的安装
教程:三万元搭建LINUX服务器集群
Linux集群的虚拟化技术面临的挑战
Linux 服务器的安全隐患以及防范对策
使用linux下的TC进行服务器流量控制
在linux上使用BIND建立DNS服务器

Linux服务器 中的 基于Fedora上建立功能强大的邮件服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 83 ::
收藏到网摘: n/a


一、软件的准备
A.检查你的系统是否已安装了以下软件
1.pam
2.pam-devel
3.mysql
4.mysql-servel
5.mysql-devel
6.imap-devel
7.sharutils

B.下载以下软件
1.metamail*.i386.rpm
2.pam-mysql
3.cyrus-sasl-2.1.15
4.postfix-2.0.16
5.courier-imap

C.说明

mysql-devel在第3个盘。我忘了装,结果pam-mysql和postfix的编译过不了。metamail和sharutils是取验证码用的。

二、mysql数据库和表的建立
A.[root@localhostroot]#mysql

WelcometotheMySQLmonitor. Commandsendwith;or\g.
YourMySQLconnectionidis3toserverversion:3.23.58

Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.

mysql>usemysql
Readingtableinformationforcompletionoftableandcolumnnames
Youcanturnoffthisfeaturetogetaquickerstartupwith-A

Databasechanged
mysql>INSERTINTOdb(Host,Db,User,Select_priv)VALUES('localhost','postfix','postfix','Y');
QueryOK,1rowaffected(0.00sec)

mysql>CREATEDATABASEpostfix;
QueryOK,1rowaffected(0.00sec)

mysql>GRANTALLONpostfix.*TOpostfix@localhost
->IDENTIFIEDBY"postfix";
QueryOK,0rowsaffected(0.00sec)

mysql>FLUSHPRIVILEGES;
QueryOK,0rowsaffected(0.00sec)

mysql>quit
Bye

B.把下列文字复制存为postfix.sql

########potfix_sql########bigin##################
CREATETABLEalias(
usernamevarchar(255)NOTNULLdefault'',
gototextNOTNULL,
domainvarchar(255)NOTNULLdefault'',
PRIMARYKEY(username)
)TYPE=MyISAM;
CREATETABLEdomain(
domainvarchar(255)NOTNULLdefault'',
descriptionvarchar(255)NOTNULLdefault'',
PRIMARYKEY(domain)
)TYPE=MyISAM;

CREATETABLEmailbox(
useridchar(20)binaryNOTNULLdefault'',
usernamevarchar(255)NOTNULLdefault'',
passwordvarchar(255)NOTNULLdefault'',
homevarchar(255)NOTNULLdefault'',
maildirvarchar(255)NOTNULLdefault'',
namevarchar(255)NOTNULLdefault'',
uidsmallint(5)unsignedNOTNULLdefault'12345',
gidsmallint(5)unsignedNOTNULLdefault'12345',
quotavarchar(255)NOTNULLdefault'',
domainvarchar(255)NOTNULLdefault'',
create_datedateNOTNULLdefault'0000-00-00',
create_timetimeNOTNULLdefault'00:00:00',
change_datedateNOTNULLdefault'0000-00-00',
change_timetimeNOTNULLdefault'00:00:00',
last_accessint(10)unsignedNOTNULLdefault'0',
passwd_lastchangedint(10)unsignedNOTNULLdefault'0',
statustinyint(4)NOTNULLdefault'1',
PRIMARYKEY(username),
KEYstatus(status)
)TYPE=MyISAM;
#####################end########################

[root@localhostroot]#mysqlpostfix</work/postfix.sql

C.对表的内容的一些说明.

mysql>usepostfix
Readingtableinformationforcompletionoftableandcolumnnames
Youcanturnoffthisfeaturetogetaquickerstartupwith-A

Databasechanged
mysql>showtables;
+-------------------+
|Tables_in_postfix|
+-------------------+
|alias|
|domain|
|mailbox |
+-------------------+
3rowsinset(0.00sec)

mysql>descalias;
+----------+--------------+------+-----+---------+-------+
|Field|Type|Null|Key|Default|Extra|
+----------+--------------+------+-----+---------+-------+
|username|varchar(255)| |PRI|| |
|goto|text| ||| |
|domain |varchar(255)| ||| |
+----------+--------------+------+-----+---------+-------+
3rowsinset(0.00sec)

mysql>descdomain;
+-------------+--------------+------+-----+---------+-------+
|Field |Type|Null|Key|Default|Extra|
+-------------+--------------+------+-----+---------+-------+
|domain |varchar(255)| |PRI|| |
|description|varchar(255)| ||| |
+-------------+--------------+------+-----+---------+-------+
2rowsinset(0.00sec)

mysql>descmailbox;
+--------------------+----------------------+------+-----+------------+-------+
|Field |Type|Null|Key|Default|Extra|
+--------------------+----------------------+------+-----+------------+-------+
|userid|varchar(20)binary | ||| |
|username |varchar(255)| |PRI|| |
|password |varchar(255)| ||| |
|home |varchar(255)| ||| |
|maildir|varchar(255)| ||| |
|name |varchar(255)| ||| |
|uid|smallint(5)unsigned| ||12345 | |
|gid|smallint(5)unsigned| ||12345 | |
|quota |varchar(255)| ||| |
|domain|varchar(255)| ||| |
|create_date|date| ||0000-00-00| |
|create_time|time| ||00:00:00 | |
|change_date|date| ||0000-00-00| |
|change_time|time| ||00:00:00 | |
|last_access|int(10)unsigned| ||0 | |
|passwd_lastchanged|int(10)unsigned| ||0 | |
|status|tinyint(4) | |MUL|1 | |
+--------------------+----------------------+------+-----+------------+-------+
17rowsinset(0.00sec)

mysql>
domain表的解释:
domain任意的domain.
description通常是2种"local:"用于本地的or"virtual:"用于是虚拟的.
alias表的解释:
username是虚拟的邮箱[email protected],将被转发到goto下的联结中.
goto可以用简单的名字,如果是本地用户名,如(root,postmaster,etc.),或者是整个的邮箱名字,[email protected]

Mailbox表的内容:
Userid使用者编码
username可以是user.domain.tld或[email protected]
password在mysql中用encrypt('password')输入.
name使用着的真实姓名。
uid虚拟用户身份uid
gid组的gid
home"/usr/local/virtual/".Maildirs必须在此目录下。
domain这栏可以不要,但有些软件需要他。
maildir是整个地址,必须带”/”结尾。
Quota邮箱的空间或信息量的限制。
status0为禁止。"MYSQL_WHERE_CLAUSE=status" .

三、pam-mysql的编译
tarpam-mysql-5.0.tar.gz
makecppam_mysql.so/lib/security

四、修改pam
[root@localhostpam_mysql]#cd/etc/pam.d
[[email protected]]#cp/work/postfixpostfix
[[email protected]]#
postfix的内容如下:
##########/etc/pam.d/postfix##################
echoauthsufficientpam_mysql.souser=postfixpasswd=postfixhost=localhostdb=postfixtable=mailboxusercolumn=usernamepasswdcolumn=passwordcrypt=1
echoaccountrequir