在Ubuntu系统上搭建FTP服务器是一个常见且实用的任务,尤其是在需要文件传输和共享的环境中,本文将详细介绍如何在Ubuntu 20.04系统上安装和配置vsftpd(Very Secure FTP Daemon)以搭建FTP服务器。
一、准备工作
1、更新系统:确保你的Ubuntu系统是最新的,打开终端,运行以下命令:
sudo apt update sudo apt upgrade
2、检查是否安装了vsftpd:可以通过以下命令检查是否已经安装了vsftpd:
vsftpd -version
如果未安装,执行下面的命令进行安装:
sudo apt install vsftpd
二、配置vsftpd
1、备份配置文件:在进行任何配置更改之前,最好先备份原始配置文件:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
2、编辑配置文件:使用你喜欢的文本编辑器打开配置文件,
sudo nano /etc/vsftpd.conf
3、修改配置文件:找到以下行,并确保其前面的#号被去掉或进行相应修改:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES
4、创建FTP用户:为了安全起见,可以创建一个专门的FTP用户:
sudo adduser ftpuser
5、配置用户目录权限:确保FTP用户的主目录权限设置正确:
sudo chown ftpuser:ftpuser /home/ftpuser sudo chmod 755 /home/ftpuser
6、启用SSL/TLS加密:为了提高传输的安全性,可以启用SSL/TLS加密,生成SSL证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.crt
在vsftpd配置文件中添加以下行:
ssl_enable=YES rsa_cert_file=/etc/ssl/private/vsftpd.crt rsa_private_key_file=/etc/ssl/private/vsftpd.key
7、重启vsftpd服务:每次修改配置文件后,都需要重启vsftpd服务以使更改生效:
sudo systemctl restart vsftpd
三、测试FTP服务器
1、安装FTP客户端:在本地机器或另一台计算机上安装FTP客户端,例如FileZilla。
2、连接到FTP服务器:打开FTP客户端,输入以下信息进行连接:
主机:你的服务器IP地址
用户名:ftpuser
密码:你在创建用户时设置的密码
端口:21(默认FTP端口)
3、上传和下载文件:成功连接后,可以尝试上传和下载文件以确保FTP服务器配置正确。
四、增强安全性
1、配置防火墙:确保你的服务器防火墙允许FTP流量通过:
sudo ufw allow 21/tcp sudo ufw allow 20/tcp sudo ufw allow 40000:50000/tcp sudo ufw enable
2、限制用户访问其他目录:为防止FTP用户访问其主目录之外的其他目录,在/etc/vsftpd.conf文件中,取消chroot_local_user=YES的注释:
chroot_local_user=YES
3、锁定用户:可以通过在/etc/vsftpd.chroot_list文件中添加用户名单来锁定用户在其主目录中:
touch /etc/vsftpd.chroot_list vi /etc/vsftpd.chroot_list
在该文件中加入用户名单,如:netseek_com。
五、相关FAQs问答
Q1: 如果FTP登录报错530 Login incorrect. Login failed.怎么办?
A1: 这是由于PAM认证问题导致的,可以通过修改pam_service_name来解决,编辑/etc/pam.d/vsftpd文件,将以下内容:
auth required pam_listfile.so sense=deny onerr=fail item=user_ignore file=/etc/vsftpd.user_ignore from=getenv fallthrough=yes account required pam_permit.so session required pam_loginuid.so pam_succeed_if_terminal_not /usr/bin/false pam_exec_log passwd-auth service=vsftpd user_change=no env=USER,TERM,TERMPROGRAM,VSFTPD_LOGLEVEL,VSFTPD_SECCOMP,VSFTPD_BANNER,VSFTPD_MESSAGE,LSCOLORS,SSH_CLIENT,SSH_TTY,LSCOLORS,LANG,LC_*,LC_MESSAGES,LC_MESSAGEMODE,LC_NUMERIC,LC_TIME,LC_MONETARY,LC_PAPER,LC_NAME,LC_ADDRESS,LC_TELEPHONE,LC_MEASUREMENT,LC_IDENTIFICATION,LC_ALL session optional pam_motd.so pam_session=yes mailer=root standard
修改为:
auth required pam_listfile.so sense=deny onerr=fail item=user_ignore file=/etc/vsftpd.user_ignore from=getenv fallthrough=yes account required pam_permit.so session required pam_loginuid.so pam_succeed_if_terminal_not /usr/bin/false pam_exec_log passwd-auth service=ftp user_change=no env=USER,TERM,TERMPROGRAM,VSFTPD_LOGLEVEL,VSFTPD_SECCOMP,VSFTPD_BANNER,VSFTPD_MESSAGE,LSCOLORS,SSH_CLIENT,SSH_TTY,LSCOLORS,LANG,LC_*,LC_MESSAGES,LC_MESSAGEMODE,LC_NUMERIC,LC_TIME,LC_MONETARY,LC_PAPER,LC_NAME,LC_ADDRESS,LC_TELEPHONELC_MEASUREMENT,LC_IDENTIFICATION,LC_ALL session optional pam_motd.so pam_session=yes mailer=root standard
然后重启vsftpd服务:
sudo systemctl restart vsftpd
Q2: 如何更改FTP服务器的监听端口?
A2: 你可以通过修改vsftpd配置文件中的listen_port参数来更改FTP服务器的监听端口,编辑/etc/vsftpd.conf文件,找到以下行:
listen_port=21
将其修改为你想要的端口号,例如8021:
listen_port=8021
然后重启vsftpd服务以使更改生效:
sudo systemctl restart vsftpd
注意,还需要在防火墙中开放新的端口号。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1257720.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复