|
 
- 帖子
- 517
- 积分
- 1075
- 注册时间
- 2006-3-9
|
四、架设邮件服务器
邮件服务器是一个网站所必须的服务,在这里我们可以通过Red Hat Linux 9.0自带的Sendmail来架设邮局服务器。
1.安装Sendmail
如果是完全安装Red Hat Linux 9.0,那么系统已经内置有Sendmail 8.12.8-4服务器。如果不能确定是否已经安装sendmail,可以在终端命令窗口输入如下命令:
[root@ahpeng root] rpm -qa | grep sendmail
如果结果显示为“sendmail-8.12.8-4”,则说明系统已经安装sendmail服务器。如果安装Red Hat Linux 9.0时没有选择Sendmail服务器,则可以在图形环境下单击“主菜单→系统设置→添加删除应用程序”菜单项,在打开的“软件包管理”对话框中确保选中“邮件服务器”选项,然后单击“更新”按钮,按照屏幕提示插入第一张安装光盘即可开始安装。
另外,你也可以直接插入第1张安装光盘,定位到/RedHat/RPMS目录下的sendmail-8.12.8-4.i386.rpm安装包,然后在终端命令窗口运行以下命令即可开始安装进程:
[root@ahpeng RPMS] # rpm -ivh sendmail-8.12.8-4.i386.rpm
用类似的方法安装sendmail-cf.8.12.8-4.i386.rpm、sendmail-doc. 8.12.8-4.i386.rpm,位于第3张安装光盘的/RedHat/RPMS目录下。
2.启动/重新启动/停止Sendmail服务
安装Sendmail服务器以后,最简单的启动方式是在终端命令窗口运行如下命令:
[root@ahpeng root]/etc/rc.d/init.d/sendmail start
应该会出现以下的结果,表明邮件服务器已经启动成功:
启动 sendmail: [确定]
启动 sm-client:[确定]
除以上方式,我们还可以使用带参数的Sendmail命令控制邮件服务器的运行,例如:
[root@ahpeng root]# sendmail -bd -q1h
Sendmail的命令参数的含义如下:
-b:指定Sendmail在后台运行,并且监听端口25的请求。
-d:指定Sendmail以Daemon方式运行(守护进程)。
-q:当Sendmail无法将邮件成功地发送到目的地时,它会将邮件保存在队列里。该参数指定邮件在队列里保存的时间。例子里的1h表示保留1小时。
在终端命令窗口运行以下命令来重新启动Sendmail服务:
[root@ahpeng root]#/etc/rc.d/init.d/sendmail restart
在终端命令窗口运行以下命令来关闭Sendmail服务:
[root@ahpeng root]#/etc/rc.d/init.d/sendmail stop
我们还可以在终端命令窗口运行以下命令来检测Sendmail服务器的运行状态:
[root@ahpeng root]# /etc/rc.d/init.d/sendmail status
系统应该显示:
sendmail (pid 3251) 正在运行…
3.配置Sendmail
Sendmail的配置十分复杂。它的配置文件是sendmail.cf,位于/etc/mail目录下。由于sendmail.cf的语法深奥难懂,很少有人会直接去修改该文件来对Sendmail服务器进行配置。我们一般通过m4宏处理程序来生成所需的sendmail.cf文件。创建的过程中还需要一个模板文件,系统默认在/etc/mail目录下有一个sendmail.mc模板文件。
我们可以根据简单、直观的sendmail.mc模板来生成sendmail.cf文件,而无需直接编辑sendmail.cf文件。可以直接通过修改sendmail.mc模板来达到定制sendmail.cf文件的目的。这里介绍创建sendmail.cf文件的步骤:
(1)备份原有sendmail.cf文件
在终端命令窗口运行以下命令:
cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK
(2)生成sendmail.cf文件
根据sendmail.mc模板文件产生sendmail.cf配置文件,并导出到/etc/mail/目录下:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
(3)重启sendmail服务
[root@ahpeng root] /etc/rc.d/init.d/sendmail restart
很显然,用m4宏编译工具创建sendmail.cf文件比较方便,而且不容易出错,更可以避免某些带有安全漏洞或者过时的宏所造成的破坏。一个sendmail.mc模板的大致内容如下:
divert(-1)dnl
……
include('/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID('setup for Red Hat Linux')dnl
OSTYPE('linux')dnl
……
dnl #
dnl define('SMART_HOST','smtp.your.provider')
dnl #
define('confDEF_USER_ID',''8:12'')dnl
define('confTRUSTED_USER', 'smmsp')dnl
dnl define(′confAUTO_REBUILD′)dnl
……
这里介绍sendmail.mc模板的语法组成:
dnl:用来注释各项,同时dnl命令还用来标识一个命令的结束。
divert(-1):位于mc模板文件的顶部,目的是让m4程序输出时更加精简一些。
OSTYPE ('OperationSystemType'):定义使用的操作系统类型,显然这里应该用linux代替OperationSystemType,注意要用一个反引号和一个正引号把对应的操作系统类型括起来。
define:定义一些全局设置,对于Linux系统,设置了OSTYPE之后,可以定义下面的一些全局参数,如果不定义,就使用默认值。这里举两个简单例子:define('ALIAS_FILE','/etc/aliases')
定义别名文件(alia file)的保存路径,默认是/etc/aliases
define('STATUS_FILE', '/etc/mail/statistics')
sendmail的状态信息文件。
以上只是sendmai.mc的一些简单的语法解释,更多的参数含义及其配置信息可以参见http://www.sendmail.org/m4/tweaking_config.html。
4.为新用户开电子邮件账号
在Linux里为新用户开设电子邮件账户比较简单,只需在Linux系统里新增一个用户即可。单击“主菜单→系统设置→用户和组群”菜单项,打开“Red Hat用户管理器”对话框,单击“添加用户”按钮,在出现的“创建新用户”对话框里指定用户名、登录口令即可,如图3所示。
假设我们添加了一个用户Peter(密码为peter),这样该用户就有了一个邮件地址Peter@YourDomain.com(此处的YourDomain.com用你自己域名代替)。
以上过程也可以在终端命令窗口运行以下命令来实现:
[root@ahpeng root]#adduser peter -p peter
5.为电子邮件账户设置别名
有一些用户想使用多个电子邮件地址,是不是需要创建多个邮件账号呢?我们可以使用别名(alias)来解决这个问题。
比如说,用户peter想拥有以下3个电子邮件地址:
peter@YourDomain.com、dearpeter@ YourDomain.com、truepeter@ YourDomain.com。
我们可以通过以下步骤来实现这样的别名设置:
新增一个账号peter;然后用vi、或者Kate等文本编辑器打开/etc/aliases,在里面加上两行:
dearpeter: peter
truepeter: peter
保存该/etc/aliases退出。
不过,就这样还不能让Sendmail接受新增的别名,我们必须在终端命令窗口运行newaliases命令,以要求Sendmail重新读取/etc/aliases文件。如果一切无误,应该可以看到类似以下的回应消息:
[root@ahpeng root]# newaliases
/etc/aliases: 63 aliases, longest 10 bytes, 625 bytes total
这样,发给peter的邮件可以使用3个邮件地址,而peter只需要使用一个电子邮件账号peter@YourDomain.com就可以接收所有寄给以上3个地址的电子邮件。
6.指定邮箱容量限制
当一个邮件服务器为许多人提供邮件服务时,无限量的电子邮件将很容易塞满服务器的硬盘,造成硬盘负担。如果不想为用户提供无限空间的邮件暂存空间,可以使用“邮件限额”来给用户一个有限的暂存空间。
其实,它是利用磁盘配额功能来实现的。电子邮件的暂存空间是在/var/spool/mail目录下,只要通过磁盘配额设定每一个用户在这个目录下能使用的最大空间即可。
7.支持POP和IMAP功能
到现在为止,我们已经可以用Outlook Express发送邮件,或者登录服务器使用mail、pine命令收取、管理邮件。但是还不能用Outlook Express等客户端从服务器下载邮件,这是因为Sendmail并不具备POP3(IMAP)的功能,所以我们必须自己安装。
(1)POP和IMAP服务器安装
安装Red Hat Linux 9.0时,可以选择安装POP和IMAP服务器,可以在终端命令窗口运行以下命令进行验证:
[root@ahpeng root]# rpm -qa imap
imap-2001a-18
如果没有安装,可以将第2张安装光盘放进光驱,然后在终端命令窗口运行以下命令即可开始安装:
[root@ahpeng root]#cd /mnt/cdrom/RedHat/RPMS
[root@ahpeng root]#rpm -ivh imap-2001a-18.i386.rpm
由于Red Hat Linux 9.0已经将POP和IMAP打包成一个单独的套件,安装好imap-2001a-18.i386.rpm,就会同时安装这两个服务器
(2)启动POP和IMAP服务
要成功启动POP和IMAP服务器,首先要确定这些服务存在于/etc/services文件,确保以下的服务前面没有加上#注释(如果有,必须去除注释)。
imap 143/tcp imap2 # Interim Mail Access Proto v2
imap 143/udp imap2
pop2 109/tcp pop-2 postoffice # POP version 2
pop2 109/udp pop-2
pop3 110/tcp pop-3 # POP version 3
pop3 110/udp pop-3
修改好/etc/services文件,接下来就要对相应服务配置文件进行定制:
启动POP3服务:必须修改/etc/xinetd.d/ipop3文件,将其中的“disable=yes”改为“disable=no”,保存该文件。最后必须重新启动xinetd程序来读取新的配置文件,使得设定内容生效:
[root@ahpeng root]#/etc/rc.d/init.d/xinetd reload
启动IMAP服务:必须修改/etc/xinetd.d/imap文件,将其中的“disable = yes”改为“disable =no”,保存该文件。最后必须重新启动xinetd程序来读取新的配置文件,使得设定内容生效:
[root@ahpeng root]#/etc/rc.d/init.d/xinetd reload
设置好以后,就可以在Outlook Express里面设置好邮件账号,以后就可以直接利用Sendmail服务器进行收发邮件了,由于邮件服务器就在本地局域网,所以速度很快。
五、Linux下的网络邻居Samba
Windows可以通过网络邻居访问局域网主机,而在Linux下可以通过Samba客户端访问局域网内的Windows主机,也可以通过Samba 服务器给Windows主机提供文件、打印机服务。为了方便讲述,这里假设Windows主机的计算机名为Peter,设Linux主机的名称为 RedHat。
1.安装Samba组件
如果选择完全安装Red Hat Linux 9.0,则系统会默认安装Samba组件。我们可以在终端命令窗口输入以下命令进行验证:
[root@ahpeng root] rpm -qa | grep samba
如果结果出现以下所示的5个软件包,则表示已经安装:
samba-swat-2.2.7a-7.9.0
samba-2.2.7a-7.9.0
redhat-config-samba-1.0.4-1
samba-common-2.2.7a-7.9.0
samba-client-2.2.7a-7.9.0
如果没有安装过Samba软件包,则可以插入第1张安装光盘,然后鼠标依次单击“主菜单→系统设置→添加/删除应用程序”菜单项,打开“软件包管理”对话框,在该对话框中找到“Windows文件服务器”选项,确保该选项处于选中状态,然后单击“更新”按钮即可开始安装。
你也可以把第1张安装光盘插入光驱,然后在终端命令窗口输入以下命令:
[root@ahpeng root]# cd /mnt/cdrom/RedHat/RPMS
[root@ahpeng RPMS]# rpm -ivh samba*
[root@ahpeng RPMS]# rpm -ivh redhat-config-samba-1.0.4-1.noarch.rpm
2.Linux主机访问Windows主机
安装好Samba之后,就有了与Windows互相访问的基础。这里先介绍一下如何用字符命令方式访问Windows宿主机的共享资源。
(1)查询宿主机的共享资源
可以使用“smbclient –L WindowsHostName”命令(此处的WindowsHostName用Windows主机名代替)。本例是要查询Windows主机Peter 上的共享资源,可以在终端窗口输入“smbclient –L Peter”命令,然后回车即可看到Windows主机的共享资源。
(2)连接宿主机的共享目录
可以使用“smbclient //WindowsHostName/ShareName”命令来连接Windows主机上的某个共享文件夹,如果该共享文件夹需要用户名和密码,则可以使用“smbclient //WindowsHostName/ShareName –U UserName”命令。例如要连接Windows主机Peter上的共享目录Share,我们可以在终端窗口输入“smbclient //Peter/Share”命令然后回车即可。
如果连接成功,即可出现“smb:>”提示符,在该命令提示符下输入适当的命令,即可对所连接的共享目录进行操作。
Smb支持的命令有大约40个命令,可以很方便地对共享目录进行删除、重命名、切换目录等操作。如果要列出共享目录“Share”下的具体内容,可以使用ls命令。要删除其下的test.txt文件,可以使用“del test.txt”命令。
(3)映射网络驱动器
我们知道,Windows下可以将共享目录映射为网络驱动器,这样就可以把共享目录当成本地文件夹来使用。在Linux下可以借助于 smbmount命令来实现,具体的命令参数是“smbmount //WindowsHostName/ShareName /mnt/smbdir”(此处的ShareName指代Windows共享资源名称,smbdir指代挂载点名称)。假设要将Windows主机 Peter下的共享文件夹Share映射为/mnt/WinShare目录,具体步骤是:
首先在/mnt目录下创建一个目录,假设为/mnt/WinShare;
然后打开终端命令窗口,运行“smbmount //Peter/Share /mnt/WinShare”即可;
现在再在文件管理器里打开/mnt/WinShare目录可以看到共享目录的内容!要卸载该映射目录,可以使用umount命令。
(4)用Nautilus访问Windows主机
借助Gnome桌面下的文件管理器Nautilus,我们可以用图形界面来访问Windows主机,这里要注意的是Nautilus只是提供访问Windows主机的图形界面,具体的底层操作还是借助于Samba客户端来完成。
在Gnome桌面环境下,单击“主菜单→网络服务器”菜单项,即可用Nautilus文件管理器查看工作组列表。双击工作组名称,即可看到其下的Windows主机。
双击其中的某台Windows主机图标,即可看到该主机的共享文件夹,可以看到这和Windows下的网络邻居几乎一样。
由于Nautilus本身就是Red Hat Linux的文件管理器,所以我们可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等等(对于Windows 2000/XP主机还需要考虑该共享资源的权限设置)。
3.Windows主机访问Linux主机
要想让Windows宿主机能够访问Linux虚拟机,就必须在Linux虚拟机上启动Samba服务。在启动之前,还需要对Samba服务的属性进行配置,例如指定Linux虚拟机的共享目录、所在的工作组名称等。
(1)配置Samba服务器
在以前版本的Red Hat Linux,我们必须直接修改Samba配置文件smb.conf,或者使用SWAT对Samba进行全方位的设置。Red Hat Linux 9.0新引入了一个图形化的Samba服务器配置工具,可以让我们很方便地对Samba服务器进行配置。以root用户身份登录系统,单击“主菜单→系统设置→服务器设置→Samba服务器”菜单项,即可打开Samba服务器配置对话框。也可以在终端命令窗口输入“redhat-config- samba”,来访问Samba服务器配置对话框。
首先对Samba服务器的基本设置和安全选项进行配置,单击配置对话框上的“首选项→服务器设置”菜单项,即可打开服务器设置对话框。
基本设置:在对话框的“基本”标签页,我们可以指定Linux主机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。
安全设置:然后进行Samba服务器安全设置,这里一共有4个选项。
“验证模式”代表如果Windows主机不是位于NT域里,此处应该选择“共享”验证模式,这样只有在连接Samba服务器上的指定共享时才要求输入用户名、密码;“验证服务器”代表对于“共享”验证模式,无需启用此项设置;“加密口令”选项应该选择“是”,这样可以防止黑客用嗅探器截获密码明文;“来宾账号”代表当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾Samba账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。
添加共享目录:单击Samba配置对话框工具栏上的“增加”按钮。在打开的对话框中的“基本”标签页上,指定(共享)目录为某个存在的目录,例如可以指定/tmp,再指定该目录的基本权限是只读还是读/写。在“访问”标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。
(2)启动Samba服务器
打开终端命令窗口,输入“/sbin/service smb start”命令,即可出现以下提示信息,表示Samba服务已经启动。
# /sbin/service smb start
启动SMB 服务 [确定]
启动NMB 服务 [确定]
接下来在Windows里打开“网络邻居”,就可以看到我们刚才设置的Samba服务器了! |
|