iptables(防火墙)与netfilter

iptables(防火墙)与netfilter
=================================================
推荐博客:
    http://www.360doc.com/content/11/0506/09/706976_114731108.shtml#
    http://drops.wooyun.org/tips/1424

netfilter/iptables 简介:
    (1)IP数据包过滤系统由 netfilter 和 iptables 两个组件构成。
    (2)netfilter是集成在内核中的一部分,其作用是定义、保存相应的规则,
    (3)iptables是一种工具,用来修改信息的过滤规则及其他配置,而这些规则会保存在内核空间之中。
    (4)netfilter是Linux核心中的一个通用架构,其提供了一系列的表(tables)每个表由若干个链(chains)组成,而每条链可以由一条或若干条规则(rules)组成。

防火墙工作流程:

报文流向:
    (1)流入本机:PREROUTING --> INPUT ==> 用户空间进程。
    (2)流出本机:用户空间进程==> OUTPUT --> POSTROUTING
    (3)转发:PREROUTING --> FORWARD --> POSTROUTING
    注释:==> 进入用户空间, --> 进入系统空间。

四表(同一链上的不同的表的规则优先级 高-->低):
    (1):raw:关闭在nat表启用的连接追踪机制。
            表与链关系:PREROUTING -> OUTPUT
    (2):mangle:拆解报文,按需修改。
            表与链关系:PREROUTING -> INPUT -> FORWARD -> OUTPUT -> POSTROUTING
    (3):nat:network address translation (ip层地址,传输层地址)。
            表与链关系:PREROUTING -> INPUT -> OUTPUT -> POSTROUTING
    (4):filter:过滤,防火墙。
            表与链关系:INPUT -> FORWARD -> OUTPUT

五链(netfilter):五个参考点实现报文管理功能。
    (1):PREROUTING:     数据包进入路由表之前
    (2):INPUT:                 通过路由表后目的地为本机
    (3):FORWARD:   通过路由表后,目的地不为本机
    (4):OUTPUT:             由本机产生,向外转发
    (5):POSTROUTIONG:发送到网卡接口之前

=================================================
iptables 使用:
    服务应用:
        CentOS 7
            ~]# systemctl  stop  firewalld.service
            ~]# systemctl  disable  firewalld.service
        CentOS 6
            ~]# service  iptables  stop
            ~]# chkconfig  iptables  off
...........................................................................................................................................................................
(1)命令
    格式:iptables  [-t  table]   SUBCOMMAND  chain  [matches...]   [target]
               iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]
    ...........................................................................................................................................................................
    -t table: raw, mangle, nat, [filter]
        ~]# iptables -t raw -nvL
        ~]# iptables -t mangle -nvL
        ~]# iptables -t nat -nvL
        ~]# iptables -nvL
    ...........................................................................................................................................................................
(2)SUBCOMMAND:
        (2.1) 链管理:
            -N: new:新增一条自定义链。
                ~]# iptables -N test
            -X:delete:删除自定义的空链。
                 ~]# iptables -X mytest
            -P:policy:设置链的默认策略。
                    ACCEPT:接受
                    DROP:丢弃
                    REJECT:拒绝:互联网访问时最好不要使用REJECT。
                ~]# iptables -t filter -P FORWARD DROP
                ~]# iptables -t filter -P INPUT DROP
                ~]# iptables -t filter -P OUTPUT DROP
                备注:设置 filter 规则控制时要先将 FORWARD,INPUT,OUTPUT 设为 DROP 或者 REJECT
            -E:rename:重命名自定义的未被引用(引用计数为0)的链。
                ~]# iptables -E test mytest

        (2.2) 规则管理:
            -A:append:插入到末尾(最后一个)。
            -I:insert:插入到开始(第一个)。
            -D:delete:删除。
                1:rule specification
                2:rule number
                    ~]# iptables -D OUTPUT 1
            -R:replace:替换。
            -F:flush:清洗,清空。
            -Z:zero:清 0。
                iptables的每条规则都有两个计数器。
                    1:由本规则匹配到的所有的packets。
                    2:由本规则匹配到的所有的bytes。
            S:selected,以 iptables-save 命令的格式显示链上的规则。

        (2.3)查看:
            -L: list,列出规则
                -n:numeric,以数字格式显示地址和端口;
                -v:verbose,详细信息;-vv, -vvv
                -x:exactly,显示计数器的精确值而非单位换算后的结果
                --line-numbers:显示链上的规则的编号
                    ~]# iptables -nvL --line-numbers
            组合:-nvL
                ~]# iptables -nvL
