感谢支持
我们一直在努力

RHCE认证培训+考试七天实录(二)

第二天(11月27日)
 
第二天的主要内容是搭建vsftpd服务器和postfix邮件服务器。

RHCE认证培训+考试七天实录 系列文章 http://www.linuxidc.com/search.aspx?where=nkey&keyword=15815
 
一、vsftpd服务器
 
1、FTP服务的一些基本概念
 (1)FTP连接方式
 控制连接:标准端口为21,用于发送FTP命令信息。
 数据连接:标准端口为20,用于上传、下载数据。
 (2)数据连接的建立类型
 主动模式:服务端从20端口主动向客户端发起连接。
 被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接。
 一般都采用被动模式。主动模式存在安全隐患,客户机很容易发起DdoS攻击。
 (3)FTP传输模式
 文本模式:ASCII模式,以文本序列传输数据。
 二进制模式:Binary模式,以二进制序列(比特流)传输数据。
 ASCII模式一般只用于纯文本文件传输,而Binary模式更适合传输程序、图片等文件。尤其是对于可执行文件,如果把可执行文件以文本模式传输,则下载下来的文件将无法正常使用。
 在rhel6中默认采用二进制模式,在rhel6以前的版本中默认采用文本模式,为了提高可靠性,rhel6不再支持文本模式。
 (4)FTP用户的类型
 匿名用户:anonymous或ftp,这两个其实是同一个用户。
 本地用户:帐号名称、密码等信息保存在passwd、shadow文件中。
 虚拟用户:使用独立的帐号/密码数据文件。
 
 
2、配置vsftpd服务
 Linux中的ftp服务器程序使用的是vsftpd,名字中的vs是very secure的缩写,所以vsftpd的特点是其安全性和稳定性。其官方站点为:http://vsftpd.beasts.org/。
 vsftpd的主程序:/usr/sbin/vsftpd,服务名:vsftpd。
 默认主目录:/var/ftp/
 主配置文件:/etc/vsftpd/vsftpd.conf
 
 
例1:允许匿名下载,限制用户登录。
 配置ftp服务器,允许匿名用户下载。并且禁止192.168.0.0/24之外的客户端访问ftp服务。
 操作步骤:
 首先安装并启用vsftpd服务:
 # yum install vsftpd
 # service vsftpd start
 在主目录的pub目录下创建一个测试文件:
 # touch /var/ftp/pub/test.txt
 在配置文件/etc/vsftpd/vsftpd.conf中有这样一行:
 anonymous_enable=YES
 表示允许匿名用户登录。
 这样在客户机上就可以用匿名用户(anonymous或ftp)的身份访问服务器。
 限制用户访问的功能是通过配置/etc/hosts.deny和/etc/hosts.allow这两个文件来实现的。
 首先编辑/etc/hosts.deny文件:
 # vim /etc/hosts.deny
 vsftpd:All
 在其中增加了一行“vsftpd:All”,表示禁止所有用户访问ftp服务。
 然后修改/etc/hosts.allow文件:
 # vim /etc/hosts.allow
 vsftpd:192.168.0.
 “192.168.0.”即代表192.168.0.0/24网段,这里只能采用这种标准格式。
 重启vsftpd生效:
 # service vsftpd restart
 
 
例题2:配置ftp服务器,允许匿名用户上传
操作步骤:
 匿名FTP的默认根目录为“/var/ftp”,这里设置子目录“/var/ftp/pub”用于上传,pub子目录的权限默认为755,属于root用户、root组,因此只需要将属主改为ftp,即可赋予匿名用户写入权限
 # chown ftp /var/ftp/pub
 修改配置文件/etc/vsftpd/vsftpd.conf,增加以下几行:
 

“anon_upload_enable=YES”表示允许匿名用户上传。
 “anon_mkdir_write_enable=YES”表示允许匿名用户创建目录。
 “anon_umask=022”是一种反码形式,表示匿名用户创建的目录权限默认为755,文件的权限默认为644。
 注意,此时如果执行命令“setenforce 0”将SELinux设为许可状态,即执行“getenforce”命令显示的SELinux状态为“Permissive”,那么匿名用户可以正常的上传。
 但如果执行命令“setenforce 1”将SELinux启用,即执行“getenforce”命令显示的SELinux状态为“Enforcing”,那么匿名用户就无法上传。
 而无论在生产环境还是在RHCE的考试环境中,SELinux都是必须要启用的。在启用SELinux的情况下要实现匿名上传,就必须修改SELinux的上下文和布尔值。不好意思的是,这里实在是没搞明白SELinux这些设置的含义,只能权且把命令记录下来,留待以后再慢慢理解吧。
 修改上传目录的selinux上下文
 # chcon  -R –t public_content_rw_t /var/ftp/pub
 启用selinux的布尔值
 # setsebool –P allow_ftpd_anon_write on
 修改完了SELinux之后,匿名用户就可以在ftp服务器启用SELinux的情况下实现匿名上传了。
 
