在Linux虚拟机中配置防火墙可以有效地保护系统免受恶意攻击。常用的防火墙工具包括iptables
和firewalld
。以下是使用这两种工具的详细配置指南。
iptables
是Linux系统上最常用的防火墙工具之一,功能强大但配置复杂。
查看当前规则:
iptables -L -n -v
清空规则:
iptables -F
iptables -t nat -F
添加基础规则:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80,443 -j ACCEPT
iptables -P INPUT DROP
保存规则:
service iptables save
设置NAT规则(端口转发):
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination :80
iptables -t nat -A POSTROUTING -j MASQUERADE
限制IP访问频率:
iptables -I INPUT -p tcp --dport 22 -m limit --limit 10/min -j ACCEPT
firewalld
是CentOS 7及其衍生版本中默认使用的防火墙管理工具,基于服务的动态防火墙,支持NAT和端口转发。
启用与禁用firewalld:
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo systemctl stop firewalld
查看与修改规则:
sudo firewall-cmd --list-all
sudo firewall-cmd --zone public --add-port 80/tcp --permanent
高级功能:
sudo firewall-cmd --zone public --add-service http --permanent
sudo firewall-cmd --zone public --add-masquerade --permanent
使用ufw
:
sudo ufw allow 80,443/tcp
sudo ufw default deny incoming
sudo ufw enable
使用firewalld
:
sudo firewall-cmd --zone public --add-service http --permanent
sudo firewall-cmd --zone public --add-service https --permanent
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
通过以上步骤,你可以根据实际需求选择使用iptables
或firewalld
来配置Linux虚拟机的防火墙。