linux搭建ftp服务器黑白名单
时间: 2025-01-07 15:16:34 浏览: 7
### 如何在Linux中配置支持黑白名单的FTP服务器
#### 安装vsftpd服务
为了实现带有黑白名单功能的FTP服务器,在Linux环境中通常会选择安装`vsftpd`作为FTP守护进程。对于基于Debian的系统,如Ubuntu,可以使用如下命令进行安装:
```bash
sudo apt-get update && sudo apt-get install vsftpd
```
针对RHEL/CentOS系列,则应执行以下操作来完成软件包更新以及`vsftpd`的服务部署:
```bash
sudo yum update && sudo yum install vsftpd
```
#### 修改防火墙规则以适应FTP通信需求
当系统的防火墙处于启用状态时,需调整相应的入站策略以便让FTP数据交换顺利开展。具体而言,就是开放TCP协议下的端口20(用于主动模式的数据传输)、21(控制连接),还有被动模式下使用的范围端口30000至31000[^1]。
- **Ubuntu/Debian**
```bash
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
```
- **CentOS/RHEL**
```bash
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
```
#### 设置欢迎信息
为了让客户端登录时显示特定的消息,可以在配置文件中指定banner路径或直接定义一条消息字符串。例如,通过编辑/etc/vsftpd.conf并加入下面这行代码就可以自定义提示语句[^2]:
```properties
ftpd_banner=Welcome to blah FTP service.
```
#### 实现用户访问权限管理——创建黑白名单机制
借助于`/etc/vsftpd/user_list`文件能够有效地实施对不同用户的接入限制措施。此文件内的用户名会被视为受限对象;至于这些名字代表的是被拒绝还是获准进入则取决于另一个选项`userlist_deny`的设定值[^3]。
- 若要将其作用设为黑名单(即阻止列出的所有账户登陆)
编辑配置文件添加或修改参数:
```properties
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=YES
```
- 若想把它当作白名单对待(仅限表内成员可以上线)
更改上述最后一项为NO即可:
```properties
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
```
最后一步是重启FTP服务使更改生效:
```bash
sudo systemctl restart vsftpd
```
阅读全文