例3:修改SELinux的启动模式为enforcing
 这是RHCE考试的第一道题目,其实Linux系统中SELinux的启动模式默认就是enforcing,只不过考试时会提前修改成别的模式,然后要考生再修改成enforcing,估计也是红帽为了体现出SELinux的重要性吧。
 修改SELinux的启动模式需要修改配置文件:/etc/sysconfig/selinux
 # vim /etc/sysconfig/selinux
 SELINUX=enforcing
 保存退出。
 修改完成后必须要将系统重启生效。

二、postfix邮件服务器
 postfix是目前在Linux平台中使用最多的邮件服务器。
 安装postfix服务(默认已经安装):
 [root@mail ~]# yum install postfix
[root@mail ~]# service postfix restart
 [root@mail ~]# chkconfig postfix on
 [root@mail ~]# chkconfig –list postfix
 postfix        0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
 postfix的主要配置文件是:/etc/postfix/main.cf
 
 
例1:用postfix实现本地邮件收发。
 在postfix服务启动之后,就已经可以实现本地邮件收发了。下面以root用户的身份为系统中的mike用户发送一封邮件。
 [root@server14 ~]# mail mike
 Subject: mail test        邮件标题
 This is a test mail        邮件正文
 .                      以.结束
 EOT
 切换到mike用户来接收邮件:
 [root@server14 ~]# su – mike
 [mike@server14 ~]$ mail    执行mail命令来接收邮件
 Heirloom Mail version 12.4 7/29/08.  Type ? for help.
 “/var/spool/mail/mike”: 1 message 1 new
 >N  1  root                  Mon Nov 12 07:50  18/615  “mail test”
 & 1            输入要查看的邮件的编号
 Message  1:
 From root@server14.localdomain  Mon Nov 12 07:50:02 2012
 Return-Path: <root@server14.localdomain>
 X-Original-To: mike
 Delivered-To: mike@server14.localdomain
 Date: Mon, 12 Nov 2012 07:50:02 +0800
 To: mike@server14.localdomain
 Subject: mail test
 User-Agent: Heirloom mailx 12.4 7/29/08
 Content-Type: text/plain; charset=us-ascii
 From: root@server14.localdomain (root)
 Status: R
 
This is a test mail
 
& quit              输入quit命令退出mail模式
 操作结束。
 
 
例2:为网络中的用户student@demo.example.com发送一封邮件。
 经过前面的配置,此时的postfix仅限于本地收发邮件,可以查看一下smtp对应的25端口,只针对本地开放:
  [root@server14 ~]# netstat -an | grep :25
 tcp        0      0  127.0.0.1:25                0.0.0.0:*                  LISTEN
 127.0.0.1:25表示只能针对本地收发。要实现postfix向外发送邮件,需要修改配置文件/etc/postfix/main.cf。
 修改第116行,从inet_interfaces = localhost修改成inet_interfaces=all,保存退出。
 重启postfix服务:
 [root@server14 ~]# service postfix restart
 再次查看25端口,已经在所有接口上开放:
 [root@server14 ~]# netstat -an | grep :25
 tcp        0      0 0.0.0.0:25                  0.0.0.0:*                  LISTEN
 向另一台服务器中的用户发送邮件:
 [root@server14 ~]# mail student@demo.example.com
 Subject: hello
 This is from root@server14.example.com mail
 .
 EOT
 在另外一台名为demo.example.com的服务器上以student用户登录,可以成功接收邮件。
 
 
例3:设置邮件别名和邮件群发。
 配置一个邮箱别名,将发送给admin用户的邮件由本地用户student接收。配置一个群发邮件地址,将发送给xiaoshou@server14.example.com的邮件群发给用户mike@server14.example.com、harry@server14.example.com。
 操作过程:
 设置别名需要修改配置文件/etc/aliases。
 vim /etc/aliases
 admin:  student          设置别名(冒号:前面的是别名)
 xiaoshou:  mike,harry      设置群发
 保存退出。
 设置完成后,需要执行newaliases命令生效。
 
 
例4:在客户机收发邮件
 postfix服务默认只具有smtp功能,即只能发邮件,如果要使客户机能够通过服务器收发邮件,必须在服务器上安装pop3和imap4服务。在RHEL6中提供了一个安全性较好的POP3/IMAP服务器软件Dovecot,首先需要安装该软件。 http://www.linuxidc.com
 # yum install dovecot
 # service dovecot start
 # chkconfig dovecot on
 此时postfix服务器上将会开放110(pop3)、143(imap4)端口。
 修改dovecot的配置文件/etc/dovecot/dovecot.conf:

RHCE认证培训
 
最后的那一行如果设为login_trusted_networks = all,表示所有人都可以收邮件。
 将devecot服务重启:
 # service dovecot restart
 配置完成。在客户端的收发邮件过程不再叙述。

赞(0) 打赏
转载请注明出处:服务器评测 » RHCE认证培训+考试七天实录(二)
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