第十三节、VSFTP服务

FTP协议及VSFTP服务

FTP是文件传输协议,正是由于这种协议使得主机间可以共享文件。 FTP 使用TCP生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。
vsftpd是一款在Linux发行版中最主流的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握。
目前在开源操作系统中常用的FTP服务器程序主要有vsftpd、ProFTPD、PureFTPd和wuftpd等

安装服务端VSFTP命令

yum install vsftpd* -y

查看命令及相关文件的安装路径,共享目录路径
[root@mini ~]# rpm -ql vsftp
/etc/rc.d/init.d/vsftpd   #启动文件位置
/etc/vsftpd/vsftpd.conf #配置文件位置
/usr/sbin/vsftpd  #命令位置
[root@mini pub]# pwd
/var/ftp/pub       #上传文件的默认发布目录
修改配置文件(先备份原文件再去除带#的注释语句)
[root@mini ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak#备份原配置文件
[root@mini ~]# grep -v "#" /etc/vsftpd/vsftpd.conf #利用v参数查找除注释语句外的内容,粘贴到新建的配置文件中
anonymous_enable=YES    #允许匿名用户访问FTP服务器
local_enable=YES  #允许本地用户登录FTP
write_enable=YES #允许用户在FTP目录下有写的权限
local_umask=022  #设置本地用户文件生成掩码,计算权限用
dirmessage_enable=YES #激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES #启用上传和下载日志功能,记录上传下载行为
connect_from_port_20=YES #启用FTP数据端口的连接请求
xferlog_std_format=YES #是否使用标准的ftpd xferlog日志文件格式
listen=YES #使vsftpd处于独立启动监听端口模式

pam_service_name=vsftpd  #设置PAM认证服务配置文件名称,文件存放在/etc/pam.d/目录
userlist_enable=YES #用户列表中的用户是否允许登录FTP服务器,默认是不允许
tcp_wrappers=YES #使用tcp_wrqppers作为主机访问控制方式,是否受防火墙控制
[root@mini ~]# vim /etc/vsftpd/vsftpd.conf   #新建配置文件
######VSFTPD CONFIG 2016
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
备注信息,配置文件中的userlist列表
#该列表中的用户默认禁止登录FTP服务器,默认是一些系统用户,如果禁止某些用户直接加入该列表
[root@mini vsftpd]# cat /etc/vsftpd/user_list 
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
##另外ftpusers 目录下的用户一样也禁止登录FTP服务器,比如想用root用户就需要在两张表中把root用户都删除
[root@mini vsftpd]# cat /etc/vsftpd/ftpusers 
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
启动VSFTP

/etc/init.d/vsftpd start|stop|restart

客户端远程连接

我的电脑地址栏输入ftp://VSFTP_IP
vsftp的用户密码可以直接使用linux系统创建的普通用户和密码,直接通过useradd user_name来创建,而且上传的文件会存放在每个用户的家目录/home中.

故障排查

搭建时遇到如下情况,客户端无法连接FTP服务器


windows无法连接

经排查应该是用了代理软件的问题,看看IE设置里的连接的局域网设置,是不是打开了自动配置脚本?
解决方法就是取消使用自动配置脚本,或者打开代理软件。


解决办法
创建VSFTP虚拟用户

centos6.5版本下

  • 首先安装db4数据库服务yum install db4* -y
  • 创建虚拟用户目录文件
[root@mini ~]# vim /etc/vsftpd/ftpusers.txt  #创建文件
hx  #用户名1
1231 #密码
hw  #用户名2
2223 #密码
  • 生成虚拟用户数据库文件db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
  • 更改数据库文件权限chmod 700 /etc/vsftpd/vsftpd_login.db
  • 配置PAM验证文件
    在配置文件vi /etc/pam.d/vsftpd 行首加入如下两行认证语句:(如果是32位,lib64需改成lib,如果RedHat,加入的语句不一样,需注意)
auth        sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/vsftpd_login
account  sufficient      /lib64/security/pam_userdb.so      db=/etc/vsftpd/vsftpd_login
  • 创建vsftpd映射本地用户
    所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。主要用来做虚拟用户映射使用。
    useradd -s /sbin/nologin ftpuser
  • 修改完整版vsftpd.conf配置文件
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
guest_enable=YES  #启用虚拟用户映射本地用户
guest_username=ftpuser #使用的本地用户名
allow_writeable_chroot=YES #chroot将权限最小化的限制到服务本身如这里限制到vsftp
pam_service_name=vsftpd #引用认证文件,可重定向到其他配置文件如vsftpd.vu
user_config_dir=/etc/vsftpd/vsftpd_user_conf #虚拟用户配置文件路径
virtual_use_local_privs=YES #虚拟用户拥有本地用户的所有权限

保存重启,service vsftpd restart 即可使用虚拟用户登录,这时候所有的虚拟用户共同使用/home/ftpuser目录上传下载
即所有虚拟用户的文件都保存在ftpuser的家目录下/home/ftpuser

  • 为不同的虚拟用户创建各自的目录
    mkdir -p /etc/vsftpd/vsftpd_user_conf 创建虚拟用户配置目录
vim hx #创建对应用户的配置文件
local_root=/home/ftpuser/hx  #锁定用户到自己的专用目录
write_enable=YES   #可写
anon_world_readable_only=YES  #允许读取
anon_upload_enable=YES  #允许上传
anon_mkdir_write_enable=YES  #允许创建文件
anon_other_write_enable=YES  #允许其他人写入
  • 创建各自专属目录并授权
    mkdir -p /home/ftpuser/{wugk,wugk1} ;chown -R ftpuser:ftpuser /home/ftpuser
备注:因为虚拟用户是基于db库文件,所以每次修改完/etc/vsftpd/ftpusers.txt必须重新生成库文件

db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db

RHEL7系统VSFTP服务

服务安装后需要注意开启selinux状态时候基于安全的考虑selinux的作用域会限制VSFTP的共享目录pub下文件的创建写入权限报错550

ftp>mkdir gugu
550 Create directory operation failed.
[root@localhost~]# getsebool  -a |grep ftp
ftpd_full_access --> off   #筛选结果ftp完全访问权限是关闭的
[root@localhost~]# setsebool   -P  ftpd_full_access=on   #打开权限

在linux系统上测试需要安装ftp工具

[root@localhost~]# yum install -y ftp
[root@localhost~]#  ftp 192.168.10.10 #登录VSFTP服务器
Connected to 192.168.10.10 (192.168.10.10)
220 (vsFTPd 3.0.2)
Name (192.168.10.10:root) : anonymous    #匿名用户
331 Please specify the password.
Password:
230 Login successful.
Remote  system  type is  UNIX.
Using  binary  mode to  transfer  files.
ftp>cd pub
250 Directory successfully changed. 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • 《水浒传》第五回中,山寨王周通看上了桃花庄刘太公的独生女,硬要把她娶上山。路过桃花庄的鲁智深受到刘太公的款待后,出...
    爱吃鱼的企鹅阅读 1,116评论 0 0
  • Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间...
    万总有点菜阅读 313评论 0 0
  • 晚上在教室待不下去了,早早回到寝室。本周的学习计划是审计14财管9经济法9,好像每个都没有达到预期。坐在教室里,坐...
    柠檬安然阅读 141评论 0 0