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

    限制并发连接数

相关推荐
Escalating_xu几秒前
【Linux 网络编程】ARP 的具体过程与 ARP 欺骗:一条 IP → MAC 映射,怎样改变数据的去向?
linux·网络·tcp/ip
R²AIN SUITE20 分钟前
企业智能体平台私有化部署需要什么服务器?CPU、内存、显卡与项目管理集成的7个评估项
运维·服务器
坚定的共产主义生产设备永不宕机20 分钟前
服务器从裸机开始搭建ESXI虚拟机
linux·服务器·网络
刚入门的大一新生27 分钟前
Linux-线程封装
linux·运维·服务器
god_cvz30 分钟前
实践:Linux环境构建CTB工具(cesium-terrain-builder)
linux·gis·ctb
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之av_dump_format调用流程与实战(十一)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
2301_780789661 小时前
智能汽车的“软肋”:车载系统漏洞分析与安全防护框架初探
网络·安全·车载系统·汽车·ddos
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之avcodec_find_decoder调用流程与实战(十二)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
小白的码BUG之路1 小时前
K8s -- 启动一主二从节点
linux·运维·服务器
Escalating_xu1 小时前
【Linux 网络编程】IP 分片与重组:3000 字节的数据报,怎样拆开又拼回来?
linux·网络·tcp/ip