iptables简介

Iptables

功能:

        filter:过滤,防火墙

        nat:网络地址转换

        mangle:拆解报文,做出修改,封装报文

        raw:关闭nat表上启用的连接追踪机制

 

        NAT发生在路由之前

       

       

        链(内置)

                PREROUTING数据包进入主机,在路由(选择)决策发生之前

                INPUT

                FORWARD

                OUTPUT

                POSTROUTING数据包要离开主机,在路由(选择)决策发生之后

 

        报文的流向:

                流入:进入本机内部PROROUTING-->INPUT

                流出:从本机出去OUTPUT-->POSTROUTING

                转发:进入本机又从本机出的:PREROUTING-->FORWARD-->POSTROUTING

 

        各功能的分别实现:

                Filter:INPUT,FORWARD,OUTPUT

                NAT:PREROUTING(DNAT),OUTPUT,POSTROUTING(SNAT)

                Mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

                Raw:PREROUTING,OUTPUT

 

        路由发生的时刻:

                报文进入本机后:

                        判断目标主机:

                报文发出之前:

                        判断经由那个接口送往下一跳

        四表五链:

                添加规则时的考量点:

                        1.实现那种功能,判断添加在那张表上

                        2.报文流经的路径,判断添加在那个链上

                链上规则的次序,即为检查的次序,因此隐含一定的法则

                        1.同类规则(控制同一种应用访问),匹配范围小的放上面

                        2.不同类规则(访问不同应用),匹配到报文频率较大的放前面

                        3.将那些可由一条规则描述的多个规则合并为一个

                        4.设备默认策略(白名单:默认拒绝,只有允许的才让通过)

                                               (黑名单:默认允许,只拒绝明确禁止的用户)

        功能的优先级次序:RAW->MANGLE->NAT->FILTER

        规则:

                组成部分:报文的匹配条件,匹配到之后的处理动作

                                匹配条件:根据协议报文特征指定

                                        基本匹配条件:源IP,目标IP,源端口,目标端口

                                        扩展匹配条件:连接跟踪,状态跟踪,根据MAC跟踪,检查应用层属性

                                处理动作:

                                        内建处理机制:drop,reject

                                        自定义处理机制:转发到自定义的链上

                                自定义链:        数据报文不会通过自定义链

                                注意:报文不会经过自定义链,只能在内置链上通过规则引用后生效

 

iptables:规则管理工具:

        添加,修改,删除,显示

                规则和链有计数器:

                        pkgs:由规则或链所匹配到的报文的个数

                        bytes:由规则或链匹配到的所有报文大小之和

iptable命令

        iptables [-ttable] SUBCOMMAND CHAIN CRETERIA -j TARGET

       iptables [-t table] -[AD] chainrule-specification [options]

       iptables [-ttable]  -I  chain [rulenum]  rule-specification

       [options]

      iptables  [-t  table] -R  chain  rulenum rule-specification

       [options]

       iptables [-ttable] -D chain rulenum [options]

       iptables [-ttable] -[LFZ] [chain] [options]

       iptables [-ttable] -N chain

       iptables [-ttable] -X [chain]

       iptables [-ttable] -P chain target [options]

      iptables [-t table] -E old-chain-name new-chain-name


Frrewall:防火墙,隔离工具,工作于主机或网络的边缘,对于进出本主机或网络的报文根据事先定义的好的检查作匹配检测,对那些能够被规则所匹配到的报文做出相应处理的组件:

       主机防火墙


       网络防火墙

IPS:入侵防御系统=IDS入侵检测系统 +防火墙

IDS:

HIDS:主机入侵检测系统

NIDS:网络入侵检测系统

Honeypot:蜜罐

 

Iptables/netfilter

       Framework:netfilter       #内核空间,提供钩子函数

              Hooksfunction     

 

       Ruleutils: iptables  #工作在用户空间的程序

 

内核模块

[root@node2 netfilter]# pwd

/lib/modules/2.6.32-696.el6.x86_64/kernel/net/netfilter

[root@node2 netfilter]# ls

ipset                          nfnetlink_log.ko    xt_hl.ko         xt_RATEEST.ko

