vsftpd作为FTP服务器,在Linux系统中是非常常用的。下面我们介绍如何在centos系统上安装vsftp。

什么是vsftpd

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

安装vsftpd

1、以管理员(root)身份执行以下命令

  1. yum install vsftpd

2、设置开机启动vsftpd ftp服务

  1. chkconfig vsftpd on

3、启动vsftpd服务

  1. service vsftpd start

管理vsftpd相关命令:

停止vsftpd:  service vsftpd stop

重启vsftpd:  service vsftpd restart

配置防火墙

打开/etc/sysconfig/iptables文件

  1. vi /etc/sysconfig/iptables

在REJECT行之前添加如下代码

  1. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

保存和关闭文件,重启防火墙

  1. service iptables start

配置vsftpd服务器

默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。

  1. vi /etc/vsftpd/vsftpd.conf

添加ftp用户

下面是添加ftpuser用户,设置根目录为/var/www,禁止此用户登录SSH的权限,并限制其访问其它目录。

1、修改/etc/vsftpd/vsftpd.conf

将底下三行

  1. #chroot_list_enable=YES
  2. # (default follows)
  3. #chroot_list_file=/etc/vsftpd.chroot_list

改为

  1. chroot_list_enable=YES
  2. # (default follows)
  3. chroot_list_file=/etc/vsftpd/chroot_list

3、增加用户ftpuser,指向目录/var/www,禁止登录SSH权限。

  1. useradd -d /home/www -g ftp -s /sbin/nologin ftpuser

4、设置用户口令

  1. passwd ftpuser

5、编辑文件chroot_list:

  1. vi /etc/vsftpd/chroot_list

内容为ftp用户名,每个用户占一行,如:

peter
john

6、重新启动vsftpd

  1. service vsftpd restart

另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:

http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users

出现的错误

1、500 OOPS: cannot change directory
解决方法:

在终端输入命令:

  1. setsebool -P ftpd_disable_trans 1
  2. service vsftpd restart

就OK了!
原因:这是因为服务器开启了selinux,这限制了FTP的登录。

centos vsftpd 出现553 Could not create file 解决方法

1。首先确保你的FTP目录 文件是可写的,ls -l 可以查看 如果不是则 chmod 777 ftpd目录

2。使用命令getsebool -a|grep ftp 查看
ftpd_disable_trans ftp_home_dir allow_ftpd_full_access 是否为on 
如果不是则使用
setsebool allow_sftpd_full_access on 
setsebool ftpd_disable_trans on
setsebool ftp_home_dir on
3。一般这样就可以了,如果还不行请查看配置文件,如果配置文件没有问题可以先远程连接服务器在FTP目录下随便创建一个文件,使用ftp刷新下目录会恢复正常(这个情况我遇到过)

4、chmod -R 777 /var/www

7.实现虚拟路径
将某个目录挂载到FTP服务器下供用户使用,这就叫做虚拟路径.
比如将gxl用户的目录挂载到FTP服务器中,供FTP服务器的用户使用,使用如下命令即可:
[root@localhost opt]# mount --bind /home/gxl /var/ftp/pub #使用挂载命令
[root@localhost opt]# ls /var/ftp/pub
LumaQQ Screenshot.png 桌面

8.打开vsFTPd的日志功能
添加下面一行到vsftpd.conf文件中,一般情况下该文件中有这一行,只要把前面的注释符号#去掉即可,没有的话就添加,或者修改:
xferlog_file=/var/log/vsftpd.log

9.限制链接数,以及每个IP最大的链接数
修改配置文件中,例如vsftp最大支持链接数100个,每个IP能支持5个链接:
max_client=100
max_per=5

10.限制传输速度
修改配置文件中,例如让匿名用户和vsftd上的用户(即虚拟用户)都以80KB=1024*80=81920的速度下载
anon_max_rate=81920
local_max_rate=81920

