linux中vsftpd服务,51CTO博客-专业IT技术博客创作平台-技术成就梦想

内容要点:

一、vsftpd概述

二、ftp、sftp、vsftp、vsftpd这四个的区别

三、匿名用户登陆ftp

四、利用本地用户登录ftp

五、建立虚拟用户账户使用ftp

一、vsftpd概述

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。

1、特点

非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高

小巧轻快,安全易用。

二、ftp、sftp、vsftp、vsftpd这四个的区别

ftp 是File Transfer Protocol的缩写,文件传输协议,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。

sftp 是SSH File Transfer Protocol的缩写,安全文件传输协议;

vsftp 是一个基于GPL发布的类Unix系统上使用的ftp服务器软件,它的全称是Very Secure FTP从此名称可以看出来,编制者的初衷是代码的安全;

vsftpd 是very secure FTP daemon的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件;

三,匿名用户登录ftp(文件在/var/ftp)

1,安装vsftpd服务

[root@localhost ~]# yum install vsftpd -y   ##安装服务

[root@localhost ~]# cd /etc/vsftpd/    ##此目录是配置文件目录

[root@localhost vsftpd]# ls

ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

[root@localhost vsftpd]# systemctl start vsftpd     ##开启vsftpd服务[root@localhost vsftpd]# systemctl stop firewalld.service    ##关闭防火墙[root@localhost vsftpd]# setenforce 0    ##关闭增强功能

[root@localhost vsftpd]# ls /var/ftp/        ##切换到ftp目录下pub

[root@localhost vsftpd]# echo "this is test" > /var/ftp/test.txt   ##添加一个文本文件

2,用测试机cmd访问vsftpd服务(cmd连接ftp)并下载文件

C:\Users\xy007>ftp 192.168.13.140    ##访问ftp服务

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): ftp       ##匿名访问

331 Please specify the password.

密码:                                                ##密码无 回车

230 Login successful.

ftp> pwd            ##查看当前路径

257 "/"               ##ftp服务的根目录

ftp> ls -a           ##查看目录中的内容

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

.

..

pub

test.txt               ##服务器中的文件

226 Directory send OK.

ftp: 收到 25 字节,用时 0.00秒 25000.00千字节/秒。

ftp> get test.txt  ##下载文件到本地(在哪个磁盘的访问就下载到哪里,可以切换磁盘来下载e:)200 PORT command successful. Consider using PASV.

150 Opening BINARY mode data connection for test.txt (13 bytes).

226 Transfer complete.

ftp: 收到 13 字节,用时 0.00秒 13000.00千字节/秒。

ftp> put test1.txt   ##在c盘中创建一个test1.txt然后上传到Linux中200 PORT command successful. Consider using PASV.

550 Permission denied.    ##此时是权限受限的

0a573d2019185933e8ddf5f17ce2be03.png

3,修改vsftpd配置文件将匿名访问开启最大权限

[root@localhost ftp]# cd /etc/vsftpd/

[root@localhost vsftpd]# vim vsftpd.conf

##在配置文件中查找开启下列选项

anonymous_enable=YES       ##开启匿名用户

local_enable=YES    ##本地用户

write_enable=YES    ##写入权限

local_umask=022     ##本地用户反掩码

anon_upload_enable=YES   ##上传权限开启

anon_mkdir_write_enable=YES   ##开启创建目录并且能够写入

anon_other_write_enable=YES   ##添加一个other的重命名和删除的权限

[root@localhost vsftpd]# systemctl restart vsftpd  ##重启服务

[root@localhost vsftpd]# cd /var/ftp/    ##切换到ftp目录下

[root@localhost ftp]# ls

pub  test.txt

[root@localhost ftp]# ls -l

总用量 4

drwxr-xr-x. 2 root root  6 10月 31 2018 pub

-rw-r--r--. 1 root root 13 11月  5 19:14 test.txt

