两岸猿声啼不住,一起来学FTP

一、简单介绍FTP及VSFTP作用及端口号

FTP作用:Internet 上用来传送文件的协议

VSFTP全称(very secure FTP)模式为:c/s模式,FTP服务器默认使用TCP协议的20,21端口与客户端进行通信

20端口:主要用于建立数据连接,并传输文件数据

21端口:主要用于建立控制连接,并传输FTP控制命令

FTP数据连接分为主动模式和被动模式,主动模式主要就是服务器主动发起数据连接,而被动模式是服务器被动等待数据连接

二、FTP小实验

实验之前要求关闭防火墙,命令为:systemctl stop firewalld sentenforce 0

安装FTP服务,命令:yum install -y vsftp

进入vsftpd.conf中修改配置文件:路径为vim /etc/vsftpd/vsftpd.con

配置结束后给予777权限:

可用自己电脑的Win 10实验,首先ping通自己的虚拟机地址:(我的地址,192.168.101.10)ping通后直接在cmd中输入ftp+地址

三、配置本地用户

(1)系统本地的默认设置

vsftpd默认容许所有的系统用户都可以访问FTP,并且要进行身份验证。但是用系统用户身份登录FTP服

务器后,默认将位于自己的家目录中,而不是FTP的主目录。

创建系统用户,并设置密码

useradd test1

passwd test1

echo “ftp test” >> /home/test1/ftptest.txt

windows上测试,匿名登录之后,右键选择登入,输入test1和密码,此时可以直接查看到用户家目录下的文件,但此时用命令行访问时可以进入到其他目录中

(2)禁锢系统用户到指定目录中

Windows客户端也可以通过ftp命令访问服务器,由于在命令行模式下模式采用FTP的主动模式,因而此

时需要将客户端的防火墙关闭才能成功访问。

修改配置文件

chroot_local_user=YES # 打开此权限

local_root=/home/vsftpd/ # 设置本地登录目录

# systemctl restart vstpd

此时已经无法切换到上级目录了

让一些管理用户可以自由切换目录:配置文件

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

# vim /etc/vsftpd/chroot_list

test1

# systemctl restart vsftpd

四、说明

具体情况有以下几种:

1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件

中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。

2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件

中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。

3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。

4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。

5)当用户不允许切换到上级目录时,登录后FTP站点的根目录“/”是该FTP账户的主目录,即文件的系统

的/var/ftp目录。

(3)设置可以访问服务器的用户列表

vsftpd中提供了两个与系统用户相关的文件:/etc/vsftpd/user_list和/etc/vsftpd/ftpusers,这两文件均

包含一份FTP用户名的列表,但是作用却截然不同:

/etc/vsftpd/ftpusers:这个文件中包含的用户账号将被禁止登陆vsftpd服务器,不管该用户是否

在/etc/vsftpd/user_list文件中出现。通常将root,bin,daemon等特殊用户列在该文件中,禁止用于

登陆FTP服务。

/etc/vsftpd/user_list,该文件的用户账号可能被禁止登陆,也可能不禁止,具体要看vsftpd.conf的文

件配置。当存在“userlist_enable=YES”的配置时,/etc/vsftpd/user_list文件生效;如果配

置“userlist_deny=YES”时,则禁止用户列表中的用户登录,如果“userlist_deny=NO”时,仅容许列表中

的用户登录。

综合来看,/etc/vsftpd/ftpusers提供一份禁止用户,/etc/vsftpd/user_list提供一份灵活可控的用户列

表,/etc/vsftpd/ftpusers优先级高于/etc/vsftpd/user_list

修改配置文件

# vim vsftpd.conf

userlist_deny=NO

# vim vsftpd.conf

test1

# systemctl restart vsftpd

五、配置说明

除了匿名用户,系统用户之外,还可以设置虚拟用户来访问FTP。所谓虚拟用户,是指存放于独立数据

库文件中的FTP用户账号,可以将他们映射到某个不能登录的系统用户账号上,以进一步增强FTP服务

器的安全。

(1)创建虚拟用户数据库文件

vsftp服务的虚拟用户数据库默认使用Berkeley DB格式的数据库文件,建立数据库文件需要用到

db_load命令工具,db_load工具是由db4-utils软件包提供的,所以首先需要确认系统中已经装好db4-

utils组件。

# yum install epel-release

# yum provides db_load

# yum install libdb-utils

# rpm -qa libdb-utils

libdb-utils-5.3.21-24.el7.x86_64

# db_load -T -t hash -f logins.txt logins.db

# chmod 600 logins.*

# ll

-rw-------. 1 root root 12288 7月 13 17:09 logins.db

-rw-------. 1 root root 33 7月 13 17:07 logins.txt

注:db_load命令是一种固定语法,

—T:允许非Berkeley DB的应用程序使用从文本格式转换的DB数据库文件。

-t hash:指定读取数据文件的基本方法。

-f:指定数据的源文件

(2)创建虚拟用户的映射账号

vsftpd服务对虚拟用户其实采用了映射的控制方式,把所有的虚拟用户账号都对应到了同一个系统用户

上,并将这个用户的家目录作为所有虚拟用户登录的后公用的FTP主目录。

如:

# useradd -d /var/ftp/virtual -s /sbin/nologin virtual

(3)创建pam认证文件

# cp -p /etc/pam.d/vsftpd{,date "+%Y%m%d%H%M%S"}

# vim /etc/pam.d/vsftpd

auth required /lib64/security/pam_usrdb.so db=/etc/vsftpd/logins

account required /lib64/security/pam_usrdb.so db=/etc/vsftpd/logins

# 修改配置文件

[root@test4 vsftpd]# tail -10 vsftpd.conf

# Make sure, that one of the listen options is commented !!

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES #加入

guest_username=virtual #加入

user_config_dir=/etc/vsftpd/vuser #加入

allow_writeable_chroot=YES #加入

(4)创建虚拟用户-配置文件

# mkdir vuser

# cd vuser/

# vim aaa

# vim aaa

# vim bbb

# cat aaa

anon_upload_enable=YES

#anon_world_readable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

# cat bbb

#anon_upload_enable=YES

#anon_world_readable=YES

anon_mkdir_write_enable=YES

#anon_other_write_enable=YES

er

# cd vuser/

# vim aaa

# vim aaa

# vim bbb

# cat aaa

anon_upload_enable=YES

#anon_world_readable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

# cat bbb

#anon_upload_enable=YES

#anon_world_readable=YES

anon_mkdir_write_enable=YES

#anon_other_write_enable=YES

# systemctl restart vsftpd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值