Linux虚拟机防火墙设置指南
Linux虚拟机的防火墙配置需根据发行版选择合适工具(如Ubuntu/Debian用ufw、CentOS/RHEL/Fedora用firewalld、传统系统用iptables),以下是具体操作步骤:
ufw(Uncomplicated Firewall)是Ubuntu/Debian的默认防火墙工具,以简单易用著称。
sudo apt update && sudo apt install ufw
sudo ufw enable # 启用后,默认拒绝所有入站流量、允许所有出站流量
sudo ufw status # 显示当前规则(允许/拒绝的端口/服务)
sudo ufw allow ssh # 或 sudo ufw allow 22/tcp
sudo ufw allow http # 或 sudo ufw allow 80/tcp
sudo ufw allow https # 或 sudo ufw allow 443/tcp
sudo ufw deny from 192.168.1.100
sudo ufw delete allow ssh
firewalld是CentOS 7及以上版本的默认防火墙工具,支持动态规则管理和区域(Zone)概念。
sudo systemctl start firewalld # 启动服务
sudo systemctl enable firewalld # 开机自动启动
sudo firewall-cmd --state # 显示“running”表示运行中
sudo firewall-cmd --permanent --add-service=ssh # 永久生效
sudo firewall-cmd --reload # 重新加载规则
sudo firewall-cmd --permanent --add-port=80/tcp # 永久开放端口
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" drop'
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload
iptables是Linux早期的防火墙工具,功能强大但配置复杂,需手动保存规则。
sudo iptables -L -n -v # 显示详细规则(-n表示不解析IP/端口)
sudo iptables -F # 清空INPUT/OUTPUT/FORWARD链
sudo iptables -t nat -F # 清空NAT表规则
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 FORWARD DROP # 转发链默认拒绝
sudo iptables -P OUTPUT ACCEPT # 输出链默认允许
sudo service iptables save # 保存至/etc/sysconfig/iptables
sudo apt install iptables-persistent
sudo netfilter-persistent save
-j LOG选项记录可疑流量,便于排查问题。以上步骤覆盖了Linux虚拟机防火墙的常见配置场景,可根据实际需求选择工具并调整规则。操作前建议备份原有配置(如/etc/ufw/ufw.conf、/etc/firewalld/),避免误操作导致系统无法访问。