...........................................................................................................................................................................
(3)matches 匹配条件:
1:基本匹配:netfilter自带的匹配机制
    [!] -s, --source address[/mask][,...]:原地址匹配
        ~]# iptables -A INPUT -s 172.18.0.0/16 -j ACCEPT
        ~]# iptables -A OUTPUT -s 172.18.0.0/16 -j ACCEPT
        ~]# iptables -A FORWARD -s 172.18.0.0/16 -j ACCEPT

    [!] -d, --destination address[/mask][,...]:目标地址匹配
        ~]# iptables -A INPUT -s 172.18.21.72 -d 172.18.21.62 -j ACCEPT
        ~]# iptables -A OUTPUT -s 172.18.21.62 -d 172.18.21.72 -j ACCEPT

    [!] -i, --in-interface name:限制报文流入的接口,只能用于PREROUTING,INPUT及FORWARD。
    [!] -o, --out-interface name:限制报文流出的接口,只能用于OUTPUT,FORWARD及POSTROUTING。
    [!] -p {tcp|udp|icmp}:限制协议
     ~]# iptables -I INPUT -s 172.18.21.72 -d 172.18.21.62 -p tcp -j ACCEPT
     ~]# iptables -I OUTPUT -s 172.18.21.62 -d 172.18.21.72 -p tcp -j ACCEPT

2:扩展匹配:经由扩展模块引入的匹配机制,-m matchname
                注释:
                    隐式扩展:可以不用使用-m选项专门加载相应模块;前提是要使用-p选项可匹配何种协议。
                    显式扩展:必须由-m选项专门加载相应模块。

    (1):隐式扩展:
        [!]  -p, --protocol PROTOCOL PROTOCOL:
            协议:tcp, udp, icmp, icmpv6, esp, ah, sctp, mh or "all"

            tcp: 隐含指明了“-m tcp”,有专用选项:
                [!] --source-port,--sport  port[:port]:匹配报文中的tcp首部的源端口;可以是端口范围。
                [!] --destination-port,--dport port[:port]:匹配报文中的tcp首部的目标端口;可以是端口范围。
                    ~]# iptables -A INPUT -s 0/0 -d 172.18.21.62 -p tcp --dport 22 -j ACCEPT
                    ~]# iptables -A OUTPUT -s 172.18.21.62 -d 0/0 -p tcp --sport 22 -j ACCEPT
                    注释:放行ssh连接。
                    ~]# iptables -A INPUT -s 0/0 -d 172.18.21.62 -p tcp --dport 80 -j ACCEPT
                    ~]# iptables -A OUTPUT -s 172.18.21.62 -d 0/0 -p tcp --sport 80 -j ACCEPT
                    注释:开放 80 端口

                [!] --tcp-flags mask comp:检查报文中mask指明的tcp标志位,而要这些标志位comp中必须为1;
                    --tcp-flags  syn,fin,ack,rst  syn
                    --tcp-flags  syn,fin,ack,rst  ack,fin
                [!] --syn:
                    --syn相当于“--tcp-flags  syn,fin,ack,rst  syn”;tcp三次握手的第一次;

            udp:隐含指明了“-m udp”,有专用选项:
                [!] --source-port,--sport  port[:port]:匹配报文中的udp首部的源端口;可以是端口范围;
                [!] --destination-port,--dport port[:port]:匹配报文中的udp首部的目标端口;可以是端口范围;

            icmp:隐含指明了“-m icmp”,有专用选项:
                [!] --icmp-type {type[/code]|typename}
                    type/code:
                        0/0:echo reply:请求
                        8/0:echo request :响应
                    ~]# iptables -A OUTPUT -s 172.18.21.62 -d 0/0 -p icmp --icmp-type 8 -j ACCEPT
                    ~]# iptables -A INPUT -s 0/0 -d 172.18.21.62 -p icmp --icmp-type 0 -j ACCEPT
                    ~]# iptables -A INPUT -d 172.18.21.62 -p icmp --icmp-type 8 -j ACCEPT
                    ~]# iptables -A OUTPUT -s 172.18.21.62 -p icmp --icmp-type 0 -j ACCEPT
                注释:icmp type:http://baike.baidu.com/link?url=rph8HhXWXtekVwXLMz2FcUHaPru6DgG7-fDXFJOUt4qGann-4pwVaCTnF0JiGNiCzeiOg51fQzhWY8XEP_tyE_#7

    (2):显式扩展:
            (1):multiport:多端口匹配:以离散方式定义多端口匹配,最多可以指定15个端口;
                [!] --source-ports,--sports port[,port|,port:port]...
                [!] --destination-ports,--dports port[,port|,port:port]...
                [!] --ports port[,port|,port:port]...

                    ~]# iptables -I INPUT -s 0/0 -d 172.18.21.62 -p tcp -m multiport --dports 22,80 -j ACCEPT
                    ~]# iptables -I OUTPUT -d 0/0 -s 172.18.21.62 -p tcp -m multiport --sports 22,80 -j ACCEPT

            (2):iprange:指明一段连续的ip地址范围做为源地址或目标地址匹配;
                [!] --src-range from[-to]:源地址范围
                [!] --dst-range from[-to]:目标地址范围

                    ~]# iptables -A INPUT -d 172.18.21.62 -p tcp --dport 23 -m iprange --src-range 172.18.21.1-172.18.21.100 -j ACCEPT
                    ~]# iptables -A OUTPUT -s 172.18.21.62 -p tcp --sport 23 -m iprange --dst-range 172.18.21.1-172.18.21.100

            (3):string:对报文中的应用层数据做字符串匹配检测;
                --algo {bm|kmp}:(bm = Boyer-Moore, kmp = Knuth-Pratt-Morris) 算法
                [!] --string pattern:给定要检查的字符串模式;
                [!] --hex-string pattern:给定要检查的字符串模式;

                ~]# iptables -I OUTPUT -s 172.18.100.6 -d 0/0 -p tcp --sport 80 -m string --algo bm --string "old" -j REJECT
                ~]# iptables -I OUTPUT -s 172.18.21.62 -d 0/0 -p tcp --sport 80 -m string --algo bm --string "old" -j REJECT

            (4):time:根据收到报文的时间/日期与指定的时间/日期范围进行匹配。
                --datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:起始日期时间。
                --datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:结束日期时间。
                --timestart hh:mm[:ss]:起始时间。
                --timestop hh:mm[:ss]:结束时间。
                [!] --monthdays day[,day...]:匹配一个月中的哪些天。
                [!] --weekdays day[,day...]:匹配一个周中的哪些天。

                ~]# iptables -R INPUT 4 -d 172.18.100.6 -p tcp --dport 23 -m iprange --src-range 172.18.100.1-172.18.100.100 -m time --timestart 09:00:00 --timestop 16:00:00 --weekdays 1,2,3,4,5 -j ACCEPT
                ~]# iptables -I INPUT -d 172.18.21.62 -p tcp --dport 23 -m iprange --src-range 172.18.21.1-172.18.21.100 -m time --timestart 09:00:00 --timestop 18:00:00 -j ACCEPT

            (5):connlimit:根据每客户端主机做并发连接数限制,即每客户端最多可同时发起的连接数量;
                --connlimit-upto n:连接数量小于等于n则匹配;
                --connlimit-above n:连接数量大于n则匹配;

                ~]# iptables -A INPUT -s 0/0 -d 172.18.100.6 -p tcp --dport 23 -m connlimit --connlimit-upto 2 -j ACCEPT
                ~]# iptables -A INPUT -s 0/0 -d 172.18.21.62 -p tcp --dport 23 -m connlimit --connlimit-upto 2 -j ACCEPT
                ~]# iptables -A INPUT -d 172.18.21.62 -p tcp --dport 23 -m connlimit ! --connlimit-above 2 -j ACCEPT

            (6):limit:基于令牌桶算法对报文的速率做匹配;
                --limit rate[/second|/minute|/hour|/day]
                --limit-burst number

                ~]# iptables -A INPUT -d 172.18.21.62 -p icmp --icmp-type 8 -m limit --limit 20/minute --limit-burst 3 -j ACCEPT
                ~]# iptables -A OUTPUT -s 172.18.21.62 -p icmp --icmp-type 0 -j ACCEPT

            (7):state:是conntrack的子集,用于对报文的状态做连接追踪
                [!] --state state
                    INVALID:无法识别的连接。
                    ESTABLISHED:连接追踪模板当中存在记录的连接。
                    NEW:连接追踪模板当中不存的连接请求。
                    RELATED:相关联的连接。
                    UNTRACKED:未追踪的连接。

                1:已经追踪到的并记录下来的连接:cat /proc/net/nf_conntrack

                2:连接追踪功能所能够记录的最大连接数量(可调整): /proc/sys/net/nf_conntrack_max
                    ~]# sysctl -w net.nf_conntrack_max=300000     #第一种方式
                        net.nf_conntrack_max = 300000
                    ~]# echo 200000 > /proc/sys/net/nf_conntrack_max        #第二种方式
                    ~]# cat /proc/sys/net/nf_conntrack_max
                        200000

                    conntrack所能够追踪的连接数量的最大值取决于/proc/sys/net/nf_conntrack_max的设定;已经追踪到的并记录下来的连接位于/proc/net/nf_conntrack文件中,超时的连接将会被删除;当模板满载时,后续的新连接有可能会超时;解决办法:
                        (1) 加大nf_conntrack_max的值;
                        (2) 降低nf_conntrack条目的超时时长;
                            不同协议的连接追踪时长:/proc/sys/net/netfilter/
                示例1:
                    ~]# iptables -A INPUT -s 172.18.0.0/16 -d 172.18.21.62 -p tcp -m multiport --dports 22,23,80 -m state --state NEW,ESTABLISHED -j ACCEPT
                    ~]# iptables -A OUTPUT -d 172.18.0.0/16 -s 172.18.21.62 -p tcp -m multiport --sports 22,23,80 -m state --state ESTABLISHED -j ACCEPT
                    ~]# iptables -A INPUT -d 172.18.21.62 -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED -j ACCEPT
                    ~]# iptables -A OUTPUT -s 172.18.21.62 -p icmp --icmp-type 0 -m state --state ESTABLISHED -j ACCEPT
                示例2:
                    ~]# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
                    ~]# iptables -A INPUT -d 172.18.21.62 -p tcp -m multiport --dports 22,23,80 -m state --state NEW -j ACCEPT
                    ~]# iptables -A INPUT -d 172.18.21.62 -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
                    ~]# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
                示例3:
                    ~]# modinfo nf_conntrack_ftp
                    ~]# modprobe nf_conntrack_ftp
                    ~]# lsmod | grep ftp
                        nf_conntrack_ftp       11953  0
                        nf_conntrack           79206  7 nf_conntrack_ftp,xt_connlimit,iptable_nat,nf_nat,nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state
                    ~]# service vsftpd restart
                    ~]# iptables -A INPUT -d 172.18.21.62 -p tcp --dport 21 -m state --state NEW -j ACCEPT
                    ~]# iptables -I INPUT -d 172.18.21.62 -m state --state ESTABLISHED -j ACCEPT

