精华内容
下载资源
问答
  • iptables策略详解

    千次阅读 2018-11-07 10:41:03
    iptables可用操作 (1)-L : 显示所选链接的所有策略 : # iptables -L -n 查看iptables 策略   (2)-A : 在所选的链最尾部... (3)-D : 从所选链中删除策略,可以通过将策略的内容完整的写出来或指定在...

     

    iptables可用操作
    (1)-L : 显示所选链接的所有策略 : # iptables -L -n 查看iptables 策略
     
    (2)-A : 在所选的链最尾部添加一条新的策略:# iptables -A INPUT -s 192.168.0.1 -j DROP
     
    (3)-D : 从所选链中删除策略,可以通过将策略的内容完整的写出来或指定在所愿链中的序号
            # iptables -D INPUT 1  
     
    (4)-R:替换所选中的链里指定的策略:# iptables -R INPUT 1 -s 192.168.30.0 -j DROP(替换第一条)
     
    (5)-I: 从所选的链中指定策略前面插入一条新的策略 # iptables -I INPUT 2 -s 192.168.10.2 -j DROP
     
    (6)-F:清空所选链的策略,如果没有指定链,则清空指定表的所有链:# iptables -F INPUT (清空INPUT链)
     
    (7)-Z:将所选链的所有计数器归零,如果没有指定链,则将指定表所有链中计数器归零:# iptables -Z INPUT
     
    (8)-N:根据用户指定的名字建立新的链,在定义新链时所使用的名字不能和已有的链同名,数据包如果在自定义链里被匹配了就会被target/jump执行,如果没有被匹配则数据包将被送回调用自定义链的父链匹配
            # iptables -N isok
            # iptables -A isok -p tcp -s 192.168.0.168 -j DROP
            # iptables -L -n
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination          
    DROP       tcp  --  172.28.10.0          0.0.0.0/0           tcp dpt:80  
     
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination          
     
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination          
     
    Chain isok (0 references)
    target     prot opt source               destination          
    DROP       tcp  --  192.168.0.168        0.0.0.0/0
     
    (9)-X:删除指定的用户自定义的链。在删除这个链必须没有被引用,如果没有指定链名称,则删除所有自定义的链,如果没有指定表及链则删除默认表中左右自定义的链
            # iptables -X isok            ( iptables -X)
             
    (10)-E:对自定义的链进行重命名,该命令仅仅是改变自定义链的名字,对这个结构、工作没有任何影响
            # iptables -E isok isallow
             
    (11)-P:为链设置默认的策略(如ACCEPT、DROP),所有不符合策略的数据包都被强制使用这个策略
            # iptables -P INPUT DROP
             
    (12)--line-number:在显示策略时,输入序号,该参数只能和-L配合使用
        # iptables -L --line-number
         
    (13)-s:匹配指定的IP源地址匹配数据包,指定网段为:# iptables -A INPUT -s 192.168.1.0/24 -j DROP
     
    (14)-d:匹配指定的IP目标地址匹配数据包,指定网段:# iptables -A INPUT -d 192.168.1.0/24 -j DROP
     
    (15)-i:<网络接口>:以数据包进入本地所使用的网络接口来匹配数据包,这个匹配操作只能用于
            INPUT、FORWARD和PREROUTING这3个链
            1、指定时使用网络接口名称,比如eth0、ppp0
            2、使用加号作为通配符时,如果直接用一个加号,比如iptables -A INPUT -i +表示匹配所有的包,而不考虑使用哪个接口,这也是用-i参数的默认行为。通配符还可以使放在某一类接口的后面,
                比如eth+表示所有的Ethernet接口
            3、在接口前加感叹号表示取反(注意空格),比如“-i!eth0”意思是匹配来自除eth0外的所有包
            4、lo表示本地回环地址
            # iptables -A INPUT -i eth0 -s 192.168.0.99 -j DROP(阻止从eth0进入的源IP地址为192.168.0.99的所有通信)
             
    (16)-o:<网络接口>:以数据包离开本地所使用的网络接口来匹配数据包,该参数配置方法与-i参数相同
            # iptables -A OUTPUT -o eth0 -s 192.168.0.99 -j DROP
         
    (17)--sport<端口>:基于数据包的源端口来匹配数据包:
                        1、该参数必须与-p参数配合使用
                        2、不指定--sport参数时,表示所有端口
                        3、可以使用连续的端口,比如“--sport 1000:1024"表示从1000到1024的所有端口
                            (包括1000、1024),”--sport 1024:1000“和”--sport 1000:1024“的效果相同
                        4、当省略第一个冒号时,默认从端口0开始,比如”--sport:1000"表示从0到1000的所有端口
                        5、当省略第二个冒号时,默认是65535,比如“--sport 1000:"表示从1000到65535的所有端口
                        6、在端口号前加感叹号表示取反(在感叹号与端口号之间必须有空格),比如”--sport!1000" 表示除1000号外的所有端口,“--sport ! 1000:1024"表示从1000到1024的所哟偶端口(包括1000、1024)之外的所有端口
                        # iptables -A INPUT -p tcp --sport 1000 -j DROP(阻止源端口为1000的所有tcp通信)
                        # iptables -A INPUT -p tcp --sport 1000:1024 -j DROP(阻止源端口大于等于1000且小于等于1024的所有tcp通信)
                         
    (18)--dport:基于数据包的目的端口来匹配包,该参数配置方法与--sport参数相同
                # iptables -A INPUT -p tcp --dport 1000 -j DROP (阻止目标端口为1000的所有tcp通信)
                # iptables -A INPUT -p tcp --dport 1000:1024 -j DROP (阻止目标端口大于等于1000且小于等于1024的所有tcp通信)
                         
    (19)-m multiport --sport<端口>:源端口多端口匹配,最多可以使用15个端口,使用逗号分隔,该参数必须与-p参数配合使用
            # iptables -A INPUT -p tcp -m multiport --sport 1000,1024,1025 -j DROP (阻止源端口为1000,1024,1025的所有tcp通信)
             
    (20)-m multiport --dport<端口>:目的端口多端口匹配,最多可以使用15个端口,以逗号隔开,该参数必须与-p参数配合使用
            # iptables -A INPUT -p tcp -m multiport --dport 1000,1024 -j DROP(阻止目的端口为1000,1024的所有tcp通信)
             
    (21)-m multiport --port<端口>:同端口多端口匹配,通端口是指源端口和目的端口使用相同端口的数据包
     
    (22)--tcp-flags<检查标记列表><条件列表>:匹配指定的tcp标记,有两个参数,它们都是列表,列表内部用英文的都好作为分隔符,这两个列表之间用空格分开,第一个参数指定需要检查的tcp标记,第二个参数指定”在第一个列表中出现过的且必须被设为1(即状态是打开的)的“标记(第一个列表中其他的标记必须设置0),也就是说第一个参数提供检查范围,第二个参数提供被设置的调价(就是哪些位置1).这个匹配操作可以识别SYN、ACK、FIN、RST、URG、PSH标记另外还可以使用ALL、NONE。ALL是指选定所有的标,NONE是指未选定任何标记,也可以在参数钱使用感叹号取反
                         # iptables -p tcp --tcp-flags SYN,ACK,FIN SYN -j DROP(阻止SYN标记被设置而FIN和ACK标记没有被设置的所有tcp通信)
                         # iptables -p tcp --tcp-flags ALL NONE -j DROP (阻止所有标记没有被设置为1的所有tcp通信)
                         # iptables -p tcp --tcp-flags ! SYN,FIN,ACK SYN -j DROP (阻止FIN、ACK被设置为而SYN没有被设置的所有tcp通信)
                             
    (23)--syn:匹配SYN标记被设置而ACK和RST标记没有设置的数据包(该参数与”iptables -p tcp --tcp-flags SYN,ACK,RST SYN" 有相同的效果)
     
    (24)--icmp-type<类型数值>:根据ICMP类型匹配包,类型的指定可以使用十进制数值
                    # iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
                    # iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
                     
                    # iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
                    # iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
     
    (25)--mac-source<MAC地址>:基于数据包的源MAC地址匹配数据包,只能在PREROUTING,FORWARD,INPUT链中使用
                            # iptables -A INPUT -m mac --mac-source 00:50:56:C0:00:01 -j DROP
                             
    (26)--uid-owner<UID>:按生成包的用户ID(UID)来匹配数据包,如例阻止所有UID为555的用户向外的所有通信
                            # iptables -A OUTPUT -m owner --uid-owner 555 -j DROP
                             
    (27)--gid-owner<GID>:按生成包的用户所在的组的ID(GID)来匹配数据包
                            # iptables -A OUTPUT -m owner --gid-owner 555 -j DROP
     
    (28)--sid-owner<SID>;按生成数据包的会话ID(SID)来匹配外出数据包(一个进程以及它的子进程或他的多个线程都有同一个SID)
                            # iptables -A OUTPUT -m owner --sid-owner 178 -j DROP
                             
    (29)--state<状态列表>:匹配数据包的状态,多个状态使用逗号分隔,例子将允许连接本机的FTP服务器
                            # iptables -A INPUT -p tcp --dport 21 -j ACCEPT
                            # iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
                            # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
                     例:# iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT   
             
    (30)DNAT:用于进行目标网络地址转换,就是重写数据包的目标IP地址,如果一个数据包被匹配,那么和他属于同一个流的所有的包都会被自动的转换,然后就可以被路由到正确的主机或网络DNAT在实际工作中非常有用,比如一台Web服务器位于局域网,而且没有可在Internet上使用的真实 IP地址,这时就可以使用DNAT让防火墙把所有到它自己HTTP端口的包转发给局域网内部真正的Web服务器,目的地址也可以是一个范围,这样DNAT会为每一个流随机分配一个IP地址,DNAT只能在nat表的PREROUTING,OUTPUT链中使用,或是被这两条链调用的链中,DNAT需要使用--to-dest参数指定写入IP包头的地址(也就是数据包要被转发到的地方);   还可以再地址后指定一个活一个范围的端口,如 --to-dest 192.168.1.10:80或192.168.1.10:80-100
          
    # iptables -t nat -A PREROUTING -p tcp -d 202.13.0.2 --dport 80 -j DNAT --to-dest 192.168.0.1-192.168.0.10  
      (意思是说外面要访问内部的web服务器,需要经过202.13.0.2:80端口来访问,经过这个ip时需要进行目标网络地址转换,每个数据流被随机分配一个要转发到的地址,但同一个数据流总是使用同一个地址,也可以只指定一个IP地址作为参数)
         
    (31)SNAT:用于进行源网络地址转换,就是重写数据包的源IP地址,SNAT需要使用--to-source参数指定写入IP包头的地址,
            SNAT的其他语法与DNAT相同,SNAT只能有nat表的POSTROUTING链使用
             
        # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 202.103.0.2
             (意思为当内网的ip:192.168.0.0/24网段要访问外网时需要将这些内网ip伪装成公网ip才可以访问到外部)
         
    (32)MASQUERADE:该目标与SNAT作用相同,只是使用该目标时不需要指明--to-source。MASQUERADE是专门设计用于那些动态获取IP地址的连接(比如拨号上网等),如果有固定的IP地址,可推荐直接使用SNAT(也可以使用MASQUERADE)和SNAT一样,只能用于nat表的POSTROUTING链,而且它只有一个参数(不是必需的)--to-ports用于指定端口,使用该参数时必需配合-p使用
                # iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports 1024-5000   
                # iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -j MASQUERADE
                 
    (33)REDIRECT:在防火墙所在的主机内部转发数据包或流到另外一个端口(比如把所有去往端口HTTP的包REDIRECT到HTTP代理,当然这都发生在主机内部,本地生成的数据包都会被映射到127.0.0.1,换句话说这个目标把要转发的数据包的目的地址改写为本机主机的IP,在实现透明代理时就需要使用该目标(局域网内的主机不需要知道代理服务器的存在就可以正常上网被称为透明代理)。该目标只能用在nat表的PREROUTING、OUTPUT链和被它们调用的自定义链REDIRECT只有一个选项--to-ports用于指定端口(可以使用--to-ports 8080-8888的方式指定一个端口范围)。
                  举个例子:将本机tcp的80端口收到的数据包转发到本机的8080端口
                # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
             
    (34)REJECT:REJECT和DROP作用相同,区别在于它除了阻止数据包之外,还向发送者返回错误信息,该目标只用用在INPUT、FORWARD,OUTPUT和它们的子链,而且包含REJECT的链也只能被它们调用,否则不能发挥作用,它只有一个选项--reject-with用于控制返回的错误信息的类型
            # iptables -A FORWARD -p tcp --dport 22 -j REJECT --reject-with tcp-reset    
             
    ##################### iptables策略配置方法 #########################
     
    (1)使用命令:在使用命令修改了策略后,需要使用如下命令让策略永久生效   # service iptables save    
     
    (2)使用脚本:另外一个方法让策略永久生效的,编写一个脚本将所有的策略放入脚本然后每次开机自动运行该脚本(/etc/rc.locl)
        #!/bin/sh
        # 清除filter、nat表的所有侧率及计数器
        iptables -t filter -F
        iptables -t filter -Z
        iptables -t filter -X
        iptables -t nat -F
        iptables -t nat -Z
        iptables -t nat -X
        #定义filter、nat表默认策略
        iptables -t filter -P INPUT DROP
        iptables -t filter -p OUTPUT DROP
        iptables -t filter -P FORWARD ACCEPT
        iptables -t nat -P OUTPUT ACCEPT
        iptables -t nat -P PREROUTING ACCEPT
        iptables -t nat -P POSTROUTING ACCEPT
        #允许IP转发
        /bin/echo "1" >/pro/sys/net/ipv4/ip_forward
        #载入内核模块
        modprode ip_conntrack-ftp
        modprode ip_nat_ftp
        #允许本机的所有通信
        iptables -t filter -A INPUT -i lo -j ACCEPT
        iptables -t filter -A OUTPUT -o lo -j ACCEPT
        #运行ping
        iptables -t filter -A INPUT -m icmp --icmp-type 8 -j ACCEPT
        iptables -t filter -A OUTPUT -m icmp --icmp-type 0 -j ACCEPT
        iptables -t filter -A INPUT -m icmp --icmp-type 0 -j ACCEPT
        iptables -t filter -A OUTPUT -m icmp --icmp-type 8 -j ACCEPT
        #允许查询本机的DNS服务
        iptables -t filter -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT
        iptables -t filter -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
        #允许访问本机的FTP服务
        iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
        iptables -t filter -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
        iptables -t filter -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    #################################### 常见服务策略配置 ##########################################
    下面是iptables中通过策略允许常见服务通信的例子,除特殊说明外都架设服务于防火墙在同一主机且filter表INPUT及OUTPUT链默认策略时DROP,如果将IPtables做为网关或其他情况可根据实现情况选择不同的表(下列策略都假设服务使用默认端口)
     
    (1)NTP服务
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 123 -j ACCEPT
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 37 -j ACCEPT
     
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 123 -j ACCEPT
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 37 -j ACCEPT
     
    (2)FTP服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 21 -j ACCEPT
    # iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 21 -j ACCEPT
     
    (3)DHCP服务
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 67 -j ACCEPT
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --sport 68 -j ACCEPT
     
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --dport 67 -j ACCEPT
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 68 -j ACCEPT
     
    (4)DNS服务
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 53 -j ACCEPT
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --sport 53 -j ACCEPT
     
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --dport 53 -j ACCEPT
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 53 -j ACCEPT
     
    (5)Samba服务
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 137:139 -j ACCEPT
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 137:139 -j ACCEPT
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 445 -j ACCEPT
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 445 -j ACCEPT
     
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 137:139 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 137:139 -j ACCEPT
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 445 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 445 -j ACCEPT
     
    (6)NFS 服务
    1、在使用iptables允许NFS服务时需要修改/etc/sysconfig/nfs文件的下列参数,是NFS使用固定端口
    LOCKD_TCPPORT=4001
    LOCKD_UDPPORT=4001
    LOCKD_PORT=4002
    STATD_PORT=4000
    STATD_OUTGOING_PORT=4003
    2、配置iptables策略
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 4000:4003 -j ACCEPT
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 4000:4003 -j ACCEPT
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 2049 -j ACCEPT
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 2049 -j ACCEPT
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 111 -j ACCEPT
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 111 -j ACCEPT
     
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 4000:4003 -j ACCEPT
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 4000:4003 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 2049 -j ACCEPT
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 2049 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 111 -j ACCEPT
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 111 -j ACCEPT
     
    (7)日志服务
    # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 514 -j ACCEPT
    # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 514 -j ACCEPT
     
    (8)HTTP/HTTPS服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 443 -j ACCEPT
     
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 80 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 443 -j ACCEPT
     
    (8)WebDav服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 9800 -j ACCEPT
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 9802 -j ACCEPT
     
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 9800 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 9802 -j ACCEPT
     
    (9)SMTP服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 25 -j ACCEPT
     
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 25 -j ACCEPT
     
    (10)POP3/POP3s服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 110 -j ACCEPT
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 995 -j ACCEPt
     
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 110 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 995 -j ACCEPT
     
    (11)IMAP/IMAPs服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 143 -j ACCEPT
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 993 -j ACCEPT
     
    # iptalbes -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 143 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 993 -j ACCEPT
     
    (12)LDAP服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 389 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 389 -j ACCEPT
     
    (14)SSH服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 22 -j ACCEPT
     
    (15)telnet服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 23 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 23 -j ACCEPT
     
    (16)MySQL服务
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 3306 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 3306 -j ACCEPT
     
    (17)SQL Server
    # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 1433 -j ACCEPT
    # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 1433 -j ACCEPT
    展开全文
  • iptables策略

    2017-11-12 15:27:00
    方法1: iptables -P INPUT ACCEPT iptables -A INPUT -i em2 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i em2 -s 168.235.21.0/24 -p tcp --dport 22 -j ACCEPT ...

    方法1:

    iptables -P INPUT ACCEPT

    iptables -A INPUT -i em2 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

    iptables -A INPUT -i em2 -s 168.235.21.0/24 -p tcp --dport 22 -j ACCEPT

    iptables -A INPUT -i em2 -s 104.193.9.0/24 -p tcp --dport 22 -j ACCEPT

    iptables -A INPUT -i em2 -s 103.242.18.0/22 -p tcp --dport 22 -j ACCEPT

    iptables -A INPUT -i em2 -s 202.55.1.18 -p tcp --dport 22 -j ACCEPT

    iptables -A INPUT -i em2 -s 168.235.51.0/24 -p tcp --dport 80 -j ACCEPT

    iptables -A INPUT -i em2 -s 104.193.5.0/24 -p tcp --dport 80 -j ACCEPT

    iptables -A INPUT -i em2 -s 103.242.08.0/22 -p tcp --dport 80 -j ACCEPT

    iptables -A INPUT -i em2 -s 202.55.4.18 -p tcp --dport 80 -j ACCEPT

    iptables -A INPUT -i em2 -s 168.235.51.0/24 -p tcp --dport 443 -j ACCEPT

    iptables -A INPUT -i em2 -s 104.193.5.0/24 -p tcp --dport 443 -j ACCEPT

    iptables -A INPUT -i em2 -s 103.242.08.0/22 -p tcp --dport 443 -j ACCEPT

    iptables -A INPUT -i em2 -s 202.55.4.18 -p tcp --dport 443 -j ACCEPT

    iptables -A INPUT -i em2 -p icmp -m icmp --icmp-type 8 -j DROP

    iptables -A INPUT -i em2 -p tcp --dport 22 -j DROP

    iptables -A INPUT -i em2 -p tcp --dport 80 -j DROP

    iptables -A INPUT -i em2 -p tcp --dport 443 -j DROP

    iptables -A OUTPUT -o em2  -p udp --sport 111 -j DROP 



    方法2:


    iptables -I INPUT -p tcp --dport 80 -j ACCEPT

    iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT (10到21端口允许)

    iptables -I INPUT -p tcp --dport 22 -j ACCEPT

    以上是允许

    iptables -A INPUT -j REJECT  (匹配丢弃)



    iptables -I INPUT -i lo -j ACCEPT

    iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    视频上说,用了上面的命令,要加以下2条才能在本机打开22跟外面访问80,我没加感觉也行



    iptables -nvL --line-numbers  查看规则带有id号

    iptables -D INPUT 1 根据规则的id号删除对应规则



    iptables 针对一个网段

    iptables -I INPUT -m iprange --src-range 61.4.176.0-61.4.191.255 -j DROP



    iptables 防CC

    iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT

    (包设置100个,超过100个拒绝)



    iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT

    iptables -A INPUT -p icmp -j DROP

    上面那句的意思是满足后面的条件,ping 10次以后,一分钟允许一个包通过




    nat表应用:



    /sbin/iptables -t nat -I PREROUTING -d 23.27.6.15 -j DNAT --to-destination 45.61.255.17610

    /sbin/iptables -t nat -I POSTROUTING -d 45.61.255.176 -j SNAT --to-source 23.27.6.15

    /sbin/iptables -t nat -I POSTROUTING -s 45.61.255.176 -j SNAT --to-source 23.27.6.15




    路由器就是使用iptables的nat原理实现

    假设您的机器上有两块网卡eth0和eth1,其中eth0的IP为192.168.10.11,eth1的IP为172.16.10.11 。eth0连接了intnet 但eth1没有连接,现在有另一台机器(172.16.10.12)和eth1是互通的,那么如何设置也能够让连接eth1的这台机器能够连接intnet? 

    echo "1" > /proc/sys/net/ipv4/ip_forward 

    iptables -t nat -A POSTROUTING -s 172.16.10.0/24 -o eth0 -j MASQUERADE




    iptables -I FORWARD -p udp --dport 53 -m string --string "TAOBAO" -m time --timestart 8:15 --timestop 12:00 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP




    本文转自 15816815732 51CTO博客,原文链接:http://blog.51cto.com/68686789/1875633
    展开全文
  • IPTables 策略详解

    2013-01-19 17:29:52
    ############IPtables可用操作(1)-L:显示所选链接的所有策略:#iptables-L-n查看iptables策略(2)-A:在所选的链最尾部添加一条新的策略:#iptables-AINPUT-s192.168.0.1-jDROP(3)-D:从所选链中删除策略,可以通过将...

     

    1. ############ IPtables 可用操作 
    2. (1)-L : 显示所选链接的所有策略 : # iptables -L -n 查看iptables 策略 
    3.  
    4. (2)-A : 在所选的链最尾部添加一条新的策略:# iptables -A INPUT -s 192.168.0.1 -j DROP 
    5.  
    6. (3)-D : 从所选链中删除策略,可以通过将策略的内容完整的写出来或指定在所愿链中的序号 
    7.         # iptables -D INPUT 1  
    8.  
    9. (4)-R:替换所选中的链里指定的策略:# iptables -R INPUT 1 -s 192.168.30.0 -j DROP(替换第一条) 
    10.  
    11. (5)-I: 从所选的链中指定策略前面插入一条新的策略 # iptables -I INPUT 2 -s 192.168.10.2 -j DROP 
    12.  
    13. (6)-F:清空所选链的策略,如果没有指定链,则清空指定表的所有链:# iptables -F INPUT (清空INPUT链) 
    14.  
    15. (7)-Z:将所选链的所有计数器归零,如果没有指定链,则将指定表所有链中计数器归零:# iptables -Z INPUT 
    16.  
    17. (8)-N:根据用户指定的名字建立新的链,在定义新链时所使用的名字不能和已有的链同名,数据包如果在自 
    18.         定义链里被匹配了就会被target/jump执行,如果没有被匹配则数据包将被送回调用自定义链的父链 
    19.         匹配 
    20.         # iptables -N isok 
    21.         # iptables -A isok -p tcp -s 192.168.0.168 -j DROP 
    22.         # iptables -L -n 
    23. Chain INPUT (policy ACCEPT) 
    24. target     prot opt source               destination          
    25. DROP       tcp  --  172.28.10.0          0.0.0.0/0           tcp dpt:80  
    26.  
    27. Chain FORWARD (policy ACCEPT) 
    28. target     prot opt source               destination          
    29.  
    30. Chain OUTPUT (policy ACCEPT) 
    31. target     prot opt source               destination          
    32.  
    33. Chain isok (0 references) 
    34. target     prot opt source               destination          
    35. DROP       tcp  --  192.168.0.168        0.0.0.0/0 
    36.  
    37. (9)-X:删除指定的用户自定义的链。在删除这个链必须没有被引用,如果没有指定链名称,则删除所有 
    38.         自定义的链,如果没有指定表及链则删除默认表中左右自定义的链 
    39.         # iptables -X isok            ( iptables -X) 
    40.          
    41. (10)-E:对自定义的链进行重命名,该命令仅仅是改变自定义链的名字,对这个结构、工作没有任何影响 
    42.         # iptables -E isok isallow 
    43.          
    44. (11)-P:为链设置默认的策略(如ACCEPT、DROP),所有不符合策略的数据包都被强制使用这个策略 
    45.         # iptables -P INPUT DROP 
    46.          
    47. (12)--line-number:在显示策略时,输入序号,该参数只能和-L配合使用 
    48.     # iptables -L --line-number 
    49.      
    50. (13)-s:匹配指定的IP源地址匹配数据包,指定网段为:# iptables -A INPUT -s 192.168.1.0/24 -j DROP 
    51.  
    52. (14)-d:匹配指定的IP目标地址匹配数据包,指定网段:# iptables -A INPUT -d 192.168.1.0/24 -j DROP 
    53.  
    54. (15)-i:<网络接口>:以数据包进入本地所使用的网络接口来匹配数据包,这个匹配操作只能用于 
    55.         INPUT、FORWARD和PREROUTING这3个链 
    56.         1、指定时使用网络接口名称,比如eth0、ppp0 
    57.         2、使用加号作为通配符时,如果直接用一个加号,比如iptables -A INPUT -i +表示匹配所有的包, 
    58.             而不考虑使用哪个接口,这也是用-i参数的默认行为。通配符还可以使放在某一类接口的后面, 
    59.             比如eth+表示所有的Ethernet接口 
    60.         3、在接口前加感叹号表示取反(注意空格),比如“-i!eth0”意思是匹配来自除eth0外的所有包 
    61.         4、lo表示本地回环地址 
    62.         # iptables -A INPUT -i eth0 -s 192.168.0.99 -j DROP(阻止从eth0进入的源IP地址为192.168.0.99的所有通信) 
    63.          
    64. (16)-o:<网络接口>:以数据包离开本地所使用的网络接口来匹配数据包,该参数配置方法与-i参数相同 
    65.         # iptables -A OUTPUT -o eth0 -s 192.168.0.99 -j DROP 
    66.      
    67. (17)--sport<端口>:基于数据包的源端口来匹配数据包: 
    68.                     1、该参数必须与-p参数配合使用 
    69.                     2、不指定--sport参数时,表示所有端口 
    70.                     3、可以使用连续的端口,比如“--sport 1000:1024"表示从1000到1024的所有端口 
    71.                         (包括1000、1024),”--sport 1024:1000“和”--sport 1000:1024“的效果相同 
    72.                     4、当省略第一个冒号时,默认从端口0开始,比如”--sport:1000"表示从0到1000的所有端口 
    73.                     5、当省略第二个冒号时,默认是65535,比如“--sport 1000:"表示从1000到65535的所有端口 
    74.                     6、在端口号前加感叹号表示取反(在感叹号与端口号之间必须有空格),比如”--sport!1000" 
    75.                         表示除1000号外的所有端口,“--sport ! 1000:1024"表示从1000到1024的所哟偶端口(包括1000、1024)之外的所有端口 
    76.                     # iptables -A INPUT -p tcp --sport 1000 -j DROP(阻止源端口为1000的所有tcp通信) 
    77.                     # iptables -A INPUT -p tcp --sport 1000:1024 -j DROP(阻止源端口大于等于1000且小于等于1024的所有tcp通信) 
    78.                      
    79. (18)--dport:基于数据包的目的端口来匹配包,该参数配置方法与--sport参数相同 
    80.             # iptables -A INPUT -p tcp --dport 1000 -j DROP (阻止目标端口为1000的所有tcp通信) 
    81.             # iptables -A INPUT -p tcp --dport 1000:1024 -j DROP (阻止目标端口大于等于1000且小于等于1024的所有tcp通信) 
    82.                      
    83. (19)-m multiport --sport<端口>:源端口多端口匹配,最多可以使用15个端口,使用逗号分隔,该参数必须与 
    84.                             -p参数配合使用 
    85.         # iptables -A INPUT -p tcp -m multiport --sport 1000,1024,1025 -j DROP (阻止源端口为1000,1024,1025的所有tcp通信) 
    86.          
    87. (20)-m multiport --dport<端口>:目的端口多端口匹配,最多可以使用15个端口,以逗号隔开,该参数 
    88.                                 必须与-p参数配合使用 
    89.         # iptables -A INPUT -p tcp -m multiport --dport 1000,1024 -j DROP(阻止目的端口为1000,1024的所有tcp通信) 
    90.          
    91. (21)-m multiport --port<端口>:同端口多端口匹配,通端口是指源端口和目的端口使用相同端口的数据包 
    92.  
    93. (22)--tcp-flags<检查标记列表><条件列表>:匹配指定的tcp标记,有两个参数,它们都是列表,列表内部用 
    94.                                 英文的都好作为分隔符,这两个列表之间用空格分开,第一个参数指定需要 
    95.                                 检查的tcp标记,第二个参数指定”在第一个列表中出现过的且必须被设为1 
    96.                                 (即状态是打开的)的“标记(第一个列表中其他的标记必须设置0),也就是说 
    97.                                 第一个参数提供检查范围,第二个参数提供被设置的调价(就是哪些位置1). 
    98.                                 这个匹配操作可以识别SYN、ACK、FIN、RST、URG、PSH标记另外还可以使用 
    99.                                 ALL、NONE。ALL是指选定所有的标记,NONE是指未选定任何标记,也可以在参数钱使用感叹号取反 
    100.                                 # iptables -p tcp --tcp-flags SYN,ACK,FIN SYN -j DROP(阻止SYN标记被设置而FIN和ACK标记没有被设置的所有tcp通信) 
    101.                                 # iptables -p tcp --tcp-flags ALL NONE -j DROP (阻止所有标记没有被设置为1的所有tcp通信) 
    102.                                 # iptables -p tcp --tcp-flags ! SYN,FIN,ACK SYN -j DROP (阻止FIN、ACK被设置为而SYN没有被设置的所有tcp通信) 
    103.                          
    104. (23)--syn:匹配SYN标记被设置而ACK和RST标记没有设置的数据包(该参数与”iptables -p tcp --tcp-flags SYN,ACK,RST SYN" 有相同的效果) 
    105.  
    106. (24)--icmp-type<类型数值>:根据ICMP类型匹配包,类型的指定可以使用十进制数值 
    107.                 # iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT 
    108.                 # iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT 
    109.                  
    110.                 # iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT 
    111.                 # iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT 
    112.  
    113. (25)--mac-source<MAC地址>:基于数据包的源MAC地址匹配数据包,只能在PREROUTING,FORWARD,INPUT链中使用 
    114.                         # iptables -A INPUT -m mac --mac-source 00:50:56:C0:00:01 -j DROP 
    115.                          
    116. (26)--uid-owner<UID>:按生成包的用户ID(UID)来匹配数据包,如例阻止所有UID为555的用户向外的所有通信 
    117.                         # iptables -A OUTPUT -m owner --uid-owner 555 -j DROP 
    118.                          
    119. (27)--gid-owner<GID>:按生成包的用户所在的组的ID(GID)来匹配数据包 
    120.                         # iptables -A OUTPUT -m owner --gid-owner 555 -j DROP 
    121.  
    122. (28)--sid-owner<SID>;按生成数据包的会话ID(SID)来匹配外出数据包(一个进程以及它的子进程或他的多个线程都有同一个SID) 
    123.                         # iptables -A OUTPUT -m owner --sid-owner 178 -j DROP 
    124.                          
    125. (29)--state<状态列表>:匹配数据包的状态,多个状态使用逗号分隔,例子将允许连接本机的FTP服务器 
    126.                         # iptables -A INPUT -p tcp --dport 21 -j ACCEPT 
    127.                         # iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
    128.                         # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
    129.                     例:# iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT   
    130.          
    131. (30)DNAT:用于进行目标网络地址转换,就是重写数据包的目标IP地址,如果一个数据包被匹配,那么 
    132.             和他属于同一个流的所有的包都会被自动的转换,然后就可以被路由到正确的主机或网络 
    133.     DNAT在实际工作中非常有用,比如一台Web服务器位于局域网,而且没有可在Internet上使用的真实 
    134.      IP地址,这时就可以使用DNAT让防火墙把所有到它自己HTTP端口的包转发给局域网内部真正的Web服务器 
    135.      ,目的地址也可以是一个范围,这样DNAT会为每一个流随机分配一个IP地址,DNAT只能在nat表的 
    136.      PREROUTING,OUTPUT链中使用,或是被这两条链调用的链中,DNAT需要使用--to-dest参数指定写入 
    137.      IP包头的地址(也就是数据包要被转发到的地方);   还可以再地址后指定一个活一个范围的端口,如 --to-dest 192.168.1.10:80或192.168.1.10:80-100 
    138.       
    139. # iptables -t nat -A PREROUTING -p tcp -d 202.13.0.2 --dport 80 -j DNAT --to-dest 192.168.0.1-192.168.0.10  
    140.  
    141.  (意思是说外面要访问内部的web服务器,需要经过202.13.0.2:80端口来访问,经过这个ip时需要进行目标网络地址转换, 
    142.     每个数据流被随机分配一个要转发到的地址,但同一个数据流总是使用同一个地址,也可以只指定一个IP地址作为参数) 
    143.      
    144. (31)SNAT:用于进行源网络地址转换,就是重写数据包的源IP地址,SNAT需要使用--to-source参数指定写入IP包头的地址, 
    145.         SNAT的其他语法与DNAT相同,SNAT只能有nat表的POSTROUTING链使用 
    146.          
    147.     # iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 202.103.0.2 
    148.      
    149.     (意思为当内网的ip:192.168.0.0/24网段要访问外网时需要将这些内网ip伪装成公网ip才可以访问到外部) 
    150.      
    151. (32)MASQUERADE:该目标与SNAT作用相同,只是使用该目标时不需要指明--to-source。MASQUERADE是专门设计用于那些动态 
    152.                 获取IP地址的连接(比如拨号上网等),如果有固定的IP地址,可推荐直接使用SNAT(也可以使用MASQUERADE) 
    153.                 和SNAT一样,只能用于nat表的POSTROUTING链,而且它只有一个参数(不是必需的)--to-ports用于指定端口, 
    154.                 使用该参数时必需配合-p使用 
    155.             # iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports 1024-5000   
    156.             # iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -j MASQUERADE 
    157.              
    158. (33)REDIRECT:在防火墙所在的主机内部转发数据包或流到另外一个端口(比如把所有去往端口HTTP的包REDIRECT到HTTP代理 
    159.               ,当然这都发生在主机内部,本地生成的数据包都会被映射到127.0.0.1,换句话说这个目标把要转发的数据包 
    160.               的目的地址改写为本机主机的IP,在实现透明代理时就需要使用该目标(局域网内的主机不需要知道代理服务器的存在 
    161.               就可以正常上网被称为透明代理)。该目标只能用在nat表的PREROUTING、OUTPUT链和被它们调用的自定义链REDIRECT 
    162.               只有一个选项--to-ports用于指定端口(可以使用--to-ports 8080-8888的方式指定一个端口范围)。 
    163.               举个例子:将本机tcp的80端口收到的数据包转发到本机的8080端口 
    164.             # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 
    165.          
    166. (34)REJECT:REJECT和DROP作用相同,区别在于它除了阻止数据包之外,还向发送者返回错误信息,该目标只用用在INPUT、 
    167.             FORWARD,OUTPUT和它们的子链,而且包含REJECT的链也只能被它们调用,否则不能发挥作用,它只有一个选项 
    168.             --reject-with用于控制返回的错误信息的类型 
    169.         # iptables -A FORWARD -p tcp --dport 22 -j REJECT --reject-with tcp-reset    
    170.          
    171. ##################### IPTables 策略配置方法 ######################### 
    172.  
    173. (1)使用命令:在使用命令修改了策略后,需要使用如下命令让策略永久生效   # service iptables save    
    174.  
    175. (2)使用脚本:另外一个方法让策略永久生效的,编写一个脚本将所有的策略放入脚本然后每次开机自动运行该脚本(/etc/rc.locl) 
    176.     #!/bin/sh 
    177.     # 清除filter、nat表的所有侧率及计数器 
    178.     iptables -t filter -F 
    179.     iptables -t filter -Z 
    180.     iptables -t filter -X 
    181.     iptables -t nat -F 
    182.     iptables -t nat -Z 
    183.     iptables -t nat -X 
    184.     #定义filter、nat表默认策略 
    185.     iptables -t filter -P INPUT DROP 
    186.     iptables -t filter -p OUTPUT DROP 
    187.     iptables -t filter -P FORWARD ACCEPT 
    188.     iptables -t nat -P OUTPUT ACCEPT 
    189.     iptables -t nat -P PREROUTING ACCEPT 
    190.     iptables -t nat -P POSTROUTING ACCEPT 
    191.     #允许IP转发 
    192.     /bin/echo "1" >/pro/sys/net/ipv4/ip_forward 
    193.     #载入内核模块 
    194.     modprode ip_conntrack-ftp 
    195.     modprode ip_nat_ftp 
    196.     #允许本机的所有通信 
    197.     iptables -t filter -A INPUT -i lo -j ACCEPT 
    198.     iptables -t filter -A OUTPUT -o lo -j ACCEPT 
    199.     #运行ping 
    200.     iptables -t filter -A INPUT -m icmp --icmp-type 8 -j ACCEPT 
    201.     iptables -t filter -A OUTPUT -m icmp --icmp-type 0 -j ACCEPT 
    202.     iptables -t filter -A INPUT -m icmp --icmp-type 0 -j ACCEPT 
    203.     iptables -t filter -A OUTPUT -m icmp --icmp-type 8 -j ACCEPT 
    204.     #允许查询本机的DNS服务 
    205.     iptables -t filter -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT 
    206.     iptables -t filter -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT 
    207.     #允许访问本机的FTP服务 
    208.     iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT 
    209.     iptables -t filter -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 
    210.     iptables -t filter -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 
    211.  
    212. #################################### 常见服务策略配置 ########################################## 
    213. 下面是iptables中通过策略允许常见服务通信的例子,除特殊说明外都架设服务于防火墙在同一主机且filter表INPUT及OUTPUT链默认策略时DROP,如果将IPtables做为 
    214. 网关或其他情况可根据实现情况选择不同的表(下列策略都假设服务使用默认端口) 
    215.  
    216. (1)NTP服务 
    217. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 123 -j ACCEPT 
    218. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 37 -j ACCEPT 
    219.  
    220. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 123 -j ACCEPT 
    221. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 37 -j ACCEPT 
    222.  
    223. (2)FTP服务 
    224. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 21 -j ACCEPT 
    225. # iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 
    226.  
    227. # iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 
    228. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 21 -j ACCEPT 
    229.  
    230. (3)DHCP服务 
    231. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 67 -j ACCEPT 
    232. # iptables -A INPUT -p udp -s 192.168.0.0/24 --sport 68 -j ACCEPT 
    233.  
    234. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --dport 67 -j ACCEPT 
    235. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 68 -j ACCEPT 
    236.  
    237. (4)DNS服务 
    238. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 53 -j ACCEPT 
    239. # iptables -A INPUT -p udp -s 192.168.0.0/24 --sport 53 -j ACCEPT 
    240.  
    241. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --dport 53 -j ACCEPT 
    242. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 53 -j ACCEPT 
    243.  
    244. (5)Samba服务 
    245. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 137:139 -j ACCEPT 
    246. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 137:139 -j ACCEPT 
    247. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 445 -j ACCEPT 
    248. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 445 -j ACCEPT 
    249.  
    250. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 137:139 -j ACCEPT 
    251. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 137:139 -j ACCEPT 
    252. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 445 -j ACCEPT 
    253. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 445 -j ACCEPT 
    254.  
    255. (6)NFS 服务 
    256. 1、在使用iptables允许NFS服务时需要修改/etc/sysconfig/nfs文件的下列参数,是NFS使用固定端口 
    257. LOCKD_TCPPORT=4001 
    258. LOCKD_UDPPORT=4001 
    259. LOCKD_PORT=4002 
    260. STATD_PORT=4000 
    261. STATD_OUTGOING_PORT=4003 
    262. 2、配置iptables策略 
    263. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 4000:4003 -j ACCEPT 
    264. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 4000:4003 -j ACCEPT 
    265. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 2049 -j ACCEPT 
    266. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 2049 -j ACCEPT 
    267. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 111 -j ACCEPT 
    268. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 111 -j ACCEPT 
    269.  
    270. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 4000:4003 -j ACCEPT 
    271. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 4000:4003 -j ACCEPT 
    272. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 2049 -j ACCEPT 
    273. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 2049 -j ACCEPT 
    274. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 111 -j ACCEPT 
    275. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 111 -j ACCEPT 
    276.  
    277. (7)日志服务 
    278. # iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 514 -j ACCEPT 
    279. # iptables -A OUTPUT -p udp -d 192.168.0.0/24 --sport 514 -j ACCEPT 
    280.  
    281. (8)HTTP/HTTPS服务 
    282. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT 
    283. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 443 -j ACCEPT 
    284.  
    285. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 80 -j ACCEPT 
    286. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 443 -j ACCEPT 
    287.  
    288. (8)WebDav服务 
    289. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 9800 -j ACCEPT 
    290. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 9802 -j ACCEPT 
    291.  
    292. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 9800 -j ACCEPT 
    293. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 9802 -j ACCEPT 
    294.  
    295. (9)SMTP服务 
    296. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 25 -j ACCEPT 
    297.  
    298. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 25 -j ACCEPT 
    299.  
    300. (10)POP3/POP3s服务 
    301. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 110 -j ACCEPT 
    302. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 995 -j ACCEPt 
    303.  
    304. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 110 -j ACCEPT 
    305. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 995 -j ACCEPT 
    306.  
    307. (11)IMAP/IMAPs服务 
    308. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 143 -j ACCEPT 
    309. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 993 -j ACCEPT 
    310.  
    311. # iptalbes -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 143 -j ACCEPT 
    312. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 993 -j ACCEPT 
    313.  
    314. (12)LDAP服务 
    315. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 389 -j ACCEPT 
    316.  
    317. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 389 -j ACCEPT 
    318.  
    319. (14)SSH服务 
    320. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT 
    321.  
    322. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 22 -j ACCEPT 
    323.  
    324. (15)telnet服务 
    325. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 23 -j ACCEPT 
    326.  
    327. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 23 -j ACCEPT 
    328.  
    329. (16)MySQL服务 
    330. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 3306 -j ACCEPT 
    331.  
    332. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 3306 -j ACCEPT 
    333.  
    334. (17)SQL Server 
    335. # iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 1433 -j ACCEPT 
    336.  
    337. # iptables -A OUTPUT -p tcp -d 192.168.0.0/24 --sport 1433 -j ACCEPT 

     

    转载于:https://blog.51cto.com/alvin1/1122344

    展开全文
  • linux防火墙iptables策略

    2016-08-20 23:05:06
    实现防火墙功能需要软件来调用内核中的netfilter模块2.linux.2.6的内核中使用的软件是iptablesiptables实现的功能有过滤,地址转换.1.iptables中对于同一服务的不同规则的匹配顺序是至上往下,一旦匹配到规则则不再...

    iptables防火墙


    1.实现防火墙功能需要软件来调用内核中的netfilter模块
    2.linux.2.6的内核中使用的软件是iptables



    iptables实现的功能有过滤,地址转换.


    1.iptables中对于同一服务的不同规则的匹配顺序是至上往下,一旦匹配到规则则不再往下匹配,若都没有匹配上,则匹配默认规则.
    2.iptables中有3张表和5条链路。其中filter用于过滤,其链有INPUT,OUTPUT,FORWARD.其中nat表用于地址转换,对应的链路是
       POSTROUTING PREPOSTROUTING.
      


    为了说明表和链路的作用,用网络拓扑图讲解。


         10.0.0.1  
              |                                                                                                 
           主机A                                                                                                 
                                    10.0.0.1<-|  fw   |->192.168.1.1            192.168.1.2<-|主机C      
           主机B                        |                            |
              |                         eth0                      eth1  
         10.0.0.3
        
    注*
    1.主机A和B模拟的是内网,fw为防火墙,存在俩张网卡,其中eth0与内网相连,eth1是公网地址,主机C模拟外网。


    iptables实现的功能
    1.主机C向fw发送数据包,判断其是否能够进入,运用的是filter表中的INPUT链
    2.fw向外网的主机C发送数据包,判断是否能够出去,运用的是filter表中的OUTPUT链路.
    3.内网中的主机A想访问外网,(fw开启路由转发)发送的数据包由FORWARD链过滤.
    4.内网中的主机B想ping通外外网中的主机C,需要运用nat表中的POSTROUTING链通过SNAT动作将私有地址转换为公网地址.
       10.0.0.3->|nat-postrouting-snat|->192.168.1.1
    5.外网中的主机C想访问内网中的主机B私有地址,需要运用nat表中的PREPOSTROUTING链通过DNAT动作将公网地址转换为私有地址.
       10.0.0.3<-|nat-preposrouting-dnat|<-192.168.1.2
    6.防火墙不能给自己做DNAT,此时需要nat表中的OUTPUT链,这条链为防火墙自身做DNAT.



    iptables语法及常用的命令


    filter表


    iptabls -t filter -[A|D|I] [INPUT|OUTPUT|FORWARD] {n} -P [udp|tcp|icmp] {!} -s 192.168.30.0/24 --sport m:n --dport x:y -j \
    [ACCEPT|REJECT|DROP|LOG]


    注*
    1.A->追加 I->插入 D->删除
    2.n为条目数且仅选项为I时可用,!为取反,动作为LOG时意为将匹配到的项记录到日志中.


    iptables -L -n --line-numbers  不做反解的按序号显示默认的filter表规则


    demo:为sshd服务配置iptables策略


    iptables -t filter -I INPUT 1 -p tcp  -s 192.168.30.1 --dport 22 -j REJECT


    此时ip为192.168.30.1的主机将不能远程此主机.



    通过MAC地址设置iptables策略


    iptables -I INPUT 1 -p tcp -m mac --mac=00:0C:29:03:0C:10 --dport 22 -j REJECT


    此时mac地址为00:0C:29:03:0C:10将不能远程该主机


    更改默认规则
    iptables -t filter -P [ACCEPT|REJECT|DROP]



    为保证安全我们需要确保俩条
    1.服务端不能主动向客户端发送请求.
    2.当客户端向服务端建立连接时,服务器可以向客户端发送数据.


    iptables -t filter -I OUTPUT 1 -p tcp -m state --state=RELATED,ESTABLISHED --sport 22 -j ACCEPT


    此时服务端不能远程客户端,而客户端可以远程服务端


    iptables策略备份与恢复


    iptables-save     >xx
    iptables-restore <xx



    为了说明nat表中的各种策略,借用上面的网络拓扑图.


          10.0.0.1  
              |                                                                                                 
           主机A                                                                                                 
                                    10.0.0.1<-|  fw   |->192.168.1.1            192.168.1.2<-|主机C      
           主机B                        |                            |
              |                         eth0                      eth1  
         10.0.0.3
        
    注*
    防火墙fw需要开启路由转发功能.
    echo 1 >/proc/sys/net/ipv4/ip_forward
    vi /etc/sysctl.conf
    net.ipv4.ip_forward=1
    sysctl -p


    利用nat表及其链路实现以下功能


    1.内网中的主机A ping通 外网中的主机C


    iptables -t nat -I POSTROUTING 1 -s 10.0.0.3/24 -j SNAT  --to-source 192.168.1.1


    此时fw为主机A转换地址,但是主机A向fw发送数据包时,fw中的filter表中的INPUT链可能阻止.
    a.我们可清空策略
    b.设置可以通过.


    注*
    此时内网中的主机访问外网中的主机,我们都是讲内网主机地址转换为fw上固定的公网地址,当此公网地址为动态获取时,为了
    SNAT功能实现我们可以利用MASQUERADE.


    iptables -t nat -I POSTROUTING 1 -s 10.0.0.0/24 -j MASQUERADE


    当我们改变fw的公网地址,此时用tcpdump -i eth0 在主机C上抓的包访问地址会发生改变.




    2.外网中的主机C访问内网中主机A的web服务.


    为主机A配置web服务.
    #yum -y install http\*
    ...


    iptables -t nat -I PREPOSTROUTING -p tcp --dport 80 -j DNAT --to dest 10.0.0.2


    此时fw为主机C做了DNAT,使其可以访问内网中的主机A的web服务,但是它自己却不能访问。


    为了让其也能访问web服务


    iptables -t nat -I OUTPUT -p tcp --dport 80 -j DNAT --to dest 10.0.0.2


        
        


    转载于:https://blog.51cto.com/luckye/1840700

    展开全文
  • iptables概述 iptables 并不是真正的防火墙,可以理解为一个客户端代理。用户通过iptables这个代理,将用户的安全设定执行到对应的“安全框架”(netfilter).所以说,iptables其实是一个命令行工具,位于用户空间...
  • IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和...
  • 首先,请允许我先介绍一下什么是iptables? iptables 并不是真正的防火墙,可以理解为一个客户端代理。用户通过iptables这个代理,将用户的安全设定执行到对应的“安全框架”(netfilter).所以说,iptables其实是...
  • 一、实验环境(rhel7.0版本) 主机环境:rhel7.0 各主机信息 主机名 IP server 172.25.254.183 desktop 172.25.254.133 ...二、iptables介绍 ...iptables 并不是真正的...用户通过iptables这个代理,...
  • iptables防火墙策略

    2018-12-16 16:41:44
    环境: foundation1 172.25.1.250 172.25.254.1 server1 172.25.1.1 server2 172.25.1.2 server3 172.25.1.3 四个主机都做解析 ...iptables简介: ...netfilter/iptables(简称为iptables...
  • iptables 防火墙策略

    千次阅读 2018-02-27 20:38:03
    ##一.iptables iptable是用来设置,维护检查内核的ip包过滤规则的,就是规则设置工具。配置防火墙的主要工作就是添加,修改删除一些规则,规则就是网络管理员预定义的一些条件。 三表五链: filter表:过滤...
  • Linux防火墙iptables策略

    千次阅读 2017-08-25 17:09:43
    iptables策略  iptables -L #查看现有防火墙所有策略  iptables -F #清除现有防火墙策略  只允许特定流量通过,禁用其他流量 1.允许SSH流量(重要)  iptables -A INPUT -p tcp --dport 22 -j ACCEPT #-A...
  • iptables访问策略

    万次阅读 2012-08-15 18:29:37
    iptables由3个表filter,nat,mangle组成,主要实验了filter表,这个表是用来过滤数据包的,有三个链INPUT,OUTPUT,FORWARD。 配置防火墙策略有固定的格式 Iptables 表名 链名 匹配条件 动作 -t 表名 (默认...
  • 一、iptables Linux 系统的防火墙——netfilter/iptables IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables组成。 主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口等信息的处理上。 ...
  • IPTABLES 防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在linux内核中.数据包过滤表中,规则被分组放在我们所谓的链(chain)中. iptables5个链 INPUT:...
  • 大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全 1.1.1生产中iptables的实际应用 主要应用方向 1、主机防火墙(filter表的INPUT链)。 2、局域网共享上网(nat表的PO...
  • iptables防火墙与S/DNAT策略iptables防火墙 iptables防火墙
  • iptables 访问策略笔记

    2014-04-11 14:29:26
    Linux 2.4之后的防火墙iptablesiptables由3个表filter,nat,mangle... 配置防火墙策略有固定的格式iptables 表名 链名 匹配条件 动作 -t 表名 (默认为filter) -A 链名(在该链末尾append追加策略) -I 链...
  • iptables 规则策略设置

    2014-08-21 18:53:33
    Iptables一、防火墙基础知识1、防火墙是什么工作于主机或网络边缘,对于进出的定义的报文的规则做检查,进而对被规则匹配到的报文作为相应处理的套件2、防火墙的作用防火墙的作用主要是防***,防恶意***,有点类似于...
  • CentOS_6.5配置iptables防火墙策略

    万次阅读 2016-12-18 02:54:22
    ###############配置filter表防火墙#############...iptables -F #清除预设表filter中使用者自定链中的规则 iptables -X #保存iptables配置 service iptables save #重启iptables服务 service iptables res

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,712
精华内容 6,684
关键字:

删除iptables策略