在Ubuntu系統中,使用iptables可以實現多種安全策略,以保護服務器免受未經授權的訪問和其他網絡威脅。以下是一些常見的iptables安全策略示例:
如果你需要通過SSH遠程管理服務器,可以允許特定IP地址或IP段訪問SSH端口(默認22)。
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -d 192.168.1.0/24 -m state --state ESTABLISHED -j ACCEPT
如果你需要允許Web服務器接收HTTP(80)和HTTPS(443)請求,可以添加以下規則:
sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
允許服務器進行DNS查詢(默認端口53):
sudo iptables -A INPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
默認情況下,阻止所有入站連接,只允許已經建立的連接和上述特定端口的連接:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
如果你需要允許某個特定IP地址訪問服務器的所有端口,可以使用以下規則:
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
為了確保重啟后規則仍然有效,可以使用iptables-persistent工具保存規則:
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
你可以使用以下命令查看當前的iptables規則:
sudo iptables -L -v -n
通過以上步驟,你可以使用iptables在Ubuntu系統上實現基本的安全策略。根據具體需求,你可以進一步調整和擴展這些規則。