VSFTPd

root
233
文章
0
评论
2021年2月20日19:15:05 评论 5432字阅读18分6秒

VSFTPd

vsFTPd的软件信息

服务端软件名:vsftpd

客户端软件名:ftp

服务名:vsftpd

端口号:20,21,地址范围内随机端口

 

 

vsFTP是linux中很安全的一种ftp软件,本章主要介绍搭建FTP服务器的过程

[root@kk ~]# yum -y install vsftpd

 

配置开机自动启动vsftp服务

查看自动启动的服务列表中有无vsftpd服务:

[root@kk vsftpd]# systemctl list-unit-files|grep vsftpd.service
vsftpd.service                                disabled

 

[root@kk vsftpd]# systemctl enable vsftpd

 

创建vsftp系统用户

为了安全性要求,以及方便维护和权限控制管理,我们采用FTP虚拟用户来进行管理。这种方式就要求首先要有系统用户,然后将FTP虚拟用户映射到系统用户上,然后给FTP虚拟用户设置访问得目录和权限。

首先要新建系统本地用户,比如virtftp,设置该用户的主目录为/data/ftp,不允许登录,命令如下:

[root@kk vsftpd]# useradd -d /data/ftp -s /sbin/nologin virtftp

[root@kk vsftpd]# chown -R virtftp:virtftp /data/ftp
[root@kk vsftpd]# chmod 755 -R /data/ftp/

 

virtftp的作用是提供一个家目录给所创建的ftp用户使用,而不是登录

 

vsftp的配置文件目录

  • vftpd.conf是配置文件
  • ftpuser 永久黑名单
  • user_list 临时黑名单
[root@kk ~]# cd /etc/vsftpd/
[root@kk vsftpd]# ll
total 20
-rw------- 1 root root  125 Oct 14 00:10 ftpusers
-rw------- 1 root root  361 Oct 14 00:10 user_list
-rw------- 1 root root 5116 Oct 14 00:10 vsftpd.conf
-rwxr--r-- 1 root root  338 Oct 14 00:10 vsftpd_conf_migrate.sh

 

添加配置文件参数

[root@kk vsftpd]# mv vsftpd.conf vsftpd.conf_bak 
[root@kk vsftpd]# cat >>vsftpd.conf<<x
# modify config
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
tcp_wrappers=YES
listen=YES
listen_ipv6=NO
listen_port=10021
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
pam_service_name=vsftpd

userlist_enable=YES
userlist_deny=NO
user_config_dir=/etc/vsftpd/vuserconf

allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

guest_enable=YES
guest_username=virtftp
virtual_use_local_privs=YES
x
[root@kk vsftpd]# systemctl restart vsftpd

 

 

配置参数说明
local_enable=YES允许本地用户登录
write_enable=YES允许ftp用户写权限
local_umask=022本地用户默认的掩码
dirmessage_enable=YES激活目录消息
xferlog_enable=YES激活上传、下载日志
connect_from_port_20=YES确保连接端口20开放
xferlog_std_format=YES采用标准的日志文件输出格式
anonymous_enable=NO不允许匿名访问
tcp_wrappers=YES允许主机访问控制

可以将允许访问FTP的主机放入配置文件/etc/hosts.allow中,不允许访问FTP的主机放入配置文件/etc/hosts.deny中

执行顺序为先allow,后deny

listen=YES打开ipv4监听
listen_ipv6=NO关闭ipv6监听
listen_port=10021修改监听端口为10021
pasv_enable=YES开启被动模式
pasv_min_port=40000被动模式数据端口最小值40000
pasv_max_port=50000被动模式数据端口最大值50000
pam_service_name=vsftpdpam验证设备名,在目录/etc/pam.d下的文件vsftpd,该文件配置pam验证参数
userlist_enable=YES &&  userlist_deny=YES只允许指定的账号登陆FTP,其他用户不允许

在/etc/vsftpd/user_list中配置允许访问ftp的用户,这里是指虚拟用户

userlist_enable=YES &&  userlist_deny=NO仅允许/etc/vsftpd/user_list文件中出现的用户登录ftp
user_config_dir=/etc/vsftpd/vuserconf存放虚拟用户配置信息的目录
allow_writeable_chroot=YES允许ftp用户对chroot目录写权限
chroot_local_user=YES#默认没有禁锢用户的时候,客户端登录后可以随便切换目录,查看目录所在位置和文件名

所有用户被限制在其主目录下,限制用户不能随意切换用户,主要保护linux操作系统不会被ftp用户影响

