防火墙000

四类防火墙:

基础类防火墙:

IDS类防火墙:入侵检测系统,

IPS类防火墙:入侵防御系统,

主动安全类:waf(web应用防火墙),daf(数据库应用·防火墙)


防火墙有软件和硬件:

  • 硬件:

360网擎,天安信,绿盟科技

  • 软件:

C6:防火墙管理工具iptables,内核态netfilter

C7:防火墙管理工具firewall(一般会装iptables),内核态netfilter


防火墙的四表五链:

  • 四表:

1.raw:数据报文跟踪

2.mangle:数据报文修改

3.nat:地址转换

4.filter:数据报文过滤

  • 五链:内核态netfilter中的五个接口

1.INPUT:数据入站

2.OUTPUT:数据出站

3.FORWARD:数据转发

4.PREROUTING:路由前

5.POSTROUTING:路由后

  • 规则:

自定义规则--ACCEPT,DROP(优先级高)

默认规则--ACCEPT,ALLOW,拒绝等


表与链和规则的关系:


顺序:

  • 规则循序:

自上而下依次匹配,匹配既停止

  • 表顺序:

raw mangle nat filter

  • 链顺序:

入站:PREROUTING INPUT

出站:OUTPUT POSTOUTING

转发:PREROUTING FORWARD POSTOUTING


表上所对应的链:(红色标识部分熟记)


将表和链顺序结合起来:

入站:把中间的一大部分理解为一个防火墙,入站数据进来先依次经过各个表的PREROUTING,然后经过路由选择,如果是本地的那么就往上走,要依次经过各个表的INPUT,到达本机应用程序

出站:出站数据依次经过各个表的OUTPUTING,然后再经过各个表的POSTROUTING

转发:先经过各个表的PREROUTING,然后再经过各个表的FORWARD链,再经过各个表的POSTROUTING


表与链和规则的关系:


