ENGINEER 005 防火墙策略管理(firewall)2、作用

防火墙策略管理(firewall)
作用:隔离,隔离内网和外网。比较安全的和风险的区域,中间树立一道墙。

这道墙,在正常情况下,会有密密麻麻的规则。

lan局域网  |    wan互联网

wan--->lan 入站 ,需要遵循规则,比较严格。层层筛选。

lan--->wan 出站,放行。

组织入站,允许出站
不管是互联网的硬件防火墙,还是软件防火墙,基本上都会阻止入站,允许出站。
硬件防火墙:思科、华为有硬件设备就直接是防火墙,相当于路由器,直接戳到核心网络里,掌管内外网的出入,允许或拒绝就看硬件防火墙怎么去配。
硬件防火墙没有任何的命令,打开是一个浏览器,直接打勾打叉,价格昂贵。
常见的是软件防火墙,Windows见到的是360防火墙。金山防火墙等。
今天讲的是属于软件防火墙的范畴,也是安装一个软件才能有的功能,这个软件不需要去装,因为其默认就装了。也是系统级的服务:firewalld(d:daemon超级守护进程),服务一旦开启的话,会非常忠诚的守护在内存当中,为你去过滤所有的入站出站什么的。防火墙怎么去过滤?就是规则。符合规则否?

有两种:①firewall-cmd(Linux专业人士用,命令工具)---7当中的命令,6中又不是此命令,6比7当中的防火墙更加复杂

             ②firewall-config(初学者用开发用,图形工具)Linux中的firewall可以检测“三次握手的标记位”:tcp有syn、ack、fin。

             链接直接进入到block,再直接到drop。
             还可以建立流量访问,优先级别。防火墙的功能很多。

-------------------------------------------------------------------------------------------------------------------------

RHEL7的防火墙体系

系统服务:firewalld

管理工具:firewall-cmd(命令的,专业人士^_^)、firewall-config(图形的)

[root@server0~]# systemctl restart firewalld

[root@server0~]#  firewall-config &

查看防火墙服务状态
[root@server0~]# systemctl status firewalld.service    (.service按的是tab键,属于正常)

----------------------------------------------------------------------------------------------------------------------------------

查看防火墙规则列表   (可看可不看)

列表查看操作

- firewall-cmd --list-all [--zone=区域名]

- firewall-cmd --list-all-zones

- firewall-cmd --get-zones

- firewall-cmd --get-services

- firewall-cmd --get-default-zone

----------------------------------------------------------------------------------------------------------------------------------

指定默认的安全区域

使用 --set-default-zone=区域名

--- 默认为public,限制较严格

--- 对于开放式环境,建议将默认区域修改为 trusted

--- 针对“运行时/永久配置”均有效

[root@server0~]# firewall-cmd --get-default-zone  //修改前

public

[root@server0~]# firewall-cmd --set-default-zone=trusted

[root@server0~]# firewall-cmd --get-default-zone  //修改后

trusted

----------------------------------------------------------------------------------------------------------------------------------

6当中的防火墙驳杂,是通过表格的形式来管理。7中,采取区域的方式来管理规则,去方便设置改变规则。默认规则已经设置好了,只需要背下来即可。拒绝一个人,就把它放到相应的区域,就可以了。(最常用的四个区域)

预设安全区域

根据所有的网络场所区分,预设保护规则集

- public:仅允许访问本机的sshd等少数几个服务

- trusted:允许任何访问

- block:阻塞任何来访请求

- drop :丢弃任何来访的数据包

- ... ...

配置规则的位置

- 运行时(runtime)

- 永久 (permanent)

public:是默认的区域,防火墙来了一个链接,默认会把它扔到public区域。

[root@server0~]#  firewall-cmd -- get-default-zone

public

[root@server0 ~]# firewall-cmd --zone=public --list-all

public (default, active)

  interfaces: eth0 eth1 eth2 team0

  sources:

  services: dhcpv6-client ssh  ---->只允许者两个服务,这里没有web服务http

  ports:

  masquerade: no

  forward-ports:

  icmp-blocks:

  rich rules: 

 

再开一个终端,在desktop下:

[root@desktop0 ~]# firefox http://172.25.0.11

