Linux 中 Iptables 规则定义

来源:互联网 发布:黑龙江财经学院数据库 编辑:程序博客网 时间:2024/06/04 18:40
linux 远程服务访问控制        

Firewall: 防火墙 
防火墙工作位置 :网络边缘出口处,主机边缘 数据包进出口
工作于网络边缘的一套组建  按照管理员定义的规则 对于进出本网段的报文进行检查 规则匹配
的一套组建

防火墙策略:
rules, policy
规则-->策略

常见防火墙:
3、4层防火墙    7层 应用层网关

3层 检查源地址 目标地址
7层  仅仅检查数据的可靠性 检查7层数据的完整性  

市场上的防火墙 是综合两种防火墙的特点 组建的

-----------------------------------------------------------------------------------------------------------
 ipfw/iptables  : linux 防火墙软件 
 工作在UNIX 中的 Ipfirewall  工作有效  规则必须放置在kernel(rules)中
 ipchains 可以定义多条 rules 
 ipfw/ipchains/iptables 都是工作在用户空间中  用于管理员写规则  本身并不是防火墙
  
 iptables/netfilter:
       iptables 是REDHAT 模拟的一个服务 用来挂载或卸载规则  工作在用户空间 
  netfilter网络过滤器  关卡  可以实现防火  也有可能大门敞开 工作在内核空间    工作在内核空间 是一个框架 
       
  5种路由决策 在路由决策之前进行转换 
  
   每个关卡放置多个规则  这些规则叫做规则连
   不同的功能在不同的位置实现   不同的位置实现不同的规则链
  
   五个hook functions: 钩子函数 
  
  chains  规则链:
     PREROUTING
     INPUT       数据包流入接口
     FORWARD     转发关卡
     OUTPUT      数据包流出接口     
     POSTROUTING  
     
  三个表
  filter:       允许/不允许  
  nat:         地址转换      
  mangle: 修改报文源数据    修改数据中的TTL值  或  做防火墙标记
             
  防火墙两种策略: 
      “通”  默认门是关着的 明确定义才能进 开几个小洞就是通了
      “堵”  默认门是大敞开着 但是没有通行证 任何人都不能进 (默认情况是采用“堵”策略)
               
-----------------------------------------------------------------------------------------------------------
三个表与五个链对应的关系:
    修改立即生效 
    IPTABLES 定义的规格 放在链上 立即生效 
    REDHAT 启动服务是把 定义号的规则放上去 
                      关闭服务则是把规则卸载下来 

           

规则是严格按顺序进行   写规则时范围应从小到大 

filter
INPUT,FORWARD, OUTPUT
nat
PREFROUTING,OUTPUT,POSTROUTING 
mangle
PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING.
自定义链: 自定义链必须和内直链关联起来   和基准链关联 
     
=============================================================================   

     怎么写规则:   

     先查看: man iptables    
     iptables [-t table] COMMAND chains CRETIRIA(匹配标准) -j ACTION(如何处理)
     
     e.g.  iptables -t filter -A INPUT -s 172.16.0./16 -p udp --dport 53 -j DROP
    
   命令: 
  COMMAND:
  链管理命令
                      -P (policy)  设定默认策略 [门是开或关]
                                                # iptables -P INPUT {DROP|ACCEPT}
                                                设置之前确定远程连接可用
            
                     -F (flush)         清空规格链
 # iptable -t nat -F PRERUTING
                           iptable -t nat -F   清空nat表的所有链
  
  -N                     new 新建链  自定义规则链
                            # iptables -N inbound_tcp_web
  
  -X                      删除用户自定义空链   删之前要清空规则
  -E                     重命名:oldname newname
  -Z                      zero 清空链中 默认计数器
                           # iptables -L -n -v
  iptables -Z      默认规则不清除
            
      规则管理命令
                      -A                  最后追加
                       -Inum          插入
                     -R                 修改规则替换
                                             # iptables -R -s 
                      -D                  num删除第几条规则
 
 
 查看命令 
 -L
 -n                     数字    显示数字格式地址
  -v                      版本号 详细信息 
 -x                      精确值 不做单位换算
 --line-numbers显示行号
 

 

匹配标准:-p

            通用匹配:源地址与目标地址的匹配
                     -s                    指定源地址匹配 必须指地址
                                             IP, NETWORK/NETMASK, 0.0.0.0/0.0.0.0   !可以取反
                     -d                    匹配目标地址
                     -p                    匹配协议    {tcp|udp|icmp}
                      -i                     数据的流入接口 eth0
                     -o                     流出接口//流入流出按指定规则写 
 
      扩展匹配
      隐含扩展
      对特定协议的扩展
                     -p                     tcp 
  --dport             目的端口  端口要连续
                     --sport            源端口
  --tcp-flags      检查的标志位 必须为1的标志位  tcp 标志位
  
  --tcp-flages syn,ack,fin,rst syn  三次握手的第一次请求包
  简写 = --syn
  
  -p                   udp
                     --dport
                     --sport
  
                      -p icmp
                      --icmp-types 8 
                                              // ping 出去报文  echo-request 8
                                                  回应报文echo-reply 0  
 
            显式扩展 明确指定
                        -p                    tcp -m tcp multiport --dport 21,23,80 启动多端口扩展
 
 ACTION:   -j
  DORP     丢弃不通知 
  REJECT   明确拒绝丢弃  
  ACCEPT
  custom_chain
  DNAT
  SNAT
  MASQUSERADE
  REDIRECT            端口重定向
  MARK
  RETURN返回
  
 ===============================================================================
 状态检测 :state
         1.NEW                    第一次握手  
         2.ESTABLISHED  第二、三次握手 为  已建立连接         
         3.invalid       非法连接        
         4.related      ftp 两端口连联系
 
    状态扩展为显示扩展 检测    
    防止反弹式木马的入侵
        
  所有规则重启失效:  
  保存文件位置开机启动:
  service iptables save
   
  /etc/sysconfig/iptables   //保存位置   
  iptables-save > /etc/sysconfig/iptales(.2)
  iptables-restore < /etc/syscofig/iptables(.2)
0 0
原创粉丝点击