iptables的一个小文档

iptables:
    iptables五表五链
        felter表
            INPUT
            FORWARD
            OUTPUT
        nat表
            PREROUTING
            OUTPUT
            POSTROUTING
        mangle表
            PREROUTING
            INPUT
            FORWARD
            OUTPUT
            POSTROUTING
        raw表
            PREROUTING
            OUTPUT
        security表
            INPUT
            OUTPUT
            FOEWARD
iptables的通用格式:
    iptables [-t] TABLE [OPTIONS] CHAIN [NUMBER] RULE_match [-j] [target]
        -t:表示type,表的种类
        TABLE:意为表
        CHAIN:意为链
        NUMBER:表示规则条目编号
        RULE_matche:表示匹配的通信包
            -d:表示目录地址
            -s:表示源地址
            -p:表示协议
            -m:要执行的扩展模块,各模块有其独特的选项
        -j:将要执行动作
        target:表示要执行的动作
            ACCEPT:允许
            DROP:拒绝
            RETURN:不再匹配些规则
            REJECT:拒绝,并回复特定信息

部分扩展模块介绍:
    tcp:定义协议的模块
        –sport:定义源端口,可以定义连续的端口,如22:80
        –dport:目标端口,性能同–sport
        –tcp-flags:tcp标记位
            –tcp-flags SYN,ACK,FIN,RST, SYN:这个表示匹配SYN,ACK,FIN,RST中以SYN为1,ACK,FIN,RST为0,其余的忽略
        –syn:是–tcp-flags的一个扩展,就是匹配三次握手的第一次
    connlimit:允许的最大连接数
        [!] –connlimit-above NUMBER:最大允许连接的个数,可取反
    iprange:定义一个ip范围,可用作源IP与目标IP的范围
        [!] –src-range:源地址范围
        [!] –dst-range:目标地址范围
    limit:这个模块用于定义连接频率与首次连接最大连接个数(令牌筒)
        –limit RATE:定义其连接速率
        –limit-burst NUM:定义首次连接次个数
    state:这个模块是根拒据状态来判定数据包
        [!] –state STATE:对状态流量进行操作
        STATE:
            ESTABLISHED:已连接
            NEW:新建立连接
            RELATED:关联的连接,追踪连接
            INVALID:不能识别的
            UNTRACKED:未追踪的连接
    string:这个模块是对内容中的字符串进行匹配
        –algo {bm|kmp}:匹配字符串的算法
        [!] –string STRING:所要匹配的字符串
    time:时间匹配数据包
        –datestart:开始日期时间
        –datestop:结束日期时间
        –timestart:开始时间
        –timestop:结束时间
        [!] –monthdays:一个有的那一日
        [!] weekdays:一周的那一天
    multiport:定义多个不连续的端口的模块
        [!] –sport:源端口21,22,80:200
        [!] –dport:目标端口
部分扩展动作介绍:
    DNAT:目标地址转换
        –to-destination:转到那一个地址,可以跟端口,也可以跟多个连续的端口
    SNAT:源地址转换
        –to-source:转到那一个地址,可以跟一个商品,也可以跟多个端口
    LOG:是一个开启日志的动作
        –log-level NUM:开启日志的日志级别
        –log-prefix:日志的前缀
    MASQUERADE:IP为动态IP,连接猫的时候可以用户这个动作
        –to-ports:转化的商品有那些,如80-100
    REDIRECT:端口重定向
        –to-ports 9090:将指定商品生定向为9090
        
iptables指令:
    -N:创建一条新链
    -X:删除一条新链
    -Z:将通过规则的包与字节数置0
    -S:打印现在使用的规则
    -F:清除所有现有正在使用的规则
    -L:打印现在使用的规则列表
        -n:对协议号不进行反解
        -v:显示详细信息
        -vv:显示更加详细的信息
        –line-numbers:显示规则条目的序号
    -R:替换一条规则
    -A:追加一条规则
    -I:插入一条规则
    -P:更改默认策略

