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 默认安装在 Fedora 和 Red 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 即可.