centos 7.6 ——vsftp服务部署

centos 7.6 ——vsftp服务部署

一、vsftpd原理

FTP:文件传输协议(File Transfer Protocol),基于该协议FTP客户端与服务端可以共享文件、上传下载文件。FTP 是基于TCP协议生成一个虚拟的连接,该协议的21端口用于控制FTP的TCP连接信息,20端口用于TCP连接FTP的数据传输。FTP服务是基于Client/Server(C/S)架构。
vsftpd是ftp的增强版。

Vsftpd(Very Secure FTP daemon)是Unix/Linux使用较为广泛的FTP服务器软件,优点小巧轻快,安全易用、稳定高效、满足企业跨部门使用、多用户。

Vsftpd是基于GPL开源协议发布。
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等

二、实验步骤

1. 挂载光盘,安装vsftpd-3.0.2-25.el7.x86_64.rpm

[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs        50G  4.1G   46G    9% /
devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs     1.9G   13M  1.9G    1% /run
tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda2      xfs       246G   37M  245G    1% /home
/dev/sda1      xfs      1014M  174M  841M   18% /boot
tmpfs          tmpfs     378M  8.0K  378M    1% /run/user/42
tmpfs          tmpfs     378M     0  378M    0% /run/user/0
/dev/sr0       iso9660   4.3G  4.3G     0  100% /mnt
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm 警告:/mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
	软件包 vsftpd-3.0.2-25.el7.x86_64 已经安装

2. 关闭防火墙、核心防护。开启vsftp服务。

[root@localhost vsftpd]# systemctl start vsftpd
[root@localhost vsftpd]# systemctl stop firewalld
[root@localhost vsftpd]# systemctl disable firewalld
[root@localhost vsftpd]# setenforce 0

3. 客户机使用ftp匿名登录服务端

在这里插入图片描述

  • 客户端访问的ftp服务端的目录实质是服务端的ftp中的,/var/ftpd/pub目录中的内容。
  • 为定义权限的匿名用户,只能对服务端进行文件的下载无法上传文件。需要服务端设置权限才可进行下载删除文件等操作。

在这里插入图片描述

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

匿名用户登录没有权限上传文件
在这里插入图片描述

4. 设置远程登录用户权限

anonymous_enable=YES //允许匿名用户登录
write_enable=YES //允许匿名用户进行文件写操作
local_enable=YES //允许本地用户登录
local_umask=022 //用户的反掩码
anon_upload_enable=YES //允许匿名用户上传文件
anon_mkdir_write_enable=YES //允许匿名用户创建目录文件
dirmessage_enable=YES // 目录消息开启
xferlog_enable=YES //日志转移开启
connect_from_port_20=YES //连接20端口

进入配置文件

vim /etc/vsftpd/vsftpd.conf
修改配置文件之后
systemctl restart vsftpd

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

需求一:禁锢远程登录用户的目录随意移动,降低系统的危险

进行配置文件修改时,然后加载服务。
chroot_local_user=YES //禁锢远程登录用户的目录随意移动,降低系统的危险

vim /etc/vsftpd/vsftpd.conf
修改配置文件之后
systemctl restart vsftpd

在这里插入图片描述

需求二:设置指定用户登录权限

[root@localhost vsftpd]#echo "ttyy" >> user_list 
[root@localhost vsftpd]#Vim /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
wangwu
wangwu
ttyy


vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述

在这里插入图片描述

需求三:设置虚拟用户ftp登录

[root@localhost vsftpd]# db_load -T -t hash -f viuser viuser.db  //将viuser文件转为数据库文件
[root@localhost vsftpd]# ls -l
总用量 36
-rw-------. 1 root root   125 1031 2018 ftpusers
-rw-------. 1 root root   380 720 18:08 user_list
-rw-r--r--. 1 root root    24 720 18:23 viuser
-rw-r--r--. 1 root root 12288 720 18:29 viuser.db
-rw-------. 1 root root  5187 720 18:20 vsftpd.conf
-rwxr--r--. 1 root root   338 1031 2018 vsftpd_conf_migrate.sh
[root@localhost vsftpd]# chmod 600 viuser viuser.db  //更改文件的权限
[root@localhost vsftpd]# ls -l
总用量 36
-rw-------. 1 root root   125 1031 2018 ftpusers
-rw-------. 1 root root   380 720 18:08 user_list
-rw-------. 1 root root    24 720 18:23 viuser
-rw-------. 1 root root 12288 720 18:29 viuser.db
-rw-------. 1 root root  5187 720 18:20 vsftpd.conf
-rwxr--r--. 1 root root   338 1031 2018 vsftpd_conf_migrate.sh
[root@localhost vsftpd]# useradd -d /opt/viuser -s /sbin/nologin viuser
[root@localhost vsftpd]# id viuser
uid=1004(viuser) gid=1004(viuser)=1004(viuser)
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu   //编辑认证模块
auth required pam_userdb.so db=/etc/vsftpd/viuser
account required pam_userdb.so db=/etc/vsftpd/viuser
[root@localhost pam.d]# vim vsftpd.vu   //添加配置PAM的配置文件
auth required pam_userdb.so db=/etc/vsftpd/viuser
account required pam_userdb.so db=/etc/vsftpd/viuser
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf 


在这里插入图片描述

在这里插入图片描述

[root@localhost pam.d]# cd /etc/vsftpd/
[root@localhost vsftpd]# mkdir vu_dir
[root@localhost vsftpd]# ll
总用量 36
-rw-------. 1 root root   125 1031 2018 ftpusers
-rw-------. 1 root root   380 720 18:08 user_list
-rw-------. 1 root root    24 720 18:23 viuser
-rw-------. 1 root root 12288 720 18:29 viuser.db
-rw-------. 1 root root  5291 720 18:58 vsftpd.conf
-rwxr--r--. 1 root root   338 1031 2018 vsftpd_conf_migrate.sh
drwxr-xr-x. 2 root root    17 720 19:00 vu_dir
[root@localhost vsftpd]# cd vu_dir/
[root@localhost vu_dir]# vi tom
anon_umask=022  //反掩码,文件666-022=644,设置该用户上传的文件是644


在这里插入图片描述

[root@localhost vu_dir]# pwd
/etc/vsftpd/vu_dir
[root@localhost vu_dir]# cd /opt/viuser/
[root@localhost viuser]# ll
总用量 0
-rw-r--r--. 1 viuser viuser 0 720 19:02 7777.txt
-rw-------. 1 viuser viuser 0 720 18:56 texxt.txt
[root@localhost viuser]# 

三、小结

vsftpd.conf配置:

1、默认配置:

anonymous_enable=YES #允许匿名用户访问
local_enable=YES #允许本地用户访问
write_enable=YES #具有写权限
local_umask=022 #本地用户创建文件或目录的掩码
connect_from_port_20=YES #开启20端口

2、允许匿名用户具有写权限(上传/创建目录)

在默认配置下添加以下内容:
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO 允许匿名帐号写 另外还需具有所有权限的目录

3、屏蔽本地所有用户浏览其他目录的权限(除了home目录,匿名用户本身只能访问home目录)

在默认配置下添加以下内容:
chroot_local_user=YES

4、屏蔽部分本地用户浏览其他目录的权限

在默认配置下添加以下内容:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
另外再创建文件/etc/vsftpd.chroot_list,并添加需要屏蔽的用户。

5、性能选项

idle_session_timeout=600
data_connection_timeout=120
local_max_rate=50000  #本地用户的最高速率
anon_max_rate=30000 #匿名用户的最高速率
修改/etc/passwd文件的用户家目录可以改变用户登录的目录
修改/etc/passwd文件的用户的登录shell为/sbin/nologin,则不能用于本地登录,可以用于ftp登录。
/etc/xinetd.d/vsftpd文件的主要内容:(“=”前后有空格)
only_from = 192.168.1.1|192.168.1.0/24 #只接收来至某ip或网段
no_access = 192.168.3.2|192.168.3.0/24 #拒绝接收来至某ip或网段
access_times = 8:00-17:00 #设置访问时间
instances = 200 #设置最大连接数
per_source = 5 #设置每个ip可有几个连接
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd.ftpusers 阻止用户访问FTP服务器的用户名称清单
/etc/vsftpd.userlist 控制用户访问FTP服务器的用户名称清单,由/etc/vsftpd/vsftpd.conf中的
userlist_deny参数决这是允许还是拒绝

猜你喜欢

转载自blog.csdn.net/weixin_42099301/article/details/107459167