chroot_list_enable=YES1.开启白名单功能,允许白名单中的用户随意切换用户
chroot_list_file=/etc/vsftpd/chroot_list2.白名单文件所在位置(需要自己创建,往里写用户名就行)
guest_enable=YES虚拟用户被假设成guest登录
guest_username=virtftp虚拟用户被映射为本地的virtftp用户
virtual_use_local_privs=YES虚拟用户与本地用户有相同的权限
local_root=/data/ftp本地用户登录后的根目录
anon_root=/data/ftp匿名用户登录后的根目录
anon_world_readable_only=NO允许匿名用户浏览目录
anon_mkdir_write_enable=YES允许匿名用户建立目录
anon_upload_enable=YES允许匿名用户上传文件
anon_other_write_enable=YES允许匿名用户除了新建和上传外的其他权限,如:删除、更名
max_clients=10000最大并发客户连接数
max_per_ip=5每个IP最大连接数
dual_log_enable=YES允许双日志输出
vsftpd_log_file=/var/log/vsftpd.log记录登陆ftp的日志文件
xferlog_enable=YES允许记录上传、下载活动日志
xferlog_file=/var/log/xferlog记录上传、下载活动日志的文件

 

登录验证方式

 

匿名用户验证:

所有人都可以用一个用户来登录,只是无法确认使用这个账号登录了

好处:不需要创建大量用户和密码

坏处:所有的人资料都存在了同一个根目录下,内容容易混淆,丢失,盗窃

  • 用户账号名称:ftp或anonymous
  • 用户账号密码:无密码
  • 工作目录:/var/ftp(不要直接把文件往这里放,可以新建直接的目录放东西)
  • 默认权限:默认可下载不可上传,上传权限由两部分组成(主配置文件和文件系统

 

本地用户验证:

每个人有一个独立的账号,主要解决匿名用户内容的隔离问题

  • 用户账号名称:本地用户(/etc/passwd)
  • 用户账号密码:用户密码(/etc/shadow)
  • 工作目录:登录用户的宿主目录
  • 权限:最大权限(drwx------)

 

虚拟用户验证:

  • 创建虚拟用户用来代替本地用户,减少本地用户的曝光率
  • 使用本地用户作为虚拟用的映射用户,为虚拟用户提供工作目录和权限控制
  • 能够设置严格的权限(为每一个用户生成单独的配置文件)

虚拟用户规划

虚拟用户名密码权限
wsk123456下载文件,删除文件
user123456上传文件,创建目录
admin123456管理权限,可以上传、下载、文件改名,创建目录

 

配置虚拟用户访问权限

配置有哪些虚拟用户可以登陆访问FTP服务,可以访问哪些目录,都是什么访问权限。

配置允许访问FTP的用户

修改/etc/vsftpd/user_list,增加允许访问ftp的用户wsk、user、admin:

[root@kk vsftpd]# vim /etc/vsftpd/user_list
wsk
user
admin

 

建立虚拟用户配置文件并设置访问权限

为FTP虚拟用户wsk、user、admin指定访问的目录和权限。

mkdir /etc/vsftpd/vuserconf
cd /etc/vsftpd/vuserconf

wsk用户

[root@kk vuserconf]# cat >>wsk<<x
guest_username=virtftp
local_root=/data/ftp
anon_root=/data/ftp
virtual_use_local_privs=NO

write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=NO
anon_upload_enable=YES
anon_other_write_enable=YES
x

anon_mkdir_write_enable=NO   不允许创建目录

anon_other_write_enable=YES    删除文件,文件名称,覆盖文件

anon_upload_enable=YES          允许匿名用户上传文件

anon_world_readable_only=NO  允许匿名用户浏览目录

user用户

[root@kk vuserconf]# cat >>user<<x
guest_username=virtftp
local_root=/data/ftp
anon_root=/data/ftp
virtual_use_local_privs=NO

write_enable=YES
download_enable=NO
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
x

admin用户

[root@kk vuserconf]# cat >>user<<<x
guest_username=virtftp
local_root=/data/ftp
anon_root=/data/ftp
virtual_use_local_privs=YES

write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
x

 

配置ftp用户的访问权限在主目录内

将配置文件/etc/vsftpd/chroot_list置为空,不允许有超出主目录的访问权限。

[root@kk vsftpd]# echo > /etc/vsftpd/chroot_list

 

配置虚拟用户验证密码

进入目录/etc/vsftpd,新建FTP虚拟用户及密码的管理文件vuser.txt,该文件内容的格式为一行用户名,后面紧跟一行该用户的密码,多个用户以此类推,用户名占奇数行,用户密码占偶数行。比如我们配置三个用户wsk、user、admin,内容如下:

wsk
12345
user
12345
admin
12345

vuser.txt配置好以后,我们要使用db_load生成加密后的db文件,命令如下:

[root@kk vsftpd]# db_load -T -t hash -f vuser.txt vuser.db

修改数据库文件权限,保证其安全性

[root@kk vsftpd]# chmod 600 vuser.db

 

配置pam验证文件

配置完FTP虚拟用户,需要修改用户的验证方式,这就需要修改pam验证文件/etc/pam.d/vsftpd,注释掉原文件中所有内容,新增内容如下:

[root@kk vsftpd]# vim /etc/pam.d/vsftpd

auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

 

 

 

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2021年2月20日19:15:05
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Kafka安装 软件管理

Kafka安装

Kafka安装 kafka定义: kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域 官网地址:http://kafka.apache.org/ 下载地址:http:/...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: