FTP 连接Ubuntu16.04服务器
ftp连接ubuntu(sftp)
安装vsftp服务器
sudo apt-get update#更新源
sudo apt-get install vsftpd
可为ftp单独创建一个用户(可选)
sudo useradd -d /home/uftp -s /bin/bash uftp #创建用户
sudo passwd uftp #设置密码
创建vsftpd.user_allowlist
sudo vi /etc/vsftpd.user_allowlist
#写入允许登录ftp服务的用户名
设置vsftpd.conf
sudo vi /etc/vsftpd.conf
##添加/修改以下内容
write_enable=YES
userlist_file=etc/vsftpd.user_allowlist
userlist_enable=YES
userlist_deny=NO
如果有开防火墙
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
重启vsftpd服务
sudo /etc/init.d/vsftpd restart
连接
使用软件FileZilla,选择SFTP协议
第一次连接会提示添加服务器的公钥
参考
使用 SSL/TLS 加密 FTP 连接
创建证书
sudo mkdir /etc/ssl/private #不存在的就行创建
sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048
设置vsftpd.conf
sudo vi /etc/vsftpd.conf
##添加/修改以下内容
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_allowlist
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=40000
pasv_max_port=50000
debug_ssl=YES
tcp_wrappers=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem #证书的路径
设置防火墙
sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
重启vsftpd服务
sudo /etc/init.d/vsftpd restart
连接
-
使用软件FileZilla,选择FTP协议,要去显示的FTP over TLS
连接时会跳出之前设置的证书,选择信任 -
使用命令行会出错
ftp 192.168.56.10
Connected to 192.168.56.10 (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>
原因:命令行不支持加密服务
参考
在linux服务器上搭建相对安全的FTP服务器
linux(Ubuntu)安装配置vsftp
在 Ubuntu 中使用 SSL/TLS 加密 FTP 连接