插件窝 干货文章 如何设置CentOS防火墙以加强安全性

如何设置CentOS防火墙以加强安全性

sudo iptables firewall systemctl 325    来源:    2025-04-15

CentOS防火墙安全加固指南

作为IT工程师,我将为您提供CentOS防火墙的安全加固方案,主要基于firewalld服务(CentOS 7/8默认)和iptables(传统方案)。

一、使用firewalld(推荐)

1. 基本配置

# 确保firewalld已安装并运行
sudo yum install firewalld -y
sudo systemctl enable firewalld
sudo systemctl start firewalld

# 检查状态
sudo firewall-cmd --state

2. 区域管理

# 查看所有区域
sudo firewall-cmd --get-zones

# 查看默认区域
sudo firewall-cmd --get-default-zone

# 设置默认区域(推荐使用dmz或work)
sudo firewall-cmd --set-default-zone=work

3. 端口和服务管理

# 永久开放SSH端口(示例)
sudo firewall-cmd --permanent --add-service=ssh

# 开放特定端口(如HTTP)
sudo firewall-cmd --permanent --add-port=80/tcp

# 移除端口
sudo firewall-cmd --permanent --remove-port=8080/tcp

# 重新加载配置
sudo firewall-cmd --reload

4. 高级安全配置

# 限制SSH访问特定IP
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'

# 拒绝所有其他SSH访问
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" service name="ssh" reject'

# 启用日志记录
sudo firewall-cmd --set-log-denied=all

二、使用iptables(传统方式)

1. 基本规则设置

# 清除现有规则
sudo iptables -F
sudo iptables -X

# 设置默认策略
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

# 允许本地回环
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

# 允许已建立的连接
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

2. 开放必要端口

# 允许SSH(示例IP限制)
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -m state --state NEW -j ACCEPT

# 允许HTTP/HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# ICMP控制(ping)
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

3. 保存规则

# CentOS 7+
sudo service iptables save
sudo systemctl enable iptables

# 或使用iptables-persistent
sudo yum install iptables-services -y
sudo systemctl enable iptables
sudo service iptables save

三、通用安全建议

  1. 最小化开放端口:只开放必要的服务端口
  2. IP限制:对管理端口(如SSH)实施IP白名单
  3. 定期审查:检查防火墙规则和日志 bash sudo firewall-cmd --list-all # firewalld sudo iptables -L -n -v # iptables
  4. 启用连接跟踪:防止DoS攻击 bash sudo sysctl -w net.netfilter.nf_conntrack_max=2097152
  5. 同步时间:确保日志时间准确 bash sudo yum install chrony -y sudo systemctl enable chronyd sudo systemctl start chronyd

四、故障排查

  1. 检查服务状态:

    sudo systemctl status firewalld
    sudo systemctl status iptables
    
  2. 查看详细日志:

    sudo journalctl -u firewalld -f
    sudo dmesg | grep firewall
    
  3. 临时禁用防火墙(仅用于测试):

    sudo systemctl stop firewalld
    sudo systemctl stop iptables
    

通过以上配置,您可以显著提升CentOS服务器的网络安全性。请根据实际业务需求调整规则,并确保在修改前备份现有配置。