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)
blank

相关推荐

  • 用 Java 实现拦截器 Interceptor 的拦截功能

    用 Java 实现拦截器 Interceptor 的拦截功能Java里的拦截器是动态拦截action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-OrientedProgramming)中拦截器用于在某个方法或字段被访问之前进行拦截,然后在之前或之后加入某些操作。  此外,拦截

  • nginx 负载均衡时,一台tomcat宕机时的问题 可以做到自动切换「建议收藏」

    nginx 负载均衡时,一台tomcat宕机时的问题 可以做到自动切换「建议收藏」如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。具体配置过程如下:1.在http节点下,添加upstream节点。upstreamlinuxidc{server10.0.6.108:7080;server10.0.0.85:8980;}2.将server节…

  • 谷歌地图 离线地图_地图谷歌高清手机版

    谷歌地图 离线地图_地图谷歌高清手机版离线地图解决方案,除了买地图数据,使用专业的ArcGIS来做外,也可以使用GMap.Net来做。关于GMap的开发教程,可以看我以前的文章:基于GMap.Net的地图解决方案使用了GMap一年了,也有了一些积累,开发了一个可以下载ArcGIS、百度、谷歌、高德、腾讯SOSO、天地图、Here等地图的地图下载器。百度和google地图加载显示如下:百度普通地图:百度混合地图:…

  • c语言fread函数的功能_C语言strchr

    c语言fread函数的功能_C语言strchr目录一.fread函数简介二.fread函数使用三.猜你喜欢零基础C/C++学习路线推荐:C/C++学习目录>>C语言基础入门一.fread函数简介C语言fread函数用于读取文件中的数据到指定缓冲区中,fread函数声明如下:/**描述:关闭文件**参数:*[out]ptr:缓冲区,用于存放读取到的数据*[in]size:每个元素的大小(单位是字节)*[in]nmemb:要读取的元素个数*[in

  • rtsp、rtmp测试地址

    rtsp、rtmp测试地址有时需要rtsp、rtmp测试地址时,网上搜出来的都是千篇一律的已停用的测试地址,因此在这里维护一个播放列表,随缘更新(发现新的地址可以在评论区留言)【lastupdate】2022/07/01

    2022年10月20日

发表回复

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

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