一、搭建环境概述
这里使用的是Centos6.2_32bit + vsftpd来搭建FTP文件服务器。这里使用的是yum安装方法,安装非常简单。
二、搭建文件服务器并不难,其方法如下:
1、检查系统是否已经安装了vsftpd : rpm -qa | grep vsftpd
2、如果已经安装了,则删除: rpm -e 文件名
3、没有则运行yum安装命令: yum -y install vsftpd (这里安装的vsftpd版本是: vsftpd-2.2.2-14.el6.i686)
设置开机启动:hkconfig vsftpd on
因为vsftpd有自己的默认配置,此时算已经安装好了(可以通过匿名的方式访问了,但是还不安全,可以做为验证),输入如下的命令:
4、开启FTP服务: service vsftpd start
5、关闭防火墙:service iptables stop
在浏览地址栏输入:ftp://ip ,出现如下界面:
以上是以匿名的方式访问的,即访问的时候,不需要用户名和密码验证信息。另外上图中的pub,默认在/var/ftp/pub或(/var/pub)下, 如果给该目录下上传文件,将可以在浏览器中看见,如下图:
上面这种默认的配置有个问题,就是没有用户身份验证,这显然是不安全的,所以,我们还需要对其进行配置,只让授权的用户才可以访问我的文件服务器。
三、vsftpd的配置
1、打开配置文件 : vi /etc/vsftpd/vsftpd.conf , 确认如下参数:
anonymous_enable=YES //允许匿名用户访问,如果需要身份验证时,需要将其设置为NO
local_enable=YES //本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES //使用户不能离开主目录。保持默认即可,即不打开。
ascii_upload_enable=YES 设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以上信息确认之后,然后再文件的末尾增加如下信息:
guest_enable=YES //设定启用虚拟用户功能
guest_username=ftp //指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf //设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户 名),路径这样比较清晰方便,当然也可以自己定义。
2、配置用户登录认证信息
1. vi /etc/vsftpd/vuser_passwd.txt 奇行是用户名,偶数行是密码,如下
2.将上面的文件生产db文件:
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
编辑认证文件: vi /etc/pam.d/vsftpd , 将文中的内容全部注释掉,增加如下信息:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
3.创建虚拟用户认证的配置文件:
创建存放配置的目录: mkdir /etc/vsftpd/vuser_conf
编辑当前用户相关的配置信息,需要注意的是,下面创建和编辑的文件名必须要和上面的创建的vuser_passwd.txt中的用户名(奇数行)要一致, 否则下面的设置无效 : vi/etc/vsftpd/vuser_conf/user1 ,在user1中增加如下信息:
local_root=/ftp/www //虚拟用户根目录,根据实际情况修改
write_enable=YES //可写
anon_umask=022 //掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
注意: 以上的文本内容, 中间和前后都不能有空格,否则登录的时候会报错!
四、设置selinux
setsebool -P ftp_home_dir=1 //设置ftp可以使用的home目录为可用
setsebool -P allow_ftpd_full_access=1 //设置ftp用户可以有所有权限
五、设置FTP根目录的权限,即上面local_root规定的目录:
mkdir /ftp ; cd ftp ; mkdir www
对新增加的目录(这里是根目录),设置权限:
chmod -R 755 /ftp
chmod -R 777 /ftp/www
六、设置防火墙
1.编辑iptables : vi /etc/sysconfig/iptables ,如下图:
2.找到红色区域的文字,在其下方增加如下信息:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 ACCEPT
重启防火墙 :service iptables restart
重启服务器: service vsftpd restart
在浏览器中地址栏输入: ftp:// ip , 出现如下的界面如下:
输入上面的用户名和密码,登录成功,如下界面:
注意: 以上的信息,在输入的时候,应该特别仔细,一个字母输入错误,都可能导致FTP服务器无法正常运行。