Linux 之 firewalld_firewalld网络区域-程序员宅基地

一、firewalld的认识

1、firewalld提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。

2、firewalld将网卡分为不同的区域,这些区域的区别在于对待来访的用户及传输的数据包的默认动作的不同,通过制定一些安全策略从而保证系统在被访问或传输数据时的安全。

二、firewalld区域(zones)

  firewalld分为九个区域,含义如下:

    trust(信任):可接受所有的网络连接;

    home(家庭):用于家庭网络,仅接受ssh、mdns、ipp-client、samba-client或dhcpv6-client服务连接;

    internal(内部):用于内部网络,仅接受ssh、ipp-client、mdns、samba-client或dhcpv6-client服务连接;

    work(工作区):用于工作区,仅接受ssh、ipp-client、dhcpv6-client服务连接;

    public(公共):用于公共区域的使用,仅接受ssh、dhcpv6-client服务,为firewalld的默认区域;

   external(外部区域):出去的ipv4的网络连接经过此区域的伪装和转发,只支持ssh服务;

      dmz(非军事区):仅接受ssh服务;

      block(限制):拒绝所有的网络服务;

      drop(丢弃):任何访问的网络数据包都会被丢弃,没有任何回应。

三、firewalld的控制命令

这里写图片描述

[root@client Desktop]# systemctl stop iptables  关闭iptables
[root@client Desktop]# systemctl disable iptables 开机自动关闭
[root@client Desktop]# systemctl start firewalld 打开防火墙
[root@client Desktop]# systemctl enable firewalld 开机自动开启
[root@client Desktop]# yum search iptables 寻找iptables安装包
[root@client Desktop]# yum install iptables-services.x86_64 安装

这里写图片描述
这里写图片描述

 1、firewalld图形管理工具:firewall-config

这里写图片描述

2、查看防火墙状态

这里写图片描述

3、查看被激活的空间(即添加网卡的空间)

这里写图片描述

4、查看当前默认空间

这里写图片描述

5、查看firewalld所有的空间

这里写图片描述

6、查看指定空间的信息

这里写图片描述

7、查看可通过firewalld进行设定的系统中的服务

这里写图片描述

8、查看所有空间的所有设定

这里写图片描述

 9、设定默认空间,如下图firewall-cmd --set-default-zone=dmz为设置默认空间为dmz(非军事区):仅接受ssh服务;

这里写图片描述

四、网络接口改变所属域

1、改变网卡所属域

[root@jane1 Desktop]# nm-connection-editor 添加两个IP
[root@jane1 Desktop]# systemctl restart network  重启网络
[root@jane1 Desktop]# ifconfig  查看IP

这里写图片描述

1)查看,可以看到,eth0,eth1在public

这里写图片描述

2)为了实验效果,我们在apache默认发布目录下,写入内容,并重启服务生效

这里写图片描述

3)这时我们将eth1加入信任域

这里写图片描述

4)进行测试,用eth1所属网卡访问apache可以查看到刚才我们写入的内容

这里写图片描述

2、移除和添加网卡到域

1)移除

这里写图片描述

2)添加

这里写图片描述

 3、将IP添加到信任域

这里写图片描述

永久添加(刷新后依然存在)
[root@jane1 zones]# cd /etc/firewalld/
[root@jane1 firewalld]# cd zones/
[root@jane1 zones]# vim public.xml##  在文件中添加IP

这里写图片描述
这里写图片描述

 4、将IP移除出信任域

这里写图片描述

 5、将服务加入信任区域,其实只是将其端口加入允许列表,实验如下

       1)先将http加入允许public

这里写图片描述

2)此时两块网卡都可以访问

这里写图片描述
这里写图片描述

3)此时将http配置文件/etc/httpd/conf/httpd.conf这里改变为8080

这里写图片描述

4)改变完后,两块网卡都不能访问,即使http已经加入火墙允许列表

这里写图片描述
这里写图片描述

5)因为实际上实际火墙默认端口为80,在/usr/lib/firewalld/services/http.xml下可以查看

这里写图片描述

6)所以为了可以使8080可以使用,可以将8080端口加入允许列表

这里写图片描述
这里写图片描述
这里写图片描述

7)更改eth0和eth1的域

这里写图片描述

五、reload和complete-reload的区别

reload刷新之后不会中端连接,complete-reload刷新之后会中断连接。

 用ssh服务来体现

1)用客户端先ssh链接到服务端

这里写图片描述

2)此时将ssh移除出火墙允许列表,用reload重启服务

这里写图片描述

3)此时在用客户端在打开一个shell用ssh链接客户端,将被拒绝

这里写图片描述

4)但是之前链接的还可以继续使用

这里写图片描述

5)这是我们如果用complete-reload重启服务

这里写图片描述

6)之前链接的也将不能工作,会卡住,不能执行命令

这里写图片描述

reload改变之后的操作不影响之前的操作

complete-reload改变所有操作包括正在运行的(永久性)

六、特定的规则 direct rules

在linux中想要保证主机的绝对安全以上的策略是远远不够的,还需要一些设定更为复杂、更加具体、更加安全的设定,即特定规则

1)firewall-cmd --direct --get-all-rules查看特定规则,如下图可以看到为空,下面我们进行编写实例
[root@localhost Desktop]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.29 -j ACCEPT     ##只允许172.25.254.29访问
success
filter:表 INPUT:列 1:第几行 (先是表再是列) -p:正在使用的协议  --dport:目的地端口 -s:数据来源  -j: 动作  (REJECT 拒绝滚 ACCEPT 接受 DROP 丢弃)
[root@localhost Desktop]# firewall-cmd --direct --get-all-rule    ##查看规则
ipv4 filter INPUT 1 -p tcp --dport 80 -s 172.25.254.29 -j ACCEPT

这里写图片描述

2)我们可以查看大条件是允许http服务,但上面我们编写了特定的规则,实验可以看到172.25.254.66这台主机可以访问,但其他不可以

这里写图片描述
这里写图片描述
这里写图片描述

3)下面我们将刚才编写的数则移除,再次编写在前面加入!,表示除了192.168.0.205这台主机不可以,其他的主机都能访问http服务

这里写图片描述

4)实验测试,此时只有172.25.254.66这台主机不可以访问,其他都可以

这里写图片描述
这里写图片描述

firewall优先级先去direct规则里查找,如果有则按direct规则运行,如果没有则按默认list-all里的执行(默认允许就可以,没有就不行)

七、设定端口转发

[root@localhost Desktop]# firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.66
success
ssh 的端口是 22   所跳转到的主机IP是66

这里写图片描述

在另一台虚拟机中 ssh root@172.25.254.129 则就会跳转到所制定的IP 主机中
这里的密码是所跳转的IP主机的密码

这里写图片描述
这里写图片描述

八、地址伪装

在desktop添加两块网卡,设置两个网段的IP

这里写图片描述

[root@localhost network-scripts]# vim /etc/sysctl.conf
[root@localhost network-scripts]# sysctl -p               ##启动
net.ipv4.ip_forward = 1
[root@localhost network-scripts]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0 eth1
  sources: 
  services: dhcpv6-client ssh
  ports: 
  masquerade: yes                                     ##确保这个为开启状态
  forward-ports: port=22:proto=tcp:toport=22:toaddr=172.25.254.19        
  icmp-blocks: 
  rich rules: 

 ##用firewall-cmd --permanent --remove-forwardport=port=22:proto=tcp:toport=22:toaddr=172.25.254.19删除

这里写图片描述

**在server中**
[root@server]# vim /etc/sysconfig/network-scripts/ifcfg-eth0   ##更改IP为172.25.4.229
[root@server]# systemctl restart network
[root@server]# ifconfig
[root@server]# route add default gw 172.25.4.129    ##添加网关(desktop里与server同网关的那个IP为这个的网关)
[root@server]# route -n     ##查看网关
[root@server]# ping 172.25.254.19     可以ping的通
[root@server]# ssh [email protected]            ##也可以连接
[root@foundation19 ~]# w -i    ##可以看到最后一行真正登陆IP

这里写图片描述
这里写图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/JaneNancy/article/details/80600740

智能推荐

python识别验证码——一般的数字加字母验证码识别-程序员宅基地

文章浏览阅读1.7k次。转自:https://www.cnblogs.com/MrRead/p/7656800.html1、验证码的识别是有针对性的,不同的系统、应用的验证码区别有大有小,只要处理好图片,利用好pytesseract,一般的验证码都可以识别2、我在识别验证码的路上走了很多弯路,重点应该放在怎么把图片处理成这个样子,方便pytesseract的识别,以提高成功率3、原图为:思想..._python形状 数字 字母 验证码识别的代码

第一次作业-程序员宅基地

文章浏览阅读67次。第一次作业:1-1数据压缩的一个基本问题是“我们要压缩什么”,对此你是怎样理解的? 我对数据压缩的理解是在这个大数据的时代,数据量实在是太大,信息在传输的过程中过于缓慢,因此我们需要对数据进行压缩。数据压缩我们要压缩的是信号空间,主要对象包括①物理空间②时间空间③电磁频段1-2 数据压缩的另一个基本问题是“为什么进行压缩”,对此你又是怎样理解的?我个人理解的是进..._数据压缩技术的流程建模表达

Mysql的timestamp(时间戳)详解以及2038问题的解决方案_mysql timestamp范围-程序员宅基地

文章浏览阅读10w+次,点赞34次,收藏161次。mysql的timestamp 虽然好用,但是会有一个2038年的问题,本文将带你们详细了解 mysql的timestamp 以及2038问题_mysql timestamp范围

JSP基础语法-程序员宅基地

文章浏览阅读94次。学习视频来自:https://www.imooc.com/video/2940page指令语法实例:page指令学习 主要就是<%@ page language="java" import = "java.util.*" contentType="text/html; charset=utf-8"%>最常用的就是 language 使用的语言 impo..._j p的基本语法

四十六、LNMP架构介绍、MySQL安装、PHP安装、Nginx介绍-程序员宅基地

文章浏览阅读58次。四十六、LNMP架构介绍、MySQL安装、PHP安装、Nginx介绍一、LNMP架构介绍和LAMP不同的是N:Nginx。LNMP=Linux+Nginx+MySQL+PHP和LAMP不同的是,提供web服务的是Nginx并且PHP是作为一个独立服务存在,这个服务叫做php-fpm,说白了就是PHPNginx直接处理静态请求,动态请求会转发给php-fpmNginx在静态文件..._00:00:00 grep --color=auto 17901

[入门教程]详细讲解STM32控制LED点阵屏(HUB75接口)_hub75控制程序-程序员宅基地

文章浏览阅读8.8k次,点赞3次,收藏71次。本文详细介绍使用STM32F103驱动LED点阵屏幕(HUB75接口),属于入门级教程。_hub75控制程序

随便推点

openstack简介_open stack-程序员宅基地

文章浏览阅读2.5k次。OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。1. OpenStack是什么 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为..._open stack

简单工程项目管理系统-程序员宅基地

文章浏览阅读2.7k次。我是背后那一束模糊的影子,只为衬托前面那个美丽…… 实现这个“简单”的管理系统其实不是那么简单! 其中总结我所遇到的几个大问题: 其一:对于一个界面型的管理系统,用我所熟悉的MFC实现,也不断的碰见控件操作和数据交换问题; 其二:数据库操作,对于MFC的CRecordset类来说,还是需要研

快速幂(Java实现)_java快速幂-程序员宅基地

文章浏览阅读1.4k次。package com.study.经典算法题;public class 快速幂 { public static void main(String[] args) { System.out.println(fastPower1(2, 2)); System.out.println(fastPower2(2,2)); } //遍历n次得到a^n,时间复杂度为O(n) //快速幂(O(logn)),n很大的时候,不会爆栈 //递归版._java快速幂

ThinkPHP菜鸟实现的增删改查_thinkphp layui 增删改查-程序员宅基地

文章浏览阅读2.8k次。thinkphp和easyui框架,实现的增删改查。菜菜的不要建议_thinkphp layui 增删改查

springboot+Swagger2生成API_/v2/api-docs?group=-程序员宅基地

文章浏览阅读146次。配置pom.xml&amp;amp;amp;lt;!-- swagger生成接口API --&amp;amp;amp;gt; &amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp;amp;amp;gt;io.springfox&amp;amp;amp;lt;/groupId&amp;amp;amp;gt; &amp;_/v2/api-docs?group=

useragent 全集 firefox插件 useragetn switch 使用_火狐useragent插件-程序员宅基地

文章浏览阅读1.6w次。一个大型的、定期更新进口可用的用户代理列表:http://techpatterns.com/forums/about304.html _火狐useragent插件

推荐文章

热门文章

相关标签