Linux系统——防火墙

一、防火墙的认识

引言

安全技术

  • 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式。
  • 入侵防御系统(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)
  • 防火墙( FireWall ):隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中.

广泛意义上的防水墙:防水墙(Waterwall),与防火墙相对,是一种防止内部信息泄漏的安全产品。   网络、外设接口、存储介质和打印机构成信息泄漏的全部途径。防水墙针对这四种泄密途径,在事前、事  中、事后进行全面防护。其与防病毒产品、外部安全产品一起构成完整的网络安全体系。

1.防火墙定义

隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中。

简单理解为是筛选和过滤流量,对需要的流量进行放行,对不需要或者有威胁的流量进行拒绝

2.防火墙分类

保护范围划分:

  • 主机防火墙:服务范围为当前一台主机
  • 网络防火墙:服务范围为防火墙一侧的局域网

实现方式划分:

  • 硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint, NetScreen(Juniper2004年40亿美元收购)等
  • 软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront

网络协议划分:

  • 网络层防火墙:OSI模型下四层,又称为包过滤防火墙(协议端口号  ip  mac)
  • 应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层

防火墙是一个解包和重新装包的过程

包过滤防火墙

网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素,或他们的组合来确定是否 允许该数据包通过

  • 优点:对用户来说透明,处理速度快且易于维护
  • 缺点:无法检查应用层数据,如病毒等

应用层防火墙

应用层防火墙/代理服务型防火墙,也称为代理服务器(Proxy Server)

将所有跨越防火墙的网络通信链路分为两段

内外网用户的访问都是通过代理服务器上的“链接”来实现优点:在应用层对数据进行检查,比较安全

  • 缺点:增加防火墙的负载
  • 提示:现实生产环境中所使用的防火墙一般都是二者结合体,即先检查网络数据,通过之后再送到应用 层去检查

二、Linux系统防火墙

1.Netfilter

Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中

Netfilter 是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作

Netfilter官网文档:https://netfilter.org/documentation/

2.防火墙工具介绍

2.1iptables

由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包

2.2firewalld

从CentOS 7 版开始引入了新的前端管理工具

软件包

  • firewalld
  • firewalld-config

管理工具

  • firewall-cmd 命令行工具
  • firewall-config 图形工作

2.3nftables

  • 此软件是CentOS 8 新特性,Nftables最初在法国巴黎的Netfilter Workshop 2008上发表,然后由长期的netfilter核心团队成员和项目负责人Patrick McHardy于2009年3月发布。它在2013年末合并到Linux内核中,自2014年以来已在内核3.13中可用。
  • 它重用了netfilter框架的许多部分,例如连接跟踪和NAT功能。它还保留了命名法和基本iptables设计的几个部分,例如表,链和规则。就像iptables一样,表充当链的容器,并且链包含单独的规则,这些规则可以执行操作,例如丢弃数据包,移至下一个规则或跳至新链。从用户的角度来看,nftables添加了一个名为nft的新工具,该工具替代了iptables,arptables和ebtables中的所有其他工具。从体系结构的角度来看,它还替换了内核中处理数据包过滤规则集运行时评估的那些部分。

2.4netfilter的五个勾子函数和报文流向

2.4.1五个勾子
  • Netfilter在内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规则。
  • 由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上
  • 提示:从 Linux kernel 4.2 版以后,Netfilter 在prerouting 前加了一个 ingress 勾子函数。可以使用这个新的入口挂钩来过滤来自第2层的流量,这个新挂钩比预路由要早,基本上是 tc 命令(流量控制工具)的替代品。

链chain:

内置链:每个内置链对应于一个勾子函数

自定义链:用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有Hook勾子可以调用,用自定义链使才生效。 

2.4.2三种报文流向

内核中数据包传输过程

  1. 当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要 转送出去
  2. 如果数据包是进入本机的,数据包就会沿着图向上移动,到达INPUT链。数据包到达INPUT链后, 任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后到达postrouting
  3. 如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出

三种报文流向

  • 流入本机:PREROUTING --> INPUT-->用户空间进程(访问我的服务)
  • 流出本机:用户空间进程 -->OUTPUT--> POSTROUTING(穿过我)
  • 转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量)

用户空间进程:例如,用户通过http协议来访问我的80端口,实际上访问我的httpd服务 

3.iptables

3.1iptables概述

Linux 的防火墙体系主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux 系统的防火墙体系基于内核编码实现, 具有非常稳定的性能和高效率,也因此获得广泛的应用。

3.2iptables和netfilter

