CenOS5.2 用XAMPP集成环境配置Postfix2.4.5

安装准备工作
 下载 xampp-linux-1.7.3a.tar.gz,mysql-5.1.41.tar.gz,openssl-0.9.8l.tar.gz,postfix-2.4.5.tar.gz,cyrus-sasl-2.1.24rc1.tar.gz
 卸载sendmail
 # service sendmail stop
 # -rpm -e --nodeps sendmail
 
 编译gcc.
 # rpm -ivh cpp-4.1.2-42.el5.i386.rpm
 # rpm -ihv kernel-headers-2.6.18-92.el5.i386.rpm
 # rpm -ivh glibc-headers-2.5-24.i386.rpm
 # rpm -ivh glibc-devel-2.5-24.i386.rpm
 # rpm -ivh libgomp-4.1.2-42.el5.i386.rpm
 # rpm -ivh gcc-4.1.2-42.el5.i386.rpm

 安装:g++
 # rpm -ihv libstdc++-devel-4.1.2-42.el5.i386.rpm
 # rpm -ihv gcc-c++-4.1.2-42.el5.i386.rpm
 # rpm -ihv ncurses-devel-5.5-24.20060715.i386.rpm
 
 安装 bind 先检查ip设置
 # rpm -ivh bind-libs-9.3.4-6.P1.el5.i386.rpm
 # rpm -ivh bind-libbind-devel-9.3.4-6.P1.el5.i386.rpm
 # rpm -ivh bind-9.3.4-6.P1.el5.i386.rpm
 # rpm -ivh bind-chroot-9.3.4-6.P1.el5.i386.rpm
 # rpm -ivh bind-sdb-9.3.4-6.P1.el5.i386.rpm
 # rpm -ivh bind-devel-9.3.4-6.P1.el5.i386.rpm
 # rpm -ivh bind-utils-9.3.4-6.P1.el5.i386.rpm
 # rpm -ivh caching-nameserver-9.3.4-6.P1.el5.i386.rpm
 
 DNS配置
 1)、首先编辑 named.conf 文件
 # cd /var/named/chroot/etc/
 # cp -p named.caching-nameserver.conf named.conf
 注:使用cp -p 参数在复制的时候文件的属性不会改变。如果直接 cp 则要修改此文件的属主:
 #chown :named named.conf
 编辑 named.conf文件进行配置。
 # vi named.conf   
 options {
  listen-on port 53 { 127.0.0.1; };    //127.0.0.1 改为 any
  listen-on-v6 port 53 { ::1; };
  directory     "/var/named";
  dump-file     "/var/named/data/cache_dump.db";
   statistics-file "/var/named/data/named_stats.txt";
   memstatistics-file "/var/named/data/named_mem_stats.txt";
  query-source    port 53;   
  query-source-v6 port 53;
  allow-query     { any; };             //localhost  改为 any
  forwarders      { 208.67.222.222; };  // 此行默认没有,如果内网使用此dns 服务器可以设置 dns 转发,这里一定是一个有效的 dns 服务器地址,则添加这两行 。
  forward only;         
 };
 logging {
   channel default_debug {
     file "data/named.run";
     severity dynamic;
   };
 };
 view localhost_resolver {
  match-clients         { any; };     //localhost  改为 any
  match-destinations { any; };        //localhost  改为 any
  recursion yes;
  include "/etc/named.rfc1912.zones";
 };
 4)、然后编辑  /var/named/chroot/etc/named.rfc1912.zones
 # vi named.rfc1912.zones   //dns 服务器的区域主配置文件
 在最后添加自己的 dns 区域  如果有多个则类似添加
 zone "test.com" IN {                 // test.com 我实验用的区域,正向解析区域
  type master;
  file "test.zone";            // test.com.zone本区域的配置文件
  allow-update { none; };
 };
 zone "0.168.192.in-addr.arpa" IN {       //0.168.192      反向解析区域 
  type master;
  file "test.local";               // 0.168.192     反向解析区域配置文件
  allow-update { none; };
 };
 5)、这两个区域配置文件可以分别直接拷贝 /var/named/chroot/var/named/localdomain.zone 和
 /var/named/chroot/var/named/named.local
 # cd /var/named/chroot/var/named/
 # cp -p localdomain.zone  test.zone 
 # cp -p named.local       test.local
 注意:这两个配置文件名一定要跟named.rfc1912.zones 你定义的名称相同
 下面主要是编辑这两个文件了。
 # vi test.local
 $TTL    86400
 @       IN      SOA     localhost. root.localhost. (
            1997022700 ; Serial
            28800      ; Refresh
            14400      ; Retry
            3600000    ; Expire
            86400 )    ; Minimum
    IN      NS      test.com.
 244       IN      PTR     test.com.   //添加反向解析记录
 245       IN      PTR     www.test.com.      //添加反向解析记录
 246       IN      PTR     mail.test.com.     //添加反向解析记录
 14 是指的 dns 服务器IP:192.168.0.244 的最后地址区域
 6)、# vi test.zone
 $TTL    86400
 @        IN SOA    localhost root (
      42        ; serial (d. adams)
      3H        ; refresh
      15M        ; retry
      1W        ; expiry
      1D )        ; minimum
   IN NS        test.com     //添加域名服务器记录-NS记录(设置当前域的DNS服务器名称) 
   IN MX  5     mail    //添加邮件交换记录-MX记录(设置mail.leisure.com主机作为邮件服务器)
 test.com    IN A        192.168.0.244        //添加正向解析
 www     IN A        192.168.0.245        //添加正向解析
 mail    IN A        192.168.0.246        //添加正向解析

 7)、最后就是修改/etc/resolv.conf文件了. 也就是添加主dns 服务器
 # vi /etc/resolv.conf
 nameserver 192.168.0.244
 8)、测试:
 #named-checkzone test.com /var/named/chroot/var/named/test.zone   //测试正向区域文件(文件没有语法错误则显示OK,有错误则显示错误内容)
 同理测试反向解析文件
 9)、启动 bind 服务
 #service named start
 ok 
 到此配置就结束了,如果开启了selinux 则要设置一下selinux,因为不配置这个的话就不会让别人访问你的DNS服务器。 防火墙开启 选择“Firewall Configuration”---按 “Tab”键切换到“Run Tool”—回车—“Security Level”选项要在“Enabled”前面按一下“Tab”键---“SelLinux”选项要选“Disabled”—按一下“Tab”键---选中“Customize”---弹出新对话框---在“Other Port”栏目里输入“53:tcp 53:udp”—“OK”—返回上一个对话框—“OK”—对话框自动关闭。配置完成。
 
 
 # ntsysc
 这只named 开启自动启动即可;
 实验中可关闭Selinux,开启服务service named start.
 10)、以上即是配置主域名服务器过程,如果是从域名服务器,这个配置过程也是一样的,只需要改动named.rfc191ns2.zones文件即可
 zone "test.com" IN {
  type slave;
  file "slaves/leisure.com.zone";   //在/var/named/chroot/var/named/slaves
  masters { 192.168.1.12; };          添加区域配置文件leisure.com.zone既可
 };
 zone "0.168.192.in-addr.arpa" IN {
  type slave;
  file "slaves/0.168.192.zone";    //在/var/named/chroot/var/named/slaves
  masters { 192.168.1.12; };         添加区域配置文件 0.168.192.zone 即可
 };
 11)、域名解析测试系统自带的 nslookup 工具
 # nslookup
 > www.test.com
 Server:         192.168.0.244
 Address:        192.168.0.244#53
 Name:   www.test.com
 Address: 192.168.0.244
 >set type=mx
 >test.com
 Server:         192.168.0.244
 Address:        192.168.0.244#53
 leisure.com     mail exchanger = 5 mail.test.com.
  其它命令:
 #rndc reload  一个非常有用的命令,能在不关闭服务的情况下,即时更新bind;另nslookup交互环境中,可以用命令server 192.168.1.102指定此DNS服务器为提供服务的DNS服务器
 标准资源记录  
   -----------------------------------------------------------------------  
   资源记录文本名 意义 记录类型 功能  
   -----------------------------------------------------------------------  
   Start of Authority 授权开始 SOA 标记区数据的开始,定义影响整个区的参数  
   Name Server 名字服务器 NS 标明域的名字服务器  
   Address 地址 A 转换主机名到地址  
   Pointer 指针 PTR 转换地址到主机名  
   Mail Exchange 邮件交换 MX 标明发往给定域名的邮件应传送到的位置  
   Canonical Name 正规名 CNAME 定义主机名别名  
   HOST information 主机信息 HINFO 描绘主机硬件和操作系统的信息  
   Wellknown Service 着名服务 WKS 通告网络服务 
   DNS使用MX记录来实现邮件路由,它规定了域名的邮件服务器要么处理,要么向前转发有关该域名的邮件.处理邮件是指将其传送给其地址所关联的个人,向前转发邮件是指通过SMTP协议将其传送给其最终目的地.为了防止邮递路由,MX记录除了邮件交换器的域名外还有一个特殊参数:优先级值.优先级值是个从0到65535的无符号整数,它给出邮件交换器的优先级别. 
   优先级值自身并不重要,关键在于它同其它邮件交换器的优先级值的相对大小,优先级值相对越小,优先级越高.邮件总是首先试图传递给优先级值相对最小的邮件交换器.失败后才试图传递给优先级值稍大的邮件交换器.邮件总是试遍了同一优先级的邮件交换器,失败后才试图传递给优先级稍低的邮件交换器. 
   注意你列为邮件交换器的主机必须拥有地址记录.  
   例如: 
   mail A 172.16.0.3  
   MX 10 mail.test.com.  
 管理工具
   
 #dig  
   named.ca文件的作用是告诉你的服务器在哪里可以找到根域的域服务器,这个文件 一定要保证正确无误,一般来说,这个文件几乎不会变动,但是不能保证不会变动,最好是 每一,两个月同步一下.  
   使用下面的命令获得新的named.ca文件  
   dig @.aroot-servers.net.ns >/var/named/named.ca  
 #rndc   
   rndc这个指令是由系统管理员用来管理域服务器的操作,在终端中输入ndc help可得到帮助.  
   rndc restart 用来重新启动named进程;  
   rndc reload 用来装入新的数据库.
 #nslookup  
   nslookup是用来询域名信息的命令,它分交互模式和非交互模式两种方式.  
   非交互模式:nslookup www.zhuhai.gd.cn  
   交互模式:nslookup  
   注意,当用nslookup查询时出现"Non-authoritative answer:",表明这次并没有到 网络外去查询,而是在缓存区中查找并找到数据.  
   交互模式除了能查询单个的主机,还可以查询DNS记录的任何类型,并且传输 一个域的整个区域信息。 当不加参数地调用,nslookup将显示它所用的名字服务器, 并且进入交互模式。
 
