一、快速安装 vsftp 软件

#软件安装
apt-get install vsftpd

#创建访问用户,添加一个用户(ftpuser)
useradd -d /home/ftpuser -m ftpuser
passwd ftpuser
chown ftpuser.ftpuser -R /home/ftpuser

#将原有配置全部清空,使用下面配置。
vi /etc/vsftpd.conf
listen=YES                                    
anonymous_enable=NO
local_enable=YES
local_umask=077
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd

#启动
service vsftpd restart

#排除影响服务的因素:关闭selinux和防火墙

#登录信息账户和密码ftpuser/ftpuser,上传目录为/home/ftpuser,目录权限为可读可写

二、更多功能参考下面配置

vi /etc/vsftpd/vsftpd.conf
listen=NO
#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
#开启日记功能
xferlog_enable=YES
#使用标准的20端口来连接ftp
connect_from_port_20=YES
#使用标准日志格式
xferlog_std_format=YES
#设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下
pam_service_name=vsftpd
#ftp服务器将使用tcp_wrappers作为主机访问控制模式
tcp_wrappers=YES
#允许本地用户访问,禁止匿名访问,本地用户创建文件的umask值
anonymous_enable=NO
local_enable=YES
local_umask=077
#运行文件上传
write_enable=YES
#限制最大传输建率(字节/秒) 0为无限制
local_max_rate=0     
#限制用户登录,将用户名添加到/etc/vsftpd.user_allow_list文件来指定允许登录的用户
userlist_enable=YES
userlist_file=/etc/vsftpd.user_allow_list
userlist_deny=NO
#如果用户没有设置主目录,可以通过下面设置指定根目录。如果设置了chroot_local_user,下面指定目录就没有必要
local_root=/home/xxx
#默认情况下,为了防止安全漏洞,启用chroot后,如果用户锁定的目录可写,则vsftpd将拒绝上传文件。所以必须开启allow_writeable_chroot
chroot_local_user=YES
allow_writeable_chroot=YES
#表示是否开启chroot的环境,默认没有开启
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list   
chroot_local_user=YESchroot_local_user=NO
chroot_list_enable=YES1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制
chroot_list_enable=NO1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

三、生产环境下的安全配置

本配置的uftp用户只能通过特定的服务(如FTP、SFTP等)进行远程访问,不能直接登录系统,访问特定目录/data/liss,限制其他用户访问。

# 创建uftp用户,指定此用户的主目录。
# `-d` 选项用于指定用户的主目录;`-s` 选项用于指定用户的默认 shell。
# `/sbin/nologin` 是一个特殊的 shell,它不允许用户登录系统.
# 通常用于限制某些用户只能通过特定的服务(如FTP、SFTP等)进行远程访问,
# 而不能直接登录系统。
useradd -d /data/liss -s /sbin/nologin uftp
# 设置密码
passwd uftp
# 如果想要恢复为正常用户,可以执行以下命令:
usermod -s /bin/bash uftp
#创建的用户是只能通过ftp访问的用户,一定要删除 /etc/pam.d/vsftpd 配置文件,因为这个配置文件会导致使用用户名登录 ftp 失败
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak


#将原有配置全部清空,使用下面配置。
vi /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
local_umask=077
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

#添加用户uftp
vi /etc/vsftpd.chroot_list
uftp
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