zoukankan      html  css  js  c++  java
  • Linux防止ARP攻击的一些方法

    方法一,最常用的绑定网关

    一般服务器的网关是不会变动的,且vps也适用。
    一、查看当前网关

    [root@local@xiaohuai ~]# arp -a
    ? (218.65.22.122) at 80:fb:06:f2:4a:f4 [ether] on eth0

    SSH执行以上命令,可查看到网关主机名、网关IP、网关MAC地址和对应的网卡。

    二、绑定网关MAC
    1)绑定

    [root@local@xiaohuai ~]# echo "218.65.22.122 80:fb:06:f2:4a:f4" > /etc/safe

    #ip、mac部分请根据实情修改。格式:网关IP(空格)MAC地址
    2)激活使其生效

    [root@local@xiaohuai ~]# arp -f /etc/safe

    SSH执行以上命令,使其生效。

    三、检查是否生效

    [root@local@xiaohuai ~]# arp -a
    ? (218.65.22.122) at 80:fb:06:f2:4a:f4 [ether] PERM on eth0

    再次执行arp -a命令,如下图,若句尾多了一个:PERM,则表示手动绑定生效


    方法二,利用软件Libnet与arpoison

    备软件

    Libnet 自己去官方网站
    arpoison 自己去官方网站

    安装方法(FC下成功,其他发行版可参考):

    先安装libnet
    tar -xvzf libnet.tar.gz
    cd libnet
    ./configure
    make
    make install

    安装arpoison
    tar -xvzf arpoison-0.6.tar.gz
    cd arpoison
    gcc arpoison.c /usr/lib/libnet.a -o arpoison
    mv arpoison /usr/sbin

    用法:

    Usage: -i device -d dest_IP -s src_IP -t target_MAC -r src_MAC [-a] [-w time between packets] [-n number to send]

    示例:
    arpoison -i eth0 -d 172.16.18.254 -s 172.16.18.19 -t ff:ff:ff:ff:ff:ff -r 00:11:09:E8:78:DD

    解释:

    -i eth0 指定发送arp包的网卡接口eth0
    -d 172.16.18.254 指定目的ip为172.16.18.254
    -s 172.16.18.19 指定源ip为172.16.18.19
    -t ff:ff:ff:ff:ff:ff 指定目的mac地址为ff:ff:ff:ff:ff:ff(arp广播地址)
    -r 00:11:09:E8:C8:ED 指定源mac地址为00:11:09:E8:C8:ED

    写了一个小脚本,根据注释,相信聪明智慧的各位可以搞定linux下的arp攻击了:

    #!bash
    #网关mac地址
    GATEWAY_MAC=00:D0:F8:FF:4A:23
    #目的mac地址
    DEST_MAC=ff:ff:ff:ff:ff:ff
    #目的ip地址
    DEST_IP=172.16.18.254
    #本地网卡接口
    INTERFACE=eth0
    #$INTERFACE的mac地址
    MY_MAC=00:11:09:E8:78:DD
    #$INTERFACE的ip地址
    MY_IP=172.16.18.19
    
    #在本机建立静态ip/mac入口 $DEST_IP–$GATEWAY_MAC
    arp -s $DEST_IP $GATEWAY_MAC
    
    #发送arp reply ,使$DEST_IP更新$MY_IP的mac地址为$MY_MAC
    arpoison -i $INTERFACE -d $DEST_IP -s $MY_IP -t $DEST_MAC -r $MY_MAC 1>/dev/null &
    

    方法三,arptables防arp攻击

    Centos5安装:
    #http://www.111cn.net
    wget http://superb-sea2.dl.sourceforge.net/project/ebtables/arptables/arptables-v0.0.3/arptables-v0.0.3-4.tar.gz
    tar zxvf arptables-v0.0.3-4.tar.gz
    cd arptables-v0.0.3-4
    make
    make install
    
    arptables规则设置:
    
    arptables -F
    arptables -P INPUT ACCEPT
    #默认策略
    arptables -A INPUT --src-ip 192.168.1.1 --src-mac 7A:31:14:42:10:01 -j ACCEPT
    #允许本网段特定MAC可进入,且IP与MAC相符
    arptables -A INPUT --src-mac ! 74:8E:F8:53:DC:C0 -j DROP
    #拒绝非网关MAC
    arptables -A INPUT --src-ip ! 192.168.1.1 -j DROP
    #拒绝非网关IP
    
    保存规则并开机加载:
    
    iptables-save > /etc/sysconfig/arptables
    /etc/init.d/arptables save
    chkconfig arptables on
    
    规则保存后重新加载会出错,去除以下文件内-o any字段。
    
    
     /etc/sysconfig/arptables
    

    方法四,shell脚本防arp攻击

    #!/bin/bash
    declare gw=`route -n | grep -e '^0.0.0.0'`
    declare gwname=`echo $gw | grep -oe 'w*$'`
    declare gwip=`echo $gw | grep -oe '[0-9]{2,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'`
    declare gwmac=`arp -n | grep -e $gwip | grep -oe '[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-F]{2}:[0-9A-
    F]{2}:[0-9A-F]{2}:[0-9A-F]{2}'`
    echo "switch $gwname arp: $gwip - $gwmac to static"
    arp -s $gwip $gwmac
    echo "done, off arp reuqest .."
    ifconfig $gwname -arp
    echo "all done."
    
  • 相关阅读:
    项目总结-驱虫市场电商数据挖掘
    电商数据处理项目
    Hive sql常用函数公式整理
    拉勾网‘数据分析师’职位招聘信息数据爬取
    鸢尾花数据(PCA主成分分析)
    项目总结-信用评分卡
    某保险公司参保客户分析
    Excel自定义格式参数
    VS2013创建ADO实体模型报:Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91
    AngularJS-学习
  • 原文地址:https://www.cnblogs.com/Dev0ps/p/8418313.html
Copyright © 2011-2022 走看看