netfilter/iptables:IP 信息包过滤系统,它实际上由两个组件 netfilter 和 iptables组成。 主要工作在网络层,针对IP数据包,体现在对包内的IP地址、端口等信息的处理。

netfilter

  • 位于Linux内核中的包过滤功能体系
  • 称为Linux防火墙的“内核态”

属于“内核态”又称内核空间(kernel space)的防火墙功能体系。linux 好多东西都是内核态 用户态,那我们运维人员关注的是用户态, 内核我们关注不是很多,内核基本是我们开发人员关心的事情是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables :

  • 位于/sbin/iptables,用来管理防火墙规则的工具
  • 称为Linux防火墙的“用户态”

属于“用户态”(User Space, 又称为用户空间)的防火墙管理体系。是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。 netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙,其中内置了raw、mangle、 nat和filter四个规则表。表中所有规则配置后,立即生效,不需要重启服务。

3.3包过滤的工作层次

  • 主要是网络层,针对IP数据包
  • 体现在对包内的IP地址、端口等信息的处理上

4.iptables的表、链结构——四表五链(实际为五表五链)

4.1规则表

  • 表的作用:容纳各种规则链
  • 表的划分依据:防火墙规则的作用相似
4.1.1规则表内容
  • raw表:确定是否对该数据包进行状态跟踪(关闭启用的连接跟踪机制,加快封包穿越防火墙速度)
  • mangle表:为数据包设置标记(修改数据标记位规则表)
  • nat(network address translation)表:修改数据包中的源、目标IP地址或端口
  • filter:确定是否放行该数据包(过滤规则表根据定义的规则过滤符合条件的数据包,默认表)
  • security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SElinux)实现

总结:

raw 跟踪数据包mangle 标记数据包nat 地址转换(公网私网地址转换);filter 地址过滤(允许/拒绝) 

security  >  raw  >  mangle  >  nat  >filter 

4.2规则链

  • 规则的作用:对数据包进行过滤或处理
  • 链的作用:容纳各种防火墙规则
  • 链的分类依据:处理数据包的不同时机
4.2.1规则链内容
  • INPUT:处理入站数据包
  • OUTPUT:处理出站数据包
  • FORWARD:处理转发数据包
  • POSTROUTING:在进行路由选择后处理数据包
  • PREROUTING:在进行路由选择前处理数据包

总结:

INPUT 入站数据OUTPUT 出站数据FORWARD 转发数据POSTROUTING 路由选择后PREROUTING 路由选择前

iptables由五个表table和五个链chain以及一些规则组成

raw:主要用来决定是否对数据包进行状态跟踪 包含两个规则链,OUTPUT、PREROUTING

mangle : 修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT、 OUTPUT、 FORWARD、 PREROUTING、 POSTROUTING

nat:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、PREROUTING、POSTROUTING。

filter:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个链,即PREROUTING、POSTROUTING、OUTPUT

注:在iptables 的四个规则表中,mangle 表 和raw表的应用相对较少

INPUT: 处理入站数据包,匹配目标IP为本机的数据包。

  • OUTPUT: 处理出站数据包,一般不在此链上做配置。
  • FORWARD: 处理转发数据包,匹配流经本机的数据包。
  • PREROUTING链: 在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口映射到路由器的外网IP和端口上。
  • POSTROUTING链: 在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址上网。

5.实际操作

CentOS7默认使用firewalld防火墙,没有安装iptables,若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables

5.1前提准备工作

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#yum -y install iptables iptables-services
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * epel: mirror.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.nju.edu.cn
软件包 iptables-1.4.21-35.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 iptables-services.x86_64.0.1.4.21-35.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=============================================================================
 Package                 架构         版本                  源          大小
=============================================================================
正在安装:
 iptables-services       x86_64       1.4.21-35.el7         base        52 k

事务概要
=============================================================================
安装  1 软件包

总下载量:52 k
安装大小:23 k
Downloading packages:
iptables-services-1.4.21-35.el7.x86_64.rpm              |  52 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : iptables-services-1.4.21-35.el7.x86_64                   1/1 
  验证中      : iptables-services-1.4.21-35.el7.x86_64                   1/1 

已安装:
  iptables-services.x86_64 0:1.4.21-35.el7                                   

完毕!
[root@localhost ~]#systemctl status iptables.service 
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@localhost ~]#systemctl start iptables.service 
[root@localhost ~]#systemctl status iptables.service 
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
   Active: active (exited) since 四 2024-02-01 14:51:09 CST; 1s ago
  Process: 3274 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
 Main PID: 3274 (code=exited, status=0/SUCCESS)

