Linux之vsftpd服务

linux之vsftpd服务

  • 什么是FTP服务

    FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命令与参数。相较于httpd较为古老,但仍是常用的网络协议之一,它为系统提供了通过网络与远程服务器进行传输的简单方法。FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术,因此FTP服务得到了广大用户的青睐。

  • 实验环境准备及FTP服务安装

实验前需要更selinux为disable(下一篇博客会详细介绍selinux)

vim /etc/sysconfig/selinux   ##打开selinux配置文件
更改SELINUX=disabled  ##更改
reboot     ##重启虚拟机
getenforce ##查看是否更改成功

安装vsftpd服务:

yum search ftp   ##查询安装包
yum install vsftpd.x86_64 -y ##安装vsftpd
systemctl start vsftpd    ##开启vsftpd服务
systemctl enable vsftpd   ##开机启动vdftpd服务

在这里插入图片描述

firewall-cmd --list-all ##查询火墙允许的服务
firewall-config ##防火墙图形设置(勾选ftp,选为permanent永久,并且reload firewalld)
firewall-config ##再次查看防火墙允许的服务

在这里插入图片描述
在这里插入图片描述
安装lftp服务:

yum install lftp -y    ##安装lftp服务

在这里插入图片描述
测试:

lftp 172.25.254.43 ##在另一台主机测试,如果成功输入ls会查看到文件
或打开浏览器输入ftp://172.25.254.43访问

在这里插入图片描述
在这里插入图片描述

  • FTP服务的基本信息

软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
服务配置文件:/etc/vsftpd/vsftpd.conf
报错id解析:
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限过小

  • FTP的三种认证登录模式

匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。

扫描二维码关注公众号,回复: 6137437 查看本文章

本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。但是如果被黑客破解了账户的信息,就可以畅通无阻地登录FTP服务器,从而完全控制整台服务器。

虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。

  • 匿名登录模式设定

匿名用户设定:

anonymous_enable=YES|NO  ##匿名用户是否可以登陆

在这里插入图片描述
在这里插入图片描述
匿名用户上传:

write_enabl=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub  ##更改目录所属组
chmod 775 /var/ftp/pub  ##更改目录权限
put ##上传

在这里插入图片描述
在这里插入图片描述
匿名用户上传文件的umask值修改:(文件减111)

anon_umask=xxx

在这里插入图片描述
在这里插入图片描述
匿名用户建立目录:

anon_mkdir_write_enable=YES|NO

在这里插入图片描述
在这里插入图片描述

匿名用户下载:

anon_world_readable_only=YES|NO ##no表示匿名用户下载

在这里插入图片描述
在这里插入图片描述
匿名用户删除目录:

anon_other_write_enable=YES|NO

在这里插入图片描述
在这里插入图片描述
限制lftp最大连接数:

max_clients=2  ##最大连接数为2

在这里插入图片描述
在这里插入图片描述
限制匿名用户传输速率:

anon_max_rate=102400(速率为102kb/s,单位为B)

匿名用户使用的用户身份修改:

chown_uploads=YES
Chown_username=student
chown_upload_mode=0644

在这里插入图片描述

  • 本地用户登录模式设定

本地用户设定:

本地用户设定
local_enable=YES|NO  ##本地用户是否可以登陆
write_enable=YES|NO  ##本地用户写权限限制

在这里插入图片描述
在这里插入图片描述
本地用户家目录修改:

local_root=/var/ftp/user

本地用户上传文件的umask值修改:

local_umask=xxx

修改本地用户家目录后文件的上传:

chown -Rf user /var/ftp/user
chgrp ftp /car/ftp/user
chmod 775 /var/ftp/user

在这里插入图片描述
在这里插入图片描述

限制本地用户浏览目录:

chroot_local_user=YES ##所有用户被锁定到自己的家目录中
chmod u-w /home/*

在这里插入图片描述
在这里插入图片描述
本地用户访问根目录黑名单建立:

chroot_local_user=NO ##此时所有用户都可以访问/目录,名单内的只能访问自己的家目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

本地访问根目录白名单建立:

chroot_local_user=YES ##此时所有用户都只能访问自己的家目录,名单内的可以访问/目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

限制本地用户登陆黑名单:

vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单

在这里插入图片描述
在这里插入图片描述
限制本地用户登陆白名单:

vim /etc/vsftpd/vsftpd.conf
添加或更改userlist_deny=NO ##否定黑名单,即白名单

在这里插入图片描述

  • 虚拟用户登录模式设定

创建虚拟帐号身份:

vim /etc/vsftpd/westosfile  ##文件名称任意
编写内容如下:(不能有空格)
user1
123
user2
123
user3
123

在这里插入图片描述

db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db ##生成
vim /etc/pam.d/westos  ##文件名称任意
编写如下:
account required  pam_userdb.so db=/etc/vsftpd/westosfile
auth    required  pam_userdb.so db=/etc/vsftpd/westosfile

在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
编写如下:
pam_service_name=westos
guest_enable=YES

在这里插入图片描述
测试:

lftp 172.25.254.43 -u user1  ##虚拟用户user1登录ftp

在这里插入图片描述
虚拟用户家目录设定:

mkdir -p /ftphome/user1/user1dir  ##创建虚拟用户家目录
mkdir -p /ftphome/user2/user2dir

vim /etc/vsftpd/vsftpd.conf
编写如下:
local_root=/ftphome/$USER
user_sub_token=$USER

虚拟用户配置独立:

vim /etc/vsftpd/vsftpd.conf
编写如下:
usr_config_dir=/etc/vsftpd/userconf

mkdir -p /etc/vsftpd/userconf
touch /etc/vsftpd/userconf/user1
vim user1
编写如下:
anon_upload_enable=YES

或者:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/userconf/user1
vim user1
根据实际情况自行删除编写。

END

猜你喜欢

转载自blog.csdn.net/weixin_44828950/article/details/89456387