Linux CentOS环境下使用vsftpd搭建ftp服务器-安装、配置
编辑:狂族晨曦 来源:系统运维,经验杂笔 日期:2016-10-19 阅读: 2,886 次 2 条评论 » 百度已收录
FTP在服务器中是门户集的应用,几乎人人都有接触。先森在公司上班也有三个月了,FTP的搭建也有了自己的一个文档,最近都没有怎么更新博客了,所以把自己用的部署文档整理一下发布出来,有问题还请指点。
公司服务器用的FTP服务器都是清一色的vsftpd,所以本文是用vsftpd搭建FTP服务器。另外,先森发现,万网免费虚拟主机用的FTP也是vsftpd。
vsftpd
vsftpd安装
安装没有什么说的,vsftpd可以直接yum安装,也可以下载rpm包安装:
rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
因为先森用的是CentOS 6.8的系统,默认安装的vsftpd版本为2.2.2的。
相关命令如下:
# 启动ftp服务 service vsftpd start # 查看ftp服务状态 service vsftpd status # 重启ftp服务 service vsftpd restart # 关闭ftp服务 service vsftpd stop
创建FTP用户
首先创建一个不能登录系统的用户:
useradd -d /web/data/ftp -s /sbin/nologin -M xsftp
useradd参数解释:
-d:设置用户根目录 -s:设置用户登录后所用的shel -M:创建用户不自动创建根目录
设置用户权限到文件夹
chown -R xsftp /web/data/ftp
设置权限
chmod 777 /web/data/ftp
设置密码
passwd amtftp -> 密码 -> 确认密码
有时候需要修改FTP用户的根目录,下面说下怎么修改。
usermod -d /usr/newfolder -u uid username
uid:用户UID,可在/etc/passwd中查到。
username:用户名
修改配置文件
vsftpd的配置
配置文件:/etc/vsftpd/vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
修改以下参数:
anonymous_enable=NO # YES改为NO,禁止匿名用户登录
取消注释:
chroot_local_user=YES #是否将所有用户限制在主目录,YES为启用,NO或者注释为禁用
末尾添加:
pasv_enable=yes #开启FTP被动模式 pasv_max_port=6666 pasv_min_port=5555 # FTP被动模式所用端口范围5555到6666
保存退出
防火墙iptables的配置,开启FTP端口
vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 5555:6666 -j ACCEPT service iptables restart
【限制用户只能访问其主目录】
很多情况下,我们希望限制ftp用户只能在其主目录下(root dir)下活动,不允许他们跳出主目录之外浏览服务器上的其他目录,这时候我就需要使用到chroot_local_user,chroot_list_enable,chroot_list_file这三个选项了。
chroot_local_user #是否将所有用户限制在主目录,YES为启用,NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的) chroot_list_enable #是否启动限制用户的名单 YES为启用,NO禁用(包括注释掉也为禁用) chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单
至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!
历史上的今天:
转载请注明出处来自https://www.capjsj.cn/vsftpd.html
博主现在越来越6了
博主越来越牛越来越豪了!