售前咨询400-838-0503

如何在Linux上配置防火墙?

发布:2025-05-22 06:45

Linux防火墙配置终极指南:从入门到精通

在当今互联网环境中,配置防火墙是保护Linux系统的首要任务。本文将详细介绍如何在不同Linux发行版上配置防火墙,包括iptables和firewalld两种主流方案。

一、理解Linux防火墙基础

Linux系统主要通过内核中的网络过滤子系统实现防火墙功能。目前主流的有两种工具:

  • iptables:传统防火墙工具,直接与内核交互
  • firewalld:较新的动态防火墙管理工具,常用于RHEL/CentOS 7+

选择哪种工具取决于你的Linux发行版和个人偏好。

二、使用iptables配置防火墙

1. 检查iptables状态

sudo iptables -L -n -v

2. 基本规则设置

设置默认策略(拒绝所有传入,允许所有传出):

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

3. 允许特定服务

例如允许SSH(22端口)和HTTP(80端口):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

4. 保存iptables规则

在Debian/Ubuntu上:

sudo iptables-save > /etc/iptables.rules

在RHEL/CentOS上:

sudo service iptables save

三、使用firewalld配置防火墙

1. 检查firewalld状态

sudo firewall-cmd --state

2. 基本区域管理

查看可用区域:

sudo firewall-cmd --get-zones

设置默认区域为public:

sudo firewall-cmd --set-default-zone=public

3. 添加服务到防火墙

例如允许HTTP和HTTPS:

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent

4. 重新加载防火墙

sudo firewall-cmd --reload

四、高级防火墙配置技巧

1. 限制SSH访问

仅允许特定IP访问SSH:

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

2. 防止DDoS攻击

sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

3. 端口转发

将外部8080端口转发到内部80端口:

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80

五、防火墙故障排除

  • 使用tcpdump检查网络流量
  • 查看系统日志/var/log/messages/var/log/syslog
  • 临时禁用防火墙进行测试:sudo systemctl stop firewalld
  • 检查服务是否监听正确端口:netstat -tulnp

总结

无论是使用传统的iptables还是现代的firewalld,正确配置Linux防火墙都是系统安全的重要组成部分。建议初学者从firewalld开始,它提供了更友好的管理界面。无论选择哪种方式,都要记住:

  1. 先设置默认拒绝策略
  2. 只开放必要的端口和服务
  3. 定期审查防火墙规则
  4. 测试配置变更的影响

通过本文的指导,你应该能够在各种Linux系统上配置基本的防火墙保护了。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单