vsftpd配置文档

vsftpd

安装

$ sudo apt update
$ sudo apt install vsftpd

配置文件配置项参考

/etc/vsftpd.conf
# /etc/vsftpd.conf
# 未测试,仅供参考。

# 默认FTP服务器端口号是21,出于安全目的,有时需修改默认端口号
listen_port=4449

# 是否允许监听。
# 如果设置为YES,则vsftpd将以独立模式运行,由vsftpd自己监听和处理IPv4端口的连接请求
listen=YES
# 设定是否支持IPV6,默认监听IPv6的所有地址可接受IPv4和IPv6的连接。如果要监听具体的地址(listen_address参数项),则必须运行两套vsftpd。此参数和listen参数是互斥的。
listen_ipv6=NO
# 设置在指定的IP地址上侦听用户的FTP请求。若不设置,则对服务器所绑定的所有IP地址进行侦听。只有在以standalone模式运行时才有效。 对于只绑定了一个IP地址的服务器,不需要配置该项,默认情况下,配置文件中没有该配置项。若服务器同时绑定了多个IP地址,则应通过该配置项,指定在哪 个IP地址上提供FTP服务,即指定FTP服务器所使用的IP地址。注意:设置此值前后,可以通过netstat -tnl对比端口的监听情况
listen_address=IP地址

# 如果设置为NO,则所有下载请求都将拒绝权限。默认值:YES
download_enable=YES

# 启用PASV模式。若设置为YES,则使用PASV工作模式;若设置为NO,使用PORT模式。默认为YES。
pasv_enable=YES|NO
# 在PASV工作方式下,数据连接可以使用的端口范围的上界。默认值为0,表示任意端口。
pasv_max_port=0
# 在PASV工作方式下,数据连接可以使用的端口范围的下界。默认值为0,表示任意端口。
pasv_mim_port=0
# 指定FTP数据传输连接使用20端口。若设置为NO,则进行数据连接时,所使用的端口由ftp_data_port指定。 默认值为YES。
connect_from_port_20=YES
# 设置PORT方式下FTP数据连接所使用的端口,默认值为20。ftp-data数据传输,21为连接控制端口。
ftp_data_port=20

# 是否允许匿名登录FTP服务器,默认设置为YES允许
anonymous_enable=NO
# 是否允许匿名用户上传文件,须将全局的write_enable=YES。默认为YES
anon_upload_enable=NO
# 是否允许匿名用户创建新文件夹
anon_mkdir_write_enable=NO
# 匿名用户的根目录,默认为/var/ftp/,主配置文件中默认无此项。
anon_root=/var/ftp
# 默认值为YES只允许匿名用户下载可阅读的文件。NO允许匿名用户浏览整个服务器的文件
anon_world_readable_only=YES
# 安全沙箱目录,指向一个ftp用户无写权限的空目录,默认为/usr/share/empty。当vsftpd不需要访问文件系统时,这个目录将被作为一个安全的容器,用户将被限制在此目录中。
secure_chroot_dir=/usr/share/empty

# 虚拟用户,若是启动这项功能,所有的非匿名登入者都视为guest,默认值为NO关闭。如果要使用ftp虚拟用户需要启用
guest_enable=NO
# 定义VSFTPD的guest用户在系统中的用户名。默认值为ftp,在使用ftp虚拟用户时建议自定义,例如ftpvuser
guest_username=

# 是否允许本地用户(即linux系统中的用户帐号)登录FTP服务器,默认设置为YES允许。本地用户登录后会进入用户主目录,而匿名用户登录后进入匿名用户的下载目录/var/ftp/pub
local_enable=YES
# 是否允许本地用户对FTP服务器文件具有写权限,默认设置为YES允许
write_enable=YES
# 定义所有本地用户的根目录。默认为空,本地用户登录到自己的宿主目录
local_root=

# 在vsftpd中,用户登录后一般是直接登录在自己的家目录下,默认的一般家目录就是/根目录,也就是最顶级的目录所在了。如果用户有chroot命令的权限,那么其就可以修改自己的家目录也就是/根目录到任何目录,所以就有了访问任何目录的权限。所以这就是安全隐患的一个问题。一般来说ftp登录的目录没有必要访问其它的任何目录,就限制在自己原来的家目录即可。如果有特别情况,其用户需要有访问其它目录的权限也可以添加。
# 直接在配置文件中添加,此方法简单又方便,所有的用户都将拥有chroot权限。
allow_writeable_chroot=YES
# 是否将所有用户限制在主目录,YES为启用 NO禁用。YES表示所有用户都没有chroot权限,都限制在自己的家目录为根目录。
chroot_local_user=YES
#  chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!与chroot_list_file的设置项配合。
chroot_list_enable=YES
# 被列入此文件的用户作为例外。
chroot_list_file=/etc/vsftpd/chroot_list

