Linux中FTP服务器搭建与安全配置

复制代码
#### 配置FTP用户的访问权限


编辑vsftpd配置文件以允许FTP用户访问:

编辑vsftpd配置文件

sudo nano /etc/vsftpd.conf

复制代码
在文件中添加以下行以启用本地用户访问:

启用本地用户访问

local_enable=YES

write_enable=YES

复制代码
#### 重启vsftpd服务

重启vsftpd服务以应用更改

sudo systemctl restart vsftpd

复制代码
### 步骤4:配置FTP安全性


#### 配置FTP用户的登录


编辑vsftpd配置文件以限制FTP用户登录:

编辑vsftpd配置文件

sudo nano /etc/vsftpd.conf

复制代码
添加以下行以禁止FTP用户登录SSH:

禁止FTP用户登录SSH

chroot_local_user=YES

allow_writeable_chroot=YES

复制代码
#### 启用FTP用户上传和下载

启用FTP用户上传和下载

sudo setsebool -P ftp_home_dir 1

复制代码
### 步骤5:配置FTP端口


#### 配置FTP端口范围


编辑vsftpd配置文件以定义FTP数据传输的端口范围:

编辑vsftpd配置文件

sudo nano /etc/vsftpd.conf

复制代码
添加以下行以定义端口范围:

定义端口范围

pasv_min_port=30000

pasv_max_port=31000

复制代码
### 步骤6:防火墙配置


如果系统启用了防火墙,需要配置防火墙规则以允许FTP流量通过。


#### 针对Ubuntu/Debian

允许FTP流量通过防火墙

sudo ufw allow 20/tcp

sudo ufw allow 21/tcp

sudo ufw allow 30000:31000/tcp

复制代码
#### 针对CentOS/RHEL

允许FTP流量通过防火墙

sudo firewall-cmd --permanent --add-port=20/tcp

sudo firewall-cmd --permanent --add-port=21/tcp

sudo firewall-cmd --permanent --add-port=30000-31000/tcp

sudo firewall-cmd --reload

复制代码
### 步骤7:测试FTP服务器


使用FTP客户端软件(如FileZilla)连接到FTP服务器,使用FTP用户名和密码进行身份验证。确保可以成功上传和下载文件。


### 步骤8:配置FTP服务器的日志记录


为了跟踪FTP服务器活动和安全性,可以配置FTP服务器的日志记录。


编辑vsftpd配置文件以启用日志记录:

编辑vsftpd配置文件

sudo nano /etc/vsftpd.conf

复制代码
添加以下行以启用日志记录:

启用日志记录

xferlog_enable=YES

xferlog_std_format=YES

复制代码
### 步骤9:FTP服务器安全性进一步优化


为了进一步增强FTP服务器的安全性,可以采取以下措施:


#### 使用TLS/SSL加密


配置FTP服务器以使用TLS/SSL加密传输数据,以保护敏感信息的传输。这需要安装SSL证书,以确保数据在传输过程中得到加密和保护。对于vsftpd服务器,可以使用以下命令为FTP服务器启用TLS/SSL:

安装SSL证书工具

sudo apt-get install openssl # 对于Ubuntu/Debian

sudo yum install openssl # 对于CentOS/RHEL

生成自签名SSL证书

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

编辑vsftpd配置文件以启用TLS/SSL

sudo nano /etc/vsftpd.conf

复制代码
在vsftpd配置文件中添加以下行:

启用TLS/SSL

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

ssl_ciphers=HIGH

require_ssl_reuse=NO

ssl_cert_file=/etc/ssl/private/vsftpd.pem

复制代码
重启vsftpd服务以应用更改:

sudo systemctl restart vsftpd

复制代码
#### 限制FTP用户访问


如果需要限制FTP用户的访问,可以在vsftpd配置文件中添加用户白名单或黑名单。编辑vsftpd配置文件并添加以下行来限制FTP用户的访问:

编辑vsftpd配置文件

sudo nano /etc/vsftpd.conf

复制代码
使用`userlist_file`和`userlist_deny`选项来创建用户白名单或黑名单文件,然后指定文件的路径:

创建用户白名单文件

sudo touch /etc/vsftpd.allowed_users

编辑用户白名单文件以添加允许的用户

sudo nano /etc/vsftpd.allowed_users

复制代码
将允许访问的用户添加到用户白名单文件中,并在vsftpd配置文件中启用白名单:

启用用户白名单

userlist_enable=YES

指定用户白名单文件的路径

userlist_file=/etc/vsftpd.allowed_users

禁止其他用户访问

userlist_deny=YES

复制代码
#### 配置FTP用户的主目录


还可以根据需要配置FTP用户的主目录,以限制他们的访问范围。编辑vsftpd配置文件并添加以下行:

编辑vsftpd配置文件

sudo nano /etc/vsftpd.conf

复制代码
通过使用`local_root`选项,可以将FTP用户的主目录设置为特定目录:

将FTP用户的主目录设置为特定目录

local_root=/var/ftp

复制代码
#### 启用登录失败重试限制


为了提高安全性,可以启用登录失败重试限制。编辑PAM配置文件以添加限制:

编辑PAM配置文件

sudo nano /etc/security/limits.conf

复制代码
在文件的底部添加以下行来启用登录失败重试限制:

启用登录失败重试限制

  • hard maxlogins 3

    步骤10:FTP服务器性能调优

    为了确保FTP服务器的性能和稳定性,可以采取以下措施:

    限制并发连接数

相关推荐
萤丰信息14 分钟前
智慧园区能源革命:从“耗电黑洞”到零碳样本的蜕变
java·大数据·人工智能·科技·安全·能源·智慧园区
是小胡嘛44 分钟前
C++之Any类的模拟实现
linux·开发语言·c++
口袋物联1 小时前
设计模式之工厂模式在 C 语言中的应用(含 Linux 内核实例)
linux·c语言·设计模式·简单工厂模式
qq_479875432 小时前
X-Macros(1)
linux·服务器·windows
笨笨聊运维3 小时前
CentOS官方不维护版本,配置python升级方法,无损版
linux·python·centos
lingggggaaaa3 小时前
免杀对抗——C2远控篇&C&C++&DLL注入&过内存核晶&镂空新增&白加黑链&签名程序劫持
c语言·c++·学习·安全·网络安全·免杀对抗
jun_bai4 小时前
python写的文件备份网盘程序
运维·服务器·网络
Warren984 小时前
Python自动化测试全栈面试
服务器·网络·数据库·mysql·ubuntu·面试·职场和发展
HIT_Weston4 小时前
39、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)
linux·前端·ubuntu
欢喜躲在眉梢里5 小时前
CANN 异构计算架构实操指南:从环境部署到 AI 任务加速全流程
运维·服务器·人工智能·ai·架构·计算