linux 安装邮件系统,在Linux平台上安装基于Postfix、Courier-imap、Extmail的邮件系统 V 0...

很久之前就计划写一个Postfix在Linux平台上面的安装文档,把自己安装Postfix的过程总结一下,但由于工作的关系直到现在才动手。和个人的习惯有关,在安装过程中我使用了很多源代码,这对一个新手可能有些难度,但是我认为在Linux下面如何从源代码安装软件应当是每个系统管理都必须掌握的知识。我准备使用CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"作为gcc 3.4.4在i686 CPU上面的优化参数,你可以根据自己的实际情况进行修改。这个版本修正了上个版本中出现的一些错误,在此对hzqbbc对我的帮助致以最诚挚的谢意。

*************************************************************************************

1、安装操作系统

首先请准备好CentOS 4.2安装光盘的第一张和第二张,在“Installation Type"中选择“Custom”。在“Disk Partitioning Setup”时选择“Manually partition with Disk Druid”,因为我们要将邮件保存在“/home/mail”目录中,所以请为其保留足够的硬盘空间。在“Firewall Configuration”中选择“No firewall”,这样便于调试,你可以在邮件系统工作正常之后根据实际情况设置Firewall策略。在“Package Group Selection”中选择“Text-based Internet”和“Development Tools”两项。关于语言的选项你可以选择默认值,这样总的安装文件大小为1GB左右。安装完成后可以设置Crontab,让邮件服务器每天1点和网络中的时间服务器自动对时:

crontab -e

0 1 * * * /usr/bin/rdate -s time-b.timefreq.bldrdoc.gov

使用下面的命令增加一个普通用户“adduser wangmd”、“passwd wangmd”,在/etc/ssh/sshd_config文件中增加“DenyUsers root”禁止root用户从ssh登录,这是FreeBSD系统sshd的默认设置,也是一个系统管理员应当养成的好习惯。

更新系统内核、BerkeleyDB、openssl和zlib等软件。

从下面的URL下载系统内核的最新版本,并安装适合你所用CPU的版本:,你可以使用“rpm -aq |grep kernel”命令查找已经安装的内核rpm包。

从下面的URL下载db 4.3.29的源代码:

tar zvxf db-4.3.29.tar.gz

cd db-4.3.29

cd build_unix/

../dist/configure \

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"

make

make install

增加“/usr/local/BerkeleyDB.4.3/lib”到你的“/etc/ld.so.conf”,并执行ldconfig命令。

从下面的URL下载zlib 1.2.3的源代码:

安装zlib,zlib将被安装在“/usr”目录下:

tar jvxf zlib-1.2.3.tar.bz2

cd zlib-1.2.3

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" \

./configure --prefix=/usr --shared

make

make test

make install

ln -s /usr/lib/libz.so.1 /usr/lib/libz.so.0

从下面的URL下载openssl 0.9.7i的源代码:

卸载系统自带的openssl 0.9.7a:

rpm -e --nodeps openssl-devel

rpm -e --nodeps openssl

安装openssl,openssl将被安装在“/usr”目录下:

tar zvxf openssl-0.9.7i.tar.gz

cd openssl-0.9.7i

./config --prefix=/usr --openssldir=/usr/share/ssl -fPIC threads shared

make

make test

make install

为了使系统自带的openssh、nslookup等依赖于openssl的程序能够正常工作,建立libcrypto.so.0.9.7和libssl.so.0.9.7到/lib目录的链接:

ln -s /usr/lib/libcrypto.so.0.9.7 /lib/libcrypto.so.4

ln -s /usr/lib/libssl.so.0.9.7 /lib/libssl.so.4

2、安装MySQL服务器

你可以根据服务器的CPU类型,下载适合你所用CPU和操作系统的MySQL发行包。

从下面的URL下载MySQL 4.1.16以tar.gz形式发布的二进制发行包:

增加MySQL运行所需要的用户和组:

groupadd mysql

useradd mysql -g mysql -c "MySQL user" -d /nonexistent -s /sbin/nologin

安装MySQL软件,MySQL将被安装到“/usr/local/mysql”目录下:

tar zvxf mysql-max-4.1.16-pc-linux-gnu-i686-glibc23.tar.gz

mv mysql-max-4.1.16-pc-linux-gnu-i686-glibc23 /usr/local/mysql

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql

chown -R root .

chown -R mysql data

chgrp -R mysql .

mkdir /var/lib/mysql

chown mysql:root /var/lib/mysql

chmod 755 /var/lib/mysql

cp support-files/my-medium.cnf /etc/my.cnf

修改“/etc/my.cnf”文件,取消“skip-networking”前面的注释,这样的话MySQL将不监听TCP/IP端口,可以避免一些安全问题。修改client和mysqld部分的“socket = /tmp/mysql.sock”为“socket = /var/lib/mysql/mysql.sock”

注:以tar.gz形式发布的MySQL默认的socket位置在“/tmp/mysql.sock”,而以rpm形式发布的MySQL默认的socket位置在“/var/lib/mysql/mysql.sock”,你可以通过my.cnf文件设置MySQL服务器的socket位置。

配置MySQL服务开机自动运行:

cp support-files/mysql.server /etc/rc.d/init.d/mysql

chmod +x /etc/rc.d/init.d/mysql

chkconfig --add mysql

设置MySQL的默认字符集为GB2312,修改/etc/rc.d/init.d/mysql文件,将第199行

从“$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 &”

修改为“$bindir/mysqld_safe --datadir=$datadir --default-character-set=gb2312 --pid-file=$pid_file >/dev/null 2>&1 &”

修改“/etc/profile”文件,将“/usr/local/mysql/bin”加到PATH变量中,退出重新登陆系统。

注:①为了安全请立即修改MySQL管理员的密码。

②以tar.gz形式发布的MySQL默认的socket位置在“/tmp/mysql.sock”,而以rpm形式发布的MySQL默认的socket位置在“/var/lib/mysql/mysql.sock”,你可以通过my.cnf文件设置MySQL服务器的socket位置。

使用rpm方式安装mysql的头文件和共享库:

rpm -ivh --nodeps MySQL-shared-standard-4.1.16-0.rhel4.i386.rpm

rpm -ivh MySQL-devel-standard-4.1.16-0.rhel4.i386.rpm

3、安装Web服务器

从下面的URL下载Apache 2.0.55的源代码:

增加Apache运行所需的用户和组:

groupadd httpd

useradd httpd -g httpd -c "Apache user" -d /nonexistent -s /sbin/nologin

安装Apache软件,Apache将被安装在“/usr/local/httpd”目录下:

tar jvxf httpd-2.0.55.tar.bz2

cd httpd-2.0.55

./configure --prefix=/usr/local/httpd --enable-so --enable-ssl --with-mpm=worker --enable-rewrite --enable-suexec --with-suexec-caller=httpd \

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"

make

make install

修改apache的配置文件(/usr/local/httpd/conf/httpd.conf),配置apache的默认语言、运行用户等参数:

DefaultLanguage zh_CN

User httpd

Group httpd

StartServers     10

MaxClients       1024

MinSpareThreads   100

MaxSpareThreads   800

ThreadsPerChild   64

MaxRequestsPerChild 0

在“/etc/rc.local”文件中增加“/usr/local/httpd/bin/apachectl start”,设置Apache开机自动运行。

4、安装PHP(Extmail和Extman不需要PHP的支持,如果你没有需要使用php的程序可以跳过这步)

从下面的URL下载PHP 4.4.2的源代码:

安装PHP,PHP将被安装在“/usr/local/php”目录下,PHP的配置文件(php.ini)放在“/usr/local/php/etc”目录中:

tar jvxf php-4.4.2.tar.bz2

cd php-4.4.2

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" \

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --enable-track-vars --with-config-file-path=/usr/local/php/etc \

--with-mysql=/usr --enable-force-cgi-redirect --enable-ftp --with-openssl --with-gettext --with-zlib

make

make install

cp php.ini-dist /usr/local/php/etc/php.ini

修改Apache的配置,增加对PHP的支持:

增加“AddType application/x-httpd-php .php .phtml”

修改“DirectoryIndex index.html index.html.var”为“DirectoryIndex index.html index.htm index.php index.cgi”

验证PHP是否安装成功:

echo ' phpinfo(); ?>' >/usr/local/httpd/htdocs/info.php

重新启动Apache,在浏览器的地址栏中输入“

卸载系统自带的SASL:

rpm -e cyrus-sasl --nodeps

rpm -e cyrus-sasl-plain --nodeps

rpm -e cyrus-sasl-devel --nodeps

rpm -e cyrus-sasl-md5 --nodeps

安装SASLv2 library:

tar zvxf cyrus-sasl-2.1.21.tar.gz

cd cyrus-sasl-2.1.21

export LDFLAGS="-lpthread"

./configure --with-dblib=berkeley --with-bdb-libdir=/usr/local/BerkeleyDB.4.3/lib \

--with-bdb-incdir=/usr/local/BerkeleyDB.4.3/include --with-openssl-dir \

--enable-anon --enable-plain --enable-login --disable-krb4 --disable-otp --disable-cram \

--disable-digest --disable-gssapi --with-pwcheck=no --with-pam --with-authdaemond \

--with-plugindir=/usr/local/lib/sasl2 --with-saslauthd=/var/run/saslauthd \

CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"

make

make install

rm -rf /usr/lib/sasl

rm -rf /usr/lib/sasl2

ln -s /usr/local/lib/sasl2 /usr/lib/

增加“/usr/local/lib”到你的“/etc/ld.so.conf”,并执行ldconfig命令。

6、安装Postfix

从下面的URL下载Postfix 2.2.8的源代码:

从下面的URL下载Postfix 2.2.8的VDA补丁程序:

chkconfig --level 2345 sendmail off

增加Postfix运行所需要的用户和组,并建立“/home/mail”目录作为存储邮件的地方:

groupadd postfix

groupadd postdrop

useradd postfix -g postfix -c "Postfix user" -d /nonexistent -s /sbin/nologin

mkdir /home/mail

chown postfix:postfix /home/mail

安装Postfix:

gzip -d postfix-2.2.8-vda.patch.gz

tar zvxf postfix-2.2.8.tar.gz

cd postfix-2.2.8

patch -p1 < ../postfix-2.2.8-vda.patch

make -f Makefile.init makefiles \ OPT='-march=pentium4 -O2 -pipe -fomit-frame-pointer' \

'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -DUSE_TLS' \

'AUXLIBS=-L/usr/lib -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2 -lssl -lcrypto'

make

make install

注:“make install”命令后的所有问题都直接敲回车键即可。

mv /etc/aliases /etc/aliases.old

ln -s /etc/postfix/aliases /etc/aliases

echo 'root:'>>/etc/postfix/aliases

/usr/bin/newaliases

注:因为Postfix不允许直接发邮件给root用户,所以你需要为root用户建立一个别名。

建立smtpd用户认证的配置文件:

vi /usr/lib/sasl2/smtpd.conf

pwcheck_method: authdaemond

log_level: 3

mech_list: plain login

authdaemond_path:/var/spool/authdaemon/socket

使用postconf -n简化main.cf,这样的好处是main.cf比较短小,不容易造成同一个配置出现两次的问题:

cd /etc/postfix

postconf -n > main2.cf

mv main.cf main.cf.old

mv main2.cf main.cf

修改Postfix的配置文件,#号之后是说明文字:

vi /etc/postfix/main.cf

myhostname = mail.example.com         # mail.example.com是安装Postfix软件的主机名

mydomain = example.com             # example.com是安装Postfix软件的主机名中的域名部分

myorigin = $mydomain

mydestination =

alias_maps = hash:/etc/aliases

home_mailbox = Maildir/             # 使用Maildir作为邮件的存储格式

# Add following line in file's finality

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf

virtual_mailbox_base = /home/mail

virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf

virtual_mailbox_limit = 102400000

virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

virtual_minimum_uid = 502

virtual_uid_maps = static:502

virtual_gid_maps = static:502

virtual_transport = virtual

# Additional for quota support

virtual_create_maildirsize = yes

virtual_mailbox_extended = yes

virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf

virtual_mailbox_limit_override = yes

virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.

virtual_overquota_bounce = yes

virtual_trash_count=yes

virtual_trash_name=.Trash

broken_sasl_auth_clients = yes

smtpd_recipient_restrictions =

permit_mynetworks,

permit_sasl_authenticated,

reject_non_fqdn_hostname,

reject_non_fqdn_sender,

reject_non_fqdn_recipient,

reject_unauth_destination,

reject_unauth_pipelining,

reject_invalid_hostname,

reject_rbl_client opm.blitzed.org,

reject_rbl_client list.dsbl.org,

reject_rbl_client bl.spamcop.net,

reject_rbl_client sbl-xbl.spamhaus.org

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain = $myhostname

smtpd_sasl_security_options = noanonymous

注:①“virtual_gid_maps”和“virtual_uid_maps”是postfix用户的gid和uid,“virtual_minimum_uid”应当≤“virtual_uid_maps”,“virtual_mailbox_limit”是每个邮箱的大小。

②opm.blitzed.org、list.dsbl.org、bl.spamcop.net、sbl-xbl.spamhaus.org是经常使用的几个反垃圾邮件列表,如果你使用上面的设置可能无法收到sina、sohu、163等几个国内主要ISP的邮件。你也可以使用中国反垃圾邮件联盟的反垃圾邮件列表,这样你就能收到国内几个主要ISP的邮件,同时一些垃圾邮件也可能光临你的邮件服务器^_^。

③Postfix使用MySQL存储用户信息的配置文件已经包含在extman的发行包中,等安装extman的时候copy到/etc/postfix目录下即可。

设置Postfix开机自动运行,在/etc/rc.local中增加“/usr/sbin/postfix start&”。

注:①系统已经打开了Postfix的TLS支持,如果你需要这项功能可以参考Postfix发行包中的TLS_README文档进行配置。

②你可以使用一个叫pflogsumm.pl的perl脚本对postfix的日志进行分析,详细的情况见:。

你可能还对以下内容感兴趣:linux系统安装,linux操作系统安装,如何安装linux系统,linux系统安装方法,linux系统安装教程,linux安装系统下载,linux系统的安装,硬盘安装linux系统,linux系统安装指南,linux系统安装步骤,linux系统安装说明,linux postfix,linux 邮件系统,postfix 安装,postfix 发送邮件,操作系统安装不上,系统安装不上,xp系统安装不上,在u盘上安装系统,从硬盘上安装系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值