iptables示例:
    filter表:
           INPUT与OUTPUT功能:
            对172.18.0.0/16网段地址放行22号端口
                iptables     -A     INPUT     -s     172.18.0.0/16     -d     172.18.0.31     -p     tcp     –dport     22     -j     ACCEPT
            写一条默认策略,使用拒绝所有
                iptables     -A     INPUT     -j     DROP
                iptables     -P     INPUT     DROP
            现在有这么一种情况,一个网段,但是这个网段是无类网络,IP范围为172.18.0.32到172.18.0.63,现在要禁止这个网段访问本机的22号端口
                iptables     -I     INPUT     -m     iprange     –src-range     172.18.0.32-172.18.0.63     -d     172.18.254.31     -p     tcp     –dport     22     -j     DROP
            为了使服务器的web不宕机,我们现在要限制访问最大访问量,还有限制访问频率,而公司的web的首页是https,由于运维人员的技术问题,有个别页面是http页面
                iptalbes     -I     INPUT     -d     172.18.132.2     -p     tcp     -m     connlimit     –connlimit-above-above     2000     -m     limit     –limit     300/minute     –limit-burst     1000     -m     multiport     –dport     80,443     -j     ACCEPT
            上面这么多都是入口的filter,那么我该怎么写出口的策略呢,这个出口的策略能不能写的少一点的壁呢,
                iptables     -A     OUTPUT     -s     172.18.132.2     -p     tcp     -m     multiport     –sport     22,80,445     -m     state     –state     ESTABLISHED     -j     ACCEPT
            昨天boss开会说,公司应该有一个文件服务器,供员工去下载一些资料或者程序,所以就布设了一个ftp服务器,可是这个ftp服务有点另类,这个数据商品可能是随机的,怎么配置入口过滤规则呢
                iptables     -I     INPUT     -d     172.18.0.1     -m     state     –state     ESTABLISHED,RELATED     -j     ACCEPT
            昨天看新闻说,国家正在严打网上出现的有关于H7N9字样的访问,老板发话说,我们的网站要禁止访问含有这个字样的网页
                iptables     -I     INPUT     -d     172.18.0.1     -t     tcp     –dport     80     -m     string     –algo     bm     –string     “H7N9”     -j     DORP
            昨天boss看到隔壁工位小王上班期间在下载电影,导致办公网络这慢,现在boss说在上班时间不允许下载ftp上的电影
                iptables     -I     INPUT     -d     172.18.0.1     -m     time     –timestart     9:00     –timestop     6:00     -p     tcp     –dport     21     -j     DROP
    
        自定义一条链,配置samba的过滤规则
            iptables     -t     filter     -N     samba_rule        //新建一条自定义链
            iptables     -A     samba_rule     -d     172.18.0.1     -p     tcp     -m     multiport     –dport     139,445     -j     ACCEPT              //TCP的访问规则
            iptables     -A     samba_rule     -d     172.18.0.1     -p     udp     -m     multiport     –dport     137,138     -j     ACCEPT              //UDP的访问规则 iptables     -I     INPUT     2     -d     172.18.0.1     -j     samba_rule             //调用自定义的链

        FORWARD功能:
            由于FORWARD只有转发过滤功能,如果要对一个转发的数据包进行操作,那么就需要定怲条规则
            现在有一个中间转发服务器,现在要对这个服务器的数据包进行控制,要求可出不可进,内网IP为172.18.0.0/16
                iptables     -A     FORWARD     -s     172.18.0.0/16     -j     ACCEPT
                iptables     -A      FORWARD     -d     172.18.0.0/16     -j     DROP
    
nat表:网络地址转换,也有人说是私网IP访问公网IP的一种机制
    源地址转换:
        一个网络172.18.0.0/16需要访问公网,,公司买了一个公网IP为201.132.202.13,需要写一条转换语句,使内部主机可以访问公网
            iptables -t nat -A PREROUTING -s 172.18.0.0/16 -j SNAT –to-source 201.132.202.13
        现在开发部门已经做好了web,需要发布在主机172.18.31.12上的网站
            iptables -t nat -A POSTROUTING -d 172.18.31.12 -j DNAT –to-destination 201.132.202.13
        由于公司资金出现了问题,公网IP也没有了,只剩下一个猫了,但公司这么多人,网还是需要上的,该怎么写这条规则呢
            iptables -t nat -A PREROUTING -s 172.18.0.0 -j MASQUERADE

原创文章,作者:gaomei,如若转载,请注明出处:http://www.178linux.com/74455

(0)
gaomeigaomei
上一篇 2017-04-30
下一篇 2017-04-30

相关推荐

  • AIX下NFS共享导致命令行输入卡住

     1、事件描述:之前公司测试某厂商存储一体机的NFS共享功能,将该NFS目录共享给AIX主机使用(用于备份对应对应的数据库,因为数据库版本太老,Oracle8i的,不支持存储厂商的备份代理),测试完成后,厂商将设备直接关机(这时候在AIX上挂载的NFS目录没有进行卸载)。然后,当我们登陆到AIX服务器上的时候,发现每次敲入“df -g”或者“ls”…

    Linux干货 2016-07-07
  • 上海2016全球运维大会 美女辣妹吸引眼球!

    国内第一个运维行业大会 GOPS 2016全球运维大会(上海站)在2016年9月23-24日在上海雅悦新天地大酒店举办,面向IT及传统行业、广大运维技术人员,传播先进技术思想和理念,分享业内最佳实践。 参会两日,虽然大会主角是运维技术交流学习,不过却意料之外的邂逅了另一道靓丽的风景,瞬间燃了… 在会场,站立着一群高挑美女,我的…

    2016-12-05
  • inode的理解

    一、inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的&q…

    Linux干货 2017-01-16
  • 第五周着重练习扩展正则元字符及find命令

    1、显示当前系统上root、fedora或user1用户的默认shell; grep -E "^(root|hadoop|user1)\>" /etc/passwd |cut -d":" -f1,7 2、找出/etc/rc.d/init.d/functi…

    Linux干货 2016-12-13
  • 文本三剑客之AWK

    文本三剑客—-awk(3) awk简介 awk是一个强大的文本分析工具,与grep(查找)、sed(编辑)一并称为“文本处理三剑客”。awk最强大的功能是对数据分析并生成报告。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk是AWK的GNU版本。 awk其名称得自于它的创始人 Alfred Aho 、P…

    2017-07-17
  • 计算机的组成及功能

    计算机的组成有中央处理器(包含逻辑运算器和控制器)、内存、输入设备、输出设备    逻辑运算器主要负责程序的运算和逻辑的判断、控制器是协调各组件与各单元的工作。 内存是与CPU进行沟通的桥梁,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。 输入设备是用户和计算机系统之间进行信息交换的主要装置之一。 输出设备是外…

    Linux干货 2017-07-02