RHEL-253
9.10篇~
对于ftp文件传输协议已经不陌生了,而提供ftp服务的软件也是多种多样的.早期的wuftp,proftp,更为安全的vsftp,简单但具有linux特性的lftp都是ftp的应用.
这里主要了解vsftp(very secure ftp),它是红帽的缺省的ftp服务器.它具有stand alone的特性,因此不再受xinetd(它是一种super daemon,早期的计算机因为性能,使用它进行进程的管理,当使用某个资源的时候才唤醒,这种管理方式节约了资源,但并没有效率)的约束,
Vsftp允许系统的,匿名的或者虚拟用户(这里仅局限与ftp)访问ftp服务器.vsftp是由vsftpd包提供的匿名账户目录的结果.缺省的ftp服务器主目录为/var/ftp/.
ftp有两个端口,传输数据的20端口,ftp连接的21端口.
ftp的工作模式主要有两种(均是对server而言),
主动模式(port mode),这是一种由client开启某某端口并连接ftp server的21端口,告诉server”需要下载某个文件,请将其传输到我的某某端口”.
被动模式(pasv mode),这是一种由client连接ftp server的21端口,告诉server”需要下载某个文件”,而server则反馈信息,”我将打开某某端口,你到某某端口自己下载”.
使用vsftp服务,需要安装vsftpd软件.
完成安装之后,可以使用#rpm –ql vsftpd查看所安包的文件目录.
可以看到,vsftpd的配置文件位于/etc/vsftpd/下,且自动生成了/var/ftp目录.
完成安装之后,查看vsftpd服务是否已经开启,未开启则开启,
此时,ftp服务已经完成了,使用#ftp IP来登录远程服务器.这里使用windows本地主机登录.结果登录失败,而实际上是连通的.
检查selinux设置与iptables设置,
Selinux会默认设置为force,这种状态会禁止rhel认证之外的服务运行.所以应该将其改为permissive.
Selinux的配置文件位于/etc/selinux中,/etc/sysconfig/selinux则是selinux的系统级配置文件.而该文件实际是/etc/selinux/config的软连接.
/etc/selinux/config文件存放的是selinux的级别以及类型.
这里可以更改selinux的运行级别.也可以使用setenforce来更改.
完成之后,可以看到selinux的运行级别被更改为了permissive.
Iptables既是我们windows下常说的防火墙,它也是一个重要的安全机制.
#iptables –F用于重置刷新iptables的设置.iptables –L可以查看iptables的状态.
防火墙已经开启,使用iptables –F关闭,或从服务端关闭.
此时发现,已经可以登录了.
anonymous用户的登录是登录到/var/ftp下的,在/var/ftp/创建新文件.
默认情况下,vsftpd允许匿名用户anonymous和虚拟用户ftp登录,而这二者登录默认是不需要密码的.在linux中,默认的登录用户是root,但实际上,此时是无法登录的.
回车之后,直接告诉拒绝权限,登录失败.
这就关系到我们的vsftpd的十分安全的ftp的由来了.前面提到了vsftpd的配置文件.
上面的配置文件中,ftpusers与pam.d模块有关,而vsftpd.conf则是vsftpd的主配置文件.user_list则是一个类似于vip和blacklist的文件.
/etc/vsftpd/vsftpd.conf主配置文件中,有着众多的注释,而该配置文件本身是一个示例的配置文件.过滤掉以#开头的行以及空行,那么会发现,实际上有用的行只有13行.而这,就是与我们的ftp服务相关的配置.
使用#man vsftpd.conf查看vsftpd.conf的详细说明.
首先对于第一条的anonymous_enable=YES,这条语句声明是否允许anonymous用户登录,若允许,那么ftp与anonymous都会成为一个匿名的用户.它的默认值是YES,
注意,这里的值是大写的.
将/etc/vsftpd/vsftpd.conf中的anonymous_enable设置为NO,那么匿名用户将不可登录.
对于一个配置文件,修改之后一定要重启它的对应的服务.
将配置文件改为YES,那么anonymous将可以再次登录.
而local_enable则是对于本地账户(除root)之外的ftp登录权限配置.默认是不允许的.但实际上/etc/vsftpd/vsftpd.conf中loca