(process:1895): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed

此时防火墙已经把其干掉了,因为没有web和ftp。Server0自己访问自己是可以的。

 

Trusted:允许任何访问,相当于回到自己家一样。

Block:阻止任何来访请求(拒绝,后有回应)

Drop:丢弃任何来访的数据包(pc端不知道发生了什么,就是不能访问,再问一遍还是不行,生产环境中用的比较多,节省服务器的资源。没有回应,直接扔掉)用的较多。

 

防火墙判断的规则:匹配及停止

1、首先会看请求(客户端)当中的源IP地址,所有区域中是否有对于该IP地址的策略,如果有则该请求进入该区域。

2、进入默认区域

先在虚拟机desktop0,上访问http和ftp都失败。

[root@desktop0 ~]# firefox http://172.25.0.11      //访问失败

[root@desktop0 ~]# firefox ftp://172.25.0.11        //访问失败

再到虚拟机server0,上写规则。先查看规则,再写规则。

[root@server0~]#  firewall-cmd -- get-default-zone        //查看默认区域

[root@server0 ~]# firewall-cmd --zone=public --list-all   // 查看区域规则信息

[root@desktop0 ~]# ifconfig| head -2    ---->ip:172.25.0.10

[root@server0~] # firewall-cmd --zone=public --add-service=http      //增加服务

[root@server0~] # firewall-cmd --zone=public --add-service=ftp        

 [root@server0 ~]# firewall-cmd --zone=public --list-all       // services: dhcpv6-client  ftp http ssh  ---->此时这里有web服务http、ftp了。

再到虚拟机desktop0~

[root@desktop0 ~]# firefox http://172.25.0.11       //访问成功

[root@desktop0 ~]# firefox ftp://172.25.0.11          //访问成功

此时就可以访问了。

[root@desktop0 ~]# ping 172.25.0.11   //可以ping通

rhel7防火墙能够识别7层的信息,一般的防火墙只能读取3层(网络层)、4层(传输层)的信息。

网络层有源IP、目标IP。

传输层有tcp、udp、端口号。

防火墙允许web服务,允许tcp的80,用端口号去标识。

-----------------------------------------------------------------------------------------------------------------------------

加上-- permanent选项:实现永久设置

封网段、开服务

若针对“永久配置”,需添加 --permanent

 - 使用 --add-source =网段地址

 - 使用 --add-service =服务名

[root@server0~]# firewall-cmd --permanent --zone=block --add-source=172.34.0.0/24

[root@server0~]# firewall-cmd --permanent --zone=public --add-service=http

[root@server0~]# firewall-cmd --permanent --zone=public --add-service=ftp

------------------------------------------------------------------------------------------------------------------------

[root@server0~]# firewall-cmd --reload   //重新加载防火墙所有的配置

 [root@server0 ~]# firewall-cmd --zone=public --list-all       // services: dhcpv6-client  ssh  ---->此时这里没有web服务http、ftp了

firewall-cmd --zone=public --add-service=http/ftp          #添加服务,并不是永久生效的命令。

firewall-cmd --permanent--zone=public --add-service=http/ftp      #想要永久生效

注意:iptables –F  清空防火墙规则 

[root@server0~]# firewall-cmd --permanent --zone=public --add-service=http

[root@server0~]# firewall-cmd --permanent --zone=public --add-service=ftp

[root@server0~]# firewall-cmd --reload   //需要再重新加载一遍

 [root@server0 ~]# firewall-cmd --zone=public --list-all       // services: dhcpv6-client  http ftp ssh  ---->此时这里有web服务http、ftp了

 ----------------------------------------------------------------------------------------------------

防火墙判断的规则:匹配及停止

1、首先会看请求(客户端)当中的源IP地址,所有区域中是否有对于该IP地址的策略,如果有则该请求进入该区域。

2、进入默认区域

desktop在访问server0时,都进入的默认区域。

修改默认的区域,不需要加上--permanent。修改直接就是永久的。

[root@desktop0 ~]# ping 172.25.0.11    //ping通

[root@server0~]# firewall-cmd --set-default-zone=block    //设置set,教学环境中用block。因为明显的知道是防火墙拒绝的。