# 匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。默认为NO不拥有
anon_other_write_enable=NO
# 设定是否允许改变上传文件的属主,与chown_username参数项配合使用。注意,不推荐使用root用户上传文件
chown_uploads=YES
# 设置想要改变的上传文件的属主,如果需要,则输入一个系统用户名。whoever:任何人
chown_username=whoever

# 默认情况下,VSFTPD使用二进制传输数据,禁止使用ASCII传输模式。如果FTP客户端使用ascii命令,指明要使用ASCII模式,VSFTPD表面上接受了ascii命令,但在实际传输文件时,还是使用二进制方式,就会出现乱码文件
# 是否以ASCII方式传输数据。默认情况下,服务器会忽略ASCII方式的请求。
# 启用此选项将允许服务器以ASCII方式传输数据
# 不过,这样可能会导致由"SIZE /big/file"方式引起的DoS攻击
ascii_upload_enable=YES
ascii_download_enable=YES

# max_client设置项 用于设置FTP服务器所允许的最大客户端连接数,值为0时表示不限制。
max_client=100
# max_per_ip设置项 用于设置对于同一IP地址允许的最大客户端连接数,值为0时表示不限制。
max_per_ip=5
# local_max_rate设置项 用于设置本地用户的最大传输速率,单位为B/s,值为0时表示不限制。
local_max_rate=500000
# anon_max_rate设置项 用于设置匿名用户的最大传输速率,单位为B/s,值为0表示不限制。
ano_max_rate=200000

# 设置建立被动(PASV)数据连接的超时时间,单位为秒,默认值为60。
accept_timeout=60
# PORT方式下建立数据连接的超时时间,单位为秒。
connect_timeout=60

# 配置空闲的用户会话的中断时间:如下配置将在用户会话空闲10分钟后被中断,以释放服务器的资源。单位s
Idle_session_timeout=600
# 配置空闲的数据连接的中断时间:如下配置将在数据空闲连接10分钟后被中断,同样也是为了释放服务器的资源。单位s
Data_connection_timeout=600

添加用户和用户

# 创建ftp主目录
$ sudo mkdir -p /data/ftp_dir
# 创建ftp用户目录
$ sudo mkdir /data/ftp_dir/user001
# 创建用户组
$ sudo addgroup ftp_group
# 创建用户
$ sudo userdel user001
# -s 指定shell,可设置禁止连接shell
$ sudo useradd -g ftp_group -d /data/ftp_dir/user001 -s /bin/false  user001
# 设置密码
$ sudo passwd user001
# 修改ftp用户目录权限
$ sudo chown user001:ftp_group /data/ftp_dir/user001
$ sudo chmod 700 /data/ftp_dir/user001

重启服务

$ sudo systemctl status vsftpd
$ sudo systemctl restart vsftpd
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vsftpd是一个常用的FTP服务器软件,在Ubuntu上的配置文件为`/etc/vsftpd.conf`,以下是一些常用配置项的详细解释: 1. `anonymous_enable`: 设置是否允许匿名用户登录FTP服务器。默认为YES,即允许匿名用户登录。 2. `local_enable`: 设置是否允许本地用户登录FTP服务器。默认为YES,即允许本地用户登录。 3. `write_enable`: 设置是否允许上传文件到FTP服务器。默认为YES,即允许上传文件。 4. `local_umask`: 设置本地用户上传文件时的文件权限掩码。默认为022,表示权限为644。 5. `dirmessage_enable`: 设置是否启用目录列表中的消息显示功能。默认为YES。 6. `xferlog_enable`: 设置是否启用传输日志功能。默认为YES。 7. `xferlog_file`: 设置传输日志的文件路径。默认为/var/log/vsftpd.log。 8. `chroot_local_user`: 设置是否限制本地用户的根目录为其个人目录。默认为NO,即不限制。 9. `chroot_list_enable`: 设置是否启用chroot_list文件,该文件中列出的用户将被限制在其个人目录中。默认为NO。 10. `chroot_list_file`: 设置chroot_list文件的路径。默认为/etc/vsftpd.chroot_list。 11. `pasv_enable`: 设置是否启用被动模式(PASV)传输。默认为YES。 12. `pasv_min_port`和`pasv_max_port`: 设置被动模式传输使用的端口范围。默认为0,表示使用任意可用端口。 这些只是vsftpd配置文件中的一部分重要配置项,您可以根据实际需求进行调整和配置。在修改配置文件后,需要重启vsftpd服务才能生效:`sudo service vsftpd restart`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值