温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

IPTables防火墙怎么用

发布时间:2022-02-19 10:58:17 来源:亿速云 阅读:221 作者:小新 栏目:开发技术
# IPTables防火墙怎么用 ## 目录 1. [IPTables简介](#iptables简介) 2. [基本概念与术语](#基本概念与术语) 3. [安装与启动](#安装与启动) 4. [基础规则配置](#基础规则配置) 5. [高级应用场景](#高级应用场景) 6. [规则持久化](#规则持久化) 7. [常见问题排查](#常见问题排查) 8. [安全最佳实践](#安全最佳实践) --- ## IPTables简介 Linux内核内置的包过滤框架,作为Netfilter项目的用户空间工具,提供: - 网络地址转换(NAT) - 数据包过滤 - 状态跟踪 - 流量控制等核心功能 **典型应用场景**: - 服务器安全防护 - 网络边界控制 - 端口转发服务 - DDoS基础防护 --- ## 基本概念与术语 ### 规则链(Chains) | 内置链 | 作用时机 | |--------|----------| | INPUT | 目标为本机的数据包 | | OUTPUT | 本机发出的数据包 | | FORWARD | 经过本机转发的数据包 | | PREROUTING | 路由决策前 | | POSTROUTING | 路由决策后 | ### 表(Tables) ```bash filter表(默认):包含INPUT/OUTPUT/FORWARD链 nat表:用于地址转换(PREROUTING/POSTROUTING) mangle表:特殊包修改(TTL/TOS等) raw表:连接跟踪豁免 

匹配条件

  • 协议类型(-p tcp/udp/icmp)
  • 端口号(–dport/–sport)
  • 源/目标IP(-s/-d)
  • 网络接口(-i eth0/-o wlan0)
  • 连接状态(-m state –state NEW,ESTABLISHED)

动作(Targets)

ACCEPT:允许通过 DROP:静默丢弃 REJECT:拒绝并返回错误 LOG:记录日志 SNAT/DNAT:地址转换 

安装与启动

主流发行版安装

# Debian/Ubuntu sudo apt install iptables # RHEL/CentOS sudo yum install iptables-services # 现代系统可能需安装兼容层 sudo apt install iptables-legacy 

服务管理

# 传统SysVinit系统 sudo service iptables start sudo service iptables save # systemd系统 sudo systemctl enable iptables sudo systemctl start iptables 

内核模块检查

lsmod | grep ip_tables modprobe ip_tables 

基础规则配置

查看当前规则

iptables -L -n -v # 详细模式查看 iptables -t nat -L # 查看NAT表 

清空现有规则

iptables -F iptables -t nat -F iptables -X # 删除自定义链 

默认策略设置

iptables -P INPUT DROP # 默认拒绝所有入站 iptables -P OUTPUT ACCEPT # 允许所有出站 iptables -P FORWARD DROP # 禁止转发 

基础规则示例

# 允许本地回环 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # 允许已建立的连接 iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 开放SSH端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许PING iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT # 限速HTTP连接(每秒3个新连接) iptables -A INPUT -p tcp --dport 80 -m limit --limit 3/second -j ACCEPT 

高级应用场景

端口转发(DNAT)

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80 iptables -t nat -A POSTROUTING -j MASQUERADE 

源地址转换(SNAT)

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 203.0.113.5 

防止SYN洪水攻击

iptables -N SYN_FLOOD iptables -A SYN_FLOOD -m limit --limit 10/s --limit-burst 20 -j RETURN iptables -A SYN_FLOOD -j DROP iptables -A INPUT -p tcp --syn -j SYN_FLOOD 

按时间控制规则

iptables -A INPUT -p tcp --dport 22 -m time --timestart 09:00 --timestop 17:00 -j ACCEPT 

规则持久化

传统保存方式

iptables-save > /etc/iptables.rules iptables-restore < /etc/iptables.rules 

systemd系统推荐

# 安装持久化工具 sudo apt install iptables-persistent # 保存规则 sudo netfilter-persistent save 

开机自动加载

echo "iptables-restore < /etc/iptables.rules" >> /etc/rc.local chmod +x /etc/rc.local 

常见问题排查

调试流程

  1. 检查规则顺序:iptables -L -n --line-numbers
  2. 查看丢包统计:iptables -L -v
  3. 开启日志记录:
     iptables -A INPUT -j LOG --log-prefix "[IPTABLES-DENY] " tail -f /var/log/syslog 

典型错误

# 错误:忘记允许ESTABLISHED状态 # 现象:能ping出但收不到回复 # 解决:添加状态规则 # 错误:NAT规则未启用IP转发 # 解决: echo 1 > /proc/sys/net/ipv4/ip_forward 

安全最佳实践

  1. 最小权限原则:只开放必要端口

  2. 日志监控:记录所有DROP/REJECT操作

  3. 防御措施

    • 限制ICMP速率
    • 防范端口扫描
    • 阻止异常TTL包
  4. 定期审计

    # 对比当前规则与保存规则 diff <(iptables-save) <(cat /etc/iptables.rules) 
  5. 组合使用:与fail2ban联动实现动态封禁

提示:生产环境建议先通过iptables -P INPUT ACCEPT设置临时宽松策略,测试完成后再改为严格模式。


扩展阅读

”`

注:实际使用时可根据需要调整各章节深度,本文档已包含基础到进阶的核心知识点,完整展开每个示例可达3500字左右。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI