防火墙基础知识--TCP Wrappers和IPtables两种机制

  1. 认识防火墙
    1. 概念
    2. 作用
    3. Linux上防火墙类别
      1. 封包过滤机制Netfilter
      2. 程序管控机制TCP Wrappers
    4. 一般网络布线
    5. 使用能力限制
  2. TCP Wrappers程序管控
    1. 概念:
      简单来说,TCP wrappers就是透过/etc/hosts.allow/etc/hosts.deny这两个文件来管理,但并非所有软件都可以。
    2. 支持的服务
      1. super daemon (xinetd)管理的服务
        chkconfig --list 显示内容下的xinetd based services:
      2. 支持libwrap.so模块的服务
        由于支持tcp wrappers的服务必定包含libwrap这个动态库,所以可以通过ldd来观察:
        ldd `which sshd` | grep libwrap
        libwrap.so.0 => /lib/libwrap.so.0 (0x00145000)
      3. /etc/hosts.{allow|deny}的设定方式
        1. 语法结构
          <service(program_name)>:<IP,domain,hostname>
          例如rsync:192.168.1.0/255.255.255.0
        2. 规则优先顺序
          1. /etc/hosts.allow
          2. /etc/hosts.deny
          3. 以上都不符合,则放行
  3. 封包过滤软件:iptables
    Kernel2.4和2.6以上使用iptables这个机制,PS:uname -r查看核心版本
    1. 比对与分析顺序
      rule1
      rule2
      policy预设封包动作
    2. table和chain
      1. table(表):filter(过滤器)、nat()、mangle()
        1. filter:INPUT、OUTPUT、FORWARD
        2. nat:PREROUTING、POSTROUTING、OUTPUT
        3. mangle:多个
      2. chain(链)
        1. INPUT:主要负责制定想要进入Linux主机的封包的规则
        2. OUTPUT
        3. FORWARD
    3. 语法结构
      1. 规则的查看
        iptables [-t tables] [-L] [-nv]
        1. -t
        2. -L:列出table的规则内容
        3. -n
        4. -v
      2. iptables内容构成

        target    prot    opt    source    destination
        1. target
        2. prot
        3. opt
        4. source
        5. destination
      3. 规则的清除
        iptables [-t tables] [-FXZ]
        1. -F:清除所有已存在的规则(不是永久改变,除非写入配置文件)
        2. -X:杀掉所有自定义
        3. -Z:将所有chain统计归零
      4. 定义预设封包动作policy
        policy:当你的封包不在设定的规则之内时,则该封包的通过与否,是以Policy的设定为准即最后一条规则)
        iptables [-t tables] -P [chain] [ACCEPT,DROP]
        1. ACCEPT
        2. DROP
      5. 封包的比对设定
        用法:iptables [-AI chain] [-io 网络接口] [-p 协议] [-s 源IP] [-d 目标IP] -j [ACCEPT|DROP|REJECT|LOG]
        例子:
        iptables -I INPUT -i eth0 -d --dport 22 -j DROP    #禁止远程主机SSH连接 
        如果没有指定的项目,则表示该项目完全接受
        1. -A:新增新规则
        2. -I:插入新规则
        3. -i:入口网络接口,需与INPUT链配合使用
        4. -o:出口网络接口
        5. -p:设定此规则适用那种协议,主要有tcp,udp,icmp,all
        6. -s
        7. -d
        8. -j
        9. -p [tcp|udp] --sport 
        10. -p [tcp|udp] --dport
      6. iptables外挂模块
        用法:-m [state|mac] --state | --mac
        例子:
        iptables -A INPUT -m state --state RELATED -j ACCEPT
        iptables -I INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff
        1. --state:一些封包的状态
          INVALID
          ESTABLISHED
          NEW
          RELATED
        2. --mac:根据mac地址设定规则
      7. icmp封包规则的比对:针对是否响应ping
        用法:-m icmp --icmp-type
        1. icmp-type对应
          0 3 4 8 11 12
          Echo Reply 不可达 Source quench Echo request TTL=0 坏包
        2. 禁止远程主机ping包
          iptables -I INPUT -p icmp --icmp-type 8 -j DROP    #不接受echo request
          或者
          iptables -I OUTPUT -p icmp --icmp-type 0 -j DROP    #不发出echo reply
      8. 写入防火墙规则配置文件
        配置文件/etc/sysconfig/iptables
        /etc/init.d/iptables save    #将防火墙规则写入到/etc/sysconfig/iptables
        #iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
    4. IPv4的核心管理功能:/proc/sys/net/ipv4/*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2015-06-01 15:43  RickyYuan  阅读(780)  评论(0编辑  收藏  举报