RHCE 学习笔记(31) - 防火墙 (上)

这一节内容比较多,主要是学习firewalld的使用和配置。

学习firewalld之前,先简单的看看另外一个工具 tcp wrapper。这个是一个基于主机的访问控制系统,他一般作为防火墙的一个补充和加强。一些简单的服务访问控制,通过tcp wrapper很容易就实现了。

红帽有个官方文档可以查看详细的解释和实例

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-TCP_Wrappers_and_xinetd-TCP_Wrappers_Configuration_Files.html

简单的说,配置文件有两个 /etc/hosts.allow 和 /etc/hosts.deny

从名字都猜的出来,放在allow里面的设定默认就是允许的; 放在deny里面默认就是拒绝的;如果两者的设定都不满足或者都没配置,那服务默认也是允许的。

基本格式是

daemon1,daemon2, daemon3.. : client1, client2, client3.. : option1, option2,..

如果觉得麻烦,在任何一个文件里面,明确的表明 allow 或者 deny也是可以的。比如,我可以在hosts.allow 文件里面做以下定义,拒绝来自172.0.10.223的ssh请求

测试看看,果然被拒绝了。

把deny去掉或者改成 allow也行

再试试看,又可以连接了

不过不是所有的服务都可以用tcp wrapper来实现的,只有连接了libwrap模块的daemon才可以。

比如 httpd就没有

但是sshd就可以

接下来看看重头戏,firewalld的使用。从RHEL7里面,默认的防火墙不再是iptables,而是firewalld,尽管他的底层还是iptables。

他们的区别和关系可以参考

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html

firewalld的一个最大的优点是任何改动实时生效,因为他只对变化的部分做了修改;而iptables是重新创建所有的rule,因此会断掉当前的连接。

下面主要学习一下图形界面和命令行界面的使用。

系统自带了一堆防火墙软件,他们可能会彼此冲突,因此把不用的都mask掉吧

firewalld里面图形界面可以用frewall-config 打开,命令行可以通过 firewall-cmd来实现。

首先看看图形界面

里面有很多选项,我们把每一个功能都过一遍。

首先看看左边的一列Zone。 zone 本意是区域的意思,这些不同的Zone可以理解为不同的“安检通道”,每个“安检通道”预先定义了一系列的不同的安全策略。一个网卡只能绑定到一个“安检通道”,即一个Zone里面。

每个zone右边对应了一堆功能,分别是服务,端口,伪装,端口转发,ICMP过滤,富规则,端口和源。

服务选项里面,勾上的表示允许的服务。不同的zone默认勾上的服务是不同的。

比如说 dmz 默认只允许 ssh 服务访问;home允许更多的服务例如samba-client,dhcpv6等等,而trusted 允许所有的服务访问,即使这个服务没有勾选上。

下面看看命令行如何处理Zone

我们可以获取(get)所有zone 的信息,但是不能自己创建一个新的zone,图形工具也没有选项可以创建

可以利用tab来获取哪些命令,get有很多,但是set只有一个

查看一下zone 的选项

看看默人的zone是啥

我们可以手动改成home

修改完之后home zone就被自动加粗加黑了

下面看看如何修改服务

服务自己对应了1个或者多个相关的端口,这些都是预定义好的。如果开放了某个服务,那么对应的所有端口都会打开。

命令行查看一下有哪些服务

图形界面下配置服务很简单,直接勾选就是了

例如目前我是可以远程的访问172.0.10.206的http服务的。这个是我前面做KickStart的时候配置的服务。

这个时候在172.0.10.206上 http服务是勾选的,如果我去掉他

那么远端的服务器就无法访问了

那么命令行里如何判断一个服务是否打开了呢,可以使用query命令,query命令很多,查询服务用 query-service就行了

no就表示服务关掉了

把这个服务加上,确认成功

打开图形界面看看,已经勾上了

但是如果把左上角的 Configuration从 runtime改成 permanent,发现还是没有勾上,这表明这个服务只是暂时生效,重启就没了

确认一下区别

配置的时候加上 --permanent就永久生效了

时间: 2025-01-12 09:58:06

RHCE 学习笔记(31) - 防火墙 (上)的相关文章

RHCE学习笔记31——防火墙的使用与配置

一.RHEL7中的防火墙类型 以下防火墙只能同时使用一张: firewalld:默认 iptables:RHEL6使用 ip6tables ebtables 二.防火墙的配置方式 一.图形化配置 使用firewall-config 二.命令行

学习笔记:Caffe上配置和运行MNIST

学习笔记:Caffe上配置和运行MNIST MNIST,一个经典的手写数字库,包含60000个训练样本和10000个测试样本,图片大小28*28,在Caffe上配置的第一个案例 1首先,获取minist的数据包. 这个版本是四个数据包cd $CAFFE_ROOT./data/mnist/get_mnist.sh [html] view plaincopy #!/usr/bin/env sh # This scripts downloads the mnist data and unzips it

学习笔记:Caffe上LeNet模型理解

学习笔记:Caffe上LeNet模型理解 Caffe中用的模型结构是著名的手写体识别模型LeNet-5(http://yann.lecun.com/exdb/lenet/a35.html).当年美国大多数银行就是用它来识别支票上面的手写数字的.能够达到这种商用的地步,它的准确性可想而知,唯一的区别是把其中的sigmoid激活函数换成了ReLU. 为什么换成ReLU,上一篇blog中找到了一些相关讨论,可以参考. CNN的发展,关键就在于,通过卷积(convolution http://deepl

C++学习笔记31,指向引用的指针(3)

我们来看一个简单的指向引用的指针的例子. #include <iostream> using namespace std; int main(){ int x=10; int y=20; int &rtx=x; //不要写成了int& *ptrx=&rtx; //因为rtx的本质是一个int int *ptrx=&rtx; *ptrx=15; ptrx=&y; rtx=y; cin.get(); } 依次单步执行:(注意rtx值的变化和ptrx的变化)

学习笔记_springmvc文件上传和拦截器

文件上传 用到这两个包 配置视图解析器:springmvc配置文件配置 <!-- id必须要是"multipartResolver" --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- maxUploadSize文件上传的最大值,单位是byte

老男孩视频第一部前面的部分学习笔记(在51cto上听的)

如何才能学好Linux运维 学习运维需要计算机基础,版本的选择我选择:centos 学习Linux运维四项基本原则 需要刻苦勤奋,持之以恒  入门比较难 Linux运维需要很多的知识,不但学习Linux操作本身还得学好周边的知识. 学好Linux运维四要素: 1.设定目标,是学好Linux运维的关键所在 2.寻找方法 通过书藉学习--阅读,实践,总结,和网友讨论:然后再阅读,再实践,再总结                 如何请教别人帮助自己--寻找帮忙                 3.勤奋

学习笔记:Caffe上配置和运行Cifar10的示例

学习笔记:Caffe上配置和运行Cifar10的示例 CIFAR-10数据集含有6万个32*32的彩色图像,共分为10种类型,由 Alex Krizhevsky, Vinod Nair和 Geoffrey Hinton收集而来.包含50000张训练图片,10000张测试图片 http://www.cs.toronto.edu/~kriz/cifar.html 数据集的数据存在一个10000*3072 的 numpy数组中,单位是uint8s,3072是存储了一个32*32的彩色图像.(3072=

RHCE 学习笔记(38 ) - Shell

Shell脚本的参考书从基础到高级可以找几百本出来,豆子这里过为了整个学习笔记的完整性,还是厚颜把最最基本的语法回顾一遍.最基本包括变量,比较,运算符,条件语句,循环语句. 变量分为本地变量,环境变量,位置变量 首先看看本地变量, 变量名=值的方式赋值,不过只在当前的shell里面有效 比如,子shell里面就无法识别了 可以通过export的方式配置环境变量,这样子shell里面也可以识别 不过上面的配置只是临时生效,重启就没了 可以通过修改配置文件的方式永久生效.登录家目录的时候,会自动加载

Javaweb学习笔记10—文件上传与下载

 今天来讲javaweb的第10阶段学习.文件的上传与下载,今天主要说的是这个功能的实现,不用说了,听名字就是外行人也知道肯定很重要啦. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多 一*, 文件的上传:      1 *分析实现步骤: 1.1* 客户端浏览器通过文件域选择本地要上传的文件. * 点击"上传"按钮

CoAP学习笔记——STM32平台上实现CoAP Server

0.前言 CoAP是受限制的应用协议(Constrained Application Protocol)的代名词.在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的.但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求.为了让小设备可以接入互联网,CoAP协议被设计出来.CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上.CoAP协议非常小巧,最小的数据包仅为4字节. 本文将使用STM32平台实现一个CoAP Server D