在CentOS 6.3上搭建FTP服务器vsftpd

vsftpd是Linux平台下非常著名的一个ftp软件。vsftpd是 very secure ftp daemon 的缩写。

一、安装vsftpd
先检查系统中是否安装了vsftpd
[root@localhost Packages]# rpm -qa | grep vsftpd
[root@localhost Packages]#

如果没安装,就继续下面安装。

CentOS 的第一张安装光盘插入光驱,在光盘的Packages目录下找到vsftpd安装包,然后安装。
[root@localhost Packages]# ls *vsftpd*
vsftpd-2.2.2-11.el6.x86_64.rpm
[root@localhost Packages]# rpm -ivh vsftpd-2.2.2-11.el6.x86_64.rpm
Preparing...                ########################################### [100%]
  1:vsftpd                ########################################### [100%]

二、启动vsftpd服务

[root@localhost Packages]# service vsftpd status
vsftpd is stopped
[root@localhost Packages]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]

vsftpd的匿名用户的默认主目录是/var/ftp,vsftpd 的配置文件位于/etc/vsftpd目录下。

三、测试在客户端访问vsftpd服务器的/var/ftp目录。

在Windows系统的资源管理器的“地址”栏中输入“ftp://Centos系统的IP地址”,回车即显示当前/var/ftp目录下的内容啦。

四、vsftpd 匿名用户的上传和下载权限的配置

很多朋友配置vsftpd时不能使用匿名用户上传和下载(创建目录或删除、重命名文件夹),本文主要解决vsftpd的匿名用户权限配制问题。

配置要注意三部分,请一一仔细对照:

1. vsftpd.conf文件的配置(vi /etc/vsftpd/vsftpd.conf)
#允许匿名用户登录FTP(如果不允许匿名访问就设置为NO,后面有添加FTP用户的详细介绍)
anonymous_enable=YES
#打开匿名用户的上传权限
anon_upload_enable=YES
#打开匿名用户创建目录的权限
anon_mkdir_write_enable=YES

#允许匿名用户具有建立目录和上传之外的权限,如重命名、删除等。

anon_other_write_enable=YES

2. ftp目录的权限设置
ftp的根目录为/var/ftp,为了安全,这个目录默认不允许设置为777权限,否则ftp将无法访问。/var/ftp/pub是匿名用户的默认访问目录,即vsftpd.conf文件中没有anon_root设置时的默认目录。不知为何,如果用anon_root指定其它目录后,在终端用ftp命令匿名登录就失败,并提示:500 OOPS: vsftpd: refusing to run with writable anonymous root 错误,目前还没有找到具体原因和解决办法。

一般至此,便实现vsftpd匿名用户的上传下载了,如果还不行,就按下面说明配置一下selinux。

3. selinux的配置
SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,是 Linux上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 FedoraRed Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
  
最简单的办法是关闭selinux
方法1:修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。(验证通过)
方法2:用命令setenforce 0,无需重启。(setenforce的格式:setenforce [ Enforcing | Permissive | 1 | 0 ]) (转述的,没试过)
方法3:在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux。(转述的,没试过)
  
使用getenforce查看当前selinux是否正在运行。
  
如果不关闭selinux,就要设置selinux的ftp权限。(转述的,没试过)
(1)使用getsebool -a | grep ftp查看ftp相关设置状态,我们要将allow_ftpd_anon_write设为on。
(2)使用setsebool -P 进行设置。例:setsebool -P allow_ftpd_anon_write=on。
   或使用togglesebool进行bool值取反,例如togglesebool allow_ftpd_anon_write。
(3)修改selinux安全上下文,先介绍两个命令:
   命令1:ls -Z  ps -Z  id -Z  # 分别可以看到文件,进程和用户的SELinux属性
   命令2:#chcon 改变SELinux安全上下文
   chcon -u  对象
       -r
       -t
       -R 递归
       --reference 源文件 目标文件          # 复制安全上下文
   使用方法:
    步骤1:ls -Zd /var/ftp/upload/ 通常会看到:
     drwxr-xr-x ftp root system_u:object_r:public_content_t /var/ftp/upload/
    步骤2、chcon -R -t public_content_rw_t /var/ftp/upload/
    步骤3、ls -Zd /var/ftp/upload/ 如果看到如下信息就OK了:
     drwxr-xr-x ftp root system_u:object_r:public_content_rw_t /var/ftp/upload/
  最后还是重启下selinux和vsftpd吧,不重启其实也没关系。重新登录到ftp上,应该就能解决问题了。
  另,selinux的图形界面 可由system-config-selinux命令进入。

--------------------------------------分割线 --------------------------------------

FTP服务器的简介就不介绍了,相信大家都知道是什么东东。不了解的就google吧!这里用到的FTP服务器软件是非常著名的vsftpd.

1.安装vsFTPd软件
源码安装就不说了,可以google,因为在线安装很方便的.
Fedora下安装很简单 yum install vsftpd 即可.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/759085075d1a9d6306307bfcf114bf15.html