...........................................................................................................................................................................
(4):保存与启动规则
1:保存:
    CentOS 6:
        ~]# service  iptables  save
        ~]# iptables-save  > /etc/sysconfig/iptables
        ~]# iptables-save  >  /PATH/TO/SOME_RULE_FILE
    CentOS 7:
        ~]# iptables  -S  > /PATH/TO/SOME_RULE_FILE
        ~]# iptables-save  >  /PATH/TO/SOME_RULE_FILE

2:启动:
    手动:
        ~]# iptables-restore  <  /PATH/FROM/SOME_RULE_FILE

        CentOS 6:service  iptables  restart
            备注:自动从 /etc/sysconfig/iptables 文件中重载规则。

    自动:
        (1):/etc/rc.d/rc.local
                ~]# vi /etc/rc.d/rc.local
                 iptables-restore  <  /PATH/FROM/SOME_RULE_FILE

        (2):/usr/bin/iptables.sh
                ~]# vi /usr/bin/iptables.sh
                 iptables-restore  <  /PATH/FROM/SOME_RULE_FILE

...........................................................................................................................................................................
(4)处理动作:
        -j  targetname  [per-target-options]
            1:ACCEPT, DROP, REJECT
            2:RETURN:返回调用的链
                示例:
                    ~]# iptables -N web
                    ~]# iptables -A web -s 10.0.1.0/24 -p tcp --dport 80 -j ACCEPT
                    ~]# iptables -I web 1 -m string --alog kmp --string "old" -j REJECT
                    ~]# iptables -I web 2 -p tcp -m state --state ESTABLISHED -j ACCEPT
                    ~]# iptables -A FORWARD -p tcp -j web
                    ~]# iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 22 -m state --state NEW -J ACCEPT
                    ~]# iptables -A web -j RETURN
                            注释:返回调用者(默认隐含)。

            3:REDIRECT:端口重定向,端口映射:仅使用在 PREROUTING 和 OUTPUT 链。
                --to-ports port[-port]
                示例:
                    ~]# 修改监听端口为 8080 。
                    ~]# iptables -t nat -A PREROUTING -d 172.18.21.72 -p tcp --dport 80 -j REDIRECT  --to-ports 8080
                访问:
                    http://172.18.21.72:8080
                    http://172.18.21.72

            4:LOG:日志
                --log-level level:等级(默认为4):emerg, alert, crit, error, warning, notice, info or debug.
                --log-prefix prefix:指定前缀
                示例:
                    ~]# iptables -I FORWARD 2 -s 10.0.1.0/24 -p tcp -m multiport --dports 80,21,22,23 -m state --state NEW -j LOG --log-prefix "(new connctions)"
                日志记录位置:
                    ~]# cat /var/log/messages

            5:MARK:防火墙标记

            6:SNAT:源地址转换:修改IP报文中的源IP地址:POSTROUTING 和 INPUT (CentOS 7 支持) 链
                  --to-source [ipaddr[-ipaddr]]           

                 示例:
                    ~]# iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -j SNAT --to-source 172.18.21.71
                    ~]# iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -j SNAT --to-source 172.18.21.70-172.18.21.100

                备注:让本地网络中的主机可使用统一地址与外部主机通信,从而实现地址伪装
                    请求:由内网主机发起,修改源IP,如果修改则由管理员定义
                    响应:修改目标IP,由nat自动根据会话表中追踪机制实现相应修改

            7:DNAT:目标地址转换:修改IP报文中的目标IP地址:RPEROUTING 和 OUTPUT (CentOS 7)链
                --to-destination [ipaddr[-ipaddr]][:port[-port]]

                示例1:
                    ~]# iptables -t nat -A PREROUTING -d 172.18.21.71 -p tcp --dport 80 -j DNAT --to-destination 10.0.1.2
                    ~]# curl http://172.18.21.71/
                示例2:
                    ~]# 修改 10.0.1.2 监听地址为 Listen 8090
                    ~]# iptables -t nat -A PREROUTING -d 172.18.21.71 -p tcp --dport 80 -j DNAT --to-destination 10.0.1.2:8090
                    ~]# curl http://172.18.21.71/

                备注:让本地网络中服务器使用统一的地址向外提供服务(发布服务),但隐藏了自己的真实地址。
                    请求:由外网主机发起,修改其目标地址,由管理员定义。
                    响应:修改源地址,但由nat自动根据会话表中的追踪机制实现对应修改。

            8:MASQERADE:地址伪装,地址动态伪装
                示例:
                    ~]# iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -j MASQUERADE

            9:recent:
