防火墙

                            防火墙

1.    防火墙:

1.)包过滤防火墙 à简单包过滤防火墙

                 à基于状态检测的包过滤防火墙

2.Pagload à代理防火墙

2. tcp/ip选择5个点(hook functions)钩子函数作为过滤条件

Netfilter:自身不做过滤,靠Ipv6规则过滤

Framework/iptablesà存放规则

3. tables

按功能和规则的不同可分为:四个表,五个链。

1.)四个表:filter:本机转发

            natàSNAT(离开的一霎那)

                àDNAT(进入之前)

            mangle

            raw

2.)五个链:PREROUTINGINPUTOUTPUTFORDWARDPOSTROUTING

4. 各个表的规则:

   filter :INPUT ,FORDWARD ,OUTPUT

   nat: PREROUTING ,POSTROUTING ,OUTPUT

   mangleALL

  raw :PREROUTING

5.iptables默认使用filter

 iptables [-t table] Command Chains [NUM] match-conditions –j  Action

***************************************************

Command:(对链中规则的操作命令)

-A :append附加(在尾部追加规则)

      -Iinsert插入到某条规则之前

         -R nReplace(修改第几条规则)

         -D ndetelete删除某条规则

 

Chains:(对于链的管理)

       -Fflush清空规则(若没指明链,则将表中的链全清空)

       -P: policy默认策略{DROP|ACCEPT}

       -Nnew(用户自定义一条新规则)

       -X:删除用户自定义的一条新链,默认五条都被删掉

       -Eremain(将用户自定义的某条链重命名为其他名)

       -Zzero(清空计数器)

       -Llist(某条链中所有规则)

       -Sprint  /etc/sysconfig/tables(默认保存位置)

 iptables –L –v : 所有被本规则匹配的包的个数

            所有被本规则匹配的包的体积

 

 

匹配规则可分为:

***通用匹配:-p protocol{tcp|udp|icmp}

             -s src-address(单个或网段地址)

             -d dst_address

             -i in_insertface

             -o out_interface

***扩展匹配:++隐含扩展:tcp{--dport--sport--tcp-flags

--syn}

                         udp{--sport,--dport, --icmp-type}

              ++显示扩展:-m state --state

                          -m mutiport --ports

                          -m limit --limit

                          -m string --limit

                          -m mac --mac-source 

处理动作:(-j jump

    DROP, REJECT, ACCEPT, SNAT, DNAT, LOG, REDIRECT(重定向)MASQUERADE(地址伪装,一般用于外网接口为动态地址时)

 

6.用法案例:

 iptables –L

 iptables  filter|raw|mangle|nat –L(若不指明,默认为filter)

 iptables –t filter –L –line-numbers(显示规则编号)

 iptables –t filter –L –line-numbers –n-n ip地址的形式显示地址,反解析,不做名称解析)

iptables –t filter –L –line-numbers –n –v(显示详细信息)

iptables –t filter –L –line-numbers –n –v –X(不做单位换算,直接显示其精确值)

INPUT,OUTPUT

***iptables –t filter –P INPUT DROP(若修改,则都进不去)

iptables –t filter –A INPUT –s 0.0.0.0/0.0.0.0 –d -192.168.0.116 –p tcp --dport 80 –j DROP(所有地址都不能访问192.168.0.116 web服务)

   iptables –t filter –A OUTPUT –s 192.168.0.116 –d 0.0.0.0/0.0.0.0 –p tcp --sport 80 –j DROP(192.168.0.116不能访问web服务)

   iptables –t filter –A INPUT –s 192.168.0.116 -p tcp --dport 80 –j DROP(192.168.0.116不能访问其它的地址的web服务)

 **********************************************

若要拒绝192.168.0.0网段的地址,但是允许192.168.0.3

192.168.0.3放到前面(提示:0echo-reply 8echo-request 3destination unreachable

假设有通信双方本地A(192.168.0.116),远程为 B(192.168.0.254)

Aping不通B,则:iptables –t filter –A OUTPUT –s 192.168.0.116 –d 192.168.0.254 –p --icmp-type 8 –j DROP

Bping不通A,但自己却能回应:iptables –t filter –A INPUT

-s 192.168.0.254 –d 192.168.0.116 –p –icmp-type 0 –j DROP

***************************************************

ssh

iptables –t filter –A INPUT -s 192.168.0.254 –d 192.168.0.116 –p tcp --dport  22  –j  DROP(拒绝192.168.0.254远程登录到192.168.0.116上)

iptables –t filter –A INPUT s 192.168.0.0/24 –d 192.168.0.116 –p icmp --icmp-type 8 –j DROP(所有非192.168.0.0/24网段的地址将都ping不通192.168.0.116

 ***************************************************

DNAT(目标地址转换)

内网:192.168.1.1192.168.1.2192.168.1.3(均为web服务器)

外网:1.1.1.1

若让1.1.1.1访问这些服务,首先得进行地址转换,应将外网上的地址转换为内网的地址才能进行访问。(即将原地址转换为目标地址才能进行访问。)

iptables –t nat –A PREROUTING –d 1.1.1.1 –p tcp –dport 80 –j DNAT  --to-dest 192.168.1.2:8080

SNAT(源地址转换)

外网地址:192.168.100.2

网关:外网接口:192.168.100.1,内网接口:192.168.10.1

内网地址:192.168.10.1

让内网访问外网:

Iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –d 192.168.100.0/24 –j SNAT –to-source 192.168.100.1

MASQERADE(地址伪装)

外网地址:192.168.100.0/24

网关:外网接口:192.168.100.1(但不固定,会经常发生变化)内网接口:192.168.10.1

内网地址:192.168.10.0/24

内网访问外网,需要做地址转换,但内网的外网接口地址又为动态时,我们就需要进行地址伪装,让外界看来地址没有发生变化。

iptables –t nat –s 192.168.10.0/24 –d 192.168.100.0/24 –j MASQERADE --to-source 192.168.100.1  

***************************************************

外网地址为:192.168.100.2

内网地址为:192.168.10.2

假设拒绝内网访问外网,对于尝试访问内网的将计入系统日志,配置规则如下:

iptables –A FORWARD –s 192.168.100.2 –d 192.168.10.0/24 –j LOG --log-prefix From external:

iptables –A FORWARD –s 192.168.100.2 –d 192.168.10.0/24 –j DROP           

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值