centos 7.6 ——vsftp服务部署
文章目录
- centos 7.6 ——vsftp服务部署
- 一、vsftpd原理
- 二、实验步骤
- 需求一:禁锢远程登录用户的目录随意移动,降低系统的危险
- 需求二:设置指定用户登录权限
- 需求三:设置虚拟用户ftp登录
- 三、小结
- vsftpd.conf配置:
一、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 10月 31 2018 ftpusers
-rw-------. 1 root root 380 7月 20 18:08 user_list
-rw-r--r--. 1 root root 24 7月 20 18:23 viuser
-rw-r--r--. 1 root root 12288 7月 20 18:29 viuser.db
-rw-------. 1 root root 5187 7月 20 18:20 vsftpd.conf
-rwxr--r--. 1 root root 338 10月 31 2018 vsftpd_conf_migrate.sh
[root@localhost vsftpd]# chmod 600 viuser viuser.db //更改文件的权限
[root@localhost vsftpd]# ls -l
总用量 36
-rw-------. 1 root root 125 10月 31 2018 ftpusers
-rw-------. 1 root root 380 7月 20 18:08 user_list
-rw-------. 1 root root 24 7月 20 18:23 viuser
-rw-------. 1 root root 12288 7月 20 18:29 viuser.db
-rw-------. 1 root root 5187 7月 20 18:20 vsftpd.conf
-rwxr--r--. 1 root root 338 10月 31 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 10月 31 2018 ftpusers
-rw-------. 1 root root 380 7月 20 18:08 user_list
-rw-------. 1 root root 24 7月 20 18:23 viuser
-rw-------. 1 root root 12288 7月 20 18:29 viuser.db
-rw-------. 1 root root 5291 7月 20 18:58 vsftpd.conf
-rwxr--r--. 1 root root 338 10月 31 2018 vsftpd_conf_migrate.sh
drwxr-xr-x. 2 root root 17 7月 20 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 7月 20 19:02 7777.txt
-rw-------. 1 viuser viuser 0 7月 20 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参数决这是允许还是拒绝