在Linux系統(tǒng)中,設置防火墻以控制IP訪問權限通常可以通過幾種不同的工具來實現(xiàn),比如iptables、nftables或firewalld(在支持的發(fā)行版中)。下面我將分別介紹如何使用這些工具來設置IP訪問權限。

使用iptables設置IP訪問權限

iptables是一個非常強大的工具,用于配置Linux內核的IP包過濾和管理。以下是一些基本的步驟來設置IP訪問權限:

linux防火墻

允許特定IP訪問

bash

sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT

這條命令允許來自IP地址192.168.1.100的流量進入。

拒絕特定IP訪問

bash

sudo iptables -A INPUT -s 192.168.1.101 -j DROP

這條命令拒絕來自IP地址192.168.1.101的流量進入。

設置默認策略

bash

sudo iptables -P INPUT DROP

這條命令將默認策略設置為DROP,即除了明確允許的IP外,其他所有IP都將被拒絕。

保存iptables規(guī)則 在某些系統(tǒng)中,你需要保存iptables規(guī)則,以便在重啟后仍然有效。可以使用以下命令:

bash

sudo iptables-save > /etc/iptables/rules.v4

使用firewalld設置IP訪問權限

firewalld是一個動態(tài)管理防火墻的工具,它提供了一個更高級別的抽象,使得管理防火墻規(guī)則更加容易。

允許特定IP訪問

bash

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'

拒絕特定IP訪問

bash

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.101" reject'

重新加載防火墻規(guī)則

bash

sudo firewall-cmd --reload

使用nftables設置IP訪問權限

nftables是iptables的后繼者,提供了更靈活的規(guī)則集和更高效的性能。

創(chuàng)建一個新的nftables規(guī)則集

bash

sudo nft add table inet mytable

添加規(guī)則允許特定IP

bash

sudo nft add chain inet mytable input { type filter hook input priority 0 ; }

sudo nft add rule inet mytable input ip saddr 192.168.1.100 accept

添加規(guī)則拒絕特定IP

bash

sudo nft add rule inet mytable input ip saddr 192.168.1.101 drop

保存nftables規(guī)則

bash

sudo nft list ruleset > /etc/nftables.conf

注意事項

在修改防火墻規(guī)則時,確保你有備份當前的規(guī)則,以便在出現(xiàn)問題時可以恢復。

在生產環(huán)境中,建議先在測試環(huán)境中測試新的規(guī)則,以確保它們按預期工作。

不同的Linux發(fā)行版可能有不同的默認防火墻工具,如CentOS 7使用firewalld,而Ubuntu 20.04使用ufw。

通過以上步驟,你可以根據需要設置Linux防火墻的IP訪問權限。