vsftp是very secure FTP的缩写,是linux下非常著名的FTP服务器软件。下面是服务器端的安装和配置过程。

一、安装vsftp

如果有yum工具的话可以直接安装: yum -y install vsftpd

如果没有软件包工具,可能就需要wget然后从源代码编译了。

二、配置vsftp

vsftp的主要配置文件位于/etc/vsftpd目录下。其中ftpusers文件是不能登陆ftp系统的用户黑名单,而user_list则对用户能否切换目录进行配置。主配置文件是vsftpd.conf。

anonymous_enable=NO #不允许匿名用户访问

local_enable=YES #可以让系统用户登陆。如果不想让某个系统用户访问ftp,可以把其添加到ftpusers文件里。

anon_upload_enable=YES #允许用户上传

anon_mkdir_write_enable=YES #允许用户新建文件夹

anon_other_write_enable=YES #允许用户删除

connect_from_port_20=YES #允许使用20端口像客户端发送数据

nopriv_user=nobody #设置vsftpd进程的执行者

ascii_upload_enable=YES

ascii_download_enable=YES #运行以ASCII编码进行上传下载

max_clients=20 #设置最大并发连接数

max_per_ip=3 #每个IP最多连接数

pasv_enable=YES #允许被动模式连接。由于用户或者服务器一般都在防火墙之后,请务必开启这个选项

pasv_min_port=xxxx

pasv_max_port=xxx #配置被动模式的端口号

local_root=/ftp #配置FTP的根目录

三、更改iptalbes和防火墙

主要是增加21端口和被动模式使用的端口

-A INPUT –dport 21 -j ACCEPT

-A INPUT –dport xxx:xxx -j ACCEPT

四、如果需要,要更改selinux配置

chcon -R -v /ftp -t public_content_t /ftp

进行了如上配置,不在ftpusers名单里的任意一个系统用户均可以访问服务器,并且其目录限定在/ftp下。为了控制权限,可以更改/ftp的属主为root:root,权限为755。然后在/ftp下建立一个pub目录,设置其权限为777,以供用户上传。

如果需要,可以建立一个系统用户,设置其bash为/sbin/nologin,设置其密码后,让其仅可以登陆FTP。

useradd -s /sbin/nologin -M ftp_user

passwd ftp_user