openKylin论坛

 找回密码

LINUX安全监测与防护之一:IPTABLES [复制链接]

Iptables:<software iptables and hardware iptables>
       一般企业里都使用的是硬件防火墙<hardware iptables>,因为对内网的防护能力是不可估测的,所以价格也是相当昂贵。如果内部网络主机不对外网提供服务,而只是为内部提供网络服务(Samba/FTP/Postfix),那么就没必要花费更高的费用来购买硬件防火墙,那么这是选择软件防火墙<software iptables>是不错的选择,所以我们又必要了解防火墙的常识.例如:常用到的命令和常用的处理动作。
       为了让服务器更加安全,添加iptables规则是必不可少的,如果对iptables不是很了解的话,可能在服务器上添加规则的时候,难免会造成不可想象的结果,所以要对iptables做下简单的介绍。

  • netfilter
  •     位于Linux内核中的包过滤功能体系,称为Linux防火墙的“内核态”
  • iptables
  •     位于/sbin/iptables,用来管理防火墙规则的工具,称为Linux防火墙的“用户态”

iptables的表、链结构

  • 规则链
  •     规则的作用:对数据包进行过滤或处理
  •     链的作用:容纳各种防火墙规则
  •     链的分类依据:处理数据包的不同时机
  • 默认包括5种规则链
  •     INPUT:处理入站数据包
  •     OUTPUT:处理出站数据包
  •     FORWARD:处理转发数据包
  •     POSTROUTING链:在进行路由选择后处理数据包(SNAT)
  •     PREROUTING链:在进行路由选择前处理数据包(DNAT)
  • 规则表
  •     表的作用:容纳各种规则链
  •     表的划分依据:防火墙规则的作用相似
  • 默认包括4个规则表
  •     raw表:确定是否对该数据包进行状态跟踪
  •     mangle表:为数据包设置标记
  •     nat表:修改数据包中的源、目标IP地址或端口
  •     filter表:确定是否放行该数据包(过滤)

数据包过滤的匹配流程

  • 规则表之间的顺序
  •     raw->mangle->nat->filter
  • 规则链之间的顺序
  •     入站:PREROUTINGINPUT
  •     出站:OUTPUTPOSTROUTING
  •     转发:PREROUTINGFORWARDPOSTROUTING
  • 规则链内的匹配顺序
  •     按顺序依次检查,匹配即停止(LOG策略例外),若找不到相匹配的规则,则按该链的默认策略处理

Linux包过滤防火墙概述
      主要是网络层,针对IP数据包,体现在对包内的IP地址、端口等信息的处理上

在日常添加iptabes规则常用的命令与处理动作

  • 命令
  •     管理规则:
  •         -A:附加一条规则,添加在链的尾部
  •         -I CHAIN [num]: 插入一条规则,插入为对应CHAIN上的第num条;
  •         -D CHAIN [num]: 删除指定链中的第num条规则;
  •         -R CHAIN [num]: 替换指定的规则;
  •     管理链:
  •         -F [CHAIN]:flush,清空指定规则链,如果省略CHAIN,则可以实现删除对应表中的所有链
  •         -P CHAIN: 设定指定链的默认策略;
  •         -N:自定义一个新的空链
  •         -X: 删除一个自定义的空链
  •         -Z:置零指定链中所有规则的计数器;
  •         -E: 重命名自定义的链;
  •     查看类:
  •         -L: 显示指定表中的规则;
  •             -n: 以数字格式显示主机地址和端口号;
  •             -v: 显示链及规则的详细信息
  •             -vv:  
  •             -x: 显示计数器的精确值
  •             --line-numbers: 显示规则号码
  • 动作(target): ACCEPT:放行、DROP:丢弃、REJECT:拒绝、DNAT:目标地址转换、SNAT:源地址转换 REDIRECT:端口重定向、MASQUERADE:地址伪装、LOG:日志、MARK:打标记

匹配标准:(通用匹配和扩展匹配)

  • 通用匹配:
  •         协议匹配:-p {tcp|udp|icmp}
  •         地址匹配:
  •             -s 源地址(src)
  •             -d 目标地址(dst)
  •         接口匹配:
  •             -i interface(指定数据报文流入的接口)
  •                 可用于定义标准链:PREROUTING、INPUT、FORWARD
  •             -o interface(指定数据报文流出的接口)
  •                 可用于定义标准链:OUTPUT、POSTROUTING、FORWARD
  • 扩展匹配:
  •         隐含匹配:注(不用特别指明由哪个模块进行的扩展,因此此时使用-p {tcp|udp|icmp)
  •             端口匹配:
  •                 --sport 源端口
  •                 --dport 目标端口
  •             TCP标记匹配:
  •                 --tcp-flags mask[检查范围]  comp[被设置的标记]
  •                 说明:
  •                     只检查mask指定的标志位,用逗号分隔的标志位列表;
  •                     comp此列表中出现的标记位必须为1,comp中没出现,而mask中出现的,必须为0;
  •             ICMP类型匹配:
  •                 --icmp-type ICMP类型
  •                     8: (请求)echo-request
  •                     0: (相应)echo-reply
  •                     3:主机不可达         
  •         显示匹配:注(必须之明由哪个模块进行的扩展,在iptables中使用-m选项可完成此功能)
  •             状态匹配:
  •                 -m state --state 连接状态
  •             多端口匹配:
  •                 -m multiport --sports | --dports  端口列表
  •             IP地址范围匹配:
  •                 -m iprange  --src-range IP地址范围
  •                             --destination-ports IP地址范围
  •         条件取反:!


楼主
发表于 2013-4-29 22:34:05
回复

使用道具 举报

LINUX安全监测与防护之一:IPTABLES [复制链接]

收藏备用 。
沙发
发表于 2013-5-6 11:05:00
回复

使用道具 举报

openKylin

GMT+8, 2024-5-2 08:16 , Processed in 0.023632 second(s), 17 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表