linux的ftp服务介绍、部署、登录、黑白名单配置

FTP服务介绍

FTP服务即文件传输协议( file transfer protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。FTP基于TCP协议生成一个虚拟的连接,主要用于控制FTP连接信息,同时再生成一个单独的TCP连接用于FTP数据传输。用户可以通过客户端向FTP服务器端上传、下载、删除文件,FTP服务器端可以同时提供给多人共享使用。
它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。
FTP用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

FTP服务部署

1.安装服务
yum install -y vsftpd
2.查看安装文件
rpm -ql vsftpd
/etc/logrotate.d/vsftpd …ftp服务的日志滚动文件
/etc/vsftpd/ftpusers …ftp服务的黑白名单
/etc/vsftpd/user_list …ftp服务的黑白名单
/etc/vsftpd/vsftpd.conf …ftp服务的主配置文件
/var/ftp …匿名用户访问ftp服务的根目录
3.编辑配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO …是否允许匿名用户登录
local_enable=YES …是否允许本地用户登录
write_enable=YES …本地用户是否有写权限
local_umask=022 …本地用户的umask码
anon_upload_enable=YES …匿名用户是否有写权限
anon_mkdir_write_enable=YES …匿名用户是否有创建目录的权限
dirmessage_enable=YES …欢迎信息
connect_from_port_20=YES …是否使用20端口作为数据传输的端口
chown_uploads=YES …上传文件是否更改文件的拥有者
chown_username=whoever …更改的用户
idle_session_timeout=600 …命令连接的超时时间
data_connection_timeout=120 …数据连接的超时时间
ascii_upload_enable=YES …是否允许使用纯文本的方式上传文件
ascii_download_enable=YES …是否允许使用纯文本的方式下载文件
ftpd_banner=Welcome to blah FTP service …欢迎信息内容
chroot_local_user=YES …是否开启用户牢笼
chroot_list_enable=YES …是否允许跳出牢笼
chroot_list_file=/etc/vsftpd/chroot_list …跳出牢笼的文件
ls_recurse_enable=YES …是否允许使用-R递归查询
listen=NO …是否监听IPV4地址
listen_ipv6=YES …是否监听IPV6地址
pam_service_name=vsftpd …认证模块
userlist_enable=YES …是否开启黑白名单
3.关闭防火墙
systemctl stop firewalld.service
4.启动服务器
systemctl start vsftpd

FTP服务的链接

FTP服务的链接有2种
1.控制链接
用于传输命令等,使用的时TCP协议,控制连接用于在两个主机之间传输控制信息,如用户标识、口令、改变远程目录的命令以及“put”和“get:”文件的命令,使用端口21。

2.数据链接
数据连接用于实际传输一个文件,使用端口20或随机端口。

FTP服务的工作模式
1.主动模式
主动模式的FTP工作原理:客户端从一个任意的非特权端口N连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
在这里插入图片描述
2.被动模式(默认)
当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端,同时通知自己的防火墙开启该端口,然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据
在这里插入图片描述
FTP客户端链接
客户端登录ftp服务
1.windows登录FTP服务
在URL路径上输入ftp://FTP服务器地址
2.linux登录FTP服务
由于FTP服务属于C/S架构,所以要安装FTP服务的客户端(网络YUM有软件包)
ftp FTP服务器的IP地址
name:登录的用户(ftp、anonymous为匿名用户)
passwd:用户密码(匿名用户密码为空)
FTP默认传输文件的模式为使用二进制传输
在这里插入图片描述
linux客户端ftp命令

ftp> help 客户端命令查询
!: 执行的系统命令 ascii:使用ascii模式传输文件
binary:使用binary模式传输文件 cd:切换远程目录
delete:删除文件 dir:显示远程目录
exit:退出 get:下载
lcd:切换系统目录 ls:显示文件
mdelete:删除多个文件 mget:下载多个文件
mkdir:创建目录 mput:删除多个文件
passive:更改为被动模式 put:上传
pwd:显示工作目录 quite:退出

FTP服务登录用户
1.匿名用户
客户端访问FTP资源时,可以在没有服务器的账户及密码的下,使用匿名(anonymous)身份获取公共资源,但权限较小.
2.实体用户
实体用户(real user)是指FTP服务器的本地账户,使用/etc/password中的用户名为认证方式.
3.虚拟用户
区别于实体账户,FTP支持建立专有的用户,将账号及密码保存在数据库中,采用非系统账户访问服务器资源,相对于FTP的实体用户而言,虚拟用户只能访问FTP共享资源,增强了系统安全性,并且,客户端使用虚拟用户登录,需要提交账号及密码,管理员可以根据这些账号进行策略设置,增加了对用户和下载的可管理性,考虑到FTP服务器的安全性以及管理因素,选择虚拟用户登录,是一个非常可靠的方案.

FTP实例配置
1.匿名用户下载
注意:匿名用户下载文件,FTP要对下载的文件要有读权限,并且要对自己下载的目录有写权限
在这里插入图片描述
2.匿名用户上传文件
在FTP服务器的配置文件中修改允许匿名用户上传文件anon_upload_enable=YES,重启服务。注意,上传文件,要保证匿名用户对上传文件的目录有写权限
在这里插入图片描述
匿名用户上传文件
在这里插入图片描述
3.更改用户上传文件的拥有者(方便系统用户管理)
更改FTP配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.本地用户chroot限定
本地用户登录
默认FTP服务本地用户登录的时该用户的家目录
默认本地用户可以切换到FTP服务器的其他的目录
在这里插入图片描述
限定本地用户切换FTP服务器的系统目录
更改FTP配置文件
在这里插入图片描述
注意:
1在v10版本中的vsftpd服务,在开启用户限制时,没有写在chroot_list文件中的用户,由于安全问题,默认不能登录。
2.若要用户登录,把用户的家目录的写权限去掉(chmod u-w 用户的家目录),或者在配置文件中添加选项allow_writeable_chroot = YES

把jerry用户添加到chroot_list文件中,分别使用2个用户登录
在这里插入图片描述
5.FTP服务器的黑白名单
在/etc/vsftpd目录下的ftpusers 和user_list文件为黑白名单
黑名单:写入到上述2个文件中的用户不能登录(默认)
白名单:写入到上述2个文件中的用户可以登录
配置文件中的userlist_deny=NO选项使用的是白名单(yes:为黑名单,no为白名单)
6.测试主被动模式使用的端口
主动模式:准备一个大文件,使用客户端下载。
在这里插入图片描述
在其他终端监听,主动模式使用20号端口传输数据
在这里插入图片描述
被动模式
在这里插入图片描述
在其他终端监听,主动模式使用随机端口传输数据。随机端口=44*256+233
在这里插入图片描述
7.虚拟用户登录(属于匿名用户登录)
1)创建虚拟用户文件
vim ftpuser
tom …用户名
kylin …密码
2)把ftpuser文件生成虚拟用户口令库文件
db_load -T -t hash -f ftpuser /etc/vsftpd/ftp.db
3)修改ftp.db权限
chmod 644 /etc/vsftpd/ftp.db
4)修改vsftp配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftp …指定ftp服务认证的模块
guest_username=ky …指定虚拟用户承接的用户
guest_enable=YES …是否允许虚拟用户登录
allow_writeable_chroot=YES …是否允许在根下有写权限
****在注意allow_writeable_chroot选项必须有
****匿名用户登录的根目录在ky用户的家目录下
5)更改ky用户家目录的权限
chmod 755 /home/ky …根据需求修改权限,虚拟用户是否可写
6)修改认证模块
cp -a /etc/pam.d/vsftpd /etc/pam.d/ftp
vim /etc/pam.d/ftp
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/ftp
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/ftp
7)启动服务
systemctl restart vsftpd.service
8)查看tom用户
id tom 注意:tom用户不存在
9)防火墙设置
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
或者
systemctl stop firewalld.service
10)测试客户端虚拟用户登录
ftp 服务器的IP地址
name:虚拟用户名
passwd:虚拟用户密码

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值