Linux防火墙配置与实践指南 – 基础设置与安全策略

2025-05-02 36

Linux防火墙配置与实践指南

一、Linux防火墙基础

1. 防火墙类型

  • netfilter/iptables:传统Linux防火墙框架
  • nftables:iptables的替代品,更高效
  • firewalld:动态防火墙管理器(常用于RHEL/CentOS)
  • UFW:Ubuntu的简化防火墙工具

2. 常见防火墙工具比较

| 工具 | 易用性 | 灵活性 | 适用场景 |
|------|--------|--------|----------|
| iptables | 低 | 高 | 需要精细控制的系统 |
| nftables | 中 | 高 | 新系统,替代iptables |
| firewalld | 高 | 中 | RHEL/CentOS/Fedora |
| UFW | 高 | 低 | Ubuntu/Debian桌面/服务器 |

二、iptables配置与实践

1. 基本概念

  • 表(Tables):filter(默认)、nat、mangle、raw
  • 链(Chains):INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
  • 规则(Rules):匹配条件和目标动作

2. 常用命令

# 查看当前规则
iptables -L -n -v

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

# 允许SSH连接(22端口)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

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

# 默认拒绝所有输入
iptables -P INPUT DROP

# 保存规则(根据发行版不同)
iptables-save > /etc/iptables.rules

三、firewalld配置

1. 基本概念

  • 区域(Zones):预定义的规则集(public, work, home等)
  • 服务(Services):预定义的服务规则(ssh, http等)
  • 端口(Ports):直接端口控制

2. 常用命令

# 查看活动区域
firewall-cmd --get-active-zones

# 添加HTTP服务
firewall-cmd --zone=public --add-service=http --permanent

# 开放特定端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent

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

# 列出所有允许的服务
firewall-cmd --list-services

四、UFW配置(适用于Ubuntu/Debian)

1. 基本命令

# 启用UFW
ufw enable

# 默认拒绝所有入站,允许所有出站
ufw default deny incoming
ufw default allow outgoing

# 允许SSH
ufw allow ssh

# 允许特定端口
ufw allow 80/tcp
ufw allow 443/tcp

# 拒绝特定IP
ufw deny from 192.168.1.100

# 查看状态
ufw status verbose

五、高级防火墙实践

1. 防止DDoS攻击

# 限制单个IP的连接数
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j DROP

# 限制新建连接速率
iptables -A INPUT -p tcp --dport 80 -m limit --limit 50/minute --limit-burst 200 -j ACCEPT

2. 端口转发

# 将外部8080转发到内部80端口
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80

3. 日志记录

# 创建日志链
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP

六、防火墙管理实践

  1. 最小权限原则:只开放必要的端口和服务
  2. 默认拒绝策略:先设置默认拒绝所有,再逐个开放
  3. 定期审计规则:检查不再需要的规则
  4. 使用注释:为复杂规则添加注释
  5. 测试规则:应用前先测试,避免锁定自己
  6. 备份配置:修改前备份当前配置

七、故障排除

  1. 检查防火墙是否运行:

    systemctl status firewalld   # 对于firewalld
    systemctl status ufw         # 对于UFW
    
  2. 查看完整规则:

    iptables -L -n -v --line-numbers
    
  3. 检查被阻止的连接:

    journalctl -xe               # 查看系统日志
    dmesg | grep firewall        # 查看内核日志
    
  4. 临时禁用防火墙:

    systemctl stop firewalld     # firewalld
    ufw disable                 # UFW
    

通过以上配置和实践,您可以有效地保护Linux系统免受未经授权的访问,同时确保合法流量的正常通行。

(本文来源:nzw6.com)

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关