Chinaunix首页 | 论坛 | 博客
  • 博客访问: 647734
  • 博文数量: 32
  • 博客积分: 873
  • 博客等级: 准尉
  • 技术积分: 512
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-24 16:49
文章存档

2012年(1)

2011年(31)

分类: LINUX

2011-08-20 07:49:43


防火墙:对进出网络的报文进行匹配,一旦匹配到就对其进行一定的处理的一套组件

iptables是我们linux系统中自带的纯软件形式的一套工具
 
iptables中比较重要的两个知识点: 三个表 和 五个规则链
    三个表:FILTER 和 NAT 和MANGLE(修改报文原数据,比如TTL)
    五个链:PREROUTING ,INPUT,FORWORD,OUTPUT,POSTROUTING
 
iptables/netfilter:iptables工作在用户空间,是定义规则的地方
                   netfilter工作在内核空间,是规则生效的框架
 
三个表可以做到各自的链上:
  filter可以做到INPUT ,FORWARD,OUTPUT上
  nat可以做到PREROUTING,OUTPUT,POSTROUTING
  mangle在五个链上都可以做
 
 
 
iptables命令格式:
  iptables [-t table] COMMEND chain CRETIRIA(匹配标准)  -j ACTION
 
 
下面我们来详细的解释下各部分的含义--》
  -t table                        #指的是filter 和 nat 和 mangle三个表(不指明的时候默认是filter表)
COMMEND 部分主要分为:链管理命令 和 规则管理命令 和 查看命令
  链管理命令:
             -p    eg:iptables -p INPUT {DROP|ACCEPT}          #用于定义默认策略(“通”或者“堵”)
             -F    eg:iptables -t nat -F PREROUTING           #用于清空nat表prerouting链上的规则
             -N  eg:iptables -N inbound_tcp_web              #新增一个规则链(用户自定义规则链)
             -X                                                #用于删除用户的空链(删除前规则应该清空)
             -E                                               #用户重命名自定义的链
             -Z                                               #用于清空链中的计数器的
  规则管理命令:
              -A                                              #追加一条规则(规则放在最后面)
             
              -I num                                          #插入规则(插入为第几条规则)
              
              -R                                              #用于修改规则
              -D                                              #用于删除第几条规则
  查看命令:
              -L   -n                                         #直接显示数字地址,不反向解析
              -v ,-vv ,-vvv                                   #显示详细信息
              -x                                              #表示精确值,不做单位换算
              --line-numbers                                  #把行号显示出来

匹配标准:通用匹配和扩展匹配 (隐含匹配和显式匹配)
 
  通用匹配:
     -s :   IP , network/netmask , 0.0.0.0/0.0.0.0     #匹配源地址(一般不使用主机名)
         -d :                                               #匹配目标地址
         -p :  (tcp|udp|icmp)                             #定义协议
         -i :   eth0                                        #定义从eth0网卡流进的数据
         -o :   eth0                                        #从eth0流出的数据
 
   扩展匹配中的隐含匹配:
            -p tcp                                          #指定tcp的扩展
               --dport                                      #目标端口(0-65535)
               --sport                                      #源端口(0-65535)
               --tcp-flags                                  #检查的标志位须为1的标志位
               eg: --tcp-flags syn,ack,fin,rst  syn        #匹配三次握手的第一次(--syn)
          
            -p udp                                          #指定udp的扩展
               --dport
               --sport
 
            -p icmp                                         #指定icmp的扩展
               --icmp-types                 
                  echo-request 8                            #匹配ping出去的包
                  echo-reply 0                              #匹配响应ping的数据包
    显式扩展:
           -p tcp -m multiport --dports 21,23,80            #匹配
            
             
 -j ACTION
 
         DROP                                               #悄悄丢弃数据包
         REJECT                                             #明显的拒绝
         ACCEPT                                             #接受
         CUSTOM_chain                                       #转向一个自定义的链
         DNAT                                               #目标地址转化
         SNAT                                               #源地址转换
         MASQUERADE                                         #源地址伪装
         REDIRECT                                           #端口重定向
         MARK                                               #打标记
         RETURN                                             #返回   
iptables -R INPUT 2 -s 172.167.0.0/16 -d 172.167.100.1 -p tcp --dport 22 -m stat --stat NEW,ESTABLELISHD -j ACCPET
       
四种状态:
       NEW: 新建立的连接
       ESTABLELIST :已建立的连接
       RELATED :具有关联关系的连接
       INVALID :无法识别的连接
 
如何实现让自己可以ping通别人,别人却不能ping通自己
   iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
   iptables -L -n
   iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
 
这些所有我们本次定义的规则在开机之后就会丢失,我们通常使用这样的命令来给他保存下来:
  
   service iptables save  默认保存的文件是  /etc/sysconfig/iptables
   我们也可以使用iptables-save > /etc/sysconfig/iptables来保存iptables规则
   当然我们如果不想让它每次开机自动启动而是手动启动的话,我们还可以用一下命令:
    iptables-restore <  /etc/sysconfig/iptables

 iptables -A INPUT -s 172.16.0.1 -d 172.16.100.1 -j DROP #拒绝172.16.100.1所有访问
route add default gw 192.168.10.18             #添加192.168.10.19为默认路由
route -n                                       #显示路由表信息
route add -net 192.168.0.13/24 gw 172.16.100.1 #192.168.0.13为网络上的一个主机
 
           
      
阅读(1857) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

2011-08-24 18:42:34

它怎么攻击sys攻击呢?