[root@server0~]# firewall-cmd --get-default-zone  //block     //查看get

[root@desktop0 ~]# ping 172.25.0.11   //ping不通 ,通信无反馈

 

[root@desktop0 ~]# firefox http://172.25.0.11

[root@desktop0 ~]# firefox ftp://172.25.0.11

此时就ping不通,目标不可达。

----------------------------------------------------------------

[root@server0~]# firewall-cmd --set-default-zone=drop  //直接拒绝,生产环境中用drop

Ping的时候,没有反应。都是正在链接... ...  (直接就丢了)

ping不通,fttp

desktop什么都访问不了。(是服务没搭对?还是防火墙拒绝?)

--------------------------------------------------------------------

以上的小案例:

虚拟机desktop0:

# ping 172.25.0.11   //可以通信

虚拟机server0:

# firewall-cmd --set-default-zone=block  #修改默认区域

# firewall-cmd --get-default-zone      #查看默认区域

虚拟机desktop0:

# ping 172.25.0.11   //不可以通信

虚拟机server0:

# firewall-cmd --set-default-zone=drop  #修改默认区域

# firewall-cmd --get-default-zone  

虚拟机desktop0:

# ping 172.25.0.11   //通信无反馈

--------------------------------------------------------------------

[root@server0~]# firewall-cmd --permanent --zone=public --add-source=172.25.0.10  //desktop的ip地址

[root@server0~]# firewall-cmd --zone=public --list-all  //此时没有http、ftp,需要重载。

[root@server0~]# firewall-cmd --reload

[root@server0~]# firewall-cmd --zone=public --list-all

此时出现一个源IP地址。

在虚拟机desktop0此时http和ftp可以访问。但是,还是ping不通,可能与附规则有关。

ping不通的原因是什么???

 -----------------------------------------------------------------------

实现本机的端口映射

本地应用的端口重定向(端口1--->端口2)

--从客户机访问 端口1 的请求,自动映射到本机 端口2

--比如,访问以下两个地址可以看到相同的页面:

http://server0.example.com:5423/

http://server0.example.com/

[root@server0~]# firewall-cmd --permanent --zone=trusted --add-forward-port=port=5423:proto=tcp:toport=80 

[root@server0~]# firewall-cmd --reload //重载配置,等于重启。

 ----------------------------------------------------------------------

端口转发

虚拟机desktop0:

firefox http://172.25.0.11:5423 ---->172.25.0.11:80

做本机的地址转化:当有人用http协议去访问5423时,把此请求直接交给本机的80端口。

[root@desktop0~]# firefox http://172.25.0.11:5423   //不可以访问。连接没有办法。

[root@server0~]# firewall-cmd --permanent --zone=

public --add-forward-port=port=5423:proto=tcp:toport=80

Forward-port:转发(红字手写部分,就不能tab键了)

 [root@server0~]# firewall-cmd --reload

[root@server0~]# firewall-cmd --zone=public --list-all

在虚拟机desktop0:

[root@desktop0~]# firefox http://172.25.0.11:5423   //完美的出现了动态的 my first web lover xdd 红色加粗字

[root@desktop0~]# firefox ftp://172.25.0.11:5423   //ftp不能访问了

课外知识:

[root@server0~]# firewall-cmd --permanent --zone=

public --remove-forward-port=port=5423:proto=tcp:toport=80

[root@server0~]# firewall-cmd --reload

[root@server0~]# firewall-cmd --zone=public --list-all

[root@server0~]# firewall-config  //会来到一个图形。(详见下图)

在虚拟机desktop0:

[root@desktop0~]# firefox http://172.25.0.11:5423  //不可以了,remove移走了。

案例5:配置firewalld防火墙

为你的两个虚拟机配置防火墙策略

--允许从172.25.0.0/24网段的客户机访问server0、desktop0的任何服务

--禁止从my133t.org域(172.34.0.0/24网段)的客户机访问server0、desktop0的任何服务

--在172.25.0.0/24网络中的系统,访问server0的本地端口5423将转发到80

--上述设置必须永久有效

posted @ 2019-05-23 10:07  xiaoredhat  阅读(575)  评论(0编辑  收藏  举报