[root@localhost ftp]# chmod 777 pub   ##将pub目录权限给最大,注意不能直接给ftp权限最大

4,用测试机cmd访问ftp并上传本地文件到Linux上

C:\Users\xy007>ftp 192.168.13.140   ##访问ftp服务

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): ftp

331 Please specify the password.

密码:

230 Login successful.ftp> cd pub/                             ##切换到pub目录下250 Directory successfully changed.

ftp> put test1.txt                      ##上传文件

200 PORT command successful. Consider using PASV.

150 Ok to send data.

226 Transfer complete.

ftp: 发送 13 字节,用时 0.03秒 0.41千字节/秒。

ftp> by     ##退出

221 Goodbye.

##你也可以使用delete删除文件

5,查看上传的文件

[root@localhost ftp]# cd /var/ftp/pub  ##切换到pub目录下

[root@localhost pub]# ls     ##查看上传的文件

test1.txt

四,利用本地用户登录ftp(文件在家目录)

防止本地用户访问系统目录,限制仅访问用户家目录

1,创建系统用户

[root@localhost pub]# useradd zhangsan   ##创建用户并设置用户密码

[root@localhost pub]# passwd zhangsan

[root@localhost pub]# useradd lisi   ##创建用户并设置用户密码

[root@localhost pub]# passwd lisi

2,测试机上cmd使用用户登录ftp

C:\Users\xy007>ftp 192.168.13.140   ##登录ftp服务

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): zhangsan   ##使用本地用户

331 Please specify the password.

密码:230 Login successful.

ftp> ls /       ##查看用户/下的目录文件,直接到系统根目录下

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

/bin

/boot

/dev

/etc

/home

/lib

/lib64

/media

/mnt

/opt

/proc

/root

/run

/sbin

/srv

/sys

/tmp

/usr

/var226 Directory send OK.

ftp: 收到 126 字节,用时 0.02秒 7.88千字节/秒。

3,防止本地用户访问系统目录,限制仅访问用户家目录

[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf    ##修改配置文件

chroot_local_user=YES   ##开启限制本地访问系统目录模块

allow_writeable_chroot=YES ##添加写的权限

[root@localhost pub]# systemctl restart vsftpd   ##重启服务

4,测试机cmd访问

C:\Users\xy007>ftp 192.168.13.140   ##访问ftp

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): zhangsan   ##用户zhangsan

331 Please specify the password.

密码:

230 Login successful.

ftp> cd /    ##切换到系统根目录

250 Directory successfully changed.

ftp> ls     ##查看发现还是在用户的家目录中,访问不到系统的其他目录了,增强了安全性200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

226 Directory send OK.

设置允许,拒绝指定用户访问ftp

1,设置user-list(默认拒绝),允许或者拒绝特定用户登录ftp

[root@localhost pub]# cd /etc/vsftpd/  ##切换到vsftpd配置文件目录

[root@localhost vsftpd]# vim vsftpd.conf

userlist_enable=YES ##确认user-list开启

[root@localhost vsftpd]# ls

ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

[root@localhost vsftpd]# echo "zhangsan" >> user-list   ##将zhangsan用户添加到列表中[root@localhost vsftpd]# systemctl restart vsftpd    ##重启服务

2,用测试机cmd测试

C:\Users\xy007>ftp 192.168.13.140

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): zhangsan   ##使用zhangsan登录

530 Permission denied.

登录失败。                                        ##直接拒绝登录

ftp>

3,设置列表为仅允许

[root@localhost ftp]# cd /etc/vsftpd/

[root@localhost vsftpd]# vim vsftpd.conf  ##配置vsftpd配置文件

userlist_enable=YES

userlist_deny=NO   ##添加列表允许

[root@localhost vsftpd]# systemctl restart vsftpd   ##重启服务

4,测试机cmd测试

C:\Users\xy007>ftp 192.168.13.140

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): zhangsan   ##用zhangsan去登录