2月 01 14:51:09 localhost.localdomain systemd[1]: Starting IPv4 firewall ...
2月 01 14:51:09 localhost.localdomain iptables.init[3274]: iptables: Appl… ]
2月 01 14:51:09 localhost.localdomain systemd[1]: Started IPv4 firewall w...
Hint: Some lines were ellipsized, use -l to show in full.

5.2基本语法

iptables    [ -t 表名 ]    管理选项    [ 链名 ]    [ 匹配条件 ]    [ -j 控制类型 ]

其中,表名、链名用来指定 iptables 命令所操作的表和链,未指定表名时将默认使用 filter 表;

  • 管理选项:表示iptables规则的操作方式,如插入、增加、删除、查看等;
  • 匹配条件:用来指定要处理的数据包的特征,不符合指定条件的数据包将不会处理;
  • 控制类型指的是数据包的处理方式,如允许、拒绝、丢弃等。 

注意事项

  • 不指定表名时,默认指filter表
  • 不指定链名时,默认指表内的所有链
  • 除非设置链的默认策略,否则必须指定匹配条件
  • 选项、链名、控制类型使用大写字母,其余均为小写

iptables 指定表(-t filter/-t nat) 如何在链中插入规则  指定链(-A INPUT)条件/规则(-s 192.168.0.1 -j DROP)

  • -t filter 指定表;默认是filter
  • A append 附加  在末尾追加
  • I  插队  I 2表示第二条规则;I默认排在第一条
  • -s 规则
  • -j 跳转

5.3数据包的常见控制类型

对于防火墙,数据包的控制类型非常关键,直接关系到数据包的放行、封堵及做相应的日志记录等。在 iptables 防火墙体系中,最常用的几种控制类型如下

选项定义
ACCEPT允许数据包通过
DROP直接丢弃数据包,不会做任何回应
REJECT拒绝数据包通过,必要时会给数据发送端一个响应信息
LOG在/var/log/message 文件中记录日志信息,然后将数据包传递给下一条视频
SNAT修改数据包的源地址
DNAT修改数据包的目的地址
MASQUERADE伪装成一个非固定公网IP地址

防火墙规则的“匹配即停止”对于 LOG 操作来说是一个特例,因为 LOG 只是一种辅助 动作,并没有真正处理数据包。;

控制类型必须使用大写!!!

5.4管理选项

选项用法详解
-A在指定链末尾追加一条 iptables -A INPUT (操作)
-I在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT (操作)
-P指定默认规则 iptables -P OUTPUT ACCEPT (操作)
-D删除 iptables -t nat -D INPUT 2 (操作)
-p服务名称 icmp tcp
-R修改、替换某一条规则 iptables -t nat -R INPUT (操作)
-L查看 iptables -t nat -L (查看)
-n所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名) iptables -L -n,iptables -nL,iptables -vnL (查看)
-v查看时显示更详细信息,常跟-L一起使用 (查看)
--line-number规则带编号 iptables -t nat -L -n --line-number /iptables -t nat -L --line-number
-F清除链中所有规则 iptables -F (操作)
-N新加自定义链
-X清空自定义链的规则,不影响其他链 iptables -X
-Z清空链的计数器(匹配到的数据包的大小和总和)iptables -Z
-S看链的所有规则或者某个链的规则/某个具体规则后面跟编号
5.4.1-A 添加新的防火墙规则

清空防火墙规则

当前无任何防火墙规则

当前192.168.241.22主机还可以ping通192.168.241.11主机

添加一条防火墙规则,不允许任何主机通过icmp协议ping本机

此时,无法通过icmp协议通过ping来检测与192.168.241.11主机的网络连通性 

5.4.2查看防火墙规则

查看已有的防火墙规则时,使用管理选项“-L”,结合“--line-numbers”选项还可显示各条规则在链内的顺序号。例如,若要查看 filter 表 INPUT 链中的所有规则,并显示规则序号, 可以执行以下操作

-v详细信息;-t查看nat表;-n规则数字化显示 

5.4.3删除清空替换规则
清空规则

清空指定链或表中的所有防火墙规则,使用管理选项“-F”。例如,若要清空 filter 表 INPUT  

删除规则 -D

替换规则

注意:

  • 若规则列表中有多条相同的规则时,按内容匹配只删除的序号最小的一条
  • 按号码匹配删除时,确保规则号码小于等于已有规则数,否则报错
  • 按内容匹配删数时,确保规则存在,否则报错
5.4.4设置默认策略

iptables 的各条链中,默认策略是规则匹配的最后一个环节——当找不到任何一条能够匹配数据包的规则时,则执行默认策略。默认策略的控制类型为 ACCEPT(允许)、DROP(丢弃)两种。例如,执行以下操作可以将 filter 表中 FORWARD 链的默认策略设为丢弃, OUTPUT 链的默认策略设为允许。

iptables   [-t表名]   -P    <链名>    <控制类型>

设置只有192.168.241.11的主机可以接受登录

如果输入该命令,则拒绝所有192.168.241.0网段的主机连接

 会生成如下情况

解决办法,进入真机查看防火墙规则

在真机插入一条防火墙规则,置于拒绝规则之前 

插播  如果一直删除第三条规则,最后只会留下两条规则

Xshell是通过真机来使用的,所以要把本机的ip添加进去,使得真机被接受通过 

Xshell连接成功

需要注意的是,当使用管理选项“-F”清空链时,默认策略不受影响。因此若要修改默认 策略,必须通过管理选项“-P”重新进行设置。另外,默认策略并不参与链内规则的顺序编排, 因此在其他规则之前或之后设置并无区别。

白名单

-P设置默认规则为DROP   拒绝之后  会拒绝所有连接

如果在生产环境中建议使用这个白名单,白名单要放在所有规则之后;

如果想设置白名单,默认拒绝所有之前,先把自己加进来

先设置自己的地址进来,接收真机的地址 

然后设置白名单 所有的流量都拒绝  此时看到不会影响Xshell的连接

默认白名单

5.5语法总结

iptablestablecommandchainparametertarget
-t filter

-A
-D
-I
-R
-L
-F

-Z

-N
-X
-P

INPUT

FORWARD

OUTPUT

PREROUTING

POSTROUTING

-p

-s

-d

-i

-o

--sport

--dport

-j ACCEPT

-j DROP

-j REJECT

6.通用匹配

  • 直接使用:不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件
  • 协议匹配: -p协议名
  • 地址匹配: -s 源地址、-d目的地址
  • 接口匹配: -i入站网卡、-o出站网卡  

6.1不允许另一台主机通过icmp协议来ping本机

准备工作,目前192.168.241.22可以通过icmp协议来ping通192.168.241.11

设置拒绝192.168.241.22主机通过icmp协议来ping本机

此时看到192.168.241.22主机无法通过icmp协议来ping192.168.241.11主机

但是通过ssh命令可以连接本机

7.模块

.so结尾的均为模块,也就是说在使用配置防护墙规则的时候,调用的是.so结尾的配置文件 

如果想禁用tco协议防火墙配置,那么必须要有tcp模块才可以使用限制功能

7.1隐含扩展

  • iptables 在使用-p选项指明了特定的协议时,无需再用-m选项指明扩展模块的扩展机制,不需要手动加载扩展模块
  • 要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件。 端口匹配: --sport 源端口、--dport 目的端口(可以是个别端口、端口范围)
[root@localhost ~]#man iptables-extensions

隐含扩展可以通过man iptables-extension查看扩展帮助

  • --source-port,--source port[:port]     可为报文源端口,可为端口连续范围
  • --destination-port,--dport port[:port]   匹配报文目标端口,可为连续范围
  • --tcp-flags mask comp(mask 需检查的标志位列表,用","分隔;例如SYN ACK FIN RST等。comp 在mask列表中必须为1的标志位列表,无指定则必须为0,用“,”分隔tcp协议的扩展选项)

--tcp-flags SYN,ACK,FIN,RST SYN 表示要检查的标志位为SYN,ACK,FIN,RST四个,其中SYN必须为1,余下的必须为0,第一次握手;

--tcp-flags SYN,ACK,FIN,RST SYN,ACK 第二次握手。——错误包

  • --tcp-flags ALL ALL  
  • --tcp_flags ALL NONE
  • --sport 1000              匹配源端口是1000的数据包
  • --sport 1000:3000     匹配源端口是1000-3000的数据包
  • --sport :3000             匹配源端口是3000及以下的数据包
  • --sport 1000:             匹配源端口是1000及以上的数据包

注意: --sport和--dport 必须配合-p <协议类型>使用

(dport目的;sport源目的)

7.1.1实验 控制目的主机  不想让其访问本机的httpd服务
192.168.241.11主机操作 
[root@localhost ~]#rpm -q httpd
未安装软件包 httpd 
[root@localhost ~]#yum install httpd -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.nju.edu.cn
 * epel: mirror.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.nju.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-99.el7.centos.1 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-99.el7.centos.1,它被软件包 httpd-2.4.6-99.el7.centos.1.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-99.el7.centos.1.x86_64 需要
--> 正在处理依赖关系 libaprutil-1.so.0()(64bit),它被软件包 httpd-2.4.6-99.el7.centos.1.x86_64 需要
--> 正在处理依赖关系 libapr-1.so.0()(64bit),它被软件包 httpd-2.4.6-99.el7.centos.1.x86_64 需要
--> 正在检查事务
---> 软件包 apr.x86_64.0.1.4.8-7.el7 将被 安装
---> 软件包 apr-util.x86_64.0.1.5.2-6.el7_9.1 将被 安装
---> 软件包 httpd-tools.x86_64.0.2.4.6-99.el7.centos.1 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=============================================================================
 Package          架构        版本                        源            大小
=============================================================================
正在安装:
 httpd            x86_64      2.4.6-99.el7.centos.1       updates      2.7 M
为依赖而安装:
 apr              x86_64      1.4.8-7.el7                 base         104 k
 apr-util         x86_64      1.5.2-6.el7_9.1             updates       92 k
 httpd-tools      x86_64      2.4.6-99.el7.centos.1       updates       94 k
 mailcap          noarch      2.1.41-2.el7                base          31 k

事务概要
=============================================================================
安装  1 软件包 (+4 依赖软件包)

总下载量:3.0 M
安装大小:10 M
Downloading packages:
(1/5): httpd-tools-2.4.6-99.el7.centos.1.x86_64.rpm     |  94 kB   00:00     
(2/5): apr-1.4.8-7.el7.x86_64.rpm                       | 104 kB   00:00     
(3/5): apr-util-1.5.2-6.el7_9.1.x86_64.rpm              |  92 kB   00:00     
(4/5): mailcap-2.1.41-2.el7.noarch.rpm                  |  31 kB   00:00     
(5/5): httpd-2.4.6-99.el7.centos.1.x86_64.rpm           | 2.7 MB   00:01     
-----------------------------------------------------------------------------
总计                                            2.7 MB/s | 3.0 MB  00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : apr-1.4.8-7.el7.x86_64                                   1/5 
  正在安装    : apr-util-1.5.2-6.el7_9.1.x86_64                          2/5 
  正在安装    : httpd-tools-2.4.6-99.el7.centos.1.x86_64                 3/5 
  正在安装    : mailcap-2.1.41-2.el7.noarch                              4/5 
  正在安装    : httpd-2.4.6-99.el7.centos.1.x86_64                       5/5 
  验证中      : httpd-2.4.6-99.el7.centos.1.x86_64                       1/5 
  验证中      : mailcap-2.1.41-2.el7.noarch                              2/5 
  验证中      : apr-1.4.8-7.el7.x86_64                                   3/5 
  验证中      : httpd-tools-2.4.6-99.el7.centos.1.x86_64                 4/5 
  验证中      : apr-util-1.5.2-6.el7_9.1.x86_64                          5/5 

已安装:
  httpd.x86_64 0:2.4.6-99.el7.centos.1                                       

作为依赖被安装:
  apr.x86_64 0:1.4.8-7.el7                                                   
  apr-util.x86_64 0:1.5.2-6.el7_9.1                                          
  httpd-tools.x86_64 0:2.4.6-99.el7.centos.1                                 
  mailcap.noarch 0:2.1.41-2.el7                                              

完毕!
[root@localhost ~]#systemctl start httpd
[root@localhost ~]#systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 四 2024-02-01 18:46:41 CST; 3s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 7938 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─7938 /usr/sbin/httpd -DFOREGROUND
           ├─7939 /usr/sbin/httpd -DFOREGROUND
           ├─7940 /usr/sbin/httpd -DFOREGROUND
           ├─7941 /usr/sbin/httpd -DFOREGROUND
           ├─7942 /usr/sbin/httpd -DFOREGROUND
           └─7943 /usr/sbin/httpd -DFOREGROUND

2月 01 18:46:41 localhost.localdomain systemd[1]: Starting The Apache HTT...
2月 01 18:46:41 localhost.localdomain httpd[7938]: AH00558: httpd: Could ...
2月 01 18:46:41 localhost.localdomain systemd[1]: Started The Apache HTTP...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#iptables -A INPUT -p tcp --dport 80 -j REJECT 
#拒绝任何主机通过tcp协议来连接本机的80端口的httpd服务
[root@localhost ~]#iptables -A INPUT -p tcp --dport 22 -j REJECT 
#拒绝任何主机通过tcp协议来连接22端口
192.168.241.22主机操作 
[root@node2 ~]#curl 192.168.241.11:80
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<title>Apache HTTP Server Test Page powered by CentOS</title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <!-- Bootstrap -->
    <link href="/noindex/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="noindex/css/open-sans.css" type="text/css" />

<style type="text/css"><!--		 

body {
  font-family: "Open Sans", Helvetica, sans-serif;
  font-weight: 100;
  color: #ccc;
  background: rgba(10, 24, 55, 1);
  font-size: 16px;
}

h2, h3, h4 {
  font-weight: 200;
}

h2 {
  font-size: 28px;
}

.jumbotron {
  margin-bottom: 0;
  color: #333;
  background: rgb(212,212,221); /* Old browsers */
  background: radial-gradient(ellipse at center top, rgba(255,255,255,1) 0%,rgba(174,174,183,1) 100%); /* W3C */
}

.jumbotron h1 {
  font-size: 128px;
  font-weight: 700;
  color: white;
  text-shadow: 0px 2px 0px #abc,
               0px 4px 10px rgba(0,0,0,0.15),
               0px 5px 2px rgba(0,0,0,0.1),
               0px 6px 30px rgba(0,0,0,0.1);
}

.jumbotron p {
  font-size: 28px;
  font-weight: 100;
}

.main {
   background: white;
   color: #234;
   border-top: 1px solid rgba(0,0,0,0.12);
   padding-top: 30px;
   padding-bottom: 40px;
}

.footer {
   border-top: 1px solid rgba(255,255,255,0.2);
   padding-top: 30px;
}

    --></style>
</head>
<body>
  <div class="jumbotron text-center">
    <div class="container">
   	  <h1>Testing 123..</h1>
  		<p class="lead">This page is used to test the proper operation of the <a href="http://apache.org">Apache HTTP server</a> after it has been installed. If you can read this page it means that this site is working properly. This server is powered by <a href="http://centos.org">CentOS</a>.</p>
		</div>
  </div>
  <div class="main">
    <div class="container">
       <div class="row">
  			<div class="col-sm-6">
    			<h2>Just visiting?</h2>
			  		<p class="lead">The website you just visited is either experiencing problems or is undergoing routine maintenance.</p>
  					<p>If you would like to let the administrators of this website know that you've seen this page instead of the page you expected, you should send them e-mail. In general, mail sent to the name "webmaster" and directed to the website's domain should reach the appropriate person.</p>
  					<p>For example, if you experienced problems while visiting www.example.com, you should send e-mail to "webmaster@example.com".</p>
	  			</div>
  				<div class="col-sm-6">
	  				<h2>Are you the Administrator?</h2>
		  			<p>You should add your website content to the directory <tt>/var/www/html/</tt>.</p>
		  			<p>To prevent this page from ever being used, follow the instructions in the file <tt>/etc/httpd/conf.d/welcome.conf</tt>.</p>

	  				<h2>Promoting Apache and CentOS</h2>
			  		<p>You are free to use the images below on Apache and CentOS Linux powered HTTP servers.  Thanks for using Apache and CentOS!</p>
				  	<p><a href="http://httpd.apache.org/"><img src="images/apache_pb.gif" alt="[ Powered by Apache ]"></a> <a href="http://www.centos.org/"><img src="images/poweredby.png" alt="[ Powered by CentOS Linux ]" height="31" width="88"></a></p>
  				</div>
	  		</div>
	    </div>
		</div>
	</div>
	  <div class="footer">
      <div class="container">
        <div class="row">
          <div class="col-sm-6">          
            <h2>Important note:</h2>
            <p class="lead">The CentOS Project has nothing to do with this website or its content,
            it just provides the software that makes the website run.</p>
            
            <p>If you have issues with the content of this site, contact the owner of the domain, not the CentOS project. 
            Unless you intended to visit CentOS.org, the CentOS Project does not have anything to do with this website,
            the content or the lack of it.</p>
            <p>For example, if this website is www.example.com, you would find the owner of the example.com domain at the following WHOIS server:</p>
            <p><a href="http://www.internic.net/whois.html">http://www.internic.net/whois.html</a></p>
          </div>
          <div class="col-sm-6">
            <h2>The CentOS Project</h2>
            <p>The CentOS Linux distribution is a stable, predictable, manageable and reproduceable platform derived from 
               the sources of Red Hat Enterprise Linux (RHEL).<p>
            
            <p>Additionally to being a popular choice for web hosting, CentOS also provides a rich platform for open source communities to build upon. For more information
               please visit the <a href="http://www.centos.org/">CentOS website</a>.</p>
          </div>
        </div>
		  </div>
    </div>
  </div>
</body></html>
[root@node2 ~]#curl 192.168.241.11:80
curl: (7) Failed connect to 192.168.241.11:80; Connection refused
#此时无法登录192.168.241.11主机的httpd服务,但是还可以通过ssh进行连接192.168.241.11主机
#如果想断掉ssh服务 需要在192.168.241.11主机再新加一条规则
[root@node2 ~]#ssh 192.168.241.11
The authenticity of host '192.168.241.11 (192.168.241.11)' can't be established.
ECDSA key fingerprint is SHA256:k/dmSIE+ic90gNaqecVvZT0PdW+9hJf9EwJQDXY1f7w.
ECDSA key fingerprint is MD5:e1:61:2b:5d:fe:10:a9:72:1f:c2:7e:2b:5b:51:f4:7c.
Are you sure you want to continue connecting (yes/no)? ^C
#将192.168.241.11主机的规则新加入后   此时无法通过ssh命令通过22端口进行远程连接192.168.241.11主机
[root@node2 ~]#ssh 192.168.241.11
ssh: connect to host 192.168.241.11 port 22: Connection refused

如果想设置拒绝22-80所有端口

7.1.2如何实现主机1可以ping主机2,但是主机2无法ping主机1

实验开始前,双方可以互相ping

添加规则之后,双方不能互相ping

通过控制INPUT icmp协议 拒绝192.168.241.22的8包

此时主机1可以ping通主机2  主机2ping不通主机1 

如果再修改OUTPUT 拒绝192.168.241.22的0包

也是可以使主机2无法向主机1回包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/363894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

假期刷题打卡--Day20

1、MT1173魔数 一个数字&#xff0c;把他乘以二&#xff0c;会得到一个新的数字&#xff0c;如果这个新数字依然由原数中那些数字组成&#xff0c;就称原数为一个魔数。输入正整数N&#xff0c;检查它是否是一个魔数&#xff0c;输出YES或者NO。 格式 输入格式&#xff1a; …

SpringBoot RestTemplate 设置挡板