前提:开始前请确保您已经配置好指向此邮件服务器MX记录及其它DNS设置。
一、安装XAMPP
 # tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt
 将lampp加入服务队列
 # cp -p /opt/lampp/lampp /etc/rc.d/init.d
 # chkconfig --add lampp
 # chkconfig --level 35 lampp on
 配置环境变量
 # export PATH=$PATH:/opt/lampp/bin
 # service lampp start
 
 将mysql的include目录拷贝到xampp的/opt/lampp/lib/mysql目录下,mysql-5.1.41可在官网下载,提取其中的include文件夹即可,一下依赖包同样操作。
 include目录是mysql-5.1.41安装目录里面自带的.
 配置mysql库文件搜索路径
 # echo "/opt/lampp/lib/mysql" >> /etc/ld.so.conf
 # ldconfig -v
 
 将openssl的include拷贝到xampp的/opt/lampp/share/openssl目录下
 include目录是openssl-0.9.8l安装目录里面自带的.
 配置openssl
 # mv /usr/bin/openssl /usr/bin/openssl.OFF
 # mv /usr/include/openssl /usr/include/openssl.OFF
 # rm /usr/lib/libssl.so
 # ln -s /opt/lampp/bin/openssl /usr/bin/openssl
 # ln -s /opt/lampp/share/openssl/includ/openssl /usr/include/openssl
 # ln -s /opt/lampp/lib/libssl.so.0.9.8  /usr/lib/libssl.so
 配置库文件搜索路径
 # echo "/opt/lampp/lib" >> /etc/ld.so.conf
 # ldconfig -v
 检测安装结果
 # openssl version
 OpenSSL 0.9.8l 5 Nov 2009

 
