溫馨提示×

Linux FTPServer如何限制訪問

小樊
95
2025-03-07 01:38:43
欄目: 智能運維

在Linux上,有多種方法可以限制FTP服務器的訪問。以下是一些常見的方法:

1. 使用vsftpd(Very Secure FTP Daemon)

vsftpd是一個非常流行的FTP服務器軟件,提供了多種安全選項來限制訪問。

基本配置

編輯/etc/vsftpd/vsftpd.conf文件,進行以下配置:

# 啟用本地用戶登錄
local_enable=YES

# 禁止匿名用戶登錄
anonymous_enable=NO

# 允許寫操作
write_enable=YES

# 限制用戶訪問自己的主目錄
chroot_local_user=YES

# 允許特定用戶訪問
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

用戶列表

創建/etc/vsftpd/user_list文件,并添加允許訪問的用戶:

user1
user2

防火墻配置

確保防火墻允許FTP流量:

sudo ufw allow 21/tcp
sudo ufw allow 20/tcp

2. 使用ProFTPD

ProFTPD是另一個流行的FTP服務器軟件,提供了靈活的訪問控制選項。

基本配置

編輯/etc/proftpd/proftpd.conf文件,進行以下配置:

# 啟用本地用戶登錄
DefaultRoot ~

# 禁止匿名用戶登錄
<Anonymous ~ftp>
    User nobody
    Group nogroup
    DenyAll
</Anonymous>

# 允許特定用戶訪問
<Directory /home/user1>
    <Limit ALL>
        AllowUser user1
    </Limit>
</Directory>

用戶權限

確保用戶有適當的權限訪問其主目錄:

sudo chown user1:user1 /home/user1
sudo chmod 755 /home/user1

3. 使用FTP服務器防火墻規則

你可以使用iptables或firewalld來限制FTP服務器的訪問。

iptables

# 允許特定IP訪問FTP端口
sudo iptables -A INPUT -p tcp --dport 21 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -s 192.168.1.100 -j ACCEPT

# 拒絕所有其他IP訪問FTP端口
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
sudo iptables -A INPUT -p tcp --dport 20 -j DROP

firewalld

# 允許特定IP訪問FTP端口
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="21" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="20" accept'

# 重新加載防火墻配置
sudo firewall-cmd --reload

4. 使用SELinux

如果你的系統啟用了SELinux,可以使用SELinux策略來進一步限制FTP服務器的訪問。

配置SELinux

編輯/etc/selinux/config文件,設置SELinux為 enforcing 模式:

SELINUX=enforcing

然后,使用semanage命令來管理SELinux策略:

# 允許FTP訪問特定目錄
sudo semanage fcontext -a -t httpd_sys_content_t "/home/user1(/.*)?"
sudo restorecon -Rv /home/user1

通過以上方法,你可以有效地限制Linux FTP服務器的訪問,確保只有授權用戶才能訪問FTP服務。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女