...........................................................................................................................................................................
完整的示例:

设置网卡地址:nmtui

基本设置:
    关闭 CentOS6 的iptables 和 CentOS7的 firewalld。
    清空三台主机的防火墙规则:
        ~]# iptables -F

    主机:172.18.21.71
    查看是否打开网卡转发:
        ~]# cat /proc/sys/net/ipv4/ip_forward
    开启网卡转发:
        ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
    备注:地址属于内核不属于网卡。
    注释:
        1:10.0.1.1未设置网关的时候不能 ping 通172.18.21.71,但是可以ping通10.0.1.1
        2:172.18.21.71设置转发后可以 ping 通172.18.21.72,但是得不到 ping 回应。
                主机:10.0.1.1
                ~]# ping 172.18.21.72
                主机:172.18.21.72:抓包查看。
                ~]# tcpdump -i eno16777736 icmp
                注释:172.18.21.72主机回应了但是回应到了网关。

    添加路由:
        主机:172.18.21.72
        ~]# route add -net 10.0.1.0/24 gw 172.18.21.71
        ~]# route -n
            Kernel IP routing table
            Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
            0.0.0.0         172.18.0.1      0.0.0.0         UG    100    0        0 eno16777736
            10.0.1.0        172.18.21.71    255.255.255.0   UG    0      0        0 eno16777736
            172.18.0.0      0.0.0.0         255.255.0.0     U     100    0        0 eno16777736
        注释:此时 10.0.1.2主机ping请求172.18.21.72得到回应。

    主机:172.18.21.71
    ~]# iptables -P FORWARD DROP
    ~]# tcpdump -i eno16777736 -nn icmp -vv
    基础写法:
        内网 ping 外网
        ~]# iptables -A FORWARD -s 10.0.1.0/24 -d 0/0 -p icmp --icmp-type 8 -j ACCEPT
        ~]# iptables -A FORWARD -s 0/0 -d 10.0.1.0/24 -p icmp --icmp-type 0 -j ACCEPT
        外网 ping 内网
        ~]# iptables -A FORWARD -s 10.0.1.0/24 -d 0/0 -p icmp --icmp-type 0 -j ACCEPT
        ~]# iptables -A FORWARD -s 0/0 -d 10.0.1.0/24 -p icmp --icmp-type 8 -j ACCEPT

    合并写法:
        ~]# iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
        内部 ping 外部
        ~]# iptables -A FORWARD -s 10.0.1.0/24 -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
        外网 ping 内网
        ~]# iptables -A FORWARD -s 0/0 -d 10.0.1.0/24 -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
        同时允许内网和外网互 ping
        ~]# iptables -A FORWARD -p icmp -m state --state NEW -j ACCEPT
        ~]# lsmod | grep ftp

    内网访问外网服务 80和21
        ~]# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
        ~]# iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 80 -m state --state NEW -j ACCEPT
        ~]# iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 21 -m state --state NEW -j ACCEPT
        ~]# modprobe nf_conntrack_ftp
        合并写法:
            ~]# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
            ~]# iptables -A FORWARD -s 10.0.1.0/24 -p tcp -m multiport --dports 80,21 -m state --state NEW -j ACCEPT
