运用vsftpd服务传输文件
1 安装vsftpd
[root@qdlinux ~]# yum install vsftpd
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-22.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================
Installing:
vsftpd x86_64 3.0.2-22.el7 dvd 169 k
Transaction Summary
=======================================================================================================================
Install 1 Package
Total download size: 169 k
Installed size: 348 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : vsftpd-3.0.2-22.el7.x86_64 1/1
Verifying : vsftpd-3.0.2-22.el7.x86_64 1/1
Installed:
vsftpd.x86_64 0:3.0.2-22.el7
Complete!
[root@qdlinux ~]#
2 安装ftp
lftp
客户端软件
[root@qdlinux ~]# yum install ftp lftp -y
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package ftp.x86_64 0:0.17-67.el7 will be installed
---> Package lftp.x86_64 0:4.4.8-8.el7_3.2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================
Installing:
ftp x86_64 0.17-67.el7 dvd 61 k
lftp x86_64 4.4.8-8.el7_3.2 dvd 752 k
Transaction Summary
=======================================================================================================================
Install 2 Packages
Total download size: 812 k
Installed size: 2.5 M
Downloading packages:
-----------------------------------------------------------------------------------------------------------------------
Total 8.7 MB/s | 812 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : lftp-4.4.8-8.el7_3.2.x86_64 1/2
Installing : ftp-0.17-67.el7.x86_64 2/2
Verifying : ftp-0.17-67.el7.x86_64 1/2
Verifying : lftp-4.4.8-8.el7_3.2.x86_64 2/2
Installed:
ftp.x86_64 0:0.17-67.el7 lftp.x86_64 0:4.4.8-8.el7_3.2
Complete!
3 启动服务并参与开机自启动
[root@qdlinux ~]# systemctl start vsftpd
[root@qdlinux ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
4 查看监听端口状态
[root@qdlinux ~]# ss -lntup | grep vsftpd
tcp LISTEN 0 32 :::21 :::* users:(("vsftpd",pid=1411,fd=3))
FTP服务器(File Transfer Protocol
Server)是在互连网上提供文件存储和走访服务的电脑,它们根据FTP协议提供劳动。
FTP服务,
================FTP服务:
FTP:(File Transfer
Protocol)文件传输协议,是TCP/IP协议组中的协议之一;
架构: C/S client/server
B/S browser/server
链接:
命令链接———>command 21号端口
数据链接———> data
链接方式:
主动情势:服务器端从20号端口主动向客户端发出链接请求;
被动方式 :
服务器端在指定范围内的某个端口被动等待客户端发起链接请求;
传输格局:
文本形式: ASCII形式,以文件体系传输数据;
二进制方式:Binary格局,以二进制连串传输数据;
劳动概述:
==============搭建vsftpd服务:
服务器端:
1》安装相关软件包:
yum -y install vsftpd
service vsftpd start 开启服务
lsof -i:21 查占卜关端口
*****:默许景况下大家应用ftp用户登录,只好下载文件,不能够上传文件,所以当大家登录ftp服务器后一贯进去ftp用户的家目录/var/ftp;新建本地用户,才能兑现上
*传和下载文件,上传的文件会在用户的家目录下;***
2》新建本地用户,完成上传和下载文件:
3》修改配置文件:/etc/vsftpd/vsftpd.conf
******man 5 vsftpd.conf
命令可以详细查看配置文件中的各项布置意义
4》客户端登录,并上传下载文件:
================匿名用户相关案例:
=================黑白名单:
==========虚拟账户:满足大批量账户的拜会要求
倘若需求拜访FTP的用户不多,则足以向来开立系统账户以满足对FTP访问的伸手,但当用户量变得愈加粗大时,继续开创更多的系统账户是不明智的,那时就须求为vsftpd成立虚拟账户;但vsftpd虚拟账户的数量须求保留在BerkeleyDB 格式的数据文件中,所以必要设置db4-utils工具来成立这样的数据文件:
1》创立虚拟账户数据库:
首先要求创制明文密码文件,明文文件奇数行为用户名,偶数行为密码,然后利用db_load工具将其转移为数据库文件,db_load工具须要通过设置db4-utils软件取得,最后可以因而修改文件权限以抓牢数据资料的安全性;
2》创设PAM文件,设置基于虚拟账户注解:
Linux一般通过PAM文件设置账户的声明机制,然后经过创立新的PAM文件,使用新的数据文件举办登录验证,PAM文件中的db选项于指定并表明账户和密码的数据库文件,数据库文件无须.db的名号后缀。
3》设置虚拟账户共享目录:
因为具有的虚构账户最终都亟待映射到一个真正的系统账户,所有那里须求加上一个系列账户并设置家目录,可以安装一份测试文件;
useradd -s /sbin/nologin -d /home/ftp virtual
cp /etc/passwd /home/ftp
4》修改主配置文件:
与匿名用户安装大约,使用guest_enable选项开启虚拟账户成效;
5》为种种用户设置独立的共享路径:
通过在主配置文件中应用user_config_dir选项,设置一个基于账户的布署目录,在该目录下可以成立若干个与账户名称同名的文书,并在文书中为此账户设置单独的部署选项,包罗权力与共享路径等设置,那样就可以为种种账户作单独的权限设置等操作,当然假若您还须求对权力,限速,并发量等选用举行设置,可以参照匿名账号的装置选项添加至账号独立的布置文件中;
6》重启服务:
service vsftpd restart
相关测试:
相关命令: mirror 下载文件夹
mirror -R 上传文件夹
wget命令解析:
只能用来下载文件,不可以用来下载文件夹,下载的文件默许放在当前目录下;
==================常见难点浅析:
1》提示错误代码:530 Login incorrect
表明登录进度中账户讲明战败,则可能是因为您使用的是64位操作系统,而pam文件中库文件的调用却采纳的是/lib/security/pam_usedb.so,或者是用户名或密码输入有荒唐;别的,也说不定是vsftpd主配置文件中pam_service_name设置的pam文件名称与/etc/pam.d中开创的pam文件名称不均等,导致力不从心印证成功;
2》指示错误代码:500 OOPS: cannot change directory:/home/ftp/$USER
该提示代表目录不设有或无权力导致的黔驴技穷切换至目录,也有可能是出于SELinux导致的力不从心共享账户家目录,默许SELinux不允许共享家目录;
3》使用windows系统访问主动形式的vsftpd服务器时无法访问成功
默许windows会利用被动情势连接FTP服务器,倘诺急需以积极格局连接服务器,需要修改浏览器的属性,方法是寻找Internet选项的高等级选项卡,找到使用被动FTP,撤除该意义即可;
4》账户登录后无法上传数据:
按照差距的记名类型,检查主配置文件的设置,匿名账号与虚拟账户检查以anon_起来的权柄设置,本地账户检查以local_早先的权限设置,并且要力保全局write_enable设置为YES,其它,文件系统目录的权能也急需修改,确保客户端账户有权力访问该目录;
ll -d /var/ftp
5》启动服务时报错:500 OOPS:bad bool value in config file
vsftpd
配置文件设置错误,检查文件;配置文件需要各样设置项占据独立的一行,并且不得以有多于
的空格;
==================日志分析与防火墙难点:
日志:
安全:
================FTP服务: FTP:(File
Transfer Protocol)文件传输协议,是TCP/IP协议组中的协议之一; 架构: C/S
client/server B/S browser/ser…
CentOS6.5下部署vsftpd实战
1.试验须求:
1)使用RPM包安装vsftpd服务
2)完结匿名用户访问,验证仅可以访问和下载,不可以上传
3)落成匿名用户可上传、下载、修改等统统权限(现实条件中那样的须求可能很小)
4)落成把登陆的用户囚禁在祥和的家目录中
5)已毕限制某些用户的拜访
6)完成虚拟用户的造访
7)完结针对差别的虚拟用户所有分裂的权能
2.试行环境:**
Linux服务器系统版本:Red Hat Enterprise Linux 6.5IP:192.168.20.3
Windows客户机系统版本:Windows 7 Ultimate x64 IP:192.168.20.2
vsftpd软件版本:vsftpd-2.2.2
3.**试行步骤:**
大旨安装操作
A.挂载系统光盘并设置vsftpd**
这里咱们运用rpm安装包安装vsftpd,安装包放在系统光盘中的Packages目录中,大家率先挂载系统光盘到系统的mnt目录下
[[email protected]~]#
mount /dev/sr0 /mnt
到Packages目录下找到vsftpd服务的软件包并设置,安装到位。
[[email protected]~]#
rpm -ivh
/mnt/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm
B.翻看vsftpd配置文件**
[[email protected]
~]# grep -v “#”/etc/vsftpd/vsftpd.conf #过滤掉配置文件中#号的注明
anonymous_Linux下利用vsftp搭建FTP服务器达成文件共享,使用vsftpd服务传输文件。enable=YES#已打开匿名用户的拜会
local_enable=YES#已开启本地账号的造访
write_enable=YES#已拉开写入的权柄
local_umask=022#本地用户上传文件的权位是644,文件夹是755
———————以下配置为服务默许,此试验中无需关切———————-
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
贯彻匿名用户访问,验证仅可以访问和下载,不得以上传
按照vsftpd配置文件的默许配置,当vsftpd搭建好之后如何都不做就足以被匿名用户和本地用户访问了
A.意义验证:**
[[email protected]~]#
service vsftpd start#开行服务
为vsftpd 启动 vsftpd: [确定]
测试此前,必须把防火墙和selinux关掉
[[email protected]
~]# serviceiptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块:[确定]
[[email protected]
~]# setenforce 0
大家在客户机上用文件夹的艺术访问 ftp://192.168.20.3
前几天来测试一下匿名用户的上传和下载权限
小心:大家用匿名账号ftp登陆(无密码),查看现在所在的干活目录为/,那几个/并不是服务器的根目录,而是匿名用户自己的家目录,ls查看发现中间有一个pub的公文夹
家目录就是服务器上/var/ftp那一个目录:
我们作证匿名用户可不得以下载首先要在ftp那么些目录下新建一个可供下载的公文[[email protected]
~]# cd/var/ftp #切换到ftp目录下
[[email protected]]#
echo “this is test ftp” > test.txt #新建一个test.txt文件,内容为this
is test ftp
回来客户机上的cmd控制台
C:\Users\Administrator>f:\
//切换来f盘,大家下载的文书就会下载到f盘
用匿名账号ftp登陆,下载test.txt文件,打开f盘,看到已经下载的文件
明天来表明匿名用户是不是可以上传文件,咱们把刚刚下载都客户机上的test.txt文件改名为tes.txt文件用于上传测试(幸免重名)
上传时被拒绝,所以大家知道匿名用户是只能下载不可能上传的。
这倘若是系统地面账号的话可不得以上传呢?
[[email protected]]#
useradd tom #新建一个tom的账户
[[澳门金沙国际 ,email protected]]#
passwd tom #设置tom的密码
再次来到客户机的cmd控制台,用tom登陆并上传tes.txt文件,上传成功。
[[email protected]]#
ls -l /home/tom
#翻看上传的文件的权能为644(因为布署文件中local_umask=022)
只顾:假诺selunux没有关掉,用地点账户也是不可以登陆的,会报以下错误
心想事成匿名用户可上传、下载、修改等统统权限
大家要让匿名用户能够上传文件夹,须求修改配置文件:
anon_mkdir_write_enable=YES
在意:当我们不明了哪些去安顿要添加什么或要修改哪些选项时,大家得以依赖man手册来寻求协助:
[[email protected]
vsftpd]# manvsftpd.conf
在手册里面查找跟anon相关的内容,我们见到有一项是other
write,他的默许值是No,借使设为yes就可以允许用户上传、创造目录并且删除、重命名等操作
继之我们到vsftpd.conf脚本中插入一行内容:anon_other_write_enable=YES
修改完结之后匿名用户就得到了最高权力(可读写,删除,重命名)
A.修改后的剧本**
B.成效验证**
[[email protected]]#
service vsftpd reload#再也加载配置
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
回到客户端的cmd控制台,以ftp匿名账号登陆,并删除文件,提醒退步。
回去服务器查看ftp这么些目录的权力,是不曾写权限的,所以也就不可以删除
[[email protected]]#
chmod 777 /var/ftp #将ftp权限设为最大
重回客户机,用ftp登陆,发现一直登陆就报错了,因为大家把var/ftp这么些目录权限改到最大了,那样匿名用户就足以飞扬跋扈了,为了安全,vsftpd设置了直接就不容许登陆了。
那么一旦大家想让匿名用户有最大权力应该咋办吧?那时大家应该对ftp目录下的子目录进行操作
[[email protected]]#
chmod 755 /var/ftp #把ftp的权柄改为默许的755
[[email protected]]#
cd /var/ftp
[[email protected]]#
mkdir anon #在ftp目录下新建一个anon目录
[[email protected]]#
chmod 777 anon #修改目录权限为最大
[[email protected]]#
cp test.txt anon #将test文件拷贝到anon目录下,用于末端的删减测试
[[email protected]]#
ls -l #翻开test文件权限为不可写就不得以去除
[[email protected]]#
chmod 666 test.txt #将文件权限改为可写
如此,test.txt就足以被匿名用户删除了。
重返客户机的cmd控制台,用ftp登陆,切换来anon目录,删除test.txt文件,删除成功。当然匿名用户也是足以开展其余操作了此间就不一一测试了。
贯彻把登陆的用户囚禁在大团结的家目录中
现行大家用地点账号tom登陆,默许的当前工作目录是tom自己的家目录,大家得以将他即兴切换来服务器的其他目录下:
这般是那多少个不安全的,所以我们要让用户登陆之后只是只好在他的家目录那个界定活动分化意她擅自切换到任何目录,大家需求修改配置文件使那行配置生效:chroot_local_user=YES
A.修改后的脚本**
B.功能验证**
[[email protected]]#
service vsftpd reload #重复加载配置
关闭vsftpd: [确定]
为vsftpd 启动 vsftpd: [确定]
再次来到客户机的cmd控制台,用tom登陆,切换来根,发现此时的根是她协调的家目录,并不是服务器上的根目录下了,他一度被禁锢在投机的家目录中了。
贯彻限制某些用户的造访
大家查阅vsftpd目录下的情节,发现有一个user_list文件
查看user_list文件内容,发现那几个里面都是被驳回登陆的用户,所以大家要让什么人不可以登陆就把账号写进这几个文件之中就足以了,那里我们测试不让tom登陆
A.修改后的台本**
B.作用验证**
回到客户机的cmd控制台,用tom登陆,登陆战败。
只顾:那里tom登陆战败的来由是因为大家把tom写进了user_list那些文件当中,其它也是因为安插文件中userlist_enable=YES那行设置,假如布置成userlist_deny=YES那么就是只同意user_list中的用户登陆
落到实处虚拟用户的造访
假若大家只是想要新建vsftpd账号而不让他作为一个系统账号的话就可以用到虚拟账号功用了
[[email protected]
vsftpd]# vim vuser #新建一个叫做vuser的文书
在这么些文件中基数行为用户名,偶数行为密码,大家新建几个用户lisa和jack
[[email protected]
vsftpd]# db_load -T -thash -f vuser vuser.db#将vuser转换成数据库文件
db_load是命令 -T指定转换-t 指定转换类型为hash
-f指定要转换的公文vuser.db为转移后的文件名
[[email protected]
vsftpd]# file vuser.db
#翻开文件类型,可以见见vuser已经被转换成一个vsftpd能识其余hash数据库文件
[[email protected]
vsftpd]#chmod 600vuser
#为了安全,不想让其余用户可以看到那一个文件里有哪些东西,修改权限为600
[[email protected]
vsftpd]#chmod 600vuser.db
编造用户创制之后,要给虚拟用户映射到一个种类账号
[[email protected]
vsftpd]# useradd -d/opt/vuser -s /sbin/nologin
vuser#新建一个虚构用户的照耀账号vuser,指定宿主目录为opt/vuser,并指定不一样意登陆系统
[[email protected]
vsftpd]#
vim/etc/pam.d/vsftpd.vu#为虚拟用户创造pam认证模块命名为vsftpd.vu
在表明文件中出席以下两行认证音信:
auth required pam_userdb.sodb=/etc/vsftpd/vuser
account required pam_userdb.sodb=/etc/vsftpd/vuser
#此处的vuser其实是vuser.db,那里大概了db,否则会报错
从此以后到vsftpd.conf配置文件中插入以下三行内容:
guest_enable=YES#打开虚拟用户访问
guest_username=vuser#辉映到系统账号vuser
pam_service_name=vsftpd.vu#点名pam认证模块
专注:vsftpd有一个默许的pam认证模块,需求注释掉
A.修改后的台本**
B.功效验证**
[[email protected]]#
service vsftpd restart #重启服务
关闭 vsftpd: [确定]
为vsftpd 启动 vsftpd: [确定]
回来客户机的cmd控制台,用lisa登陆并上传文件成功
[[email protected]]#
ls -l
/opt/vuser#查阅上传的文件的属主是vuser,表达lisa是炫耀到vuser那几个体系账号了
跟着我们把tes.txt文件改名为te.txt幸免重名,以jack登陆并上传te.txt
翻开jack上传的公文的属主依然是vuser
留意:要是虚拟用户都足以登陆成功不过上传时提示权限被驳回的话,要求去vsftpd.conf文件中使那行生效anon_upload_enable=YES
心想事成针对分歧的虚拟用户所有分歧的权能
上述实验中lisa和jack的权杖是相同的,现在咱们让lisa上传的文书权限为600而jack上传的文书权限为644,大家要求开启这么些独立安插文件功用
开辟vsftpd.conf配置文件,参预以下一行配置告诉她去vu_dir目录下找她们的独自布署文件:
user_config_dir=/etc/vsftpd/vu_dir
[[email protected]
vsftpd]# mkdir vu_dir #在vsftpd目录下新建vu_dir目录
[[email protected]
vsftpd]# cd vu_dir
[[email protected]
vu_dir]# vi jack
#在vu_dir目录下为jack新建一个独自的配备文件(暂时不写任何内容保留退出)
俺们用man手册查看一下anon_umask(匿名上传)这一个选项,发现默认权限是600,所以后边大家看看lisa和jack上传的文件权限是600
即使要使jack的上传权限是644,那就把这一个值设为022即可
随后我们就vi jack在文书中投入一行内容:anon_umask=022
A.修改后的脚本**
B.作用验证**
[[email protected]_dir]#
service vsftpd restart #重启服务
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
回去客户机的cmd控制台,用jack登陆并上传t.txt文件
服务器上查看上传的文书权限为644,实验成功。
4.试行总计:**
1)vsftpd是一款在Linux发行版中最受青眼的FTP服务器程序。特点是娇小轻快,安全易用。
2)vsftpd中的虚拟用户又是一个百般实用的功用,满足差别用户的分化访问特性,在布局文件中必定要留意权限的安插,以减低权限虚拟用户是默许作为匿名用户进行拍卖的。
1.尝试须要:
1)使用RPM包安装vsftpd服务
2)达成匿名用户访问,验证仅可以访问和下载,不可以上传
3)已毕匿名用户可…
采纳匿名开放格局
服务启动后默许访问的目录为/var/ftp,且匿名用户没有上传、创设、重命名、删除作用.不过负有下载功效.
劳动开启后平昔访问
创造文件夹被驳回
重命名退步
大家来修改配置文件让匿名用户可以上传文件,编辑配置文件vim /etc/vsftpd/vsftpd.conf
,修改为如下内容
anon_upload_enable=YES
anon_umask=022
今昔仍旧不能上传文件,那是因为ftp的权位难点造成的,大家将其修改为ftp用户权限.
==注意:默许匿名用户家目录/var/ftp的权能是755,那一个权力是不可以改变的,切记!==
[root@qdlinux var]# ll -d ftp
drwxr-xr-x 3 root root 30 Aug 13 21:32 ftp
[root@qdlinux var]# chown -Rf ftp /var/ftp/pub
[root@qdlinux var]# ll ftp
total 0
-rw-r--r-- 1 root root 0 Aug 13 21:32 1.txt
drwxr-xr-x 2 ftp root 19 Aug 13 21:32 pub
现在曾经得以上传文件了,不过只好上传到ftp/pub目录中,因为刚刚给的就是以此目录的权限.现在就做到了不得不上传文件和下载的目标,可是不可能创立文件夹.
上传文件
重命名失败
制造文件夹被驳回
[root@qdlinux var]# ll ftp/pub
total 0
-rw-r--r-- 1 ftp root 0 Aug 13 21:32 2.txt
-rw-r--r-- 1 ftp ftp 0 Aug 13 21:51 new.txt
[root@qdlinux var]#
若是急需打开匿名用户可以成立文件夹功能,修改配置文件如下所示.
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
后天匿名用户可以上传文件和下载文件以及开创文件夹.不过不可以重命名.
倘诺要求开启匿名用户上传下载和开创文件夹以及重命名和删除功用,修改配置文件如下所示.
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
今天匿名用户可以达成上传和下载,创设文件夹和删除文件夹和文书以及重命名.
上传文件
新建文件夹
那是匿名用户的最大权力了,一般匿名访问的话,只要达成下载功能就足以了。网站提供什么用户下载什么。
FTP(File Transfer Protocol: 文件传输协议)功效: Internet
上用来传送文件的情商。
选择本地用户方式
演示演示集团里面有一台FTP和WEB服务器,FTP的效果紧要用来保险网站内容,用于上传文件、创立目录、更新网页等等。公司有几个机关各负其责珍贵义务,他们分别用team1和team2账号进行管理,须求仅同意team1和team2账号登录ftp服务器,单不可以登录当地系统,并将那五个账号的根目录范围为/var/www/html,不能进来该目录以外的任何目录。
初期准备首先安装apache
和vsftpd
,具体安装格局这里就不介绍了。
成立测试账号team1和team2
[root@qdlinux ~]# useradd -s /sbin/nologin team1
[root@qdlinux ~]# useradd -s /sbin/nologin team2
[root@qdlinux ~]# echo "123456" | passwd --stdin team1
Changing password for user team1.
passwd: all authentication tokens updated successfully.
[root@qdlinux ~]# echo "123456" | passwd --stdin team2
Changing password for user team2.
passwd: all authentication tokens updated successfully.
接下去修改配置文件,那里在RHEL6中和RHEL7中布置有些不一样
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
local_root=/var/www/html
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
可以把不限量的账户放手那中间,创造用户列表文件,因为此账户会访问到其余目录.但这么工作很危险的.
[root@qdlinux ~]# touch /etc/vsftpd/chroot_list
[root@qdlinux ~]# vim /etc/vsftpd/chroot_list
teamleader
修改apache的根目录权限/var/www/html
[root@qdlinux ~]# ll -d /var/www/html/
drwxr-xr-x 2 root root 6 May 9 2017 /var/www/html/
[root@qdlinux ~]# chmod -R o+w /var/www/html/
访问测试
不限定用户访问
不限量用户访问,用户可以轻易到其余目录
界定用户访问,用户只可以在此目录中,在武威方面相对要好很多.
文件上传后文件拥有者权限
常见FTP服务器:
编造用户形式
示范演示为了宣传公司的产品新闻,安插搭建FTP服务器,为客户提供有关材料的下载,仅允许下载产品信息,禁止上传。公司的通力合作单位和能够在FTP服务器上上传和下载,可是不可能去除数据。
创制用户展开FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。编辑vim /etc/vsftpd/vuser.list
ftp
123456
vip
123456
是因为明文的音讯既不安全,也不合乎让vsftpd服务程序间接加在的格式,因而需求选取db_load命令用哈希算法将公开音讯文件转成数据库文件。在RHEL6中须求设置db4-utils
,在RHEL7中libdb-utils
[root@qdlinux ~]# rpm -qf `which db_load`
libdb-utils-5.3.21-20.el7.x86_64
[root@qdlinux ~]# db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
[root@qdlinux ~]# file /etc/vsftpd/vuser.db
/etc/vsftpd/vuser.db: Berkeley DB (Hash, version 9, native byte-order)
下跌数据库文件的权力避免其余人来看数据库文件的情节,然后把公开音讯文件删除。
[root@qdlinux ~]# chmod 600 /etc/vsftpd/vuser.db
[root@qdlinux ~]# ll /etc/vsftpd/vuser.db
-rw------- 1 root root 12288 Aug 14 01:19 /etc/vsftpd/vuser.db
确立用于协助虚拟用户的PAM文件
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
树立用户存储文件的根目录以及虚拟用户映射的种类本地用户。
[root@qdlinux ~]# useradd -d /var/ftp/share -s /sbin/nologin ftpuser
[root@qdlinux ~]# useradd -d /var/ftp/vip -s /sbin/nologin ftpvip
[root@qdlinux ~]# chmod -R 500 /var/ftp/share/
[root@qdlinux ~]# chmod -R 700 /var/ftp/vip/
修改配置文件
anonymous_enable=NO
local_enable=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vuserconfig
max_clients=300
max_per_ip=10
树立虚拟账号配置文件
[root@qdlinux ~]# mkdir /etc/vsftpd/vuserconfig
[root@qdlinux ~]# touch /etc/vsftpd/vuserconfig/ftp
[root@qdlinux ~]# touch /etc/vsftpd/vuserconfig/vip
vim编辑/etc/vsftpd/vuserconfig/ftp
中的内容
guest_enable=YES
guest_username=ftpuser
anon_world_readable_only=NO
anon_max_rate=50000
vim编辑/etc/vsftpd/vuserconfig/vip
中的内容
guest_enable=YES
guest_username=ftpvip
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_max_rate=2000000
测试ftp账户
[root@qdlinux ~]# lftp 192.168.56.15 -u ftp,123456
lftp ftp@192.168.56.15:~> ls
drwx------ 5 0 0 97 Aug 13 18:14 grub2
-r--r--r-- 1 0 0 11607904 Aug 13 18:13 mariadb-server.rpm
做客限速测试
测试vip账户
[root@qdlinux ~]# lftp 192.168.56.15 -u vip
Password:
lftp vip@192.168.56.15:~> ls
-rw------- 1 1004 1004 5505024 Aug 13 18:33 kali-linux-2018.2-amd64.iso
-rw------- 1 1004 1004 111017984 Aug 13 18:36 kali-linux-2018.2-amd641.iso
-r--r--r-- 1 0 0 11607904 Aug 13 18:30 mariadb-server.rpm
上传和下载访问速度测试
Windows:Serv-U FTP Server
Linux:ProFTPD:(Professional FTP
daemon)一个Unix平台上可能类Unix平台上(如Linux,
FreeBSD等)的FTP服务器程序。
正文的顶梁柱:vsftp。VSFTP是一个根据GPL公布的类Unix系统上采取的FTP服务器软件,它的完备是Very
Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
特性:它是一个安全、高速、稳定的FTP服务器。本文从以下多少个地点来介绍ftp服务器:
一、学习一个新劳动的艺术
- 二、VSFTP服务器的安装配置。
- 三、VSFTP服务器实战
一、学习一个新劳动的点子
1、 此服务器的概述:名字,成效,特点,端口号
2、 安装
3、 布署文件的职位
4、 服务启动关闭脚本,查看端口
5、 此服务的使用方法
6、 修改配置文件,实战举例
7、 排错(从下到上,从内到外)
二、VSFTP服务器的安装配置
本文的服务器架设:
FTP服务端:xiaolyu10 IP:192.168.31.10
FTP客户端:xiaolyu11 IP:192.168.31.11
1. 安装:
yum安装或rpm安装均可。
[root@xiaolyu10 ~]# rpm -qa | grep vsftp
vsftpd-2.2.2-21.el6.x86_64
[root@xiaolyu10 ~]# rpm -ivh
/mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm
[root@xiaolyu10 ~]# yum install -y vsftp
[root@xiaolyu11 ~]# yum -y install lftp
2. 安插文件:
[root@xiaolyu10 ~]# ls -l /etc/vsftpd
total 32
-rw-r–r– 1 root root 13 Mar 16 15:14 chroot_list
-rw——- 1 root root 125 May 11 2016 ftpusers
-rw——- 1 root root 361 May 11 2016 user_list
-rw——- 1 root root 4644 Mar 16 15:13 vsftpd.conf
-rw——- 1 root root 4599 Mar 16 14:12 vsftpd.conf_bak
-rwxr–r– 1 root root 338 May 11 2016 vsftpd_conf_migrate.sh
/etc/vsftpd/vsftpd.conf:vsftpd 的为主配置文件
/etc/vsftpd/ftpusers:用于指定哪些用户不可以访问FTP 服务器。 黑名单
/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。 白名单
vim /etc/vsftpd/user_list
# 如果userlist_deny=
YES(默许),绝不允许在那几个文件中的用户登录ftp,甚至不升迁输入密码
#prompt 提示
/etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的局地变量和装置脚本
/var/ftp/:默认情形下匿名用户的根目录
三、VSFTP服务器实战
实战1:
合营社技术部准备搭建一台功效简单的FTP
服务器,允许具备员工上传和下载文件,并允许创造用户自己的目录。
分析:
同意持有员工上传和下载文件要求设置成允许匿名用户登录并且需求将同意匿名用户上传功效
开启,
anon_mkdir_write_enable 字段可以控制是还是不是允许匿名用户创设目录。
备份原配置文件:
[root@xiaolyu10 vsftpd]# cp vsftpd.conf vsftpd.conf_bak
[root@xiaolyu10 ~]# vim /etc/vsftpd/vsftpd.conf
允许匿名用户访问
anonymous_enable=YES
允许匿名用户上传文件并得以创立目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
起步服务:
[root@xiaolyu10 ~]# service vsftpd restart
[root@xiaolyu10 pub]# chown ftp.ftp /var/ftp/pub/
然后测试,是足以新建文件夹了,不过不可以重命名,无法去除!
[root@xiaolyu10 ~]# mkdir /var/ftp/xiaolyudata
[root@xiaolyu10 ~]# chown ftp.ftp /var/ftp/xiaolyudata
[root@xiaolyu10 ~]# ll -d !$
ll -d /var/ftp/xiaolyudata
drwxr-xr-x 2 ftp ftp 4096 Mar 16 14:34 /var/ftp/xiaolyudata
[root@xiaolyu10 ~]#
重启服务:
[root@xiaolyu10 ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@xiaolyu10 ~]#
现在匿名上传的文书是明令禁止删除的。
如此那般匿名用户的上传固然成功了
注:工作中,匿名用户只是只读访问,写的权柄也绝非的。
补充:
万一想让匿名用户可以重命名或者删除的权杖,添加如下一条配置参数:
重启服务:
[root@xiaolyu10 ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: 500 OOPS: bad bool value in config file for:
anon_other_write_enable
[FAILED]
据悉提醒,表达自己刚才添加的那一行匿名写权限的参数有标题
[root@xiaolyu10 ~]# vim /etc/vsftpd/vsftpd.conf
也就是说参数前面不可以有剩余的空格。
重新启航就可以对重新命名和删除文件夹了,
匿名用户就足以去除和修改,相当不安全,慎重使用那么些参数。
只顾,默认匿名用户家目录的权位是755,这么些权力是不可能改变的。切记!
[root@xiaolyu10 ~]# service vsftpd restart
实战2:
商厦里面现在有一台FTP 和WEB 服务器,FTP
的功力主要用以维护店铺的网站内容,包含上传文件、创设目录、更新网页等等。集团现有三个单位担负维护职务,他们各自适用team1
和team2帐号进行田间管理。先须要仅允许team1 和team2 帐号登录FTP
服务器,但不可能登录当地系统,并将这四个帐号的根目录范围为/var/www/html,不可能进来该目录以外的其余目录。
ftp 和www web服务器相结合。
www web服务器根目录: /var/www/html
只同意:team1和team2两用户 可以上传。 vsftp禁止匿名。
分析:
将FTP 和WEB
服务器做在联名是信用社经常利用的艺术,那样便于完成对网站的维护,为了增长安全性,首先要求使用仅同意本地用户访问,并取缔匿名用户登录。其次使用chroot
功效将team1和team2 锁定在/var/www/html
目录下。若是急需删除文件则还索要注意当地权限
化解方案:
(1)建立保证网站内容的ftp 帐号team1 和team2
并取缔本地登录,然后设置其密码
[root@xiaolyu10 ~]# useradd -s /sbin/nologin team1
[root@xiaolyu10 ~]# useradd -s /sbin/nologin team2
[root@xiaolyu10 ~]# echo “123456” | passwd –stdin team1
Changing password for user team1.
passwd: all authentication tokens updated successfully.
[root@xiaolyu10 ~]# echo “123456” | passwd –stdin team2
Changing password for user team2.
passwd: all authentication tokens updated successfully.
2)配置vsftpd.conf 主配置文件并作相应修改
[root@xiaolyu10 vsftpd]# cp vsftpd.conf_bak vsftpd.conf
cp: overwrite `vsftpd.conf’? y
[root@xiaolyu10 vsftpd]# vim vsftpd.conf
#anonymous_enable=YES
anonymous_enable=NO 取缔匿名用户登录
#
# Uncomment this to allow local users to log in.
local_enable=YES 允许本地用户登录
继续将:
修改为:
local_root=/var/www/html:设置本地用户的根目录为/var/www/html
chroot_list_enable=YES:激chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名
保存退出
(3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号
[root@xiaolyu10 vsftpd]# touch /etc/vsftpd/chroot_list
[root@xiaolyu10 vsftpd]# ll !$
ll /etc/vsftpd/chroot_list
-rw-r–r– 1 root root 0 Mar 16 15:13 /etc/vsftpd/chroot_list
[root@xiaolyu10 vsftpd]# vim /etc/vsftpd/chroot_list
#写入以下内容,一行,一个用户名
team1
team2
(4)重启vsftpd 服务使配置生效
service vsftpd restart
(5)修改本地权限
[root@xiaolyu10 vsftpd]# mkdir -p /var/www/html/
[root@xiaolyu10 vsftpd]# ll -d /var/www/html/
drwxr-xr-x 2 root root 4096 Mar 16 15:16 /var/www/html/
[root@xiaolyu10 vsftpd]# chmod -R o+w /var/www/html/
[root@xiaolyu10 vsftpd]# ll -d /var/www/html/
drwxr-xrwx 2 root root 4096 Mar 16 15:16 /var/www/html/
(6).测试:
[root@xiaolyu11 ~]# lftp 192.168.31.10 -uteam1,123456
lftp team1@192.168.31.10:~> ls
drwxr-xr-x 2 500 500 4096 Mar 16 07:24 web
lftp team1@192.168.31.10:~>
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144900.htm