ipvs                          nfnetlink_queue.ko  xt_HL.ko         xt_realm.ko

nf_conntrack_amanda.ko         nf_tproxy_core.ko   xt_iprange.ko    xt_recent.ko

nf_conntrack_broadcast.ko      xt_AUDIT.ko         xt_LED.ko        xt_sctp.ko

nf_conntrack_ftp.ko            xt_CHECKSUM.ko      xt_length.ko     xt_SECMARK.ko

nf_conntrack_h323.ko           xt_CLASSIFY.ko      xt_limit.ko      xt_set.ko

nf_conntrack_irc.ko            xt_cluster.ko       xt_mac.ko        xt_socket.ko

nf_conntrack.ko                xt_comment.ko       xt_mark.ko       xt_state.ko

nf_conntrack_netbios_ns.ko     xt_connbytes.ko     xt_MARK.ko       xt_statistic.ko

nf_conntrack_netlink.ko        xt_connlimit.ko     xt_multiport.ko  xt_string.ko

nf_conntrack_pptp.ko           xt_connmark.ko      xt_NFLOG.ko      xt_tcpmss.ko

nf_conntrack_proto_dccp.ko     xt_CONNMARK.ko      xt_NFQUEUE.ko    xt_TCPMSS.ko

nf_conntrack_proto_gre.ko      xt_CONNSECMARK.ko   xt_NOTRACK.ko    xt_TCPOPTSTRIP.ko

nf_conntrack_proto_sctp.ko     xt_conntrack.ko     xt_osf.ko        xt_time.ko

nf_conntrack_proto_udplite.ko  xt_dccp.ko          xt_owner.ko      xt_TPROXY.ko

nf_conntrack_sane.ko           xt_dscp.ko          xt_physdev.ko    xt_TRACE.ko

nf_conntrack_sip.ko            xt_DSCP.ko          xt_pkttype.ko    xt_u32.ko

nf_conntrack_snmp.ko           xt_esp.ko           xt_policy.ko

nf_conntrack_tftp.ko           xt_hashlimit.ko     xt_quota.ko

nfnetlink.ko                   xt_helper.ko        xt_rateest.ko

 

查看模块信息

[root@node2 netfilter]# modinfo nf_conntrack_ftp.ko

filename:      nf_conntrack_ftp.ko

alias:         nfct-helper-ftp

alias:         ip_conntrack_ftp

description:   ftp connection tracking helper

author:        Rusty Russell <rusty@rustcorp.com.au>

license:       GPL

srcversion:    C71BEA8280D7366FB6AFF35

depends:       nf_conntrack

vermagic:      2.6.32-696.el6.x86_64 SMP mod_unload modversions

parm:          ports:array of ushort

parm:          loose:bool

 

如何保存及重载规则:

       保存规则至指定文件:

#iptables-save> /PATH/TO/SOFTFILE

       从指定文件重载规则:

#iptables-restore</PAHT/FROM/SOFTFILE

 

CentOS 6:

       Service iptables save

              Iptables-save >/etc/sysconfig/iptables

       Service iptables restart

                     Iptables-restore< /etc/sysconfig/iptables

       CentOS7:

              引入了新的iptables 前端管理服务工具  firewalld

              Firewalld-cmd

              Firewalld-config

       禁用firewalld

               Systemctl disable firewalld.service

               Systemctl stop firewalld.service

               

启动iptables服务器自动装载模块CentOS 6.x

              [root@node2~]# cat /etc/sysconfig/iptables-config

# Loadadditional iptables modules (nat helpers)

#   Default: -none-

# Spaceseparated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which

# are loadedafter the firewall rules are applied. Options for the helpers are

# stored in/etc/modprobe.conf.

IPTABLES_MODULES="nf_conntrack_ftp "

[root@node2~]# service iptables start

iptables:Applying firewall rules:                        [  OK  ]

iptables:Loading additional modules: nf_conntrack_ftp    [  OK  ]

 

关于Firewalld:

https://www.ibm.com/developerworks/cn/linux/1507_caojh/index.html

 

 

分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS