在Ubuntu 18.04 LTS上安装和配置VSFTPD服务器
Vsftpd也称为非常安全的FTP守护程序,是类Unix系统的FTP服务器。 FTP是最广泛使用的标准网络协议,用于通过网络在两台计算机之间上载/下载文件。 默认情况下,FTP是不安全的,因为它与用户凭据一起传输数据而不加密。
在本教程中,我们将学习如何在Ubuntu 18.04服务器上安装具有SSL / TLS支持的Vsftpd。
要求
- 运行Ubuntu 18.04的服务器。
- 具有sudo权限的非root用户。
- 配置静态IP地址192.168.0.102。
安装Vsftpd
默认情况下,Vsftpd在Ubuntu 18.04默认存储库中可用。 因此,只需运行以下命令即可轻松安装它:
sudo apt-get install vsftpd -y
安装Vsftpd后,启动Vsftpd服务并使其在启动时启动:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
为FTP创建目录结构
在开始之前,您需要创建用于FTP访问的用户。
您可以使用以下命令创建用户:
sudo adduser vsftp
接下来,使用以下命令创建ftp目录并设置所有权:
sudo mkdir /home/vsftp/ftp
sudo chown nobody:nogroup /home/vsftp/ftp
sudo chmod a-w /home/vsftp/ftp
接下来,创建一个可以上载文件的目录,并为vsftp用户提供所有权:
sudo mkdir /home/vsftp/ftp/test
sudo chown vsftp:vsftp /home/vsftp/ftp/test
配置Vsftpd
接下来,您需要执行一些配置来设置FTP服务器。
首先,创建原始配置文件的备份:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
接下来,打开vsftpd.conf文件:
sudo nano /etc/vsftpd.conf
添加以下行:
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd pasv_enable=Yes pasv_min_port=10000 pasv_max_port=11000 user_sub_token=$USER local_root=/home/$USER/ftp userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
保存并关闭文件。 您可以根据需要更改上述配置。
接下来,您还需要将vsftp用户添加到/etc/vsftpd.userlist文件以允许FTP访问:
sudo nano /etc/vsftpd.userlist
添加以下行:
vsftp
保存并关闭该文件,然后重新启动Vsftpd服务以应用这些更改:
sudo systemctl restart vsftpd
现在,打开Web浏览器并输入URL ftp://92.168.0.102 ,系统将要求您输入用户名和密码以访问FTP。 输入您的vsftp用户名和密码,然后单击“ 确定”按钮。 您应该看到以下页面:
使用SSL / TLS保护Vsftpd
接下来,您需要启用SSL / TLS来加密通过FTP传输的数据。
为此,您需要为此创建证书。 您可以使用以下命令使用OpenSSL创建证书:
sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem
接下来,您需要修改vsftpd.conf文件并进行一些更改:
sudo nano /etc/vsftpd.conf
添加以下行:
rsa_cert_file=/etc/cert/vsftpd.pem rsa_private_key_file=/etc/cert/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
保存文件,然后使用以下命令重新启动Vsftpd:
sudo systemctl restart vsftpd
通过SSL / TLS访问FTP
您无法通过浏览器通过SSL / TLS访问FTP服务器。 因此,您需要安装FileZilla FTP客户端才能访问您的FTP服务器。 因为FileZilla支持FTP over SSL / TLS。
您可以使用以下命令安装FileZilla客户端:
sudo apt-get install filezilla -y
安装FileZilla后,从Unity破折号打开它。 您应该看到以下图像:
现在,单击文件>站点管理器 。 您应该看到以下图像:
在这里,添加新站点并提供主机/站点名称,添加IP地址,定义要使用的协议,加密和登录类型。 然后单击“ 连接”按钮。 您应该看到以下图像:
现在,验证用于SSL / TLS连接的证书,然后再次单击“ 确定”以连接到FTP服务器。 您应该在以下页面中看到您的FTP服务器内容: