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服务器的性能和稳定性,可以采取以下措施:

    限制并发连接数

相关推荐
我言秋日胜春朝★36 分钟前
【Linux】进程地址空间
linux·运维·服务器
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
C-cat.1 小时前
Linux|环境变量
linux·运维·服务器
Smartdaili China1 小时前
如何在 Microsoft Edge 中设置代理: 快速而简单的方法
前端·爬虫·安全·microsoft·edge·社交·动态住宅代理
yunfanleo1 小时前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
m51271 小时前
LinuxC语言
java·服务器·前端
运维-大白同学2 小时前
将django+vue项目发布部署到服务器
服务器·vue.js·django
糖豆豆今天也要努力鸭2 小时前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎2 小时前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
乐大师2 小时前
Deepin登录后提示“解锁登陆密钥环里的密码不匹配”
运维·服务器