发布新日志

  • linux centos下apache+django环境配置

    2014-11-06 22:28:16

    具体来说3个文件:
    1. /etc/httpd/conf.d/wsgi.conf
    内容如下:
    LoadModule wsgi_module modules/mod_wsgi.so
      2 
      3 #WSGIScriptAlias /kfc /kfc/index.py
      4 #WSGIScriptAlias /tc /kfc/tc.py
      5 WSGIScriptAlias /blog /kfc/mysite1/blog/wsgi.py
      6 
      7 <Directory "/kfc/mysite1/blog">
      8 Order allow,deny
      9 Allow from all
     10 </Directory>
     11 
     12 Alias /static /kfc/mysite1/static
     13 
     14 
     15 <Directory "/kfc/mysite1/blog/static">
     16 Order allow,deny
     17 Allow from all
     18 IndexOptions FancyIndexing
     19 </Directory>

    2. /kfc/mysite1/blog/wsgi.py
    内容如下:

    import os
      2 import sys
      3 import django.core.handlers.wsgi
      4 
      5 proj=os.path.dirname(__file__)
      6 projs=os.path.dirname(proj)
      7 if projs not in sys.path:
      8     sys.path.append(proj)
      9     sys.path.append(projs)
     10 
     11 
     12 os.environ['DJANGO_SETTINGS_MODULE']='mysite1.settings'
     13 application=django.core.handlers.wsgi.WSGIHandler()

    3. /kfc/mysite1/wsgi/django.wsgi
    内容如下:
    import os
      2 import sys
      3 
      4 sys.stdout = sys.stderr
      5 
      6 from os.path import abspath, dirname, join
      7 from site import addsitedir
      8 from django.core.handlers.wsgi import WSGIHandler
      9 
     10 sys.path.insert(0, abspath(join(dirname(__file__), "../")))
     11 sys.path.insert(0, abspath(join(dirname(__file__), "../../")))
     12 
     13 os.environ["DJANGO_SETTINGS_MODULE"] = "mysite1.settings" #your settings module
     14 
     15 application = WSGIHandler()

    成功访问,Yeah!

    apache日志:tail -f /etc/httpd/logs/error_log

    哈哈哈………………
  • ARP协议与ARP病毒

    2007-06-20 21:16:18

    近来办公室里频频发生arp中毒事件,因此摘抄几篇关于ARP的文章,学习一下,呵呵

    网络管理之ARP协议篇

    出处:中国电脑教育报
    责任编辑:ycx

    [03-6-5 10:48] 作者:双木   我们知道,当我们在浏览器里面输入网址时,DNS服务器会自动把它解析为IP地址,浏览器实际上查找的是IP地址而不是网址。那么IP地址是如何转换为第二层物理地址(即MAC地址)的呢?在局域网中,这是通过ARP协议来完成的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。所以网管们应深入理解ARP协议。


     一、什么是ARP协议


      ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。


      二、ARP协议的工作原理


      在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如附表所示。

    附表


      我们以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询问:“192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。



      三、如何查看ARP缓存表


      ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp -a”就可以查看ARP缓存表中的内容了,如附图所示。

      用“arp -d”命令可以删除ARP表中某一行的内容;用“arp -s”可以手动在ARP表中指定IP地址与MAC地址的对应。          

     

     

    第二篇:关于ARP病毒

    摘自http://blog.sina.com.cn/lding 什么是ARP?
        ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,负责将某个IP地址解析成对应的MAC地址。

    什么是ARP欺骗?
        从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。
        第一种ARP欺骗的原理是——截获网关数据。它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。第二种ARP欺骗的原理是——伪造网关。它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。

         近期,一种新型的“ ARP 欺骗”木马病毒正在校园网中扩散,严重影响了校园网的正常运行。感染此木马的计算机试图通过“ ARP 欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。ARP欺骗木马的中毒现象表现为:使用校园网时会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。如果校园网是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp -d后,又可恢复上网。ARP欺骗木马十分猖狂,危害也特别大,各大学校园网、小区网、公司网和网吧等局域网都出现了不同程度的灾情,带来了网络大面积瘫痪的严重后果。ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。

      如何检查和处理“ ARP 欺骗”木马的方法
    1 .检查本机的“ ARP 欺骗”木马染毒进程

    同时按住键盘上的“ CTRL ”和“ ALT ”键再按“ DEL ”键,选择“任务管理器”,点选“进程”标签。察看其中是否有一个名为“ MIR0.dat ”的进程。如果有,则说明已经中毒。右键点击此进程后选择“结束进程”。参见右图。

    2 .检查网内感染“ ARP 欺骗”木马染毒的计算机
    在“开始” - “程序” - “附件”菜单下调出“命令提示符”。输入并执行以下命令:
    ipconfig
    记录网关 IP 地址,即“ Default Gateway ”对应的值,例如“ 59.66.36.1 ”。再输入并执行以下命令:
    arp –a
    在“ Internet Address ”下找到上步记录的网关 IP 地址,记录其对应的物理地址,即“ Physical Address ”值,例如“ 00-01-e8-1f-35-54 ”。在网络正常时这就是网关的正确物理地址,在网络受“ ARP 欺骗”木马影响而不正常时,它就是木马所在计算机的网卡物理地址。
    也可以扫描本子网内的全部 IP 地址,然后再查 ARP 表。如果有一个 IP 对应的物理地址与网关的相同,那么这个 IP 地址和物理地址就是中毒计算机的 IP 地址和网卡物理地址。

    3 .设置 ARP 表避免“ ARP 欺骗”木马影响的方法
    本方法可在一定程度上减轻中木马的其它计算机对本机的影响。用上边介绍的方法确定正确的网关 IP 地址和网关物理地址,然后在 “命令提示符”窗口中输入并执行以下命令:
    arp –s 网关 IP 网关物理地址

    4.态ARP绑定网关
      步骤一:
      在能正常上网时,进入MS-DOS窗口,输入命令:arp -a,查看网关的IP对应的正确MAC地址, 并将其记录下来。
      注意:如果已经不能上网,则先运行一次命令arp -d将arp缓存中的内容删空,计算机可暂时恢复上网(攻击如果不停止的话)。一旦能上网就立即将网络断掉(禁用网卡或拔掉网线),再运行arp -a。
      步骤二:
      如果计算机已经有网关的正确MAC地址,在不能上网只需手工将网关IP和正确的MAC地址绑定,即可确保计算机不再被欺骗攻击。
      要想手工绑定,可在MS-DOS窗口下运行以下命令:
      arp -s 网关IP 网关MAC
      例如:假设计算机所处网段的网关为192.168.1.1,本机地址为192.168.1.5,在计算机上运行arp -a后输出如下:
      Cocuments and Settings>arp -a
      Interface:192.168.1.5 --- 0x2
      Internet Address Physical Address Type
      192.168.1.1  00-01-02-03-04-05 dynamic
      其中,00-01-02-03-04-05就是网关192.168.1.1对应的MAC地址,类型是动态(dynamic)的,因此是可被改变的。
      被攻击后,再用该命令查看,就会发现该MAC已经被替换成攻击机器的MAC。如果希望能找出攻击机器,彻底根除攻击,可以在此时将该MAC记录下来,为以后查找该攻击的机器做准备。
      手工绑定的命令为:
      arp -s 192.168.1.1  00-01-02-03-04-05
      绑定完,可再用arp -a查看arp缓存:
      Cocuments and Settings>arp -a
      Interface: 192.168.1.5 --- 0x2
      Internet Address Physical Address Type
      192.168.1.1  00-01-02-03-04-05 static
      这时,类型变为静态(static),就不会再受攻击影响了。
      但是,需要说明的是,手工绑定在计算机关机重启后就会失效,需要再次重新绑定。所以,要彻底根除攻击,只有找出网段内被病毒感染的计算机,把病毒杀掉,才算是真正解决问题。

    5 .作批处理文件
      在客户端做对网关的arp绑定,具体操作步骤如下:
      步骤一:
      查找本网段的网关地址,比如192.168.1.1,以下以此网关为例。在正常上网时,“开始→运行→cmd→确定”,输入:arp -a,点回车,查看网关对应的Physical Address。
    比如:网关192.168.1.1 对应00-01-02-03-04-05。
      步骤二:
      编写一个批处理文件rarp.bat,内容如下:
      @echo off
      arp -d
      arp -s  192.168.1.1  00-01-02-03-04-05
      保存为:rarp.bat。
      步骤三:
      运行批处理文件将这个批处理文件拖到“Windows→开始→程序→启动”中,如果需要立即生效,请运行此文件。
      注意:以上配置需要在网络正常时进行

    6.使用安全工具软件
      及时下载Anti ARP Sniffer软件保护本地计算机正常运行。具体使用方法可以在网上搜索。
      如果已有病毒计算机的MAC地址,可使用NBTSCAN等软件找出网段内与该MAC地址对应的IP,即感染病毒的计算机的IP地址,然后报告单位的网络中心对其进行查封。
      或者利用单位提供的集中网络防病毒系统来统一查杀木马。另外还可以利用木马杀客等安全工具进行查杀。

  • 通过PING命令中的TTL来判断对方操作系统

    2007-06-02 15:40:48

    通过PING命令中的TTL来判断对方操作系统

    简单来说,TTL全程Time to Live,意思就是生存周期。
    首先要说明ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期,这句话不懂的先回去复习OSI7层协议去。

    第一个问题,为什么要有生存周期这个概念。

    很显然,一个package从一台机器到另一台机器中间需要经过很长的路径,显然这个路径不是单一的,是很复杂的,并且很可能存在环路。如果一个数据包在传输过程中进入了环路,如果不终止它的话,它会一直循环下去,如果很多个数据包都这样循环的话,那对于网络来说这就是灾难了。所以需要在包中设置这样一个值,包在每经过一个节点,将这个值减1,反复这样操作,最终可能造成2个结果:包在这个值还为正数的时候到达了目的地,或者是在经过一定数量的节点后,这个值减为了0。前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。
    其实TTL值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是包是否到达了目的地而不是经过了几个节点后到达。但是TTL值还是可以得到有意思的信息的。

    每个操作系统对TTL值得定义都不同,这个值甚至可以通过修改某些系统的网络参数来修改,例如Win2000默认为128,通过注册表也可以修改。而 Linux大多定义为64。不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。

    以我公司2台机器为例
    看如下命令
    D:\Documents and Settings\hx>ping 61.152.93.131

    Pinging 61.152.93.131 with 32 bytes of data:

    Reply from 61.152.93.131: bytes=32 time=21ms TTL=118
    Reply from 61.152.93.131: bytes=32 time=19ms TTL=118
    Reply from 61.152.93.131: bytes=32 time=18ms TTL=118
    Reply from 61.152.93.131: bytes=32 time=22ms TTL=118

    Ping statistics for 61.152.93.131:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss
    Approximate round trip times in milli-seconds:
    Minimum = 18ms, Maximum = 22ms, Average = 20ms

    D:\Documents and Settings\hx>ping 61.152.104.40

    Pinging 61.152.104.40 with 32 bytes of data:

    Reply from 61.152.104.40: bytes=32 time=28ms TTL=54
    Reply from 61.152.104.40: bytes=32 time=18ms TTL=54
    Reply from 61.152.104.40: bytes=32 time=18ms TTL=54
    Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

    Ping statistics for 61.152.104.40:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss
    Approximate round trip times in milli-seconds:
    Minimum = 13ms, Maximum = 28ms, Average = 19ms
    第一台TTL为118,则基本可以判断这是一台Windows机器,从我的机器到这台机器经过了10个节点,因为128-118=10。而第二台应该是台Linux,理由一样64-54=10。
    了解了上面的东西,可能有人会有一些疑问,例如以下:

    1,不是说包可能走很多路径吗,为什么我看到的4个包TTL都是一样的,没有出现不同?

    这是由于包经过的路径是经过了一些最优选择算法来定下来的,在网络拓扑稳定一段时间后,包的路由路径也会相对稳定在一个最短路径上。具体怎么算出来的要去研究路由算法了,不在讨论之列。

    2,对于上面例子第二台机器,为什么不认为它是经过了74个节点的Windows机器?因为128-74=54。

    对于这个问题,我们要引入另外一个很好的ICMP协议工具。不过首先要声明的是,一个包经过74个节点这个有些恐怖,这样的路径还是不用为好。

    要介绍的这个工具是tracert(*nix下为traceroute),让我们来看对上面的第二台机器用这个命令的结果
    D:\Documents and Settings\hx>tracert 61.152.104.40

    Tracing route to 61.152.104.40 over a maximum of 30 hops

    1 13 ms 16 ms 9 ms 10.120.32.1
    2 9 ms 9 ms 11 ms 219.233.244.105
    3 12 ms 10 ms 10 ms 219.233.238.173
    4 15 ms 15 ms 17 ms 219.233.238.13
    5 14 ms 19 ms 19 ms 202.96.222.73
    6 14 ms 17 ms 13 ms 202.96.222.121
    7 14 ms 15 ms 14 ms 61.152.81.86
    8 15 ms 14 ms 13 ms 61.152.87.162
    9 16 ms 16 ms 28 ms 61.152.99.26
    10 12 ms 13 ms 18 ms 61.152.99.94
    11 14 ms 18 ms 16 ms 61.152.104.40

    Trace complete.

    从这个命令的结果能够看到从我的机器到服务器所走的路由,确实是11个节点(上面说10个好像是我犯了忘了算0的错误了,应该是64-54+1,嘿嘿),而不是128的TTL经过了70多个节点。
    既然已经说到这里了,不妨顺便说说关于这两个ICMP命令的高级一点的东西。
    首先是ping命令,其实ping有这样一个参数,可以无视操作系统默认TTL值而使用自己定义的值来发送ICMP Request包。
    例如还是用那台Linux机器,用以下命令:
    D:\Documents and Settings\hx>ping 61.152.104.40 -i 11

    Pinging 61.152.104.40 with 32 bytes of data:

    Reply from 61.152.104.40: bytes=32 time=10ms TTL=54
    Reply from 61.152.104.40: bytes=32 time=13ms TTL=54
    Reply from 61.152.104.40: bytes=32 time=10ms TTL=54
    Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

    Ping statistics for 61.152.104.40:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 10ms, Maximum = 13ms, Average = 11ms

    D:\Documents and Settings\hx>
    这个命令我们定义了发包的TTL为11,而前面我们知道,我到这台服务器是要经过11个节点的,所以这个输出和以前没什么不同。现在再用这个试试看:
    D:\Documents and Settings\hx>ping 61.152.104.40 -i 10

    Pinging 61.152.104.40 with 32 bytes of data:

    Reply from 61.152.99.94: TTL expired in transit.
    Reply from 61.152.99.94: TTL expired in transit.
    Reply from 61.152.99.94: TTL expired in transit.
    Reply from 61.152.99.94: TTL expired in transit.

    Ping statistics for 61.152.104.40:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

    D:\Documents and Settings\hx>

    可以看到,结果不一样了,我定义了TTL为10来发包,结果是TTL expired in transit.就是说在到达服务器之前这个包的生命周期就结束了。注意看这句话前面的ip,这个ip恰好是我们前面tracert结果到服务器之前的最后1个ip,包的TTL就是在这里减少到0了,根据我们前面的讨论,当TTL减为0时设备会丢弃包并发送一个TTL过期的ICMP反馈给源地址,这里的结果就是最好的证明。
    通过这里再次又证明了从我机器到服务器是经过了11个节点而不是70多个,呵呵。
    最后再巩固一下知识,有人可能觉得tracer这个命令很神奇,可以发现一个包所经过的路由路径。其实这个命令的原理就在我们上面的讨论中。

    想象一下,如果我给目的服务器发送一个TTL为1的包,结果会怎样?
    根据前面的讨论,在包港出发的第一个节点,TTL就会减少为0,这时这个节点就会回应TTL失效的反馈,这个回应包含了设备本身的ip地址,这样我们就得到了路由路径的第一个节点的地址。
    因此,我们继续发送TTL=2的包,也就受到第二个节点的TTL失效回应

    依次类推,我们一个一个的发现,当最终返回的结果不是TTL失效而是ICMP Response的时候,我们的tracert也就结束了,就是这么简单。


    顺便补一句ping命令还有个-n的参数指定要发包的数量,指定了这个数字就会按照你的要求来发包了而不是默认的4个包。如果使用-t参数的话,命令会一直发包直到你强行中止它。


    WINDOWS NT/2000   TTL:128
    WINDOWS 95/98     TTL:32
    UNIX              TTL:255
    LINUX             TTL:64

    在windows下面可以通过修改注册表的方式修改TTL的默认值

    位于:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
    找到defaultttl 修改为10进制的(x)即可.

  • 三层交换机的工作原理

    2007-06-02 15:37:50

    三层交换机的工作原理

    这天晚上,令狐冲心灰意懒,借酒消愁,这时,一个黑影出现在他的面前,原来是一个道风仙骨的老人,正是风清扬。风清扬听了令狐冲的疑惑,说:路由器接口不够,把路由器做在lanswitch内部不就可以了;交换速度慢,是因为路由器查找的是网段路由,而lanswitch直接查mac对应出端口,当然速度快。为什么不能直接根据ip地址查到出端口呢?令狐冲一听,大为仰慕,但还是不明白,ip地址那么多,而且经常变化,如何能够直接查到出端口呢?风清扬说:

    "你先坐下,让我来问你,华山派有多少弟子?"
    "一万六千左右。"
    "你全知道他们住哪里吗?"
    "不知道。"
    "岳不群要你找一个不知道住哪里的人,如何去找?"
    "查华山派电话号码查询系统,找到他的地址,然后去找他。"
    "如果你回来后再让你找这个人,又如何去找?"
    "如何.... ,查华山派电话号码查询系统,找到他的地址,然后去找他。"
    "你不知道到这个人的地址吗?"
    "知道,但师父说,华山派的地址那么多,而且经常变化,不用知道地址。"
    "岳不群这小子,把徒弟都教成木头了!我问你,你自己认为应该如何找?"
    "直接去找!"
    "好!你这人还不算太苯。那你知道了一个人的地址后,是不是永远记住了?"
    "有的人记住了。其它的都忘了。"
    "为什么忘了?"
    "因为我记不了那么多人,而且一段时间没有去找他。"
    "华山派电话号码查询系统里的地址是如何获得的?"
    "我在空旷处大喊一声他的名字,他听到后就会来找我,告诉我他的地址。"

    风清扬又问了大把类似脑筋急转弯的问题,然后风清扬说:"现在你明白根据ip地址直接查出端口的道理了吗?等到你明白这个道理,你自然会做出三层交换机来",令狐冲仔细回忆了今天的话,终于明白了和二层转发由mac地址对应到出端口的道理一样,三层转发也可以直接由ip地址对应到出端口,ip地址的路由可以通过arp来学习,同样需要老化。这样,vlan间转发除第一个包需要通过arp获得主机路由外,其它的报文直接根据ip地址就能够查找到出端口,转发速度远远高于路由器转发的速度。抬头看时,风清扬已经走了。

Open Toolbar