Debian系统中配置防火墙的常用方法(以ufw和iptables为例)
ufw是Debian系统推荐的简化防火墙管理工具,适合新手快速配置。
若系统未预装ufw,可通过以下命令安装:
sudo apt update
sudo apt install ufw
安装完成后,启用ufw以激活防火墙:
sudo ufw enable
系统会提示确认,输入y并按回车键即可。
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
192.168.1.100访问SSH(22端口):sudo ufw allow from 192.168.1.100 to any port 22
sudo ufw deny 23/tcp
sudo ufw status
显示详细规则(包括编号):sudo ufw status numbered
sudo ufw delete 1 # 假设1是允许80端口的规则编号
或直接指定规则:sudo ufw delete allow 80/tcp
ufw的规则默认会自动保存,但手动重载可确保修改生效:
sudo ufw reload
iptables是Linux内核级的防火墙工具,功能强大但配置复杂,适合高级用户。
若未安装,可通过以下命令安装:
sudo apt update
sudo apt install iptables
查看所有链的规则及统计信息:
sudo iptables -L -n -v
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
192.168.1.100访问所有端口:sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
Debian默认不保存iptables规则,需通过以下方式持久化:
sudo apt install iptables-persistent
安装过程中选择“是”以保存当前规则。sudo sh -c "iptables-save > /etc/iptables/rules.v4" # 保存规则
sudo iptables-restore < /etc/iptables/rules.v4 # 恢复规则
nftables是iptables的替代工具,语法更简洁,性能更优。
sudo apt update
sudo apt install nftables
sudo nft list ruleset
/etc/nftables.conf,添加以下内容:table inet filter {
chain input {
type filter hook input priority 0;
ct state established,related accept
iif lo accept
tcp dport 22 accept
ip saddr 192.168.1.100 accept
drop
}
chain forward {
type filter hook forward priority 0;
drop
}
chain output {
type filter hook output priority 0;
accept
}
}
sudo nft -f /etc/nftables.conf
sudo nft list ruleset > /etc/nftables.conf
sudo nft -f /etc/nftables.conf
sudo cp /etc/ufw/before.rules /etc/ufw/before.rules.bak)。sudo ufw logging on(ufw)或sudo iptables -A INPUT -j LOG(iptables)开启日志,便于排查问题。