二、安装cyrus-sasl-2.1.24rc1
  # mkdir -p /usr/local/sasl2
  # tar -zxvf cyrus-sasl-2.1.24rc1.tar.gz
  # ./configure --prefix=/usr/local/sasl2 --disable-gssapi --disable-anon --disable-sample --disable-digest --enable-plain --enable-login --enable-sql --with-\mysql=/opt/lampp/lib/mysql --with-mysql-includes=/opt/lampp/lib/mysql/include/ --with-mysql-libs=/opt/lampp/lib/mysql --with-authdaemond=/usr/local/courier-\authlib/var/spool/authdaemon/socket --with-saslauthd=/var/run
  # make
  # make install
 (//如遇到 des.h: No such file or directory 时
 cp /XXX/cyrus-sasl-X.X.XX/mac/libdes/public/des.h /XXX/cyrus-sasl-X.X.XX/)
 关闭原有的sasl:
  # mv /usr/lib/sasl2  /usr/lib/sasl2.OFF
  # ln -sv /usr/local/sasl2/lib/*  /usr/lib
 
 postfix 2.3以后的版本会分别在/usr/local/lib和/usr/local/include中搜索sasl库文件及头文件,故还须将其链接至此目录中:
  # ln -sv /usr/local/sasl2/lib/*  /usr/local/lib
  # ln -sv /usr/local/sasl2/include/sasl/*  /usr/local/include
 创建运行时需要的目录并调试启动
  # mkdir -pv /var/state/saslauthd     
  # /usr/local/sasl2/sbin/saslauthd  -a  shadow  pam  -d
  启动并测试
  # /usr/local/sasl2/sbin/saslauthd -a shadow pam
  # /usr/local/sasl2/sbin/testsaslauthd -u root -p root用户密码
  配置库文件搜索路径
  # echo "/usr/local/sasl2/lib" >> /etc/ld.so.conf
  # echo "/usr/local/sasl2/lib/sasl2" >> /etc/ld.so.conf
  # ldconfig -v

三、安装db-4.8.26.tar.gz
  # mkdir -p /usr/local/BerkeleyDB
  # tar zxvf db-4.8.26.tar.gz
  # cd db-4.8.26/build_unix
  # ../dist/configure --prefix=/usr/local/BerkeleyDB
  # make
  # make install
 
  修改相应的头文件指向
  # ln -sv /usr/local/BerkeleyDB/include  /usr/include/db4
  # ln -sv /usr/local/BerkeleyDB/include/db.h  /usr/include/db.h
  # ln -sv /usr/local/BerkeleyDB/include/db_cxx.h  /usr/include/db_cxx.h

  配置库文件搜索路径
  # echo "/usr/local/BerkeleyDB/lib" >> /etc/ld.so.conf
  # ldconfig -v

四、安装Postfix-2.4.5
  # mkdir -p /usr/local/postfix
  # mkdir -p /etc/postfix
  # groupadd -g 2525 postfix
  # useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
  # groupadd -g 2526 postdrop
  # useradd -g postdrop -u 2526 -s /bin/false -M postdrop
 
  # tar zxvf postfix-2.4.5.tar.gz
  # cd postfix-2.4.5
  # make makefiles 'CCARGS=-DHAS_MYSQL -I/opt/lampp/lib/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/sasl2/include/sasl -I/usr/local/BerkeleyDB/include -DUSE_TLS -I/opt/lampp/share/openssl/include ' 'AUXLIBS=-L/opt/lampp/lib/mysql -lmysqlclient -lz -lm -L/usr/local/sasl2/lib -lsasl2 -L/usr/local/BerkeleyDB/lib -L/opt/lampp/lib -lssl -lcrypto'
  # make
  # make install
 
  按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值)
 
   install_root: [/] /
   tempdir: [/usr/local/src/ postfix-2.4.5] /tmp
   config_directory: [/etc/postfix] /etc/postfix
   daemon_directory: [/usr/libexec/postfix] /usr/local/postfix/libexec
   command_directory: [/usr/sbin] /usr/local/postfix/sbin
   queue_directory: [/var/spool/postfix]
   sendmail_path: [/usr/sbin/sendmail]
   newaliases_path: [/usr/bin/newaliases]
   mailq_path: [/usr/bin/mailq]
   mail_owner: [postfix]
   setgid_group: [postdrop]  
  html_directory: [no] /var/www/postfix_html
  manpages: [/usr/local/man] /usr/local/postfix/man  
  readme_directory: [no]
 
 说明:这里的postfix将安装在独立的目录/usr/local/postfix中,目的是为了方便管理
   生成别名二进制文件,这个步骤如果忽略,会造成postfix效率极低:
  # newaliases
  2.进行一些基本配置,测试启动postfix并进行发信
  # vi /etc/postfix/main.cf
  修改以下几项为您需要的配置
  myhostname = mail.benet.org
  myorigin = benet.org
  mydomain = benet.org
  mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
  mynetworks = 192.168.1.0/24, 127.0.0.0/8
  inet_interfaces = all
 
 说明:
  myorigin参数用来指明发件人所在的域名;
  mydestination参数指定postfix接收邮件时收件人的域名,即您的postfix系统要接收到哪个域名的邮件;
  myhostname 参数指定运行postfix邮件系统的主机的主机名,默认情况下,其值被设定为本地机器名;
  mydomain参数指定您的域名,默认情况下,postfix将myhostname的第一部分删除而作为mydomain的值;
  mynetworks 参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问;
  inet_interfaces 参数指定postfix系统监听的网络接口;
 
 注意:
  1、在postfix的配置文件中,参数行和注释行是不能处在同一行中的;
  2、任何一个参数的值都不需要加引号,否则,引号将会被当作参数值的一部分来使用;
  3、每修改参数及其值后执行 postfix reload 即可令其生效;但若修改了inet_interfaces,则需重新启动postfix;
  4、如果一个参数的值有多个,可以将它们放在不同的行中,只需要在其后的每个行前多置一个空格即可;postfix会把第一个字符为空格或tab的文本行视为上一行的延续;
 
 启动postfix
  /usr/local/postfix/sbin/postfix  start
 
 连接postfix,验正服务启动状况:
 # telnet localhost 25
 Trying 127.0.0.1...
 Connected to localhost.localdomain (127.0.0.1).
 Escape character is '^]'.
 220 mail.benet.org ESMTP Postfix
 ehlo mail.benet.org
 250-mail.benet.org
 250-PIPELINING
 250-SIZE 10240000
 250-VRFY
 250-ETRN
 250-ENHANCEDSTATUSCODES
 250-8BITMIME
 250 DSN
 mail from:root@test.org
 250 2.1.0 Ok
 rcpt to:redhat@test.org
 250 2.1.5 Ok
 data
 354 End data with <CR><LF>.<CR><LF>
 subject:Mail test!
 Mail test!!!
 .
 250 2.0.0 Ok: queued as AB94A1A561
 quit
 221 2.0.0 Bye
 Connection closed by foreign host.
 
 切换到redhat用户进行收信:
 # su - redhat
 $ mail
 Mail version 8.1 6/6/93.  Type ? for help.
 "/var/spool/mail/redhat": 1 message 1 new
 >N  1 root@benet.org        Wed Sep  5 10:59  15/488   "Mail test!"
 &
 quit
 NDS部分参考'熟悉的陌生人'的博客http://blog.chinaunix.net/u2/69106/showart_1797422.html
 其他部分请阅读'老张'的博客http://blog.chinaunix.net/u2/64992/article_81888.html,本文部分内容参考自该博客,xampp安装请参照http://www.apachefriends.org/zh_cn/xampp-linux.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值