iptables防火墙

新星杯·14天创作挑战营·第15期 10w+人浏览 423人参与

防火墙的概念

防火墙是一种网络安全系统,用于监控和控制网络流量,基于预设规则允许或阻止数据包的传输。其核心功能包括:

  • 访问控制:限制未经授权的访问。
  • 流量过滤:根据源/目标IP、端口、协议等条件过滤数据包。
  • 安全防护:防御DoS攻击、端口扫描等威胁。

防火墙可分为硬件防火墙(独立设备)和软件防火墙(如iptables、Windows Defender防火墙)

防火墙

硬件

软件

三层路由,H3C、华为、Cisco(思科)

iptables,Windows Defenderufw等

防火墙:深信服(防火墙和VPN),绿盟

具体类型

  1. 包过滤防火墙
    工作在网络层(OSI第三层),检查IP地址、端口和协议类型,速度快但无法识别应用层内容。

    allow src_ip=192.168.1.0/24 dst_port=80 proto=TCP  
     
    
  2. 应用层防火墙(代理防火墙)
    工作在应用层(OSI第七层),深度检测HTTP/FTP等协议内容,安全性高但性能开销大。

  3. 状态检测防火墙
    跟踪连接状态(如TCP握手),动态允许已建立的连接通过,适用于现代网络环境。

  4. 下一代防火墙(NGFW)
    集成入侵检测(IDS)、VPN支持、应用程序识别等功能,提供更全面的防护。

  5. 代理防火墙
    作为中间代理处理网络请求,完全隔离内外网直接通信。

  6. 云防火墙
    专为云环境设计的虚拟化防火墙服务,提供弹性防护能力。

  7. 个人防火墙
    安装在终端设备上的软件防火墙,主要保护单个主机安全。


iptables 

iptables 是 Linux 系统上用于配置网络包过滤规则的工具,基于 Netfilter 框架。它通过定义规则链(Chains)和规则(Rules)来控制数据包的流动。

主要链(Chains)

  • INPUT:处理进入本机的数据包。
  • OUTPUT:处理从本机发出的数据包。
  • FORWARD:处理经过本机转发的数据包。
  • PREROUTING(NAT):修改目标地址(DNAT)。
  • POSTROUTING(NAT):修改源地址(SNAT)。

常用表(Tables)

  • filter:默认表,用于包过滤。
  • nat:用于网络地址转换。
  • mangle:修改数据包头部信息。

iptables 基本语法

iptables -t <表名> <操作> <链名> <匹配条件> -j <动作>  
  • -t:指定表(默认为 filter)。
  • -A:追加规则到链尾。
  • -I:插入规则到链头。
  • -D:删除规则。
  • -j:指定动作(ACCEPTDROPREJECTLOG)。

基本防火墙规则

允许 SSH 连接(端口 22)

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

允许本地回环流量

iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  

拒绝所有其他入站流量

iptables -A INPUT -j DROP  

NAT 与端口转发

启用 IP 转发(需修改 /etc/sysctl.conf

echo 1 > /proc/sys/net/ipv4/ip_forward  

将外部 8080 端口转发到内部服务器的 80 端口

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  

限速与连接限制

限制单个 IP 的并发连接数(防止 DDOS)

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j REJECT  

限制 HTTP 请求速率(每秒 10 个请求)

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/second -j ACCEPT  
iptables -A INPUT -p tcp --dport 80 -j DROP  

日志记录

记录被拒绝的 SSH 尝试

iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH DROPPED: "  
iptables -A INPUT -p tcp --dport 22 -j DROP  

日志会保存在 /var/log/messages/var/log/syslog


保存与恢复规则

保存规则到文件

iptables-save > /etc/iptables.rules  

恢复规则

iptables-restore < /etc/iptables.rules  

开机自动加载(Ubuntu/Debian)

apt install iptables-persistent  
netfilter-persistent save  

高级匹配条件

匹配 MAC 地址

iptables -A INPUT -m mac --mac-source 00:11:22:33:44:55 -j DROP  

匹配时间段(例如晚上 10 点到早上 6 点)

iptables -A INPUT -p tcp --dport 22 -m time --timestart 22:00 --timestop 06:00 -j DROP  

调试技巧

查看所有规则

iptables -L -v -n  

清空所有规则

iptables -F  
iptables -t nat -F  
iptables -t mangle -F  

删除自定义链

iptables -X  

通过以上示例和语法,可以灵活配置 iptables 实现防火墙、NAT、流量控制等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值