一、vsftpd是什么?
vsftpd 是very secure FTP daemon(服务)的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件。
二、搭建过程
1.查询vsftpd是否存在和安装成功
出现以下信息,表示ubuntu系统没有安装vsftpd服务
2.安装vsftpd
sudo apt-get install vsftpd
安装成功。 vsftpd is already the newest version 3.0.5
位置:
whereis vsftpd vsftpd: /usr/sbin/vsftpd /usr/share/man/man8/vsftpd.8.gz
版本:
vsftpd -version vsftpd: version 3.0.5
查询状态:
● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset> Active: active (running) since Sun 2024-11-10 18:36:25 CST; 8min ago Main PID: 755836 (vsftpd) Tasks: 1 (limit: 18010) Memory: 856.0K CPU: 2ms CGroup: /system.slice/vsftpd.service └─755836 /usr/sbin/vsftpd /etc/vsftpd.conf Nov 10 18:36:25 iZb*****xoZ systemd[1]: Starting vsftpd FTP server.> Nov 10 18:36:25 iZb*******oZ systemd[1]: Started vsftpd FTP server.
开启vsftpd:
sudo service vsftpd start
没有反应,表示启动成功
重启vsftpd
sudo service vsftpd restart
没有反应,表示已经重启
停止:
sudo service vsftpd stop
没有反应,vsftpd停止
3.1.配置防火强
sudo ufw allow OpenSSh
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw enable
sudo ufw status
3.2配置vsftpd
默认不允许匿名登录
出于安全性,有一些用户不允许通过FTP登录,vsftpd将这些用户整理在 /etc/ftpusers中。这是FTP黑名单,所有被列入其中的用户都不能通过FTP登录进来。
# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5). root daemon bin sys sync games man lp mail news uucp nobody
修改vsftpd的配置文件:
(默认)配置文件默认配置
- 不允许匿名登录:anonymous_enable
- 允许本地登录:local_enable=YES
- 默认不允许匿名用户创建目录:注释#anon_mkdir_wirte_enable=YES
- 默认:ftp-data连接的端口是20
- 默认:session取消的时间是600秒:idle_session_timeout=600
- 默认数据连接断开的时间是120秒:2分钟:data_connection_timeout=120
- 默认登录的提示信息:ftpd_banner=welcome to blah FTP service
- 默认注销了启动“不允许匿名邮件登录”的功能。如果启用,可以防止Dos攻击。
(1)修改:FTP用户只能访问home下的指定目录:为了防止本地FTP用户访问其家目录之外的文件,请更改chroot_local_user的值为YES
作用:chroot:change root 确保其他用户登录后只能看到自己(自己用户名文件夹作为root)的主目录,而看不到其他墨路
(2)修改:启用上传功能:write_enalbe=YES修改为YES
(3)修改:允许匿名登录,这样可以测试连接是否正常。anonymous_enable=YES.
(4)允许FTP被动连接
vsftpd可以使用任何端口进行被动FTP连接。我们将指定端口的最小和最大范围,然后在防火墙中打开该范围。
将以下行添加到配置文件:
pasv_min_port=30000 pasv_max_port=31000
(5)确保端口:20和21开启,
其中: 端口21
(FTP命令端口),端口20
(FTP数据端口)和30000-31000
(被动端口范围),请运行以下命令:
(6)查看防火墙:
如果您正在运行 UFW防火墙,则需要允许FTP通信。
sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp
查看防火强状态:
sudo ufw disable 关闭防火墙 (或者把防火墙关掉) sudo ufw enable 开启防火墙 ----------------------------------------- sudo ufw status 查看防火墙状态 Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
(4)创建FTP用户 sudo adduser ftpuser User123
要测试我们的FTP服务器,我们将创建一个新用户。
sudo adduser FTPUserH root@iZbp******oZ:/etc# sudo adduser --force-badname FTPUserHAAA Allowing use of questionable username. Adding user `FTPUserH' ... Adding new group `FTPUserH' (1000) ... Adding new user `FTPUserH' (1000) with group `FTPUserH' ... Creating home directory `/home/FTPUserH' ... Copying files from `/etc/skel' ... New password: FTPUserHAAA
Retype new password:FTPUserHAAA
passwd: password updated successfully Changing the user information for FTPUserH
(5)重启生效
sudo systemctl restart vsftpd
4.高级配置配置vsftpd
(2)修改:支持限制用户登录:
https://www.myfreax.com/how-to-setup-ftp-server-with-vsftpd-on-ubuntu-20-04/
(2)修改:
(2)修改:
(2)修改:
启用上传功能:
(2)