liptables  [-t 表名选项  [链名]  [条件]  [-j 控制类型]

表名:

-t 指定表名 (不使用-t指定默认匹配fliter表)

控制类型:选项和链名配合使用

   选项:添加规则---A末尾追加   -I 开头插入    

   链名:五条链

条件:

通用匹配条件:-p 协议名   -s 原地址   -d 目的地址   -i 入站网卡   -o 出站网卡(可以多配合使用)

隐含匹配条件:-sport 源端口  -port 目的端口   -icmp-type ICMP类型

显式匹配条件:

多端口-m multiport --sport 源端口列表   -m multiport --dport 目的端口列表 

IP范围匹配-m iprange --src-range IP范围

MAC地址匹配 -m mac --mac-source MAC地址

状态匹配 -m state --state

控制类型:

ACCEPT  允许通过

DROP  直接丢弃,不给出任何回应                                                                            

REJECT  拒绝通过,会给出提示                                                                             

LOG  记录日志信息,然后传给下一条规则继续匹配

SNAT  修改数据包源地址

DNAT  修改数据包目的地址

REDIRECT  重定向


常用命令:

  • 查看指定表的规则:                                 iptables -t mangle -L
  • 查看以数字的形式显示端口和地址信息: iptables -L -n
  • 查看过滤数据包的数量:                          iptables -L -v
  • 查看以行号显示:                                     iptables -L --line-numbers
  • 按行号删除指定链规则:                          iptables -D INPUT 1
  • 清空当前filter表的链的所有规则:            iptables -F
  • 清空指定表的指定链的规则:                   iptables -t filter -F OUTPUT
  • 清空防火墙所有规则:                              echo " " > /etc/sysconfig/iiptables
  • 为指定的链设置默认规则:                      iptables -t filter -P OUTPUT ACCECT
  • 查看端口和条件的对应关系:                   cat /etc/services

规则演示:

当原地址是192.168.66.11的数据报文的转发请求就拒绝:iptables -A FORWARD -s 192.168.1.11 -j PEJECT

当原地址是10.20.30.0/24的入站数据报文请求就丢弃:iptables -I INPUT -s 10.20.30.0/24 -j DROP

当协议是icmp的入站数据报文就丢弃: iptables -I INPUT -p icmp -j DROP

当入站网卡是eth1原地址是172.16.0.0网段的入站请求就丢弃: iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP

当原地址是4.0的时候目的端口是53udp协议的转发请求就接收:iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT

自己能ping通别人,别人不能ping通自己:iptables -t filter -A INPUT -p icmp --icmp-type 0 -j ACCEPT(自己能ping通别人)

                                                                    iptables -t filter -A INPUT -p icmp --icmp-type 3 -j ACCEPT

                                                                    iptables -t filter -A INPUT -p icmp -j DROP(拒绝别人ping自己)

0级别(回显) 3级别(目标未知)

当端口为20,80,22,443的入站请求接收:iptables -A INPUT -m mulitport --dport 20,80,22,443 -j ACCEPT

将新发起连接的请求拒绝掉:iptables -I INPUT -p tcp --dport 21 -m state --state NEW -j REJECT

SNAT:把源地址伪装成公网IP

将源地址伪装成公网IP:iptables -t nat -A  POSTROUTING -s 192.168.66.0/24 -o eth1 -j SNAT --to-source 10.10.10.11

实验前介绍:SNAT和DNAT

SNAT:在路由后改变发送过来的数据包的源地址为公网IP

DNAT:在路由前改变发送过来的数据包的目标地址为内网地址

SNAT和DNAT的区别:SNAT是直接访问公网地址;DNAT是访问路由器

1.模拟内网通过路由器访问公网:(SNAT)

  • 实验介绍:模拟内网访问公网,服务器该如何配置
  • 实验环境:三台机器:192.168.66.11;192.168.66.12,20.20.20.12;20.20.20.13

11主机把网关指向12机器,12机器开启路由转发,13配置web服务器

  • 实验原理:

用A直接pingC是不通的,如果使用tcpdump -nA port 80抓包的话,会发现C可以抓到,但是A收不到返回信息

A指定网关到B的内网网卡,B的外网网卡正好是20.20,B把数据包转发给C,C把目标地址和源地址改变(S20.20.20.12;D192.168.66.11),但是C是公网不可能去指定网关到B的外网网卡,所以数据包回不去,为了解决这种情况,使用SNAT;A的数据包发送过来,路由器将源地址改变成C的网段的IP,这样公网就可以不需要配网关返回数据包了;因为公网不可能去配置网关,所以设置防火墙改变源地址IP

网关:访问局域网内没有的IP网址的时候,就交给和自己相同地址的网关处理,如果路由器里的另一张网卡是被访问的IP网段,那么就会把数据包发送

SNAT(源地址转换):在路由后改变发送过来的数据包的源地址为公网IP,这样公网客户端就可以将数据包返回,不需要配网关

  • 防火墙设置:

iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -o eth1 -j SNAT --to-source 20.20.20.12

指定192.168.66.0网段的IP,出口网卡是路由器的出站网卡在nat表的路由后,修改数据包源地址为20.20.20.12

2.模拟内网通过路由器访问公网:(SNAT)

  • 实验环境:两台机器:192.168.66.11;192.168.66.12,NATdhcp获取
  • 实验搭建:

11主机配置网关指定到192.168.66.12,添加DNS;12添加防火墙规则:iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -o eth1 -j SNAT --to-source 192.168.157.128

  • 测试:

外网通过路由器访问内网:(DNAT)

 

实验环境:三台机器:192.168.66.11;192.168.66.12,20.20.20.12;20.20.20.13

66.11主机是web服务器,66.12主机是路由器,20.13主机是公网客户

实验搭建:

66.11主机添加网关:echo "GATEWAY=192.168.66.12" >> /etc/sysconfig/network-scripts/ifcfg-eth0

66.12主机开启路由转发:vim /etc/sysctl.conf

66.12主机定义防火墙规则:iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to-destination 192.168.66.11

66.13主机下载apache:

实验结果:用公网的服务器curl web服务器、

端口映射:如果apache服务器的端口不是80了,那么些防火墙的规则的时候要

将apache的端口变成1234,vim /etc/httpd/conf/http 

路由器编写防火墙规则:iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to-destination 192.168.66.11:1234

访问测试:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值