Debian12部署vsftpd

Administrator 22 2024-03-22

Debian12部署vsftpd

\1. 安装 vsftpd

sudo apt update
sudo apt install vsftpd

2、创建用户

useradd -m ftpadmin
passwd ftpadmin

New password: 输入密码
Retype new password: 输入密码
passwd: password updated successfully

\3. 配置 vsftpd

sudo vim /etc/vsftpd.conf
修改文件中以下内容内容:

listen=YES
listen_ipv6=NO

# 禁止匿名登录
anonymous_enable=NO

# 允许本地用户登录
local_enable=YES

# ftp可写命令 包括 复制粘贴 剪切移动 新建删除
write_enable=YES

# 本地用户权限
local_umask=022

# 匿名用户上传文件
anon_upload_enable=NO

# 匿名用户新建文件夹
anon_mkdir_write_enable=NO

# 目录消息 当远程用户进入某个目录 向他们发送消息
dirmessage_enable=YES

# 本地时间
use_localtime=YES

# 激活上载/下载的日志记录
xferlog_enable=YES

# 确保PORT传输连接来自端口20(FTP数据) 
connect_from_port_20=YES

# 覆盖日志文件所在的位置。 默认值 /var/log/vsftpd.log
xferlog_file=/var/log/vsftpd.log

# 如果需要,可以将日志文件设置为标准ftpd xferlog格式。
# 请注意,在这种情况下,默认的日志文件位置是/var/log/xferlog
#xferlog_std_format=YES

# 二进制上传与下载
ascii_upload_enable=YES
ascii_download_enable=YES

# 您可以完全自定义登录标题字符串:
ftpd_banner=Welcome to blah FTP service.

# 将本地用户限制为他们的主目录。
chroot_local_user=YES

# 允许写入,解决500错误
allow_writeable_chroot=YES

# 取消注释以指示vsftpd使用utf8文件系统。
utf8_filesystem=YES

4、创建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
"ftpadmin"

5、确保用户根目录权限至少755

root@we-dev:~# ll /home/|grep ftp
drwxr-xr-x  3 ftpadmin ftpadmin 4.0K Mar 12 16:32 ftpadmin/
root@we-dev:~# ll /home/ftpadmin/
total 24K
drwxr-xr-x 3 ftpadmin ftpadmin 4.0K Mar 12 16:32 ./
drwxr-xr-x 4 root     root     4.0K Mar 12 16:31 ../
-rw-r--r-- 1 ftpadmin ftpadmin  220 Apr 24  2023 .bash_logout
-rw-r--r-- 1 ftpadmin ftpadmin 3.5K Apr 24  2023 .bashrc
-rw-r--r-- 1 ftpadmin ftpadmin  807 Apr 24  2023 .profile
drwxr-xr-x 2 ftpadmin ftpadmin 4.0K Mar 12 16:41 upload/

6、重启vsftpd服务

# 重启ftp服务
systemctl restart vsftpd
# 查看ftp服务状态
systemctl status vsftpd
# 开机自启
systemctl elable vsftpd

7、连接ftp测试(注意服务器端口要开放21)

C:\Users\we>ftp 1.1.1.1
连接到 1.1.1.1。
220 Welcome to blah FTP service.
200 Always in UTF8 mode.
用户(1.1.1.1:(none)): ftpadmin
331 Please specify the password.
密码:
230 Login successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
upload
226 Directory send OK.
ftp: 收到 11 字节,用时 0.00秒 11.00千字节/秒。
ftp>

#ls                                           查看当前目录
#cd upload                                    进入upload文件夹
# put /path/to/local/file /remote/file/name   上传 #windows上传默认在当前用户 C:/Users/we/
# get /remote/file/name /path/to/local/file   下载 #windows下载默认在当前用户 C:/Users/we/