vsftp在Debian上的配置步骤
导读:在 Debian 上配置 vsftpd 的完整步骤 一 安装与基础准备 更新索引并安装 vsftpd: sudo apt update sudo apt install vsftpd -y 启动并设置开机自启: sudo syst...
在 Debian 上配置 vsftpd 的完整步骤
一 安装与基础准备
- 更新索引并安装 vsftpd:
- sudo apt update
- sudo apt install vsftpd -y
- 启动并设置开机自启:
- sudo systemctl start vsftpd
- sudo systemctl enable vsftpd
- 备份默认配置:
- sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
- 说明:Debian 的 vsftpd 包通常已包含 SSL 支持,无需单独安装“vsftpd-ssl”包;若 apt 提示找不到该包,可直接使用系统自带 OpenSSL 证书与配置启用 TLS。
二 核心配置 vsftpd.conf
- 编辑配置文件:
- sudo nano /etc/vsftpd.conf
- 常用基础配置(按需求调整):
- 监听与协议
- listen=YES
- listen_ipv6=NO
- 身份与权限
- anonymous_enable=NO
- local_enable=YES
- write_enable=YES
- local_umask=022
- 目录与日志
- dirmessage_enable=YES
- xferlog_enable=YES
- connect_from_port_20=YES
- 禁锢与可写
- chroot_local_user=YES
- allow_writeable_chroot=YES
- 监听与协议
- 用户访问控制(二选一或组合)
- 仅允许白名单用户登录(推荐)
- userlist_enable=YES
- userlist_file=/etc/vsftpd.user_list
- userlist_deny=NO
- 在 /etc/vsftpd.user_list 中逐行写入允许登录的用户名
- 使用 chroot 例外列表(可选)
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd.chroot_list
- 在 /etc/vsftpd.chroot_list 中写入需要“解除禁锢”的用户名
- 仅允许白名单用户登录(推荐)
- 说明:chroot_local_user=YES 会将本地用户限制在其主目录;若需主目录可写,请同时设置 allow_writeable_chroot=YES。
三 创建 FTP 用户与目录
- 创建专用系统用户(禁止 shell 登录,更安全):
- 检查 nologin 路径:which nologin(通常为 /usr/sbin/nologin 或 /sbin/nologin)
- sudo useradd -m -d /srv/ftp/ftpuser -s /usr/sbin/nologin ftpuser
- sudo passwd ftpuser
- 设置目录权限:
- sudo mkdir -p /srv/ftp/ftpuser
- sudo chown ftpuser:ftpuser /srv/ftp/ftpuser
- sudo chmod 755 /srv/ftp/ftpuser
- 若使用 nologin 作为登录 shell,确保其存在于 /etc/shells,否则部分客户端或 PAM 可能拒绝登录:
- echo “/usr/sbin/nologin” | sudo tee -a /etc/shells
- 将允许登录的用户名写入白名单:
- echo “ftpuser” | sudo tee -a /etc/vsftpd.user_list
四 启用 TLS 加密传输
- 生成自签名证书(示例有效期 365 天):
- sudo mkdir -p /etc/ssl/private
- sudo chmod 700 /etc/ssl/private
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
-keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
- 在 vsftpd.conf 中启用 SSL/TLS(与上文配置合并):
- 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
- rsa_cert_file=/etc/ssl/private/vsftpd.pem
- rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- 提示:若需更高兼容性,可在 ssl_tlsv1=YES 基础上按需开启 TLSv1.1/1.2(如 ssl_tlsv1_1=YES、ssl_tlsv1_2=YES),但应禁用不安全的 SSLv2/SSLv3。
五 防火墙与连接测试
- 防火墙放行(UFW 示例):
- 主动模式:sudo ufw allow 21/tcp
- 被动模式端口范围(示例 40000:50000):sudo ufw allow 40000:50000/tcp
- 若启用 FTPS:sudo ufw allow 990/tcp
- sudo ufw reload
- 重启服务使配置生效:
- sudo systemctl restart vsftpd
- 客户端测试(如使用 FileZilla):
- 主机:服务器 IP
- 协议:FTP(若启用 TLS,选择 FTP over TLS/SSL(显式))
- 端口:21(FTPS 为 990)
- 登录:使用 ftpuser 与密码
- 日志排查:
- 传输与登录日志通常位于 /var/log/vsftpd.log,可用 tail -f /var/log/vsftpd.log 实时查看。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: vsftp在Debian上的配置步骤
本文地址: https://pptw.com/jishu/784807.html
