Linux防火墙详解「建议收藏」

Linux防火墙详解「建议收藏」防火墙介绍inux防火墙主要工作在网络层,属于典型的包过滤防火墙。在RHEL中常用的有两种火墙工具iptables和firewalld,但软件本身其实并不具备防火墙功能,他们的作用都是在用户空间中管理和维护规则,只不过规则结构和使用方法不一样罢了,真正利用规则进行过滤是由内核netfilter完成的。netfilterIP信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在Lin

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

防火墙介绍

inux防火墙主要工作在网络层,属于典型的包过滤防火墙。在RHEL中常用的有两种火墙工具iptables和firewalld,但软件本身其实并不具备防火墙功能,他们的作用都是在用户空间中管理和维护规则,只不过规则结构和使用方法不一样罢了,真正利用规则进行过滤是由内核netfilter完成的。
netfilter IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的 链(chain)中。我马上会详细讨论这些规则以及如何建立这些规则并将它们分组在链中。
在RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等。如下图:
在这里插入图片描述

iptables和firewalld的区别

  1. 与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:

    FirewallD 使用区域和服务而不是链式规则。
    FirewallD可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。

  2. Firewalld 跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。

  3. iptables 服务在 /etc/sysconfig/iptables 中储存配置,而 FirewallD 将配置储存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件里,使用 iptables 的时候每一个单独更改意味着清除所有旧有的规则和从 /etc/sysconfig/iptables 里读取所有新的规则,使用 firewalld 却不会再创建任何新的规则;仅仅运行规则中的不同。因此 FirewallD 可以在运行时改变设置而不丢失现行配置。

火墙策略之三链五表

netfilter是Linux 2.4内核引入的全新的包过滤引擎。由一些数据包过滤表组成,这些表包含内核用来控制信息包过滤的规则集。iptables等等都是在用户空间修改过滤表规则的便捷工具。

