转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
linux常见命令         ★★★★

linux常见命令

作者:闵涛 文章来源:闵涛的学习笔记 点击数:16266 更新时间:2009/4/22 23:08:24
istics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.2 ms # iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP # ping -c 1 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes --- 127.0.0.1 ping statistics --- 1 packets transmitted, 0 packets received, 100% packet loss 这里,第一个ping是成功的(''''-c 1''''告诉ping只发送一个包) 然后我们可以向''''INPUT''''链中添加(-A)一个规则,制定来自127.0.0.1(''''-s 127.0.0.1'''')的ICMP协议(''''-p icmp'''')包都将被丢弃(''''-j DROP'''')。 然后我们测试我们的规则,用第二个ping。在程序放弃等待永远不可能的响应之前,会暂停一下。 我们可以用两种办法中的任一种删除规则。首先,因为知道这是INPUT链中唯一的规则,我们用编号删除: # iptables -D INPUT 1 删除INPUT链中的编号为1的规则 第二种办法是 -A 命令的映射,不过用-D替换-A。当你的链中规则很复杂,而你不想计算它们的编号的时候这就十分有用了。这样的话,我们可以使用: # iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP -D的语法必须和-A(或者-I或者-R)一样精确。如果链中有多个相同的规则,只会删除第一个。
7.3 过滤规格 我们已经看了,用''''-p''''指定协议,用''''-s''''指定源地址,不过还有其他选项我们可以用来指定包的特征。下面是一个详细的手册。
7.3.1 指定源和目的IP地址 源(''''-s'''',''''--source''''或''''--src'''')和目的(''''-d'''',''''--destination''''或''''--dst'''')IP地址可以用四种办法指定。最常用的方法是使用全名,就像''''localhost''''或者''''www.linuxhq.com''''。第二种办法是指定IP地址,如''''127.0.0.1''''。 第三和第四种办法允许指定一组IP地址,就像''''199.95.207.0/24''''或者''''199.95.207.0/255.255.255.0''''。这指定了从199.95.207.0到199.95.207.255范围内的所有IP地址。''''/''''后面的数字说明哪部分IP地址是有效的。''''32''''或者''''255.255.255.255‘为默认的(匹配整个IP地址)。用''''/0''''来指定任何IP地址,像这样: # ''''-s 0/0''''在这里是多余的 # iptables -A INPUT -s 0/0 -j DROP 这很少用到,这和上面出现过的不指定''''-s''''结果完全一样。
7.3.2 反向指定 很多标记,包括''''-s''''(或''''--source'''')和''''-d''''(''''--destination'''')标记可以在前面加上''''!''''标志(读作''''not''''),来匹配所有和给出的 NOT 的地址。例如, ''''-s ! localhost''''匹配所有不是来自本机的包。
7.3.3 协议指定 可以用''''-p''''(或''''--protocol'''')指定协议。协议可以是数字(如果你知道IP的协议数值)或者像''''TCP''''、''''UDP''''或者''''ICMP''''这类的名称。大小写无所谓,所以''''tcp''''和''''TCP''''一样。 协议名称前可加上''''!'''',以反向解释它,例如''''-p ! TCP''''将匹配所有不是TCP的包。
7.3.4 接口指定 ''''-i''''(或''''--in-interface'''')和''''-o''''(或''''--out-interface'''')选项指定匹配的接口名。接口可以是包进入的(''''-i'''')或者送出(''''-o'''')的物理设备。你可以用ifconfig命令列出当前''''up''''的接口。(也就是说正在工作的)。 通过INPUT链的包不会有送出接口,所以在这个链中''''-o''''永远不会匹配。同样,通过OUTPUT链的包也没有进入接口,这个链中的''''-i''''也不会被匹配。 只有通过FORWARD链的包才有进入和送出两个接口。 可以指定一个当前不存在的接口。在这个接口可用之前,规则不能匹配任何东西。这对于拨号PPP连接及类似的非常有用(通常是ppp0接口)。 一个特殊情况,接口名后面是一个''''+'''',那就会匹配以这个字符串开头的所有接口(无论当前是否存在)。例如,指定一个匹配所有ppp接口的规则,要用到-i ppp+选项。 接口名也可以在前面插入 ''''!'''',来匹配所有与指定接口不同的包,如-i ! ppp+。
7.3.5 分片指定 译者:为帮助大家理解,此处附上IP数据报的格式,摘自《Internetworking with TCP/IP》
0 4 8 16 19 24 31 版本号 首部长度 服务类型 总长度 标志符 标志 分片偏移量 寿命 协议 首部效验和 源IP地址 目的IP地址 IP选项 填充 数据 ……
有时一个包太大,不可能适合所有线路。这样的话,包会被分成片,然后当作多个包发送。最终重组这些分片来重建整个包。 分片的问题是,被检查的初始片含有整个头部字段(IP+TCP,UDP和ICMP),但随后的包只有一部分头(没有附加协议字段的IP),因此,检查后面的分片的头部(就像有TCP、UDP和ICMP一样)是不可能的。 如果你在做NAT或连接追踪,那么所有分片在包过滤代码处理以前都会合并,所以你不需要为分片担心。 还请注意,到filter表中的INPUT链(或者任何由NF_IP_LOCAL_IN钩子程序钩入的表)的包实际上由核心IP栈片重组后到达。 否则,理解分片是如何被过滤规则处理的就非常重要了。任何过滤规则要求我们没有的信息,将被认为不匹配。这意味着(分片的)第一片像普通的包一样被处理。第二及后面的片则不会。因此,规则 -p TCP --sport www(指定源端口为''''www'''')永远不会匹配一个分片(的包)(除了第一片),相反的规则 -p TCP --sport ! www也不会。 无论如何,你可以用''''-f''''(或''''--fragment'''')标记指定专门处理第二及以后的分片的规则。当然也可以指定一个规则,让它不去匹配第二及以后的分片,在''''-f''''前加上''''!''''。 通常,让第二及以后的分片通过被认为是安全的,因为如果过滤处理了第一片,那么就无法在目标主机上进行重组。不过,已知的Bug是发送分片可能会轻易的让主机崩溃。你自己看着办吧。 网络高手注意:当这类检查进行时,畸形的包(防火墙读取的ICMP代码和类型过短的TCP、UDP和ICMP包)都将被丢弃。所以TCP分片从位置8开始。(译者:什么意思?大概是指IP包中的首部字段位置) 例如,下面的规则会丢弃任何发往192.168.1.1的分片。 # iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
7.3.6 iptables扩展:新的匹配 iptables是可扩展的,也就是包括内核和iptables工具都可以扩充新的特性。 下列部分扩展是标准的,其他的则是派生的。其他人可以做出扩展并发布给合适的人。 内核扩展一般位于内核模块子目录,诸如/lib/modules/2.4.0-test10/kernel/net/ipv4/netfilter。如果你使用了CONFIG_KMOD设置来编译内核,那么它们要求被装载,所以你不需要手工插入。 iptables程序扩展通常是位于/usr/local/lib/iptables/下的共享库,当然也可能在/lib/iptables或者/usr/lib/iptables,具体的要根据不同的发行版本来确定。 扩展有两种:新的目标,新的匹配(我们马上会谈到新的目标)。有些协议自动给出新的测试:如下所示,现有的包括TCP、UDP和ICMP。 这样,你可以在命令行中在 ''''-p''''选项后指定新的测试,就可以载入扩展(模块)了。当允许扩展时,可以用''''-m''''选项装入扩展。 在选项后面(''''-p'''',''''-j''''或者''''-m'''')加上 ''''-h''''或''''--help''''来获取扩展的帮助。 # iptables -p tcp --help
7.3.6.1. TCP 扩展 如果指定了''''-p tcp'''',那么TCP扩展将自动加载,并提供下列选项(不匹配分片)。 --tcp-flags 可附加一个''''!''''。有两个标志字串可以通过TCP标记来过滤。第一个标志字符串是mask:你想要测验的标志列表。第二个指出哪些将要被设置。例如: # iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP 意思是所有标志都将被测试(''''ALL''''和''''SYN, ACK,FIN,RST,URG,PSH''''同义),不过只设置SYN和ACK。当然也可以用''''NONE''''表示无标志。 --syn 前面的''''!''''是可选的,是''''--tcp-flags SYN, RST, ACK, SYN''''的缩写 --source-port 后面可以跟一个''''!'''',可以是单个TCP端口,或一段端口。可以是/etc/services中的端口名或者数字。端口范围格式是低端口名 : 高端口名,或者(指定大于或等于给出的端口)是端口名 + :,或者(指定小于或等于给出的端口)是: + 端口名。 --sport 就是 ''''--source-port''''。 --destination-port --dport 和上面类似,不过是指定匹配的目的端口(范围)。 --tcp-option 可以跟一个''''!''''和一个数字,匹配的是TCP选项和数字相等的包。如果试图用 这个TCP选项匹配一个没有完整的TCP包头的包,那么这个包会被自动丢弃。
7.3.6.1.1. TCP标志的解释 有时只允许单向的TCP连接会很有用。例如,你可能会允许连接到外部WWW服务器,但不会允许来自那个服务器的连接。 最简单的举动可能是阻止来自那个服务器的包,可惜,TCP连接需要包双向传送(才能正常工作)。 解决办法是,只阻挡那些用来请求连接的包。这些包称为SYN包(OK,从技术上说,它们的SYN标志被设置,而没有设置RST和ACK标志,不过我们简单的称为SYN包)。通过只阻止这种包,我们就可以阻止来自那些地方的连接企图。 ''''--syn''''标志是这样用的:只对指定了TCP协议的规则有效。例如,指定来自192.168.1.1的连接请求。 -p TCP -s 192.168.1.1 --syn 当然也可以在前面加上''''!'''',意即所有不是初始连接的包。
7.3.6.2 UDP 扩展 这些扩展在指定''''-p udp''''时自动加载。可以提供 ''''--source-port''''、''''--sport''''、''''--destination-port''''和''''--dport''''等和TCP类似的选项。
7.3.6.3 ICMP扩展 这些扩展在指定''''-p icmp''''时自动加载。只提供一个新的选项: --icmp-type 可以跟''''!'''',icmp类型名称(如''''host-unreachable'''')或者数值(如''''3''''),或者数值类型/代码(如''''3/3'''')。用''''-p icmp --help''''可以列出可用的icmp类型名。
7.3.6.4 其他匹配的扩展 这些netfilter包中的其他扩展尚属于演示阶段,(如果安装了的话)可以用''''-m''''来启用。 mac --mac-source 可以跟一个''''!'''',后面是以太网地址,用冒号分隔的16近制表示,如`--mac-source 00:60:08:91:CC:B7''''。 limit 此模块必须明确指定''''-m limit''''或''''--match limit''''。用来限制匹配的速率。就像抑制记录信息。只会匹配给定的数字/每秒(默认是每小时3个匹配,和5个触发)。可以有两个参数: --limit 后面跟数字:指定每秒钟允许的匹配最大平均数。这个数字可以指定 明确的单位,使用''''/second''''、`/minute''''、`/hour'''' 或者 `/day'''',或者 只写一部分(如''''5/second''''和''''5/s''''一样)。 --limit-burst 后面跟一个数字,指明在上面的limit起作用前最大的触发值。 这个匹配(项)通常和LOG目标结合起来使用,以对速率限制进行记录。 为了理解它是如何工作的,我们来看看下面这条规则,它使用默认限制参数 记录包。 # iptables -A FORWARD -m limit -j LOG 当这条规则第一次启用时,包开始被记录。实际上,由于默认触发是5,前五个包会被记录。然后,每隔20分钟再记录一次包,无论这期间有多少包到达。而且,每个不匹配包的20分钟间隔里,会恢复一个触发(值)。如果100分钟都没有包到达这个规则,那么所有触发都会恢复,回到起点。 提示:你目前不能以大于59小时的时间来创建这种规则,所以如果你设置一个平均率为一天,那么你的触发率必须小于3。 你也可以将此模块用于避免使用快速响应速率的各类拒绝服务攻击(DoS,Denial of Server)。 (译者:以下是较著名的攻击) Syn-flood protection: # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT   Furtive port scanner: # iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT   Ping of death: # iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT 这个模块工作原理类似于“节流阀”,以下是图示。

                 rate (pkt/s)
                       ^        .---.
                       |       / DoS \
                       |      /       \
          Edge of DoS -|.....:.........\....................... DoS的边界 = 
           = (limit *  |    /:          \
          limit-burst) |   / :           \         .-.
                       |  /  :            \       /   \
                       | /   :             \     /     \
          End of DoS  -|/....:..............:.../.......\..../.  DoS结束
           = limit     |     :              :`-''''         `--''''
          -------------+-----+--------------+------------------> time (s)
             LOGIC =>  Match | Didn''''t Match |    Match

我们匹配由五个包触发的每秒一个包,不过每秒钟第四个包才开始进入(这个规则),进行三秒钟,然后重新开始。
                  <--Flood 1-->           <---Flood 2--->

          Total  ^                   Line  __--      YNNN
          Packets|               Rate  __--      YNNN
                 |            mum  __--      YNNN
              10 |        Maxi __--         Y
                 |         __--            Y
                 |     __--               Y
                 | __--    YNNN
                 |-    YNNN
               5 |    Y
                 |   Y                                Key:  Y -> Matched Rule
                 |  Y                                       N -> Didn''''t Match Rule
                 | Y
                 |Y
               0 +-------------------------------------------------->  Time (seconds)
                  0   1   2   3   4   5   6   7   8   9  10  11  12

你可以看见,前五个包是允许超过一个包/每秒(这个速率)的,然后就开始限制。 如果有一个暂停,那么另一个触发也是允许的,但不能超过规则设置的最大速率。 owner --uid-owner userid 根据给出的有效的(数值)user id来匹配包的创建进程。 --gid-owner groupid 根据给出的有效的(数值)group id 来匹配包的创建进程。 --pid-owner processid 根据给出的process id 来匹配包的创建进程。 --sid-owner sessionid 根据给出的 session group 来匹配包的创建进程。 unclean 这是试验性模块,必须明确指定''''-m unclean''''或者''''--match unclean''''。 它对包进行各种随机判断。此模块还未通过审核,所以不要用在安全设施上。 (可能造成更糟糕的结果,它自己可能还有Bug)。没有提供选项。
7.3.6.5 状态匹配 最有用的匹配标准是''''state''''扩展。它负责解释''''ip_conntrack''''模块的connection-tracking分析。 这是推荐使用的(好东东)。 通过指定''''-m state''''来允许附加的''''--state''''选项,匹配用逗号分割的状态列表(''''!''''标志表明不符合那些状态(的状态))。 NEW 由新连接创建的包 ESTABLISHED 属于已存在连接的包(也就是说,响应的包) RELATED 和一个已存在连接有关,但不是它的一部分的包。如ICMP错误,或者(已加载FTP模块)一个建立FTP数据连接的包。 INVALID 由于以下原因而不能被识别的包:包括内存不足和不是相应当前任何连接的ICMP错误。通常这些包会被丢弃。 这个强大的匹配扩展的一个例子: # iptables -A FORWARD -i ppp0 -m state ! --state NEW -j DROP
7.4 目标规格 现在,我们知道了如何对包进行测试,但是我们还需要告诉那些匹配的包应该如何做。这被称作规则的目标。 有两个很简单的内建目标:DROP和ACCEPT。我们已经看过了。如果包匹配的规则,其目标是这二者中的一个,那么不再考虑更多的规则了:包的命运已经决定。 除此之外有两种目标:扩展的和用户定义的链。
7.4.1 用户定义链 iptables一个强大的特点是由ipchains继承来的可以让用户创建新的链,附加在三个内建的链上(INPUT、FORWARD和OUTPUT)。按照惯例,用户定义链使用小写以区分他们。(我们会在“Operations on an Entire Chains”中描述如何创建新的用户定义链)。 当包匹配的链的目标是一个用户定义链时,包就转移到用户定义链中的规则。如果 没有决定包的命运,那么包在(用户定义链)中的移动就结束了,并回到当前链的下一个规则。 搞搞ASCII艺术吧。考虑两个(笨蛋)链:INPUT(内建的)和test(用户定义的)。
                `INPUT''''                         `test''''
               ----------------------------    ----------------------------
               | Rule1: -p ICMP -j DROP   |    | Rule1: -s 192.168.1.1    |
               |--------------------------|    |--------------------------|
               | Rule2: -p TCP -j test    |    | Rule2: -d 192.168.1.1

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]  ...  下一页 >> 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台