331 Please specify the password.

密码:

230 Login successful.        ##登录成功

ftp> by

221 Goodbye.

C:\Users\xy007>ftp 192.168.13.140

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): lisi       ##用lisi去登录

530 Permission denied.

登录失败。                           ##登录失败

五,建立虚拟用户账户使用ftp(文件在系统用户vuser家目录)

1,创建虚拟用户文件

[root@localhost vsftpd]# cd /etc/vsftpd/  ##切换到配置文件目录下

[root@localhost vsftpd]# vim vuser      ##创建虚拟用户文件

lisa           ##奇数行为用户名

123123    ##偶数行为密码

tom

123123

2,转换数据库文件,设置安全权限

[root@localhost vsftpd]# db_load -T -t hash -f vuser vuser.db    ##将vuser转换成数据库文件##T转换,t类型,f指定文件

[root@localhost vsftpd]# chmod 600 vuser      ##安全起见,不让别人看到,设置权限[root@localhost vsftpd]# chmod 600 vuser.db

3,编辑pam认证模块支持虚拟用户登录

[root@localhost vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser  ##创建系统用户,指定家目录,不能登录[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu   ##编译pam认证模块auth required pam_userdb.so db=/etc/vsftpd/vuser    ##识别转换过的数据库文件account required pam_userdb.so db=/etc/vsftpd/vuser   ##连接的密码服务

4,开启虚拟用户,使用pam模块认证登录

[root@localhost vsftpd]# vim vsftpd.conf  ##修改配置文件

##G到末行

#pam_service_name=vsftpd   ##注释

##添加下面三行内容guest_enable=YES           ##开启来宾用户访问

guest_username=vuser      ##使用vuser用户名

pam_service_name=vsftpd.vu   ##pam模块

[root@localhost vsftpd]# systemctl restart vsftpd   ##重启服务

5,测试机cmd测试

C:\Users\xy007>ftp 192.168.13.140

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): tom   ##使用虚拟用户tom登录

331 Please specify the password.

密码:

230 Login successful.

ftp> put test1.txt      ##上传一个文件

200 PORT command successful. Consider using PASV.

150 Ok to send data.

226 Transfer complete.

ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。

##查看文件的权限为600

[root@localhost vsftpd]# ls -l /opt/vuser/

总用量 4

-rw-------. 1 vuser vuser 13 11月  5 22:51 test1.txt

6,单独用户配置,指定上传文件的权限644

[root@localhost vsftpd]# vim vsftpd.conf

##大G末行添加

user_config_dir=/etc/vsftpd/vu_dir   ##单独用户配置文件夹

[root@localhost vsftpd]# mkdir vu_dir  ##创建文件夹

[root@localhost vsftpd]# cd vu_dir/

[root@localhost vu_dir]# vim lisa     ##在配置文件夹里创建用户配置文件

anon_umask=022  ##指定上传文件的权限

[root@localhost vu_dir]# systemctl restart vsftpd  ##重启服务

7,测试机cmd使用lisa用户登录,查看上传文件权限

C:\Users\xy007>ftp 192.168.13.140

连接到 192.168.13.140。

220 (vsFTPd 3.0.2)

200 Always in UTF8 mode.

用户(192.168.13.140:(none)): lisa    ##使用lisa登录

331 Please specify the password.

密码:

230 Login successful.

ftp> put 111.txt        ##上传文件

200 PORT command successful. Consider using PASV.

150 Ok to send data.

226 Transfer complete.

ftp: 发送 13 字节,用时 0.00秒 13000.00千字节/秒。

[root@localhost vu_dir]# ls -l /opt/vuser/   ##查看上传文件的权限

总用量 8

-rw-r--r--. 1 vuser vuser 13 11月  5 22:58 111.txt    ##lisa上传文件权限644

-rw-------. 1 vuser vuser 13 11月  5 22:51 test1.txt  ##tom上传文件权限600

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值