项目结构 代码 BaffleConfig /*** Description 记录配置信息* Author wjx* Date 2024/2/1 14:47**/ public interface BaffleConfig {// 是否开启挡板的开关public static boolean SWITCH true;// 文件根目录public static String ROOT_PATH "D:\\TIS\\mock";// …

ElementUI Form:Select 选择器

ElementUI安装与使用指南 Select 选择器 点击下载learnelementuispringboot项目源码 效果图 el-select.vue&#xff08;Select选择器&#xff09;页面效果图 项目里el-select.vue代码 <script> export default {name: el_select,data() {return {options: [{value…

LeetCode刷题:使用栈解决150. 逆波兰表达式求值

给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&#xff09;都可以是一个整数或者另一个表达式。两个…

泰迪智能科技大模型微调项目训练营已开营

泰迪智能科技大模型微调项目训练营开营 跟张良均老师学大数据人工智能 项目一&#xff1a;医疗诊疗对话意图识别 项目二&#xff1a;中医问答系统 项目三&#xff1a;某平台股票评论情感识别 学习流程&#xff1a; 项目一&#xff1a;医疗诊疗对话…

validator 对象校验,自定义校验实现

一、导入validator工具需要的jar包 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.1.0.Final</version></dependency><dependency><groupId>javax.valid…

SketchBook 2022下载安装教程,保姆级教程,操作简单,小白也能轻松搞定,附安装包和工具

前言 Autodesk SketchBook是一款新一代的自然画图软件&#xff0c;软件界面新颖动人&#xff0c;功能强大&#xff0c;仿手绘效果逼真&#xff0c;笔刷工具分为铅笔&#xff0c;毛笔&#xff0c;马克笔&#xff0c;制图笔&#xff0c;水彩笔&#xff0c;油画笔&#xff0c;喷枪…

原来你的Windows自带沙盒功能!

什么是Windows沙盒&#xff1f; Windows沙盒是一种虚拟化技术&#xff0c;允许用户在安全隔离的环境中运行不受信任的应用程序。它是Windows 10操作系统的一个特性&#xff0c;旨在提高系统的安全性&#xff0c;防止潜在的威胁对主系统造成影响。 启用Windows沙盒 确保系统满…

【TCP】流量控制和拥塞控制

前言 TCP&#xff08;传输控制协议&#xff09;是互联网协议&#xff08;IP&#xff09;网络传输层协议&#xff0c;负责控制数据包的顺序和流量控制&#xff0c;以防止网络拥塞和数据丢失。TCP流量控制和拥塞控制是确保网络有效通信的重要机制。具体分析如下&#xff1a; 流…

单细胞scRNA-seq测序基础知识笔记

单细胞scRNA-seq测序基础知识笔记 scRNA-seq技术scRNA-seq 分析流程数据预处理聚类标准化数据筛选有用的数据数据降维聚类 Clustering 注释细胞类型 scRNA数据分析结尾 该笔记来源于 B站up 江湾青年 scRNA-seq技术 首先是如何测序&#xff0c;上图瓶中有很多细胞&#xff0c;…

AD24-原理图与PCB交互设置及PCB常用快捷键汇总

一、原理图与PCB交互设置 1、在原理图页&#xff0c;工具-交叉选择模式 2、设置完成后。在原理图页选择器件&#xff0c;然后再PCB页也会相应被选中 3、一般将网络与Pin脚的勾去掉 4、整齐排列 5、TC&#xff1a;查找网络、器件、Pin脚 二、PCB常用快捷键汇总

高效远控管理 向日葵企业版统计报表与自动分组解析

高效远控管理&#xff01;向日葵企业版统计报表与自动分组解析企业之所以引入商用远程控制方案&#xff0c;一个很大的因素就是因为需要对高频率、多设备的远程控制需求以及IT设备本身进行高效管理&#xff0c;因此一款优质的商用远程控制方案势必需要在这些方面搭载足够完善的…

idea查看日志的辅助插件 --- Grep Console (高亮、取消高亮)

&#x1f680; 分享一款很有用的插件&#xff1a;Grep Console &#x1f680; 我们在查看日志的时候可能会有遗漏&#xff0c;使用这款插件可以让特定的关键词高亮&#xff0c;可以达到不遗漏的效果&#xff01; 如果你是一个开发者或者对日志文件分析感兴趣&#xff0c;不要…

MySQL原理(四)索引(3)索引失效与索引区分度

一、索引失效&#xff1a; 首先未使用索引列作为查询条件索引是肯定会生效的&#xff0c;还有其他的情况&#xff0c;索引列做为了查询条件也失效了&#xff1a; ALTER TABLE staffs ADD INDEX idx_staffs_nameAgePos(NAME, age, pos); 1、select 语句、order by语句&#xf…

x2openEuler 升级实操(centos7.8 to openEuler 20.03)

通过 x2openEuler 工具&#xff0c;将 centos 7.8 迁移至 OpenEuler 上&#xff0c;实际感受迁移过程。x2openEuler https://docs.openeuler.org/zh/docs/20.03_LTS_SP1/docs/x2openEuler/x2openEuler.html 环境准备 下载 x2openEuler 安装包 wget https://repo.oepkgs.net/o…

Nicn的刷题日常之带空格直角三角形图案

1.题目描述 描述 KiKi学习了循环&#xff0c;BoBo老师给他出了一系列打印图案的练习&#xff0c;该任务是打印用“*”组成的带空格直角三角形图案。 输入描述&#xff1a; 多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;&#xff0c;表示直角三角形直角边的长度&am…

Linux 指令

Linux 指令 1 登入/登出1.1 关机1.2 重启1.3 切用户 2 文件和目录管理2.1 目录操作2.2 文件操作2.3 文件内容操作2.4 归档及压缩 3 文本编辑器 vim3.1 命令模式3.2 输入模式3.3 末行模式 4 用户和组管理4.1 用户和组帐号概述4.1.1 用户帐号4.1.2 UID和GID 4.2 用户管理 5 组管理…

算法:箱子之形摆放

一、算法描述及解析 要求将一批箱子按从上到下以‘之’字形的顺序摆放在宽度为 n 的空地上&#xff0c;输出箱子的摆放位置&#xff0c; 例如&#xff1a;箱子ABCDEFG&#xff0c;空地宽为3。 如输入&#xff1a; ABCDEFG 3 输出&#xff1a; AFG BE CD 注&#xff1a;最后一行…

leetcode 28.找出字符串中第一个匹配项的下标(python版)

需求 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。 如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 示例 1&#xff1a; 输入&#xff1a;haystack…

2023年OceanBase开发者大会:核心内容与学习收获(附大会核心PPT下载)

本次大会邀请了众多业界领袖、技术大咖和开发者&#xff0c;共同探讨数据库领域的技术发展趋势和未来机会&#xff0c;与开发者共同探讨单机分布式、云原生、HTAP 等数据库前沿趋势&#xff0c;分享全新的产品 roadmap&#xff0c;交流场景探索和最佳实践。 一、大会核心内容 …