Linux防火墙主要通过iptables和firewalld两种工具进行配置和管理,以下是具体的防护方法:
默认策略设置
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
允许SSH连接
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -d 192.168.1.0/24 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许HTTP/HTTPS连接
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
限制ICMP请求
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
日志记录
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
保存规则
iptables-save > /etc/iptables/rules.v4
安装firewalld
sudo yum install firewalld
启动并启用firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
设置默认区域
sudo firewall-cmd --set-default-zone=public
允许SSH连接
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
sudo firewall-cmd --reload
允许HTTP/HTTPS连接
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
限制ICMP请求
sudo firewall-cmd --permanent --zone=public --add-icmp-block=echo-request
sudo firewall-cmd --reload
查看防火墙状态
sudo firewall-cmd --state
sudo firewall-cmd --list-all
通过以上步骤,可以有效地配置Linux防火墙来保护系统免受未经授权的访问和其他网络威胁。记得定期更新和审查防火墙规则,以确保系统的安全性。