时间: 2024-11-05 12:26:36

iptables(防火墙)与netfilter的相关文章

iptables防火墙介绍+实战

第1章 iptables防火墙简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入和流出服务器的数据包进行很精细的控制.特别是它可以在一台非常低的硬件配置下跑的非常好.iptables+zebra+squid Iptables是linux2.4及2.6内核中集成的服务.其功能与安全性比其老一辈ipfwadm,ipchains强大的多,Iptables主要

Linux -- 系统安全之Iptables防火墙(2)

一.iptables防水墙的实现方式及iptables命令的格式 iptables防火墙介绍 netfilter/iptables是Linux系统提供的一个非常优秀的防火墙工具,它完全免费.功能强大.使用灵活.占用系统资源少,可以对经过的数据进行非常细致的控制.本节首先介绍有关iptables防火墙的基本知识,包括netfilter框架.iptables防火墙结构与原理.iptables命令格式等内容. netfilter框架 Linux内核包含了一个强大的网络子系统,名为netfilter,它

Netfilter/iptables防火墙

http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免费防火墙,功能十分强大.在接下来的这个<深入浅出Netfilter/iptables防火墙框架>系列中,51CTO安全/Linux专家李洋将对Netfilter/iptables进行详尽的.条理的介绍.本文是基础篇,先介绍Netfilter/iptables框架的原理. 1.Netfilter/i