11.将用户(一般指虚拟用户)限制在自家目录
修改配置文件中,这样用户就只能访问自己家的目录了:
chroot_local_user=yes
如果只想某些用户仅能访问自己的目录,其它用户不做这个限制,那么就需要在chroot_list文件(此文件一般是在/etc/vsftpd/中)中添加此用户.
编辑此文件,比如将test用户添加到此文件中,那么将其写入即可.一般的话,一个用户占一行.
[root@localhost vsftpd]# cat chroot_list
test

12.绑定某个IP到vsFTPd
有时候要限制某些IP访问服务器,只允许某些IP访问,例如只允许192.168.0.33访问这个FTP,同样修改配置文件:
listen_address=192.168.0.33

配置vsftpd.conf
                   anonymous_enable=NO            #禁止匿名
                   local_enable=YES                       #允许本地登录
                   write_enable=YES                       #允许写,如需上传,则必须
                   local_umask=027                        #将上传文件的权限设置为:777-local_umask
                   anon_upload_enable=YES          #允许虚拟用户和匿名用户上传
                   anon_other_write_enable=YES #允许虚拟用户和匿名用户修改文件名和删除文件
                   dirmessage_enable=YES           
                   xferlog_enable=YES                      #打开日志记录
                   connect_from_port_20=YES
                   xferlog_file=/var/log/vsftpd.log     #日志存放位置
                   xferlog_std_format=YES              #标准日志格式
                   idle_session_timeout=600        #空闲连接超时
                   data_connection_timeout=120
                   ftpd_banner=Welcome to ChinaRise FTP service       #欢迎信息
                   guest_enable=yes                       #允许虚拟用户
                   guest_username=vsftpdguest #虚拟用户使用的系统账号
                   virtual_use_local_privs=YES     #虚拟用户拥有本地系统权限

chroot_local_user=NO              
                   chroot_list_enable=YES
                     #以上两行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用                            
                   chroot_local_user=YES

listen=yes                #监听/被动模式
                   listen_port=21        #监听端口

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list       #虚拟用户名单保存在文件/etc/vsftpd/vsftpd.chroot_list 中
                   user_config_dir=/etc/vsftpd/vsftpd_user_conf   #每个虚拟用户名的更加详细的培植保存在/etc/vsftpd/vsftpd_user_conf 中

虚拟用户其他设置

在/etc/vsftpd/vsftpd.chroot_list 文件中写入允许登陆的虚拟用户名称,每行一个
      在/etc/vsftpd/vsftpd_user_conf 文件夹中创建一个以虚拟用户用户名命名的文件,
      写入:local_root = /var/FTP/子目录名
      然后在/var/FTP下创建一个对应的目录即可

最新文章

  1. 011商城项目:图片服务器的安装---nginx
  2. Linux的fasync驱动异步通知详解【转】
  3. GitHub简单教程
  4. AEAI ESB V3.5.4开源发布,应用集成平台
  5. UIDatePicker倒计时 swift
  6. sqlplus与sqlplusw (转)
  7. Ajax跨域访问解决办法
  8. toj2867 Picking Problem
  9. 学习手机端的META差异,打造自己的移动网页
  10. PC逆向之代码还原技术,第六讲汇编中除法代码还原以及原理第二讲,被除数是正数 除数非2的幂
  11. Netty入门(三)之web服务器
  12. CString比较不区分大小写
  13. SQL Server 2008 R2 根据WSDL访问WebService
  14. Python3 tkinter基础 Entry get 点击按钮 将输入框中文字输出到控制台
  15. 点击DIV随机换颜色
  16. BZOJ3288 Mato矩阵
  17. 新浪微博XSS攻击事件
  18. 插入排序(InsertionSort)
  19. javascript js自执行函数
  20. javascrip 中排序的函数怎么理解

热门文章

  1. 分布式文件系统FastDFS集群部署
  2. 【16】vuex2.0 之 getter
  3. ios - 工具类
  4. [LeetCode] Scramble String 字符串 dp
  5. 为什么mfc的入口是InitInstance()而没有WinMain() (转)
  6. C#TreeView读取Xml,TreeView导出到Xml
  7. nodejs编写实例基础操作
  8. EasyUI左边树菜单和datagrid分页
  9. AC日记——食物链 codevs 1047
  10. 在typescript中import第三方类库clipboard报错