明昌吧 关注:11贴子:315
  • 6回复贴,共1

Linux 之 iptables 防火墙

只看楼主收藏回复

iptables 防火墙
linux的防火墙主要工作在网络层,针对tcp/ip数据包实施过滤和限制
发展历史:
内核版本 包过滤机制 管理工具
2.0    ipfw ipfwadm
2.2 ipchain ipchains
2.4 netfilter iptables
iptables由表和链构成


IP属地:广西本楼含有高级字体1楼2012-12-30 00:19回复
    规则表
    filter表:含有三个规则链:INPUT/FORWARD/OUTPUT
    filter表主要用于对数据包进行过滤,根据具体的规则块决定是否放行该数据包
    (优先级最低)nat表:含有三个规则链:PREROUTING/POSTROUTING/OUTPUT
    nat(网络地址转换)表主要用于修改数据包的IP地址端口信息.mangle表:包含五个规则链:PREROUTING/POSTROUTING/INPUT/OUTPUT/FORWARD
    mangle主要用于修改数据包的TOS(服务类型),TTL(生存周期),数据包标记及Qos(服务质量)等
    raw表:含OUTPUT/PREROUTING
    用于决定数据包是否被状态跟踪机制处理.(优先级最高)


    IP属地:广西本楼含有高级字体2楼2012-12-30 00:20
    回复
      规则链
      INPUT :(入站)
      OUTPUT :(出站)
      FORWARD:(转发)
      PREROUTING(路由选择前)
      POSTROUTING(路由选择后)


      IP属地:广西本楼含有高级字体3楼2012-12-30 00:21
      回复
        优先级
        高--->低
        raw mangle nat filter
        规则链优先依据数据包的流向决定


        IP属地:广西本楼含有高级字体4楼2012-12-30 00:22
        回复
          iptables 语法格式
          iptables [-t 表名] 命令选项  [链名] [条件匹配] [-j 目标动作或跳转]
          参数
          -A 在指定链末尾添加一条新规则
          -D 删除指定链中的一条规则
          -I 插入一条新规则
          -R 修改
          -L 列出
          -F 清空
          -N 新建自定义的规则链
          -X 删除自定义的规则链
          -n 以数字形式显示输出结果,如显示主机IP而不是主机名
          -v 显示详细信息
          -V 版本号
          -h 查看帮助
          --line-numbers 查看规则在链中的序号行为:
          ACCEPT 接收
          DROP 丢弃
          REJECT 拒绝
          LOG 记录信息到/var/log/messages后传信息到第二条规则(不真正处理数据包)添加及插入
          #iptables -t filter -A INPUT -p tcp -j ACCEPT
          (不用-t 时 默认用filter表)
          #iptables -I INPUT -p udp -j ACCEPT (-p 用于指定协议)
          #iptables -I INPUT 2 -p icmp -j ACCEPT查看规则列表#iptables -L INPUT --line-numbers# iptables -vnL


          IP属地:广西本楼含有高级字体5楼2012-12-30 00:22
          回复
            删除,清空规则
            #iptables -D INPUT 2(不指定表名清空filter表)
            #iptables -F
            #iptables -t nat -F
            #iptables -t mangle -F设置默认策略#iptables -P FORWARD DROP
            #iptables -P OUTPUT ACCEPT获行相关用法帮助信息
            #iptables -p icmp -h新增、删除自定义规则链
            iptables -t raw -N TCP-PACKETS
            iptables -t raw -L清空自定义的规则链
            iptables -t raw -X
            条件匹配协议匹配
            #iptables -I INPUT -p icmp -j REJECT
            #iptables -A FORWARD -p ! icmp -j ACCEPT
            #iptables -L FORWARD
            (-s 源地址  -d 目标地址)
            #iptables -A FORWARD -s 192.168.5.15 -j REJECT
            #iptables -A FORWARD -s 192.168.5.0/24 -j ACCEPT(-i 指定网络接口)
            #iptables -A INPUT -i eth1 -s 192.168.5.0/24 -j DROP实例:
            管理员在网关服务器上检测到来自某个IP网段(10.20.30.0/24)的扫描,决定封堵2个小时.
            #iptables -I INPUT -s 10.20.30.0/24 -j DROP
            #iptables -I FORWARD -s 10.20.30.0/24 -j DROP
            #at now +2 hours
            >iptables -D INPUT 1
            >iptables -D FORWARD 1
            ><EOT> //<CTRL -D>


            IP属地:广西本楼含有高级字体6楼2012-12-30 00:23
            回复
              编写防火墙脚本
              防火墙脚本实际上是一个shell脚本优点预先加载一些内核模块,设环境参数,灵活,便于重用
              脚本中预定义IP地址,网络接口,局域网,可方便引用
              INET_IP="192.168.5.16"
              INET_IF="eth1"
              LAN_IP"10.182.140.5"
              LAN_IF="eth0"在脚本是加载内核模块
              /sbin/depmod -a //检查所有模块依赖
              /sbin/modprobe ip_conntrack //加载基本模块
              /sbin/modprobe iptable_filter //加载规则表功能模块


              IP属地:广西本楼含有高级字体8楼2012-12-30 00:24
              回复