Debian虚拟机配置防火墙是提升系统安全性的关键步骤,能有效限制非法网络访问。以下是**ufw(简单易用)和iptables(底层工具)**两种主流工具的具体配置方法:
ufw(Uncomplicated Firewall)是Debian默认的防火墙前端工具,基于iptables封装,命令简洁,适合新手快速配置。
若系统未预装ufw,可通过以下命令安装:
sudo apt update && sudo apt install ufw
安装完成后,启用ufw并确认是否允许SSH连接(若通过SSH管理虚拟机,必须允许,否则会断开连接):
sudo ufw enable # 系统会提示“Command may disrupt existing ssh connections. Proceed with operation (y|n)?”,输入y并回车
设置默认的入站/出站规则,默认拒绝所有入站连接(阻断未明确允许的流量),允许所有出站连接(保障虚拟机正常访问外网):
sudo ufw default deny incoming # 默认拒绝入站 sudo ufw default allow outgoing # 默认允许出站
根据需求开放必要服务端口(以HTTP、HTTPS、SSH为例):
sudo ufw allow 22/tcp # 允许SSH(默认端口22) sudo ufw allow 80/tcp # 允许HTTP(网页服务) sudo ufw allow 443/tcp # 允许HTTPS(加密网页服务)
也可使用服务名替代端口号(需系统识别服务):
sudo ufw allow ssh # 等同于allow 22/tcp sudo ufw allow http # 等同于allow 80/tcp sudo ufw allow https # 等同于allow 443/tcp
若需限制仅某IP可访问SSH(增强安全性),可使用以下命令(以192.168.1.100
为例):
sudo ufw allow from 192.168.1.100 to any port 22
verbose
模式显示详细信息):sudo ufw status verbose
输出示例:Status: active Logging: on (low) Default: deny (incoming), allow (outgoing) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
sudo ufw delete allow 22/tcp
sudo ufw reload
sudo ufw logging on # 设置日志级别(low/medium/high/full,默认low) sudo ufw logging medium
iptables是Linux内核级的防火墙工具,功能全面,但命令复杂,适合需要精细控制流量的场景。
Debian默认可能未安装iptables,需通过以下命令安装:
sudo apt update && sudo apt install iptables
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
Debian默认不会自动保存iptables规则,需手动保存(否则重启后规则失效):
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
或使用netfilter-persistent
工具(需安装):
sudo apt install netfilter-persistent sudo netfilter-persistent save
创建启动脚本,使iptables在系统启动时自动加载规则:
sudo tee /etc/network/if-pre-up.d/iptables <<EOF #!/bin/sh /sbin/iptables-restore < /etc/iptables/rules.v4 EOF sudo chmod +x /etc/network/if-pre-up.d/iptables
-L
列出规则,-n
显示数字格式,-v
显示详细信息):sudo iptables -L -n -v
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
sudo cp /etc/iptables/rules.v4 ~/iptables-backup.rules
),防止规则丢失。通过以上步骤,即可在Debian虚拟机上完成防火墙配置,有效保护系统免受非法网络访问。根据实际需求选择ufw(简单)或iptables(灵活),合理设置规则即可满足大多数场景的安全需求。