CentOS系统安装vsftpd

下载并安装 vsftpd

apt-get install vsftpd

安装后检查 service vsftpd status

修改配置文件(被动/匿名用户模式)

vi /etc/vsftpd.conf

anonymous_enable=NO

listen=YES

listen_port=21

ascii_upload_enable=YES

ascii_download_enable=YES

local_enable=YES

guest_enable=YES

guest_username=ftp

virtual_use_local_privs=YES

pasv_enable=YES

port_enable=NO

pasv_min_port=28000

pasv_max_port=28999

anon_world_readable_only=NO

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES

pam_service_name=vsftpd.vu

user_config_dir=/etc/vsftpd/vsftpd_user_conf

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

allow_writeable_chroot=YES

配置匿名用户的文本文件

mkdir /etc/vsftpd

cd /etc/vsftpd

vi login.txt

输入文本:

ftp

$ftpPassword

注:奇数行账号,偶数行密码

导入用户文本文件到数据库

db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db

如果没有找到命令db_load,需安装

apt-get install db-util

配置pam_service_name对应文件

首先,全局查找文件pam_userdb.so的路径。

find / -name pam_userdb.so

vi /etc/pam.d/vsftpd.vu

输入以下内容:

auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login

account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/login

配置匿名用户的ftp根目录和权限

mkdif /etc/vsftpd/vsftpd_user_conf

vi /etc/vsftpd/vsftpd_user_conf/ftp

注:文件名称要与ftp账号文件中输入的ftp账号一致

输入以下内容:

local_root=/home/terry/store/ftp

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

创建匿名用户,或修改匿名用户根目录

如果账号是ftp,则安装vsftpd时已默认创建了该用户,需要修改用户根目录与上面local_root一致。

vi /etc/passwd

例如:

ftp:x:127:132:ftp daemon,,,:/home/terry/store/ftp:/usr/sbin/nologin

如果是其他账号,则需要新增用户。比如新增账号ftp2,

useradd -d/home/terry/store/ftp2 -s /sbin/nologin ftp2

修改ftp目录的访问权限

chown ftp:ftp /home/terry/store/ftp

chmod 755 /home/terry/store/ftp

配置防火墙

sudo ufw allow 21

sudo ufw allow 28000:28999/tcp

sudo ufw reload

重启vsftpd服务

sudo service vsftpd restart

相关推荐
lys_8284 小时前
【linux】解决NAT模型下使用Xshell连接虚拟机显示22端口connection failed问题
linux·运维·服务器
Mxsoft6194 小时前
电力系统智能运维网络安全威胁检测与防御策略
运维·安全·web安全
序属秋秋秋5 小时前
《Linux系统编程之系统导论》【冯诺依曼体系结构 + 操作系统基本概述】
linux·运维·服务器·c语言·ubuntu·操作系统·冯诺依曼体系结构
她说彩礼65万6 小时前
C# 特性详解
linux·服务器·c#
LSL666_8 小时前
5 Repository 层接口
android·运维·elasticsearch·jenkins·repository
Hi2024021710 小时前
消除FFmpeg库的SONAME依赖
linux·ffmpeg
电棍23310 小时前
在docker a100云服务器运行vulkan->sapien->robotwin的经验(报错segmentation fault)
运维·docker·容器
gfanbei11 小时前
ARM V8 Cortex R52 上电运行在什么状态?— Deepseek 解答
linux·arm开发·嵌入式硬件
liu****12 小时前
14.日志封装和线程池封装
linux·开发语言·c++
云动雨颤12 小时前
访问宝塔面板安全入口404?SSH命令轻松解决
linux·运维·安全