Centos 6.6上 netfilter/iptables防火墙的基本用法

友情提醒:本文实验环境 vmware 10 + Centos 6.6 X86_64,文件命令请谨慎使用 1 事前必知: 1)什么是防火墙? 防火墙:工作于主机或网络边缘,对于进出的报文根据事先定义的规则做检查,被匹配到的报文作出相应处理的组件. 所以: (1)防火墙不是杀毒软件. (2)既然是根据规则检查报文,存在2个问题:规则定义严格了,使用者觉着别扭:定义松散了形同虚设,还占用内核资源. 2)centos6.6上防火墙的组件: netfilter:过滤器,内核中工作在tcp/ip网络协议栈上

Linux 防火墙:Netfilter iptables

一.Netfilter 简介 (1) Netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制,而 iptables 只是操作 netfilter 的一个命令行工具(2) Netfilter 是 Linux CentOS 6 内置的防火墙机制,Firewall 是 Linux CentOS 7 内置的防火墙机制,如果想在 CentOS 7 中使用 netfilter 而不是 firewall,操作如下 [[email protected] ~]# systemct

Iptables防火墙(一)

一.Linux防火墙基础 Linux防火墙主要工作在网络层,属于典型的包过滤防火墙. netfilter和iptables都用来指Linux防火墙,主要区别是: netfilter:指的是linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"的防火墙功能体系. iptables:指的是用来管理linux防火墙的命令程序,通常位于/sbin/iptables目录下,属于"用户态"的防火墙管理体系. 1.iptables的表.链结构 Ipt

Linux下的配置iptables防火墙增强服务器安全

Linux下的配置iptables防火墙增强服务器安全 实验要求 iptables常见概念 iptables服务器安装及相关配置文件 实战:iptables使用方法 例1:使用iptables防火墙保护公司web服务器 例2:使用iptables搭建路由器,通过SNAT使用内网机器上网 例3:限制某些IP地址访问服务器 例4:使用DNAT功能把内网web服务器端口映射到路由器外网 实验环境 iptables服务端:xuegod-63   IP:192.168.1.63 iptables客户端:x

iptables防火墙应用

安全服务--Iptables  一.网络安全访问控制我们都知道,Linux一般作为服务器使用,对外提供一些基于网络的服务,通常我们都需要对服务器进行一些网络控制,类似防火墙的功能,  常见的访问控制包括:那些IP可以访问服务器,可以使用那些协议,那些接口.那些端口 是否需要对数据包进行修改等等.如果某服务器受到攻击,或者来自互联网哪个区域或者哪个IP的攻击,这个时候应该禁止所有来自该IP的访问.那么Linux底层内核集成了网络访问控制,通过netfilter模块来实现.  iptables作用:

运维学习之iptables防火墙基本设定

iptables 一.简介 IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置. 防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中.在信息包过滤表中,规则被分组放在我们所谓的链(chain)中.而netfilter/

CentOS下配置iptables防火墙 linux NAT(iptables)配置

CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机名称. NETWORKING=yesNETWORKING_IPV6=noHOSTNAME=BGI-TJ.localdomain GATEWAY=192.168.11.1(超算网关) 2.vim /etc/sysconfig/network-scripts/