编译安装sendmail
- 格式:pdf
- 大小:1.72 MB
- 文档页数:25
Linux下Bugzilla的安装与配置Linux下Bugzilla的安装是在Linux学习中的一个重点,也是广大Btest学员学习Linux的一个难点,因为牵扯到很多知识和技能,而在我们的教材中的安装过程的讲解又分布在几章的内容当中。
这篇文章,结合教材的知识体系及内容进度,把Bugzilla的安装做一个总结,这个安装配置顺序是完全按照教材顺序,有利于学员按照教材进行学习总结。
一、Perl模块的安装1、准备工作(1)在Linux中的/root路径下创建一个bugzilla文件夹,并在其中创建一个modules文件夹(路径可以自己设定)(2)把这章所需要的软件上传到Linux中,其中包括bugzilla-2.18rc2.tar、httpd-2.0.40-21.i386、modules文件夹下的所有模块。
∙在SecureCRT中进入bugzilla目录,输入命令rz,出现上传文件对话框,在此找到并选择软件bugzilla-2.18rc2.tar、httpd-2.0.40-21.i386,然后点击“Add”,再点击“ok”,即实现上传∙在SecureCRT中进入刚建立modules目录,输入命令rz ,出现上传文件对话框,在此找到所需的模块,并全部选择后,点击“Add”,再点击“ok”,即实现上传二、检查bugzilla需要的模块1、进行解包在bugzilla目录下,输入命令tar –xzvf bugzilla-2.16.4.tar.gz即可实现解包2、解包完成后,使用命令ls 查看文件,可以看到解包后得到一个文件夹:bugzilla-2.18rc2 ,进入此文件夹3、在bugzilla-2.18rc2目录下,检验模块,输入命令perl checksetup.pl4、查看检查结果,即可了解哪些模块没有安装,以下六个必备模块还没有安装:AppConfig (v1.52)CGI (v2.93)Date::Format (v2.21)DBI (v1.36)DBD::mysql (v2.1010)Template (v2.08)其中DBD模块在本章中先不进行安装,因为这个模块需要先安装mysql,其他模块均可安装三、Perl的模块安装1、安装AppConfig (v1.52)(1)进入自己建立的modules目录,找到AppConfig-1.56.tar.gz(2)解包:tar-xzvfAppConfig-1.56.tar.gz(3)解包完,会生成名为AppConfig-1.56的文件夹,进入此文件夹(4)编译成Makefile文件perlMakefile.PL编译完,查看此目录,会看到新生成的Makefile文件(5)编译生成模块make(6)测试模块(此步可以省略)maketest(7)安装模块make install(8)进入bugzilla-2.18rc2 目录,输入命令perlchecksetup.pl此时可以看到AppConfig (v1.52)模块已经安装2、安装CGI (v2.93)(1)进入自己建立的modules目录,找到CGI.pm-3.05.tar.gz(2)解包:Tar -xzvfCGI.pm-3.05.tar.gz(3)解包完,会生成名为CGI.pm-3.05的文件夹,进入此文件夹(4)编译成Makefile文件perlMakefile.PL编译完,查看此目录,会看到新生成的Makefile文件(5)编译生成模块make(6)测试模块maketest(7)安装模块make install(8)进入bugzilla-2.18rc2 目录,输入命令perlchecksetup.pl此时可以看到CGI (v2.93)模块已经安装3、按照同样的方法安装Date::Format (v2.21)软件为TimeDate-1.16.tar.gz4、安装DBI (v1.36)(1)安装DBI时,需要两个支持工具,这两个工具位于CD2中,所以先装载CD2,再进行挂载Mount /dev/cdrom /mnt/cdrom(2)挂载后,进入/RedHat/RPMS目录,找到gcc-3.2.2-5.i386.rpm包,进行安装rpm –ivh gcc-3.2.2-5.i386.rpm(3)找到zlib-devel-1.1.4-8.i386.rpm包,进行安装rpm –ivh zlib-devel-1.1.4-8.i386.rpm(注意及时卸载光驱)(4)为DBI模块设置环境变量,命令export LANG=c(5) 安装DBI (v1.36),软件为DBI-1.45.tar.gz(安装步骤参考前面)tar -xzvf DBI-1.45.tar.gzcd DBI-1.45perl Makefile.PLmakemake testmake install5、安装Template (v2.08),软件包为Template-Toolkit-2.14.tar.gz注意:在输入完命令perlMakefile.PL后,会有询问:It requires access to an existing test database. [y]此处回答为n 即可,后面的问题同样回答n6、注意:DBD::mysql (v2.1010)模块没有安装,到第五章安装完mysql 以后再安装该模块四、Apache的安装1、首先检查是否已经安装了httpd服务rpm –qa httpd如果没有出现任何信息,表示没有安装2、进入bugzilla目录,可以看到httpd的安装包httpd-2.0.40-21.i386.rpm ,进行安装rpm-ivhhttpd-2.0.40-21.i386.rpm3、再次检查httpdrpm-qahttpd此时可以看到如下信息:httpd-2.0.40-214、启动httpd,命令/etc/rc.d/init.d/httpd start会出现信息:Starting httpd: [OK]五、Apache配置1、apache的配置文件为/etc/httpd/conf/httpd.conf,进入/etc/httpd/conf目录,编辑httpd.conf文件,vihttpd.conf2、在命令状态下,输入:/ServerName查找ServerName字符串,找到#ServerName :80在该行的下一行添加一行:ServerName192.168.94.40:80保存退出3、检查语法是否正确,输入命令httpd-t出现提示:Syntax OK表示修改语法正确4、修改/etc/hosts 文件,进入/etc 目录,编辑hosts 文件vihosts5、在hosts文件中添加一行:192.168.94.20zhaotest注:zhaotest为linux主机名称6、重新启动httpd/etc/rc.d/init.d/httpdrestart出现信息:Stopping httpd: [OK]Starting httpd: [OK]表明启动成功7、测试,在Windows IE地址栏中输入192.168.94.40 ,如果出现apache的测试页面,表明配置成功六、mysql的安装和启动1、mysql依赖于三个安装包中,分别是:MySQL-server-4.0.21-0.i386.rpmMySQL-client-4.0.21-0.i386.rpmMySQL-devel-4.0.21-0.i386.rpm2、在SecureCRT中进入bugzilla目录,输入命令rz ,上传三个安装包文件3、安装三个包:rpm-ivhMySQL*.rpm4、启动mysql数据库/etc/rc.d/init.d/mysqlstart5、查看mysql进程ps-ef | grep mysql七、使用、配置mysql1、连接到mysqlmysql-uroot注意:初始安装的MySQL,超级用户没有口令2、设置口令,在mysql提示符下,输入命令Set password for root=password("123456") ;为root设置口令为123456 ,注意sql语句以“;”结束3、创建数据库bugsCreatedatabasebugs ;4、创建用户bugsGrantselect, insert , update , delete , index , alter , create , locktables , createtemporarytables , drop , referencesonbugs.*tobugs@localhost identified by '123456';5、把数据写入到数据库Flushprivileges;6、退出数据库exit或quit注意:(1)mysql中的sql语句是不区分大小写的,所以在mysql提示符下的输入不必在意大小写(2)mysql语句必须要以分号“;”结束(3)退出语句exit和quit后可以不写分号八、安装DBD模块(由于我们分两次安装,如果重新启动过Linux,需要再设置一次环境变量exportLANG=c)1、在modules目录下,找到DBD-mysql-2.9004.tar.gz ,进行解包和安装,注意安装之前一定保证启动mysql2、进入bugzilla-2.18rc2目录,再次检查模块3、注意:安装如果出现问题,可以通过下面方法尝试解决:(1)在进行到make 命令时,可能会出现下列错误提示:Makefile:89: *** missing separator.Stop.设置环境变量export LANG=c把生成的DBD-mysql-2.9004目录删除rm-r-fDBD-mysql-2.9004 后再重新解包,编译(2)提示mysql有问题(a)ps -ef | grep mysql 查看进程(b)kill-91758杀掉进程(1758为进程号,以实际为准)(c)servicemysqlstart 启动服务九、sendmail 的安装1、首先加载CD1,进入目录RedHat/RPMS找到文件sendmail-8.12.8-4.i386.rpmrpm-ivhsendmail-8.12.8-4.i386.rpm2、卸载CD1,再加载CD3,进入目录RedHat/RPMS,找到文件sendmail-cf-8.12.8-4.i386.rpm rpm-ivh sendmail-cf-8.12.8-4.i386.rpm十、sendmail 的配置首先进入/etc/mail 目录1、配置文件sendmail.mc(1)打开文件sendmail.mcvisendmail.mc(2)在命令状态下,输入/DAEMON_OPTIONS查找字符串:DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl (3)在该字符串前面加上dnl ,把该行注释掉,即:dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 保存退出(4)执行命令m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf输出新的配置文件2、配置文件access(1)打开文件accessvi access(2)在文件中添加192.168.94 RELAY(注意:网段根据实际确定)保存退出(3)执行命令makemap hash /etc/mail/access.db< /etc/mail/access建立索引文件(会比较慢,大概10-20分钟)3、配置文件local-host-names(1)打开文件local-host-namesvi local-host-names(2)在文件中添加设置本地域名,以进行本地传递4、修改hosts文件,用于接收邮件hosts文件位于/etc目录下(1)进入/etc目录,打开hosts文件vihosts(2)添加linux服务器的IP地址和别名,内容如下:192.168.94.40 5、修改完以上配置文件,重启sendmail/etc/rc.d/init.d/sendmail restart(注意可能时间会比较慢)十一、安装配置POP3和IMAP1、加载CD2,进入RedHat/RPMS目录,找到文件imap-2001a-18.i386.rpm和imap-devel-2001a-18.i386.rpm ,进行安装rpm –ivh imap*.rpm2、进入目录/etc/xinetd.d目录3、找到imap文件和ipop3 这两个文件,分别进行修改,把原来内容中disable的值由yes 变为no保存退出4、重新启动/etc/rc.d/init.d/xinetdrestart5、添加一个用户,并设置密码Adduser zhaodspasswd zhaods密码:123十二、在windows客户机上配置outlook1、其中,邮件地址为:zhaods@为前面设置的服务器的域名(邮箱的具体配置可以参考另一篇拙作<<Bugzilla的使用>>)2、给自己发一封邮件,看是否可以收到十三、配置bugzilla配置文件1、在自己的bugzilla安装路径下(如本例为/root/bugzilla/bugzilla-2.18rc.2目录),找到文件localconfigvilocalconfig2、找到$index_html=0改为:$index_html=1这样会生成一个index.html文件,该文件指向index.cgi3、找到$db_ pass=…‟改为:$db_ pass=…123456‟注意:单引号中为创建bugs用户的密码,一定与前面设置的相同修改后保存退出4、在bugzilla安装路径,输入命令:perlchecksetup.pl创建bugs数据库中的表最后将提示输入如下信息:∙Enter the e-mail address of the administrator:输入:zhaods@说明:要求输入bugzilla管理员e-mail地址,注意是自己前面配置的邮箱帐户,这是登录bugzilla的帐户∙You entered 'zhaods@'.Is this correct? [Y/n]说明:确认刚才输入的e-mail地址是否正确,回答y 即可∙Enter the real name of the administrator:输入:zhaods说明:输入真实姓名∙Enter a password for the administrator account:输入:123说明:登录bugzilla的密码,可以与前面不同,但一定要记住∙Please retype the password to verify:输入:123说明:进行密码确认(6)这时将出现如下信息:'zhaods@' is now set up as an administrator account. 表示帐户创建成功(7)这时,可以到mysql数据库中查看A、输入命令:mysql -uroot -p123456进入mysqlB、在mysql提示符下输入命令:use bugs;连接bugs数据库C、在mysql提示符下输入命令:Show tables;可以看到bugs数据库中已经创建好了表(8)退出mysql即可十四、进一步配置apache1、进入/etc/httpd/conf 目录,输入命令vihttpd.conf2、在命令状态,输入/DocumentRoot找到,DocumentRoot "/var/www/html",将引号中的内容替换为bugzilla的安装路径,本例为/root/bugzilla/bugzilla-2.18rc2 ,替换完结果为:DocumentRoot“/root/bugzilla/b ugzilla-2.18rc2”说明:指定Apache服务器存放网页的根目录3、找到DirectoryIndex在这一行加上:index.cgi把它放在第一位,即:DirectoryIndexindex.cgi index.html index.html.var说明:因为bugzilla的首页为index.cgi,当我们访问bugzilla服务器时,就会返回这个主页4、找到AddHandler cgi-script .cgi去掉前面的#说明:把cgi文件当作程序运行,而不是当作文本文件显示5、找到ServerName在行#ServerName :80 下面添加如下内容:ServerName192.168.94.40:80(这项在前面的练习中可能已经加上了)6、搜索字符串/Directory找到如下内容:<Directory />Options FollowSymLinksAllowOverride None</Directory>每行前面添加#,把这四行内容注释掉,否则会禁止访问bugzilla的页面7、注意:如果前面练习了虚拟主机的配置,需要把前面练习虚拟主机时添加的代码注释掉或者删除掉8、保存退出十五、其他修改及配置1、修改/etc/hosts 文件,添加一行:192.168.94.20 zhaodszhaods为主机名(这项在前面的练习中可能已经做完)2、启动apache/etc/rc.d/init.d/httpd restart3、更改权限:chmod-R777/root注意:一定要有参数–R,是对bugzilla-2.18rc2所在的根路径及其下面的子路径设置权限十六、在Windows IE中访问bugzilla(1)启动IE浏览器,在地址栏中输入地址:192.168.94.40如果看到这只可爱的大蚂蚁,恭喜你,配置成功啦!(2)进行登录点击首页Log In 链接,出现登录界面在Login后面的文本框中输入登录帐户:zhaods@在Password后面的文本框中输入密码:123然后点击Login按钮十七、在Linux中再创建一个用户addusermytest1passwdmytest1密码:123十八、在OutLook中为mytest1用户创建邮箱:mytest1@(与前面创建的方法相同)十九、在bugzilla页面,点击Log Out 链接,登出刚才的帐户二十、点击New Account 链接,创建一个新用户在E-mail address文本框中输入刚才建立的帐户mytest1@在Real name 文本框中输入真实姓名点击Create Account二十一、这时系统会告诉你帐户已经创建,我们到OutLook中去接收bugzilla发送过来的登录密码,用该账户mytest1@和此密码即可登录bugzilla。
Linux服务器部署系列之⼋—Sendmail篇Sendmail是⽬前Linux系统下⾯⽤得最⼴的邮件系统之⼀,虽然它存在⼀些不⾜,不过,⽬前还是有不少公司在使⽤它。
对它的学习,也能让我们更深的了解邮件系统的运作。
下⾯我们就来看看sendmail邮件服务器的部署。
本⽂将从以下⼏个⽅⾯讲解Sendmail邮件系统:1.Sendmail安装;2.Sendmail基本配置;3.Openwebmail安装和配置;4.配置Mailscanner+clamav过滤病毒;5.配置SpamAssassin+mimedefang过滤垃圾邮件。
本⽂系统运⾏环境:CentOS 5。
⼀、安装Sendmail1. 软件需求(以下软件在安装光盘上都可以找到)cyrus-sasl-2.1.22-4.i386.rpmcyrus-sasl-lib-2.1.22-4.i386.rpmcyrus-sasl-plain-2.1.22-4.i386.rpmcyrus-sasl-devel-2.1.22-4.i386.rpmcyrus-sasl-md5-2.1.22-4.i386.rpmsendmail-8.13.8-2.el5.i386.rpmsendmail-cf-8.13.8-2.el5.i386.rpmsendmail-devel-8.13.8-2.el5.i386.rpmsendmail-doc-8.13.8-2.el5.i386.rpmm4-1.4.5-3.el5.1.i386.rpmdovecot-1.0.7-2.el5.i386.rpm另外,dovecot需要两外两个程序包的⽀持:perl-DBI-1.52-1.fc6.i386.rpmmysql-5.0.45-7.el5.i386.rpm2. 软件安装1)cyrus-sasl的安装先检查⼀下,系统默认安装了哪些软件包,如下图:安装cyrus-sasl-md5-2.1.22-4.i386.rpm,如下图:2)安装sendmail、dovecot等相关程序包,如下图:Sendmail要正常⼯作,是需要DNS⽀持的,⼀般企业都有DNS服务器,如果没有,可以参考我的另⼀篇⽂章:Linux服务器部署系列之三—DNS篇(/379574/169718),⾃⼰搭建⼀台DNS服务器。
构建postfix邮件服务器(一)1、编译安装Postfix[root@mail ~]# groupadd -g 1200 postdrop[root@mail ~]# groupadd -g 1000 postfix[root@mail ~]# useradd -M -s /sbin/nologin -u 1000 -g postfix -G postdrop postfix[root@mail ~]# tar zxf postfix-2.4.6.tar.gz[root@mail ~]# gunzip postfix-2.4.6-vda-ng.patch.gz[root@mail ~]# cd postfix-2.4.6[root@mail postfix-2.4.6]# patch -p1 < ../postfix-2.4.6-vda-ng.patchpatching file README_FILES/VDA_READMEpatching file src/global/mail_params.hpatching file src/util/file_limit.cpatching file src/virtual/mailbox.cpatching file src/virtual/maildir.cpatching file src/virtual/virtual.cpatching file src/virtual/virtual.h[root@mail postfix-2.4.6]#预配置编译参数[root@mail postfix-2.4.6]# make makefiles \'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \-DUSE_SASL_AUTH \-DUSE_CYRUS_SASL -I/usr/include/sasl' \'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \-L/usr/lib/sasl2 -lsasl2 ' && make && make install //编译并进行安装Postfix的配置文件(Postfix系统最主要的配置文件包括:/etc/postfix/main.cf 和/etc/postfix/master.cf.前者是postfix服务的配置文件,后者是master程序的配置文件)[root@mail postfix-2.4.6]# postconf –n //-n 将只列出不同于默认值的配置参数command_directory = /usr/sbinconfig_directory = /etc/postfixdaemon_directory = /usr/libexec/postfixdebug_peer_level = 2html_directory = nomail_owner = postfixmailq_path = /usr/bin/mailqmanpage_directory = /usr/local/mannewaliases_path = /usr/bin/newaliasesqueue_directory = /var/spool/postfixreadme_directory = nosample_directory = /etc/postfixsendmail_path = /usr/sbin/sendmailsetgid_group = postdropunknown_local_recipient_reject_code = 550[root@mail postfix-2.4.6]#[root@mail postfix-2.4.6]# cd /etc/postfix/[root@mail postfix]# postconf -n > main2.cf[root@mail postfix]# mv main.cf main.cf.bak[root@mail postfix]# mv main2.cf main.cfPostfix的启动控制[root@mail postfix]# postfix startpostfix/postfix-script: starting the Postfix mail system[root@mail postfix]# netstat -anpt | grep :25tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1995/master[root@mail postfix]# postfix check //若配置无误,不会反馈任何信息[root@mail postfix]# postfix reload //重新载入配置信息,而不需要重启Postfix服务postfix/postfix-script: refreshing the Postfix mail system[root@mail postfix]# postfix stoppostfix/postfix-script: stopping the Postfix mail system[root@mail postfix]#配置基于Postfix构建简单电子邮件系统:1、编辑main.cf文件,调整运行Postfix的基本参数[root@mail postfix]#vi main.cfinet_interfaces=192.168.1.199, 127.0.0.1 //设置postfix服务监听的IP地址,缺省为allmyhostname= //设置postfix服务器使用的主机名mydomain= //设置postfix服务器使用的邮件域myorigin=$mydomain //设置外发邮件时发件人地址中的邮件域名mydestination=$mydomain,$myhostname //设置可接收的邮件地址中的域名home_mailbox=Maildir/ //设置邮件存储位置和格式2、添加邮件用户的帐号[root@mail postfix]# groupadd mailusers[root@mail postfix]# useradd -g mailusers -s /sbin/nologin xiaowu[root@mail postfix]# useradd -g mailusers -s /sbin/nologin juncai[root@mail postfix]# passwd xiaowuChanging password for user xiaowu.New UNIX password:BAD PASSWORD: it is based on a dictionary wordRetype new UNIX password:passwd: all authentication tokens updated successfully.[root@mail postfix]# passwd juncaiChanging password for user juncai.New UNIX password:BAD PASSWORD: it is based on a dictionary wordRetype new UNIX password:passwd: all authentication tokens updated successfully.[root@mail postfix]##echo 12345 | passwd --stdin xiaowu //或这样赋予密码Changing password for user xiaowu.passwd: all authentication tokens updated successfully.3、SMTP发送邮件测试[root@mail postfix]# telnet localhost 25Trying 127.0.0.1...Connected to localhost.localdomain (127.0.0.1).Escape character is '^]'.220 ESMTP Postfixehlo 250 250-PIPELINING250-SIZE 10240000250-VRFY250-ETRN250-ENHANCEDSTATUSCODES250-8BITMIME250 DSNmail from:xiaowu@250 2.1.0 Okrcpt to:juncai@250 2.1.5 Okdata354 End data with <CR><LF>.<CR><LF>subject: A TEST MAILHELLO!This is a test mail !!!.250 2.0.0 Ok: queued as 229784E100quit221 2.0.0 ByeConnection closed by foreign host.#grep 229784E100 /var/log/messages //查找发信状态[root@mail postfix]# cat ~juncai/Maildir/new/Return-Path: <xiaowu@>X-Original-To: juncai@Delivered-To: juncai@Received: from localhost (localhost.localdomain [127.0.0.1])by (Postfix) with SMTP id 229784E100for <juncai@>; Thu, 17 Mar 2011 03:02:45 +0800 (CST)subject: A TEST MAILMessage-Id: <20110316190254.229784E100@>Date: Thu, 17 Mar 2011 03:02:45 +0800 (CST)From: xiaowu@To: undisclosed-recipients:;HELLO!This is a test mail !!![root@mail postfix]#构建Dovecot服务器1、编译安装Dovecot软件包[root@mail ~]#useradd –M –s /sbin/nologin dovecot[root@mail ~]#tar zxvf dovecot-1.1.4.tar.gz[root@mail ~]#cd dovecot-1.1.4[root@mail dovecot-1.1.4]# ./configure --sysconfdir=/etc --with-mysql && make && make install2、配置Dovecot的运行参数(1)建立dovecot.conf配置文件并进行简单设置[root@mail dovecot-1.1.4]# cp /etc/dovecot-example.conf /etc/dovecot.conf[root@mail dovecot-1.1.4]#vi /etc/dovecot.confssl_disable = yesprotocols = imap pop3disable_plaintext_auth = nomail_location = maildir:~/Maildir(2)创建PAM认证文件[root@mail dovecot-1.1.4]# vi /etc/pam.d/dovecotauth required pam_nologin.soauth include system-authaccount include system-authsession include system-auth3、启动Dovecot服务[root@mail ~]# /usr/local/sbin/dovecot -c /etc/dovecot.conf[root@mail ~]# netstat -anpt | grep dovecottcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 3713/dovecottcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 3713/dovecot[root@mail ~]#4、POP3接收邮件测试[root@mail ~]# telnet localhost 110Trying 127.0.0.1...Connected to localhost.localdomain (127.0.0.1).Escape character is '^]'.+OK Dovecot ready.user juncai+OKpass juncai+OK Logged in.list+OK 1 messages:1 511.retr 1+OK 511 octetsReturn-Path: <xiaowu@>X-Original-To: juncai@Delivered-To: juncai@Received: from localhost (localhost.localdomain [127.0.0.1])by (Postfix) with SMTP id 229784E100for <juncai@>; Thu, 17 Mar 2011 03:02:45 +0800 (CST) subject: A TEST MAILMessage-Id: <20110316190254.229784E100@>Date: Thu, 17 Mar 2011 03:02:45 +0800 (CST)From: xiaowu@To: undisclosed-recipients:;HELLO!This is a test mail !!!.quit+OK Logging out.Connection closed by foreign host.[root@mail ~]#WEBMAIL邮件界面SquirrelMail的工作流程1、依次安装squirrelmail程序包、中文语言包[root@mail ~]# tar jxvf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs /webmail[root@mail ~]# cd /usr/local/apache2/htdocs/webmail/[root@mail webmail]# tar jxvf ~/zh_CN-1.4.13-20071220.tar.bz22、创建及调整数据目录、附件目录[root@mail webmail]# mkdir -p attach data[root@mail webmail]# chown -R daemon:daemon attach/ data/ [root@mail webmail]# chmod 730 attach/3、建立config.php配置文件[root@mail webmail]# cp config/config_default.php config/config.php [root@mail webmail]# vi config/config.php$squirrelmail_default_language = 'zh_CN';'en_US' $default_charset = 'zh_CN.UTF-8'; 'iso-8859-1' $domain = '';$smtpServerAddress = 'localhost';$smtpPort = 25;$imapPort = 143;$imap_server_type = 'dovecot';$data_dir = '/usr/local/apache2/htdocs/webmail/data/'; $attachment_dir = '/usr/local/apache2/htdocs/webmail/attach/';4、重新启动httpd服务,并在浏览器中登录squirrelmail系统[root@mail webmail]# ../../bin/apachectl restart在该界面中可以完成发信、收信等电子邮件服务的基本操作。
Cyrus SASL 编译方法Cyrus SASL(Simple Authentication and Security Layer)是一种用于身份验证和安全连接的系统,它为客户端和服务器之间的通信提供了强大的安全性。
下面将介绍如何在Linux系统上编译Cyrus SASL。
1. 确认系统环境在开始编译Cyrus SASL之前,首先要确保系统已经安装了必要的工具和依赖项。
您需要确保系统已安装以下软件包:- gcc- make- automake- autoconf- libtool- OpenSSL2. 下载Cyrus SASL源代码您可以从Cyrus SASL的官方全球信息湾上下载最新的源代码包,也可以通过git从官方仓库克隆源代码。
在这里,我们以下载源代码包的方式为例进行说明。
```$ wget$ tar -zxvf cyrus-sasl-2.x.x.tar.gz$ cd cyrus-sasl-2.x.x```3. 配置编译选项在进入源代码目录后,执行configure脚本以配置编译选项。
您可以使用一些可选参数来定制编译设置。
```$./configure --prefix=/usr/local/cyrus-sasl --enable-anon --with-openssl```其中,--prefix参数用于指定安装目录,--enable-anon用于启用匿名身份验证,--with-openssl用于启用OpenSSL支持。
4. 编译源代码配置完成后,执行make命令进行编译。
```$ make```5. 安装编译完成后,执行make install命令进行安装。
```$ make install```6. 配置SASL库安装完成后,您需要为系统中的应用程序配置Cyrus SASL库。
您可以在应用程序的配置文件中指定Cyrus SASL库的路径,以便应用程序可以找到并使用Cyrus SASL进行身份验证和安全通信。
Linux系列-Red Hat5平台下Sendmail邮件服务搭建Sendmail是具有较长历史并不断发展的邮件服务器软件,通过对Sendmail 服务器的配置管理,可以实现基本的邮件发送功能;dovecot服务器实现了POP3协议,可以与Sendmail服务器配合工作,实现用户对邮件的收取功能。
本次我们会看到Sendmail和dovecot结合运用的实例。
本次分三部分说,先来了解一下sendmail.第一部分:sendmail的安装、控制启动及主要配置文件一.Sendmail安装Sendmail服务器在RHEL5系统中是默认安装的,完整的安装应包括四个软件包。
如果没安装或是重新安装,可以使用rpm命令进行手动安装。
如下:1>.sendmail //是sendmail服务器程序的安装包,是最重要的软件包2>.m4 //包括了配置sendmail服务器的必要工具3>.sendmail-cf //包括了重新配置sendmail服务器的必要配置文件4>.sendmail-doc //包括了sendmail服务器的说明文档注意:Sendmail服务程序在安装后并没有设置在系统启动时自动运行,所以我们还得使用chkconfig命令设置它在系统启动时自动启动二.Sendmail的控制启动在启动sendmail服务器程序之前,需要先确保运行sendmail服务器的主机有完整的域名,在internet上能够解析到,并且有相应的邮件交换(MX)记录以及能够反向解析。
Sendmail服务器使用名为sendmail的启动脚本进行程序的启动与停止,此脚本位于“/etc/init.d/”目录中。
也可以使用service命令调用sendmail脚本执行sendmail服务器的启动和停止操作。
三.Sendmail主要配置文件1. sendmail服务器的配置目录sendmail服务器使用的所有配置文件都保存在目录“/etc/mail”中,该目录中保存了sendmail服务器运行所需要的配置文件以及库文件等多种类型的文件,如下:[root@mail ~]# ls /etc/mailaccess helpfile Makefile submit.cf virtusertableaccess.db local-host-names sendmail.cf submit.cf.bak virtusertable.db domaintable mailertable sendmail.mc submit.mcdomaintable.db mailertable.db spamassassin trusted-users2. 配置文件sendmail.cf和sendmail.mcSendmail服务器的主配置文件是sendmail.cf。
实验一、SMTP服务器的安装与配置1.实验目的通过对Sendmail服务器系统的安装与配置实验,加深对 SMTP协议的理解,掌握Sendmail邮件服务器的安装与配置方法,为将来从事网络工程建设打下基础。
2.实验要求下载Sendmail服务器源代码,在Linux 环境下,编译生成执行代码,并进行安装和配置,然后创建二个测试帐号,分别在本机和网络中其它计算机上使用测试帐号发送邮件,测试Sendmail服务器系统工作是否正常。
3.实验步骤3.1 实验准备1、系统要求●系统配置建议CPU 为PIII 900MHZ以上, 内存128MB以上,磁盘可用空间100MB以上,具有10M/100M网卡,操作系统采用 Red Hat 6.0 版本或更高版本。
●编译器环境系统必须装有ANSI-C编译器,推荐使用来自Free Software Foundation (FSF)的GNU C compiler (GCC)。
2、下载源代码Sendmail最新版本的源代码可以从或其镜像站点下载,本书附带的光盘上包括了 sendmail 8.13.0版本的原代码。
3、源代码解包将下载的安装包sendmail-8.13.0.tar.gz复制到某一个用户目录下(下面以/usr/src/目录为例介绍),然后用以下命令解压:$ cd /usr/src$ tar xvfz sendmail-8.13.0.tar.gz将会在/usr/src/目录下创建/sendmail-8.13.0子目录,该目录下包含sendmail的所有的源代码和相关文档。
3.2 安装设置首先用超级用户在/etc下创建mail目录(如果原来安装过sendmail,则可先把原来的mail目录备份:# mv mail mail.bak):# cd /etc# mkdir mail进入安装包所在目录:# cd /usr/src/sendmail-8.13.0# cd cf/cf编辑generic-linux.mc.mc 文件,在该文件中间增加以下三行,将避免在发送邮件时对发送地址和接收地址进行DNS解析:FEATURE (accept_unresolvable_domains)FEATURE (nocanonify)define( ‘confDONT_PROBE_INTERFACES' )选择与安装机器上操作系统(这里选LINUX)相同的配置文件:# cp generic-linux.mc sendmail.mc生成配置文件sendmail.cf,submit.cf ,并复制到安装目录/etc/mail:# make install-cf3. 3 编译# cd /usr/src/sendmail-8.13.0# make3. 4 安装把编译后的执行文件sendmail 复制到/usr/sbin/, 把配置文件sendmail.cf,submit.cf,statistics,helpfile 等拷贝到目录/etc/mail # make install安装完成后,可以清除编译生成的中间文件(.o),以释放磁盘空间:$ make clean3. 5 配置Sendmail 的配置文件放在/etc/mail/sendmail.cf中, 配置文件比较复杂,不过一般只需要修改几个地方就可以了,其他选项都使用默认设置。
sendmail服务器配置实训小结在本次实训中,我们学习了sendmail服务器的配置和使用。
sendmail是一款常用的邮件传输代理软件,它可以帮助我们搭建邮件服务器,实现邮件的发送和接收功能。
通过这次实训,我对sendmail的配置和使用有了更深入的了解。
首先,我们需要在Linux系统上安装sendmail软件。
在安装过程中,我们需要注意选择合适的版本,并确保系统已经安装了必要的依赖包。
安装完成后,我们可以通过命令行输入“sendmail -v”来验证sendmail是否安装成功。
接下来,我们需要对sendmail进行配置。
sendmail的配置文件位于/etc/mail/sendmail.cf,我们可以通过编辑该文件来修改sendmail的配置。
在配置文件中,我们可以设置邮件服务器的域名、IP地址、邮件队列的大小等参数。
此外,我们还可以设置邮件的转发规则、邮件的过滤规则等。
配置文件中的每一项都有详细的注释说明,我们可以根据需要进行修改。
在配置完成后,我们需要重启sendmail服务,使配置生效。
我们可以使用命令“service sendmail restart”来重启sendmail服务。
重启后,我们可以通过命令“ps -ef | grep sendmail”来查看sendmail进程是否正常运行。
在sendmail配置完成后,我们可以使用命令行发送邮件。
我们可以使用命令“mail -s '邮件主题' 邮箱地址”来发送邮件。
在发送邮件时,我们可以输入邮件的内容,并可以附加文件。
发送完成后,我们可以通过命令“mailq”来查看邮件队列中的邮件。
除了命令行发送邮件,我们还可以使用sendmail提供的API来发送邮件。
sendmail提供了一系列的API函数,我们可以在自己的程序中调用这些函数来实现邮件的发送功能。
通过API发送邮件,我们可以更加灵活地控制邮件的发送过程,实现更多的功能。
Linux1 邮件服务器启动和停止Sendmail服务安装Sendmail服务器配置之后,接下来需要做的就是启动Sendmail服务确保设置参数生效。
不过linux/unix等系统自带的mail应用,在多数情况下并不需要启用(默认是启用的),但有时会因此而产生不少的安全漏洞(如大量垃圾邮件的干扰),所以在通常情况下将停止(/etc/init.d/sendmail stop)这些系统的Sendmail服务。
在/etc/init.d目录中的脚本文件sendmail是控制Sendmail服务的,通过参数start、stop和restart可控制Sendmail服务的启动、停止和重启。
1.启动Sendmail服务若要启动Sendmail服务,只需在终端中输入“/etc/init.d/sendmail start”命令并按【回车】键,如图9-27所示。
图9-27 启动Sendmail服务或者在终端中,输入“service sendmail start”命令并按【回车】键,同样可以启动Sendmail服务,如图9-28所示。
图9-28 启动Sendmail服务2.自动启动Sendmail服务如果需要让Sendmail服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“sendmail”服务,在其前面加上星号(*),然后选择“确定”即可,如图9-29所示。
图9-29 自动启动Sendmail服务3.重启Sendmail服务重启Sendmail服务,只需在终端中输入“/etc/init.d/sendmail restart”命令并按【回车】键,如图9-30所示。
图9-30 重启Sendmail服务或者在终端中,输入“service sendmial restart”命令并按【回车】键,重启Sendmail 服务,如图9-31所示。
图9-31 重启Sendmail服务4.停止Sendmail服务若要停止Sendmail服务,只需在终端中输入“/etc/init.d/sendmail stop”命令并按【回车】键,如图9-32所示。
第四章:域名系统1.DNS作用:为所有网络程序提供主机域与IP地址的相互转换,包括:a)将主机名称转换为对应的IP地址b)将主机的IP地址转换为对应的域名2.DNS结构:a)DNS的顶端为“.”,被称为root(根)b)常用的国家域:us(美国)cn(中国)jp(日本)c)常用的顶级域:com(公司企业)gov(政府机构)edu(教育机构)net(互联网机构)org(商业组织)d)DNS的查询方式有递归和迭代3.安装a)bind →服务器软件b)caching-nameserver →高速缓存配置文件4.主配置文件/etc/named.confa)zone :定义一个区b)type master | slave | hint 说明一个区的类型c)file “filename”说明区数据库文件名5.DNS服务器类型:主域名服务器、辅助域名服务器、缓存域名服务器6./var/named/named.ca 记录了根服务器IP地址7.区数据库文件中的记录类型:a)NS :域名服务器的主机名b)SOA :区数据的开始。
c) A :地址记录,转换主机名到IP地址。
d)PTR :反向记录,转换IP地址到主机名。
e)MX :邮件记录,邮件服务器的主机名。
f)CNAME :定义主机别名8.配置文件和区域文件的测试a)测试/etc/named.conf(主配置文件)# named-checkconfb)测试区域文件#named-checkzone 域名区域文件名9.域名服务器的测试a)Nslookup :分为交互模式和非交互模式,使用server来指定域名服务器IP,使用”type=类型”来指定查询类型b)Dig:dig @域名服务器IP [记录类型] 主机名/IP地址/域名c)Hostname :hostname [记录类型] 主机名/IP地址/域名1.安装a)RPM包安装b)编译安装:--prefix=目录名,用于指定apache安装后的位置;--enable-so可以使用动态加载模块;--enable-rewrite 使服务器具有rewrite功能2.安装后的目录:a)RPM包安装:/etc/httpd 主目录conf/httpd.conf 主配置文件/var/www/html文档根目录/var/log/httpd/access_log 访问日志/var/log/httpd/error_log 错误日志b)编译安装:/usr/local/apche 主目录conf/httpd.conf 主配置文件htdocs文档根目录log/access_log访问日志log/error_log错误日志3.启动a)RPM包安装:service httpd startb)编译安装:/usr/local/apache/bin/apachectl start4.httpd.conf 主配置文件a)ServerRoot 指定服务器根目录b)ServerAdmin 指定管理员邮件地址c)ServerName 指定服务器主机名d)Listen 指定服务器监听的IP地址和端口号e)Error_log 指定错误日志名称和位置f)CustomLog 指定访问日志名称和位置g)DocumentRoot 指定文件主目录h)DirectoryIndex 指定主页文件名称i)UserDir 可以为系统用户建个人主页j)VirtualHost 可以创建虚拟主机5.虚拟主机类型a)基于名称b)基于IP地址c)基于端口号6.日志的类型a)错误日志b)访问日志7.LAMPa)L:代表linxub)A:代表apachec)M:代表mysqld)P:代表php Perl Python1.邮件的功能和特点a)MTA,即邮件传输代理。
Postfix安装与使用一、下载:去官网下载最新的postfix安装包:/ftp-sites.html二、编译与安装:1、如果你的系统上原来有sendmail,先将其停止并将其文件改名。
用以下命令查看系统是否安装了sendmail:rpm -qa |grep sendmailsendmail-doc-8.9.3-15sendmail-8.9.3-15sendmail-cf-8.9.3-15用以下命令强行卸载sendmail:rpm -e sendmail sendmail-cf sendmail-doc --nodeps用以下命令杀死运行中的sendmail进程:killall sendmail2、改名/etc/init.d/sendmail stopchkconfig --level 0123456 sendmail offmv /usr/bin/newaliases /usr/bin/newaliases.origmv /usr/bin/mailq /usr/bin/mailq.origmv /usr/sbin/sendmail /usr/sbin/sendmail.orig3、然后添加两个组:postfix和maildrop和一个用户:postfixgroupadd -g 400 postfixgroupadd -g 401 postdropuseradd -u 400 -g 400 -c postfix -M -d/no/where -s/no/shell postfix这里的组和用户的ID是系统中未使用的ID,一般需要手动修改/etc/passwd,比如:postfix:x:12345:12345:postfix:/no/where:/no/shell4、编译与安装:tar -xvzf postfix-2.0.16.tar.gzcd postfix-2.0.16make -f Makefile.init makefilesmake install三、配置**********************cd /etc/postfixecho 'root: xxx@' >> /etc/postfix/aliasespostalias /etc/postfix/aliasespostmap virtual**********************1、给postfix用户做一个系统别名,并将超级用户的邮箱转发到一个普通用户。
编译安装邮件服务器安装环境:1.操作系统Fedora 11(32位系统),IP地址为192.168.1.2492.Gcc编译版本4.4.0,sendmail源代码的版本为8.14.33.DNS服务器已经配置成功,域名为,邮件服务器为4.DNS中的与邮件相关的MX记录,主机记录已经配置完毕安装Sendmail:1.进入源代码包目录,解压sendmail2.在编译安装之前卸载系统自带的sendmail(过程省略),并且查询sasl库是否安装3.编写site.config.m4宏文件,该文件默认不存在,自行创建。
在devtools/Site/fig.m4.sample示例文件可作参考4.创建site.config.m4宏文件,写入以下内容5.编译sendmail6.编译过程中可以到看到事前定义的DSASL库7.进入cf/cf目录,根据操作系统的类型复制一个mc的模板文件,复制后的文件名为sendmail.mc,然后编译生成sendmail.cf文件8.编译并生成sendmail.cf文件9.安装sendmail.cf到/etc/mail目录下10.复制sendmail.mc宏文件到/etc/mail目录下,该操作不是必须的,但以后配置sendmail时会修改该宏文件11.复制m4目录到/etc/mail目录下,执行m4命令需要使用该目录下的文件12.切换到到sendmail源代码所在的目录下,开始安装sendmail主程序13.安装过程中有两个错误提示,因为缺少相应的目录,所以失败。
错误一:错误二:14.在/usr/man/下创建这个两个目录,然后重新安装15.进入/etc/mail目录,创建aliases与access文件16.将DNS的域名与邮件服务器的主机名追加到local-host-names文件,该文件决定了电子邮件的地址,邮件服务器为哪一个域而工作的。
17.将access文件转化成.db数据库文件,完成后产生一个access.db的数据文件18.查询smmsp用户是否存在,如果存在则创建该用户的主目录19.启动sendmail服务。
-bd代表daemon的方式启动;-q代表queue(队列),后面跟时间参数,s(秒)、m(分)、h(小时)、d(天)。
-q1h表示服务器每隔1小时尝试发送邮件队列中的邮件。
20.查看TCP的25号端口是否开启安装dovecot RPM包,提供pop3、imap4服务:1.安装dovecot的RPM包,该包为Fedora 11 ISO文件中自带2.开启dovecot服务3.检查dovecot守护进程所开放的端口安装总结:在Fedora 11上编译安装比较困难,编译器的版本比较高,编译qpopper时报错,无论是低版本的还是高版本都编译出错。
而在Fedora 8与Centos 5.3上通过,初步怀疑是开发环境的问题。
不建议用最新的linu x发行版本,Fedora 11的内核版本为2.6.29.4这个版本连vm w are-server 2.0 都无法安装。
配置SMTP的认证SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无法通过我们的邮件服务器发送邮件。
默认情况下,登录到POP3服务(收邮件) 需要通过认证,但SMTP在发送邮件时则不需要通过身份认证,这样任何人都可以通过SMTP服务器发送邮件。
为了避免非授权的用户发送邮件,所以我们需要开启Sendmail的认证功能。
配置过程:1.检查系统中是否安装了sasl包2.创建为Sendmail认证的配置文件,该文件的内容如下:3.开启saslauthd守护进程或者编辑/etc/s y sconfig/saslauthd文件,修改“M E C H=shado w”然后启动saslauthd服务如果使用“saslauthd -a shado w”开启saslauthd,则不需要执行“service saslauthd start”命令。
但实际证明,通过修改服务配置文件的方式效果不理想,最好还是使用“saslauthd -a shado w”方式启动。
4.检查saslauthd是否开启,认证选项是否正确5.测试认证是否成功,在这里提交的用户名:redhat,密码:1236.进入/etc/mail目录,编辑sendmail.mc文件,添加以下内容7.使用m4命令,通过sendmail.mc生成sendmail.cf配置文件8.终止sendmail进程9.开启sendmail服务器10.检查TCP的25号端口是否开启11.使用telnet localhost 25检测认证是否开启12.尝试着发送邮件,结果提示需要认证,证明认证已经在25号端口启动13.客户机做验证,启动w in2000的虚拟机,检查TCP/IP选项14.作DNS解析测试15.配置OutLoo k Ex press邮件客户端16.指定POP3与SMTP服务器的主机名。
在这里设定的F Q DN名,而且在DNS服务器里必须要有与其相匹配的A记录。
17.指定邮件帐户的用户名与密码,当从邮件服务器上收取邮件时,需要提供的。
18.配置完成后redhat用户的帐户属性19.指定的POP3与SMTP服务器,这是服务器的F Q DN名,需要DNS进行解析。
发送邮件服务器(SMTP),选中“我的服务器要求身份验证”。
20.认证选项选择与接收服务器相同的设置即可21.发邮件做测试,看能否通过我们自己创建的邮件服务器将邮件发送到Internet上。
这里收件人的地址为“penghui-80@”,这个地址不属于本地域的邮件地址,需要进行邮件的中继。
可以通过编辑/etc/access文件实现邮件中继,但在SMTP认证时做过定义:“无论access文件中如何设置,只要通过SMTP认证的用户都允许邮件中继”。
22.由于目标邮件地址属于这个域的,因此要解析的MX记录。
因为域的邮件服务器要将邮件送到域的邮件服务器,此时需要通过MX记录来查找域的邮件服务器。
23.通过WEB页面的方式到收取邮件,可以看到发件人是redhat@,邮件主题与内容就是我们刚才在w in2000里发送的,完全一致。
结果证明,我们的邮件服务器能够将邮件投递到Internet上。
但由于我们的域名“”是没有注册的非法域名,所以penghui-80@不能正确的回复我们的邮件。
SMTP认证总结:SMTP的认证的实现方式与早期的linu x差别比较明显,主要体现在saslauthd的认证方式上。
Fedora 11与CentOS 5.3上默认的认证方式是pam,由/etc/s y sconfig/saslauthd配置文件中的“M E C H=pam”字段定义。
而Sendmail的SMTP认证需要使用shado w,认证方式不匹配将导致用户登录失败。
邮件服务器的性能优化:1.限制拒绝服务攻击可以做如下设置,定义发送邮件大小与发送邮件最大接收着已验证通过2.修改完后,通过m4重新生成sendmail.cf配置文件,然后重启sendmail3.让电子邮件用户只能通过电子邮件程序来访问该服务器,将邮件用户的登录shell该为/sbin/noling,这样可提高安全性邮件服务器故障排除:1.查看错误日志,使用“tail -f /var/log/message | grep redhat”。
redhat是用户名2.检查登录失败的消息3.使用telnet诊断,使用方法参考SMTP命令4.SMTP认证失败,不能打开/etc/sasldb2数据库。
出现该问题是没添加让saslauthd对sendmail认证的配置文件。
安全的电子邮件服务器安装配置环境:1.操作系统CentOS 5.3,服务器的IP地址为192.168.1.972.DNS安装配置完成,DNS域名为。
3.服务器可以访问Internet,能够解析公网上的域名。
4.编译器的版本为gcc-4.15.实验环境说明,原定在Fedora 11上完成实验,但在编译sendmail支持SSL后,SMTPS服务无法正常使用,只能使用CentOs5.3这个版本。
CentOS就是R HE L 的克隆版,去掉了Red H at的商标与版权标识,CentOS也称作社区企业操作系统。
安装配置过程:首先检查openssl包是否安装1.SSL服务器需要有安全证书,进入/etc/p k i/tls/certs/目录,执行ma k e命令后,根据提示输入相关信息操作,成功后会产生一个证书。
2.进入sendmail源代码目录,编辑site.config.m4文件内容如下:3.编译过程省略,参考先前的PDF文档。
修改/etc/sendmail.mc文件,增加以下与SMTPS有关的内容:4.复制/etc/p k i/tls/certs/目录中的证书到/usr/share/ssl/certs/下5.在linu x系统中安全SMTP的端口为465,如图所示:6.启动sendmail,验证是否启用了SMTPS。
生成配置文件等相关操作省略。
7.使用telnet验证是否启动了SMTPS8.使用y um -y install dovecot命令安装dovecot,用来提供POP3、POP3S、IMAP、IMAP4服务,安装过程如图:9.配置文件中与SSL/TSL相关的字段10.dovecot的证书与私钥存放路径11.启动dovecot服务12.检查相应端口是否开启13.查看POP3S与IMAPS的安全端口14.在outLoo k up 2003种邮件客户端的配置15.指定POP3S与SMTPS的端口16.使用OutLoo k 2003测试帐户是否可以正常收发电子邮件17.检测域的DNS服务器能够查询到域的MX记录18.发送邮件做测试19.通过浏览器登录到的邮箱收取信件实验总结:通过源代码安装配置服务器相对比较困难,不过从学习的角度看是很有必要,使用RPM安装配置时被忽略的细节都暴露了。
尽管很费时间,但可以更熟悉原理,也便于向U NIX过渡,如够将来有机会的话。