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

相关推荐
晚风吹红霞1 小时前
Vim编辑器从入门到熟练 —— 三种模式与常用命令详解
linux·编辑器·vim
代码熬夜敲Q1 小时前
Nginx相关
运维·服务器·nginx
古月方枘Fry1 小时前
OSPF 企业级多区域网络
运维·服务器·网络
gwjcloud1 小时前
Kubernetes从入门到精通(devops)06
运维·devops
shandianchengzi1 小时前
【记录】Claude Code|Ubuntu26给Claude Code新增任务消息提示音
运维·服务器·ubuntu·ai·大模型·音频·claude
蚰蜒螟2 小时前
从mkdir命令到磁盘:Linux内核目录创建过程深度解析
linux·运维·数据库
念何架构之路2 小时前
接入层Nginx
运维·nginx
wanhengidc2 小时前
云手机 跨设备无缝衔接
运维·服务器·人工智能·智能手机·云计算
sxlishaobin2 小时前
SSH远程免密登录的两种方式
运维·ssh
coward912 小时前
Linux内核驱动初始化流程认识(关于late_initcall和modul_init驱动初始化宏差异)
linux·嵌入式硬件