Centos下vsftpd服务配置

Centos下vsftpd服务配置


前言

本文介绍在Centos下通过vsftpd服务搭建FTP服务器,创建FTP账号过程


一、FTP简介

FTP(File Transfer Protocol)是一种文件传输协议,基于客户端/服务器架构,支持以下两种工作模式:

主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。
被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。

说明:大多数FTP客户端都在局域网中,没有独立的公网IP地址,且有防火墙阻拦,主动模式下FTP服务器成功连接到客户端比较困难。因此,如无特殊需求,建议您将FTP服务器配置为被动模式。

FTP支持以下三种认证模式:

匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。
本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。
虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器
的安全性。

二、搭建步骤

1.安装vsftpd服务

(1)yum在线安装

yum install vsftpd

(2)离线安装

离线可以下载vsfdpd安装包后,使用rpm进行安装

rpm -ivh vsftpd-3.0.2-29.el7_9.x86_64.rpm

2.虚拟用户模式

(1)创建账号密码

首先,创建用于进行ftp认证的用户数据库文件vu.txt,其中奇数行是用户名,偶数行是登录密码。其次,利用db_load命令用哈希算法将原始明文信息文件转换成vsftpd服务程序可加载的数据库文件vu.db。最后,为了避免其它用户访问该数据库文件的内容,修改降低数据库文件的权限,把原始的明文文件删除。

#进入vsftpd配置目录
cd /etc/vsftpd/

#创建vu.txt明文文件
cat >>/etc/vsftpd/vu.txt<<EOF
admin
admin
upload
upload
download
download
EOF

#把vu.txt明文文件转换成vu.db数据库文件
db_load -T -t hash -f vu.txt vu.db

#修改降低vu.db数据库文件的权限并删除原始明文文件
chmod 600 vu.db
rm -f vu.txt

(2)创建账号、虚拟账号、ftp路径

创建vsftpd服务程序用于存储文件的根目录/var/ftpdate以及用于虚拟用户映射的系统本地用户ftpadmin。此外,为了安全起见,将ftpadmin系统本地用户设置为不允许登录该服务器。创建虚拟用户upadmin目录/var/ftpdate/upadmin并更换其所属组和所属用。

#创建系统本地用户ftpadmin及所属目录并禁用该用户登录服务器
useradd -d /home/ftp -s /sbin/nologin ftpadmin

#创建虚拟用户upload的目录
mkdir /home/ftp/upload

#修改虚拟用户upload的所属组和所属用户
chown -R ftpadmin:ftpadmin /home/ftp/upload

#修改/home/ftp/的权限
chmod -Rf 755 /home/ftp/

(3)创建PAM文件

创建用于支持虚拟用户的PAM文件

#Tips:不用写数据库文件vu.db的后缀
cat >>/etc/pam.d/vs.vu<<EOF
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu
EOF

(4)创建账号配置文件

创建目录/etc/vsftpd/vu_perm用于存放为不同虚拟用户设置不同的权限的文件。例如,admin,upload和download。

#Tips:虚拟用户权限的文件名与虚拟用户名称保持一致。
#创建目录/etc/vsftpd/vu_perm
mkdir /etc/vsftpd/vu_perm

#创建虚拟用户admin的权限文件admin,使其具备上传、下载、创建目录、删除和移动文件的权限
cat >>/etc/vsftpd/vu_perm/admin<<EOF
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp
EOF

#创建虚拟用户upload的权限文件upload,使其仅具备上传文件、创建目录的权限
cat >>/etc/vsftpd/vu_perm/upload<<EOF
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_root=/home/ftp/upload
EOF

#创建虚拟用户download的权限文件download,使其仅具备下载文件的权限
cat >>/etc/vsftpd/vu_perm/download<<EOF
anon_world_readable_only=NO
local_root=/home/ftp
EOF

#为了安全起见,递归修改/etc/vsftpd/vu_perm的权限
chmod -R 600 /etc/vsftpd/vu_perm/

(5)配置vsftpd服务程序的主配置文件

#备份sftpd服务程序的主配置文件
cp /etc/vsftpd/vsftpd.conf{,backup}

#把默认未注释的配置文件重定写入vsftpd.conf配置文件中
grep -v "#" /etc/vsftpd/vsftpd.confbackup >/etc/vsftpd/vsftpd.conf

#修改配置文件
vi /etc/vsftpd/vsftpd.conf

修改后配置内容,加粗部分为修改或增加内容
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=ftpadmin
allow_writeable_chroot=YES

local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vs.vu
userlist_enable=YES
user_config_dir=/etc/vsftpd/vu_perm

(6)安全配置,涉及到Firewall和SeLinux的配置

#放通ftp服务,允许客户端连接服务器ftp服务(TCP 21)并使配置生效
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

#获取关于ftp相关的SeLinux布尔值设置
getsebool -a | grep ftp

#修改SeLinux关于ftp服务的布尔值
#Tips:-p表示永久生效,不受服务器重启的影响。
setsebool -P ftpd_connect_all_unreserved=on
setsebool -P ftpd_full_access=on

(7)重启vsftpd服务并设置跟随系统自启动

#重启vsftpd服务
systemctl restart vsftpd

#设置vsftpd服务开机自启动
systemctl enable vsftpd

(8)主动模式和被动模式

#主动模式连接的数据通道端口
connect_from_port_20=YES
#使能被动模式
pasv_enable=YES(默认使能)
pasv_min_port=50000(默认0,使用任何端口)
pasv_max_port=50100(默认0,使用任何端口)


总结

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值