netfilter在数据包必须经过且可以读取规则的位置,共设有5个控制关卡。这5个关卡处的检查规则分别放在5个规则链中(有的叫钩子函数(hook functions)。也就是说5条链对应着数据包传输路径中的5个控制关卡,链中的规则会在对应的关卡检查和处理。任何一个数据包,只要经过本机,必然经过5个链中的某个或某几个。

PREROUTING 数据包刚进入网络接口之后,路由之前,
INPUT 数据包从内核流入用户空间。
FORWARD 在内核空间中,从一个网络接口进入,到另一个网络接口去。转发过滤。
OUTPUT 数据包从用户空间流出到内核空间。
POSTROUTING 路由后,数据包离开网络接口前。
默认表 表中存放数据
filter 经过本机内核的所有数据(input output forward)
nat 不经过内核的数据(postrouting prerouting input output)
mangle 当filter和nat表不够用时使用,表中记录对链数据的补充解释说明(input output forward postrouting prerouting)

iptables的使用

因为防火墙之间存在冲突,所以在使用iptables时须关闭并冻结firewalld

yum install iptables-services
systemctl mask firewalld
systemctl enable –now iptables.service

保存策略

** 方法一**
iptables-save > /etc/sysconfig/iptables
方法二
service iptables save

iptables命令

iptables
-t ##指定表名称
-n ##不做解析
-L ##查看
-A ##添加策略
-p ##指定协议
–dport ##指定目的地端口
-s ##指定来源
-j ##指定动作
ACCEPT ##允许
DROP ##丢弃
REJECT ##拒绝
SNAT ##源地址转换
DNAT ##目的地地址转换
-F ##清空表中策略
-N ##新建链
-E ##更改链名称
-X ##删除链
-D ##删除规则
-I ##插入规则
-R ##更改规则
-P ##更改默认规则
注意:火墙策略是由上到下读取,当第一条与第二条发生冲突时,第一条策略生效。

查看表filter策略
在这里插入图片描述
清空策略,在INPUT链中指定允许所有,查看策略(默认查看filter)
在这里插入图片描述
删除INPUT链中的第一条策略
在这里插入图片描述

iptables -P INPUT DROP 改变INPUT链的默认状态为丢弃

在这里插入图片描述

指定协议为tcp,端口为22的被允许
在这里插入图片描述

firewalld的使用

firewalld的开启与关闭

systemctl disable –now iptables.service 关闭
systemctl unmask firewalld.service 解冻
systemctl enable –now firewalld.service 开启
systemctl mask iptables.service 冻结

firewall的模式

trusted 信任模式:接受所有连接
home 家庭网络:允许ssh,mdns, ipp-client, samba-client, dhcp-client
work 工作网络:允许ssh, ipp-client, dhcp-client
public 公共模式:ssh,dhcp-client
dmz 军工级:ssh
block 拒绝所有
drop 丢弃,所有的连接都不回复
intter 内部网络:ssh,mdns,ipp-client,samba-client
externa l ipv4网络地址伪装发送 sshd

管理命令

    firewall-cmd --state    ##查看火墙状态
    firewall-cmd --get-active-zones    ##查看当前火墙中生效的域
    firewall-cmd --get-default-zone    ##查看默认域
    firewall-cmd --list-all    ##查看默认域中的火墙策略
    firewall-cmd --list-all --zone=work    ##查看指定域的火墙策略
    firewall-cmd --set-default-zone=trusted    ##设定默认域
    firewall-cmd --get-services    ##查看所有可以设定的服务
    firewall-cmd --permanent --remove-service=cockpit    ##移除服务(刷新后生效)
    firewall-cmd --reload    重启服务
    firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block    ##指定数据来源访问指定域
    firewall-cmd --reload    
    firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block    ##删除自定域中的数据来源
    firewall-cmd --permanent --remove-interface=ens224 --zone=public    ##删除指定域的网络接口
    firewall-cmd --permanent --add-interface=ens224 --zone=block    ##添加指定域的网络接口
    firewall-cmd --permanent --change-interface=ens224 --zone=public    ##更改网络接口到指定域

高级规则

firewall-cmd –direct –get-all-rules :查看高级规则

firewalld中的NAT地址转换

firewall-cmd –add-masquerade
firewall-cmd –reload

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190678.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • app store connect

    app store connect1、用开发者账号登录,新建App,其中套装ID和SKU使用的应用的BundleID。2、添加要求的尺寸的应用截图或预览,填写宣传文本、描述、关键词、技术支持网址、营销网址3、填写App的信息、App审核信息(包括登录的账号密码,App审核团队有疑问或需要额外信息时会与其联络的联系人信息)…

    2022年10月20日
  • 网站 XSS 防范措施 脚本

    网站 XSS 防范措施 脚本

  • html实战-制作静态网页「建议收藏」

    html实战-制作静态网页「建议收藏」教程视频:http://edu.csdn.net/course/detail/535 从42开始制作的网页:http://www.cnos.co/整体思路:先布局再CSS控制骨架搭好了,初始化样式,后再弄CSS样式。注意:将CSS的样式导入到外部样式表时,要注意图片的位置,以及对外部样式表的引入  1、头部的背景图片的高度128px来自素材的图片高,容器的宽度大

  • JavaScript对象:我们真的需要模拟类吗?

    JavaScript对象:我们真的需要模拟类吗?

  • 服务端稳定性测试_web端性能测试怎么做

    服务端稳定性测试_web端性能测试怎么做1概述1.1背景系统的稳定性是系统长期稳定运行能力,需要时间累积才能度量。平台的某些问题需要达到一定时间、一定的使用量后才会暴露出来。如内存泄漏,系统运行过程中发现部分服务的部分接口会发生服务不可达的情况。从而团队提出对平台进行稳定性分析,通过给系统施加一定业务压力大情况下,使系统持续运行一段时间,以此来检测系统是否稳定运行(下统称稳定性测试或测试)。1.2服务说明平台运行的服务包括系统服务和业务服务,系统服务包括Consul、Redis、Cap、RabbitMQ、Exceptionless

  • MySQL数据库:存储引擎

    MySQL数据库:存储引擎

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号