Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10724284
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:35:40

三、架设FTP服务器
  FTP,即File Transfer Protocol,文件传输协议。它是目前Internet上最流行的数据传送方法之一。利用FTP协议,我们可以在FTP服务器和FTP客户端之间进行双向数据传输,既可以把数据从FTP服务器上下载到本地客户端,又可以从客户端上传数据到远程FTP服务器。

  1.安装vsftpd服务器
  vsftpd是目前Linux最好的FTP服务器工具之一,其中的vs就是“Very Secure”(很安全)的缩写,可见它的最大优点就是安全,除此之外,它还具有体积小,可定制强,效率高的优点。

  如果选择完全安装Red Hat Linux 9.0,则系统会默认安装vsftpd服务器。我们可以在终端命令窗口输入以下命令进行验证:

  [root@ahpeng root] rpm -qa | grep vsftpd

  如果结果显示为“vsftpd-1.1.3-8”,则说明系统已经安装vsftpd服务器。如果安装Red Hat Linux 9.0时没有选择vsftpd服务器,则可以在图形环境下单击“主菜单→系统设置→添加删除应用程序”菜单项,在出现的“软件包管理”对话框里确保选中“FTP服务器”选项,然后单击“更新”按钮,按照屏幕提示插入第3张安装光盘即可开始安装。

  另外,你也可以直接插入第3张安装光盘,定位到/RedHat/RPMS下的vsftpd-1.1.3-8.i386.rpm安装包,然后在终端命令窗口运行以下命令即可开始安装进程:

  [root@ahpeng RPMS] rpm -ivh vsftpd-1.1.3-8.i386.rpm

  2.启动/重新启动/停止vsftpd服务
  从Red Hat Linux 9.0开始,vsftpd默认只采用standalone方式启动vsftpd服务,方法是在终端命令窗口运行以下命令:

  [root@ahpeng root] /etc/rc.d/init.d/vsftpd start

  重新启动vsftpd服务:

  [root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart

  关闭vsftpd服务:

  [root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop

  确认vsftpd服务已经启动后,我们可以在任意一台Windows主机的DOS命令窗口里输入“ftp FTPAddres”(用实际的FTP服务器IP地址或者域名代替FTPAddres),注意用户名、密码都是ftp(ftp是匿名用户的映射用户账号),如下所述:

  Microsoft Windows XP [版本 5.1.2600]

  (C) 版权所有 1985-2001 Microsoft Corp.

  F:\Peter>;ftp FTPAddress

  Connected to FTPAddress

  220 (vsFTPd 1.1.3)   //vsftpd的响应请求

  User (FTPAddressnone)): ftp  //输入用户账号ftp

  331 Please specify the password.

  Password:  //输入密码ftp

  230 Login successful. Have fun.

  ftp>;

  3.vsftpd的配置
  在Red Hat Linux 9.0里的vsftpd共有3个配置文件,它们分别是:

  vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。

  vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

  vsftpd.conf:位于/etc/vsftpd目录下。它是一个文本文件,我们可以用Kate、Vi等文本编辑工具对它进行修改,以此来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

  (1)用户登录控制

  anonymous_enable=YES,允许匿名用户登录。

  no_anon_password=YES,匿名用户登录时不需要输入密码。

  local_enable=YES,允许本地用户登录。

  deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。

  banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。

  (2)用户权限控制

  write_enable=YES,开启全局上传权限。

  local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。

  anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。

  anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。

  chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!

  chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。

  chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。

  chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。

  nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。

  async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!

  ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。

  注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。

  这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。

  (3)用户连接和超时选项

  idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。

  data_connection_timeout=120,设定默认的数据连接超时时间。

  (4)服务器日志和欢迎信息

  dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。

  ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。

  xferlog_enable=YES,启用记录上传/下载活动日志功能。

  xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log。
四、架设邮件服务器
  邮件服务器是一个网站所必须的服务,在这里我们可以通过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的一些简单的语法解释,更多的参数含义及其配置信息可以参见。

  4.为新用户开电子邮件账号
  在Linux里为新用户开设电子邮件账户比较简单,只需在Linux系统里新增一个用户即可。单击“主菜单→系统设置→用户和组群”菜单项,打开“Red Hat用户管理器”对话框,单击“添加用户”按钮,在出现的“创建新用户”对话框里指定用户名、登录口令即可,如图3所示。

  假设我们添加了一个用户Peter(密码为peter),这样该用户就有了一个邮件地址(此处的YourDomain.com用你自己域名代替)。

  以上过程也可以在终端命令窗口运行以下命令来实现:

  [root@ahpeng root]#adduser peter -p peter

  5.为电子邮件账户设置别名
  有一些用户想使用多个电子邮件地址,是不是需要创建多个邮件账号呢?我们可以使用别名(alias)来解决这个问题。

  比如说,用户peter想拥有以下3个电子邮件地址:

  、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只需要使用一个电子邮件账号就可以接收所有寄给以上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服务器进行收发邮件了,由于邮件服务器就在本地局域网,所以速度很快。
阅读(739) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~