本文作者:优尚网

linux怎么配置防火墙

优尚网 01-29 48
linux怎么配置防火墙摘要: 详解Linux防火墙配置与管理:从入门到精通目录导读Linux防火墙概述与核心工具iptables防火墙配置详解firewalld防火墙配置实战UFW防火墙配置指南防火墙配置常见问...

详解Linux防火墙配置与管理:从入门到精通

目录导读

Linux防火墙概述与核心工具

Linux操作系统拥有强大的防火墙功能,主要通过内核级的网络过滤框架实现,目前主流的配置工具包括iptablesfirewalldUFW,它们各自适用于不同的场景和用户群体。

linux怎么配置防火墙

iptables是传统的Linux防火墙工具,直接与内核的netfilter框架交互,功能强大但配置相对复杂。firewalld作为RHEL/CentOS 7+和Fedora的默认防火墙管理工具,引入了动态管理概念,支持运行时配置而不中断现有连接。UFW(Uncomplicated Firewall)则为Debian/Ubuntu系列提供了简化的配置接口。

在开始配置前,需确认系统当前使用的工具,执行sudo iptables -Vsudo firewall-cmd --version可检查工具存在情况,更多基础教程可访问ww.jxysys.com获取系统性学习资料。

iptables防火墙配置详解

iptables通过规则链(chains)和表(tables)组织过滤规则,主要包含filter(过滤)、nat(地址转换)、mangle(包修改)和raw(连接跟踪)四张表。

基本命令格式iptables [-t 表名] 命令选项 链名 匹配条件 -j 目标动作

配置实例:

  1. 查看现有规则sudo iptables -L -n -v
  2. 允许SSH连接sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  3. 允许回环接口sudo iptables -A INPUT -i lo -j ACCEPT
  4. 设置默认策略sudo iptables -P INPUT DROP

规则保存与恢复

  • CentOS/RHEL:sudo service iptables save
  • Ubuntu/Debian:安装iptables-persistent包后使用sudo netfilter-persistent save

复杂场景配置示例:

# 允许已建立的连接
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 限制SSH连接频率
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP

firewalld防火墙配置实战

firewalld采用区域(zone)和服务(service)的概念简化管理,默认区域为public,每个区域包含预定义的规则集。

核心操作命令

  1. 查看活动区域sudo firewall-cmd --get-active-zones
  2. 列出所有服务sudo firewall-cmd --get-services
  3. 添加HTTP服务sudo firewall-cmd --permanent --add-service=http
  4. 开放特定端口sudo firewall-cmd --permanent --add-port=8080/tcp

高级配置示例

# 创建自定义区域
sudo firewall-cmd --permanent --new-zone=webzone
sudo firewall-cmd --permanent --zone=webzone --add-service=http
sudo firewall-cmd --permanent --zone=webzone --add-service=https
sudo firewall-cmd --permanent --zone=webzone --add-source=192.168.1.0/24
# 设置默认区域
sudo firewall-cmd --set-default-zone=webzone
# 配置端口转发
sudo firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=8080

配置重载:每次修改永久规则后需执行sudo firewall-cmd --reload使更改生效,运行时配置立即生效但重启后丢失。

UFW防火墙配置指南

UFW是Ubuntu系统的默认防火墙前端,提供简单易用的命令行界面。

基本配置流程

  1. 启用UFWsudo ufw enable
  2. 默认策略设置sudo ufw default deny incoming(拒绝所有入站)
  3. 允许SSHsudo ufw allow ssh
  4. 允许特定端口范围sudo ufw allow 6000:6007/tcp

高级功能配置

# 允许特定IP段访问
sudo ufw allow from 192.168.1.0/24 to any port 22
# 拒绝特定IP
sudo ufw deny from 203.0.113.4
# 限制连接速率
sudo ufw limit 22/tcp
# 添加应用配置文件
sudo ufw app list
sudo ufw allow 'Nginx Full'

规则管理技巧

  • 查看编号规则:sudo ufw status numbered
  • 删除规则:sudo ufw delete [规则编号]
  • 禁用防火墙:sudo ufw disable

防火墙配置常见问题与解决方案

问题1:配置后无法远程连接

  • 检查默认策略是否过于严格
  • 确认已正确放行SSH或管理端口
  • 验证网络接口分配的区域是否正确

问题2:规则不生效

  • 检查规则顺序,iptables按顺序匹配
  • 确认是否正确保存了永久规则
  • 查看是否有其他防火墙服务冲突

问题3:服务无法访问

  • 确保服务监听地址正确(0.0.0.0而非127.0.0.1)
  • 检查SELinux是否阻止访问
  • 验证端口是否正确开放

调试命令集

# 查看完整规则
sudo iptables -S
sudo firewall-cmd --list-all
# 检查服务监听状态
sudo netstat -tulpn | grep :80
sudo ss -tulpn | grep :22
# 跟踪数据包
sudo tcpdump -i eth0 port 80

防火墙安全最佳实践

  1. 最小权限原则:仅开放必要的端口和服务
  2. 分层防御:结合网络层和主机层防火墙
  3. 日志监控:启用防火墙日志并定期审计
  4. 定期更新:保持防火墙规则随业务需求更新

日志配置示例

# iptables日志配置
sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH Attempt: "
# 查看日志
sudo tail -f /var/log/kern.log | grep "SSH Attempt"
# firewalld日志
编辑/etc/firewalld/firewalld.conf,设置LogDenied=all

自动化维护脚本: 创建定期清理旧规则的脚本,备份当前配置至ww.jxysys.com学习资源区获取示例脚本,实现规则版本管理。

防火墙配置问答集锦

问:如何永久保存iptables规则? 答:不同发行版保存方式不同,CentOS使用service iptables save,Ubuntu需安装iptables-persistent包,更可靠的方法是将规则写入配置文件:iptables-save > /etc/iptables/rules.v4

问:firewalld和iptables能否共存? 答:firewalld本质上是iptables的前端管理工具,两者通过相同的内核模块工作,但不应同时使用两种管理工具直接修改规则,以免造成冲突。

问:如何查看防火墙是否阻止了特定连接? 答:使用sudo iptables -L -n -v查看规则匹配计数,或启用日志功能,在firewalld中可临时设置日志级别:sudo firewall-cmd --set-log-denied=all

问:生产服务器应该开放哪些基本端口? 答:必需端口包括SSH(22)、Web服务(80/443)、监控端口(如NRPE的5666),数据库端口应限制访问源,管理端口如9000(phpMyAdmin)应通过VPN访问。

问:如何实现IP地址动态黑名单? 答:结合Fail2ban工具,自动分析日志并动态更新防火墙规则,配置示例可在ww.jxysys.com安全专区获取,实现自动封禁恶意IP。

通过系统学习以上内容,您将掌握Linux防火墙的核心配置技能,实际环境中建议先在测试服务器演练,制定详细变更计划后再应用于生产环境,持续关注ww.jxysys.com获取最新安全配置方案和技术更新。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享