-
2021-01-12 16:32:25
一、iptables防火墙
1、基本操作# 查看防火墙状态
service iptables status
# 停止防火墙
service iptables stop
# 启动防火墙
service iptables start
# 重启防火墙
service iptables restart
# 永久关闭防火墙
chkconfig iptables off
# 永久关闭后重启
chkconfig iptables on
2、开启80端口
vim /etc/sysconfig/iptables
# 加入如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出后重启防火墙service iptables restart
二、firewall防火墙
1、查看firewall服务状态systemctl status firewalld
出现Active: active (running)切高亮显示则表示是启动状态。
出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、查看firewall的状态firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
4、查看防火墙规则firewall-cmd --list-all
5、查询、开放、关闭端口# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;下面是red hat/CentOs7关闭防火墙的命令!
1:查看防火状态
systemctl status firewalld
service iptables status
2:暂时关闭防火墙
systemctl stop firewalld
service iptables stop
3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
4:重启防火墙
systemctl enable firewalld
service iptables restart
5:永久关闭后重启
//暂时还没有试过
chkconfig iptables on
更多相关内容 -
Linux强制释放占用端口以及Linux防火墙端口开放方法详解
2021-01-20 15:17:17说到端口,还不得不提到防火墙,本文还会简单介绍如何配置防火墙开发端口。 Linux查看端口情况的各种方法 所有端口的映射关系在 /etc/services 文件中有 Linux端口简单介绍,端口编号从0-65536,各编号端的用途如下... -
linux防火墙 中文版.pdf
2018-06-03 12:51:26linux防火墙 中文版.pdf -
开启LINUX防火墙后,FTP PASV不能正常登录问题
2020-08-10 11:06:11绍开启LINUX防火墙后,FTP PASV不能正常登录问题 -
Linux防火墙开放端口或者设定端口
2017-09-19 16:45:16Linux防火墙开放端口或者设定端口 centos处于对安全的考虑,通常的解决办法有两个。一个是直接关闭防火墙(非常不推荐): service iptables stop 但是这样相当于把系统完全暴露,会带来很大的安全隐患。所以,第二... -
[Linux防火墙](美)拉什.中文高清PDF版
2018-05-13 07:00:16[Linux防火墙](美)拉什.中文高清PDF版,非常好的iptables资 料 -
Linux防火墙
2021-11-01 13:51:57一、安全技术和防火墙 1.安全技术 (1)入侵检测系统(Intrusion Detection Systems) 特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和...目录
(1)入侵检测系统(Intrusion Detection Systems)
(2)入侵防御系统(Intrusion Prevention System)
(2)使用firewall,就是将特定的流量关联到某个zone中
一、安全技术和防火墙
1.安全技术
(1)入侵检测系统(Intrusion Detection Systems)
特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式
(2)入侵防御系统(Intrusion Prevention System)
以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式(必经之路)
(3)防火墙( FireWall )
隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,将希望外网访问的主机放在DMZ (demilitarized zone)网络中
(4)防水墙(Waterwall)
与防火墙相对,是一种防止内部信息泄漏的安全产品。 网络、外设接口、存储介质和打印机构成信息泄漏的全部途径。防水墙针对这四种泄密途径,在事前、事 中、事后进行全面防护。其与防病毒产品、外部安全产品一起构成完整的网络安全体系
2.防火墙的分类
(1)按保护范围划分
主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网
(2)按实现方式划分
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco,
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront
(3)按网络协议划分
网络层防火墙:OSI模型下四层,又称为包过滤防火墙
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层
(4)包过滤防火墙
网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素,或他们的组合来确定是否 允许该数据包通过
优点:对用户来说透明,处理速度快且易于维护缺点:无法检查应用层数据,如病毒等
缺点:无法检查应用层数据,如病毒等
(5)应用层防火墙
应用层防火墙/代理服务型防火墙,也称为代理服务器(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. 防火墙工具
(1)nftables
它重用了netfilter框架的许多部分,例如连接跟踪和NAT功能。它还保留了命名法和基本iptables设计的几个部分,例如表,链和规则。就像iptables一样,表充当链的容器,并且链包含单独的规则,这些规则可以执行操作,例如丢弃数据包,移至下一个规则或跳至新链。
从用户的角度来看,nftables添加了一个名为nft的新工具,该工具替代了iptables,arptables和
ebtables中的所有其他工具。从体系结构的角度来看,它还替换了内核中处理数据包过滤规则集运行时评估的那些部分。
(2) firewalld
从CentOS 7 版开始引入了新的前端管理工具
软件包:
firewalld
firewalld-config
管理工具:
firewall-cmd 命令行工具
firewall-config 图形工作
(3)iptables
由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包
[root@centos7 ~]# iptables --version
iptables v1.4.21三、firewalld服务
1. firewalld介绍
firewalld是配置和监控防火墙规则的系统守护进程。可以实现iptables,ip6tables,ebtables的功能
2.归入zone顺序
先根据数据包中源地址,将其纳为某个zone
纳为网络接口所属zone
纳入默认zone,默认为public zone,管理员可以改为其它zone
网卡默认属于public zone,lo网络接口属于trusted zonefirewalld支持划分区域zone,每个zone可以设置独立的防火墙规则
(1)已经存在了zone区域
(2)使用firewall,就是将特定的流量关联到某个zone中
通过源网段关联zone
通过网卡关联zone区域
如果两者都没有关联的数据报文,那就会去default zone
(3)进入到zone以后,开始匹配zone内的规则
3.命令行配置
四、iptables
Linux 的防火墙体系主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux 系统的防火墙体系基于内核编码实现, 具有非常稳定的性能和高效率,也因此获得广泛的应用。
netfilter/iptables:IP 信息包过滤系统,它实际上由两个组件 netfilter 和 iptables组成。
主要工作在网络层,针对IP数据包,体现在对包内的IP地址、端口等信息的处理1. netfiler
属于“内核态”又称内核空间(kernel space)的防火墙功能体系。linux 好多东西都是内核态 用户态,那我们运维人员关注的是用户态, 内核我们关注不是很多,内核基本是我们开发人员关心的事情是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
2.iptables
属于“用户态”(User Space, 又称为用户空间)的防火墙管理体系。是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。
netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙,其中内置了raw、mangle、 nat和filter四个规则表。表中所有规则配置后,立即生效,不需要重启服务。
3.iptables四表五链
(1)五表 (系统默认四表)
表名 功能 filter 过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表 nat network address translation 地址转换规则表 mangle 修改数据标记位规则表 raw 关闭启用的连接跟踪机制,加快封包穿越防火墙速度 security 用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现 优先级由高到低的顺序为:
security -->raw-->mangle-->nat-->filter
(2)五链
链名 功能 INPUT 处理入站数据包,匹配目标IP为本机的数据包 OUTPUT 处理出站数据包,一般不在此链上做配置 FORWARD 处理转发数据包,匹配流经本机的数据包 PREROUTING 把内网服务器的IP和端口映射到路由器的外网IP和端口上 POSTROUTING 在进行路由选择后处理数据包,用来修改源地址,用来做SNAT (3)防火墙默认的规则表,链结构
(4) 内核中数据包的传输过程
当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要 转送出去
如果数据包是进入本机的,数据包就会沿着图向下移动,到达INPUT链。数据包到达INPUT链后, 任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后到达
如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出
4.iptables安装与用法
(1)安装
systemctl stop firewalld.service
yum -y install iptables iptables-services
systemctl start iptables.service
setenforce 0
(2)语法格式
(3)控制类型
ACCEPT:允许数据包通过。
DROP:直接丢弃数据包,不给出任何回 应信息。
REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息。
LOG:在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则。
SNAT:修改数据包的源地址。
DNAT:修改数据包的目的地址。
MASQUERADE:伪装成一个非固定公网IP地址。(4)管理选项
管理选项 用法示例 -A 在指定链末尾追加一条 iptables -A INPUT (操作) -I 在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT (操作) -P 指定默认规则 iptables -P OUTPUT ACCEPT (操作) -D 删除 iptables -t nat -D INPUT (操作) -p 服务名称 -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 (操作) -X 清空自定义链的规则,不影响其他链 iptables -X -Z 清空链的计数器(匹配到的数据包的大小和总和)iptables -Z -S 查看链的所有规则或者某个链的规则/某个具体规则后面跟编号 (5)用法
添加新的规则
iptables -t filter -A INPUT -P icmp -j REJECT (不允许任何主机ping本主机)
iptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT (允许主机ssh端口 通过我的)
查看规则列表
iptables [-t 表名] -n -L [链名] [--line-numbers] 或 iptables -[vn]L 注意:不可以合写为-Ln
iptables -n -L --line-numbers
设置默认策略
ptables [-t 表名] -P <链名> <控制类型>
iptables -P INPUT DROP
输入后没显示 清除所有规则之后生效,因为下面只剩下DROP 添加远程端口22
iptables -P FORWARD DROP
生产环境中设置网络型防火墙、主机型防火墙时都要设置默认规则为DROP,并设置白名单
删除规则
iptables -D INPUT 2
iptables -t filter -D INPUT -P icmp -j REJECT
清空规则
iptables [-t 表名] -F [链名]
iptables -F INPUT
iptables -F
4.介绍几种规则的匹配
(1)通用匹配
可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件。
协议匹配: -p协议名 .
地址匹配: -s源地址、-d目的地址 可以是IP、网段、域名、空(任何地址)
接口匹配: -i入站网卡、-o出站网卡
iptables -A FORWARD ! -P icmp -j ACCEPT
iptables -A INPUT -s 192.168.121.11 -j DROP
iptables -I INPUT -i ens33 -s 192.168.68.0/24 -j DROP
(2)隐含匹配
要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类 型等条件。
端口匹配: --sport 源端口、–dport 目的端口,可以是个别端口、端口范围
--sport 1000 匹配源端口是1000的数据包
--sport 1000 :3000 匹配源端口是1000-3000的数据包
--sport :3000 匹配源端口是3000及以下的数据包
--sport 1000 : 匹配源端口是1000及以上的数据包注意: --sport 和–dport 必须配合-P <协议类型>使用
iptables -A INPUT -P tcp --dport 20:21 -j ACCEPT
iptables -I FORWARD -d 192.168.68.0/24 -P tcp --dport 24500:24600 -j DROP
TCP标记匹配: --tcp- flags TCP标记
iptables -I INPUT -i ens33 -P tcp --tcp-flags SYN, RST,ACK SYN -j ACCEPT
丢弃SYN请求包, 放行其他包
ICMP类型匹配: --icmp-type ICMP类型,可以是字符串、数字代码
"Echo-Request”(代码为8)表示请求
"Echo- -Reply”(代码为0)表示回显
"Dest ination-Unreachable" (代码为3)表示目标不可达
关于其它可用的ICMP 协议类型,可以执行“iptables -P icmp -h”命令,查看帮助信息
iptables -A INPUT -P icmp -- icmp-type 8 -j DROP 禁止其它主机ping本机
iptables -A INPUT -P icmp --icmp-type 0 -j ACCEPT 允许本机ping其它主机
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT 当本机ping不通其它主机时提示目标不可达
iptables -A INPUT -P icmp -j REJECT 此时其它主机需要配置关于icmp协议的控制类型为REJEC(3) 显式匹配
多端口匹配
-m multiport --sport 源端口列表
-m multiport --dport 目的端口列表
iptables -A INPUT -P tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
iptables -A INPUT -P udp -m multiport --dport 53 -j ACCEPTP范围匹配
-m iprange --src- range IP范围
iptables -A FORWARD -P udp -m iprange --src-range 192.168.68.100-192.168.68.200 -j DROP
禁止转发源地址位于192.168.68.100-192.168.68.200的udp数据包(4)状态匹配
-m state --state连接状态
常见的连接状态
NEW: 与任何连接无关的,还没开始连接
ESTABLISHED: 响应请求或者已建立连接的,连接态
RELATED: 与已有连接有相关性的( 如FTP主被动模式的数据连接),衍生态,一般ESTABLISHED配合使用
INVALID: 不能被识别属于哪个连接或没有任何状态
iptables -A FORWARD -m state --state NEW -P tcp ! --syn -j DROP
禁止转发与正常TCP连接无关的非--syn请求数据包(如伪造的网络攻击数据包)
iptables -I INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
iptables -A INPUT -P udp -m multiport --dport 53 -j ACCEPT
iptables -A INPUT -P tcp -m state --state ESTABLISHED, RELATED -j ACCEPT
对进来的包的状态进行检测。已经建立tcp连接的包以及该连接相关的包允许通过。
iptables -P INPUT DROP5.NAT
(1)定义
NAT,支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链
请求报文:修改源/目标IP,由定义如何修改I
响应报文:修改源/目标IP,根据跟踪机制自动实现
(2)NAT的实现分为下面类型
SNAT: source NAT,支持POSTROUTING,INPUT,让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装,请求报文:修改源IP
DNAT: destination NAT支持PREROUTING,OUTPUT,把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP,请求报文:修改目标IP
PNAT: port nat,端口和IP都进行修改
(3)实现步骤
网关服务器:首先我们先添加下网卡
更改网卡配置文件
同理,我们建立内网地址
同理,我们建立外网地址
在网关服务器上抓包一下
[root@localhost ~]# tcpdump -i ens37 -nn icmp 抓包命令
流量能发出但没法得到反馈
这是因为linux系统本身没有转发功能 只有路由发送数据
这时我们就用到了SNAT,DNAT
6. SNAT策略概述
(1)SNAT策略的典型应用环境
局域网主机共享单个公网IP地址接入Internet
(2)SNAT策略的原理
源地址转换
修改数据包的源地址
(3)SNAT转换前提条件
局域网各主机已正确设置IP地址、子网掩码、默认网关地址
Linux网关开启IP路由转发
永久打开
vim /etc/sysctl. conf
net. ipv4. ip_ _forward = 1 #将此行写入配置文件
sysct1 -p #将取修改后的配置在三个机子上本地搭建yum,进行iptables安装,如果不会可以访问我之前的博客yum那一章
我们用iptables加规则(配置SNAT策略,实现SNAT功能)
接下来我们进行验证
此刻转发已经完成
清空NAT
主机型防火墙主要使用INPUT、OUTPUT链,设置规则时一般要详细的指定到端口
网络型防火墙主要使用FORWARD链,设置规则时很少去指定到端口,一般指定到IP地址或者到网段即可
7.DNAT
我们用iptables加规则(配置DNAT策略,实现DNAT功能)
命令
[root@localhost ~]# iptables -t nat -A PREROUTING -i ens37 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.100.101
-
Linux防火墙思维导图.xmind
2020-05-23 13:06:40linux防火墙知识:利用思维导图的形式(包括举例),一张图进行全部详解 1.何为防火墙?2.防火墙的分类 3.iptables原理 4.防火墙顺序 5.iptables语法规则 -
利用linux防火墙实现IP访问控制
2020-09-28 14:32:29自己总结的linuxe下通过linux防火墙软件实现对ip源目地址的访问控制,希望可以帮助到需要的朋友 -
精通Linux防火墙 中文高清版.pdf
2017-03-16 21:06:18精通Linux防火墙 中文高清版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除! -
Linux防火墙技术研究.pdf
2021-09-07 00:54:13Linux防火墙技术研究.pdf -
基于Linux防火墙的可视化管理系统的研究与实现.pdf
2021-09-06 23:49:57基于Linux防火墙的可视化管理系统的研究与实现.pdf -
Linux防火墙配置策略.pdf
2021-09-06 12:39:46Linux防火墙配置策略.pdf -
基于Web模式的Linux防火墙管理.pdf
2021-09-06 23:35:14基于Web模式的Linux防火墙管理.pdf -
Linux防火墙的配置.ppt
2020-08-05 07:58:27项目三Linux防火墙 实验目的 Linux下的防火墙是iptables/netfilteriptables是一个用来指定netfilter规则和管理内核包过滤的工具它为用户配置防火墙规则提供了方便与大多数的Linux软件一样这个包过滤防火墙是免费的它... -
Linux防火墙技术的研究及应用.pdf
2021-09-07 00:44:27Linux防火墙技术的研究及应用.pdf -
基于透明模式的Linux防火墙设计.pdf
2021-09-06 18:22:03基于透明模式的Linux防火墙设计.pdf -
使用iptable和Firewalld工具来管理Linux防火墙连接规则
2020-09-15 02:37:22今天小编就为大家分享一篇关于使用iptable和Firewalld工具来管理Linux防火墙连接规则的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 -
linux防火墙设置
2018-05-22 20:18:34简单 好用 linux防火墙设置命令 linux防火墙设置命令 linux防火墙设置命令 linux防火墙设置命令 简单 好用 -
Linux防火墙在中小型企业的应用.pdf
2021-09-07 00:06:34Linux防火墙在中小型企业的应用.pdf -
基于WEB的LINUX防火墙管理系统的设计与实现.pdf
2021-09-06 22:52:01基于WEB的LINUX防火墙管理系统的设计与实现.pdf -
linux防火墙iptables用denyhosts防止黑客入侵.zip
2021-01-07 16:13:57linux iptables用denyhosts防止黑客入侵.zip -
基于2.4以上版本内核的Linux防火墙技术研究.pdf
2021-09-06 22:55:56基于2.4以上版本内核的Linux防火墙技术研究.pdf -
基于eNSP与VMware的Linux防火墙仿真实验的设计与实现.pdf
2021-09-06 12:30:17基于eNSP与VMware的Linux防火墙仿真实验的设计与实现.pdf -
Linux防火墙端口
2022-02-22 15:56:10在服务器上使用某些软件时需要开启相应的防火墙端口号,简单了解下Linux防火墙端口 防火墙策略 防火墙策略可以基于流量的源目地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的...在服务器上使用某些软件时需要开启相应的防火墙端口号,简单了解下Linux防火墙端口
防火墙策略
防火墙策略可以基于流量的源目地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,否则则丢弃。起到一个过滤的作用,保证了主机的安全。查看firewall服务状态
systemctl status firewalld
开启、重启、关闭、firewalld.service服务
1.开启
service firewalld start
2.重启
service firewalld restart
3.关闭
service firewalld stop
4. 查看防火墙规则
firewall-cmd --list-all # 查看全部信息 firewall-cmd --list-ports # 只看端口信息
5.开启端口
开端口命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent 重启防火墙服务:systemctl restart firewalld.service
6.查看Linux某端口的情况
netstat -tunlp | grep 端口号
命令含义:
--zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效
例如:开启端口6380协议位tcp 永久生效 作用域为全部
firewall-cmd --zone=public --add-port=6380/tcp --permanent
开启成功!
注意:如果使用Xshell远程连接开启防火墙端口后,还需要在阿里云服务器中安全中的防火墙添加相应端口规则
-
Linux防火墙详解
2022-03-27 16:16:32防火墙介绍 inux防火墙主要工作在网络层,属于典型的包过滤防火墙。在RHEL中常用的有两种火墙工具iptables和firewalld,但软件本身其实并不具备防火墙功能,他们的作用都是在用户空间中管理和维护规则,只不过规则...防火墙介绍
inux防火墙主要工作在网络层,属于典型的包过滤防火墙。在RHEL中常用的有两种火墙工具iptables和firewalld,但软件本身其实并不具备防火墙功能,他们的作用都是在用户空间中管理和维护规则,只不过规则结构和使用方法不一样罢了,真正利用规则进行过滤是由内核netfilter完成的。
netfilter IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的 链(chain)中。我马上会详细讨论这些规则以及如何建立这些规则并将它们分组在链中。
在RHEL7里有几种防火墙共存:firewalld、iptables、ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等。如下图:
iptables和firewalld的区别
-
与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:
FirewallD 使用区域和服务而不是链式规则。
FirewallD可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。 -
Firewalld 跟iptables比起来,不好的地方是每个服务都需要去设置才能放行,因为默认是拒绝。而iptables里默认是每个服务是允许,需要拒绝的才去限制。
-
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 saveiptables命令
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 -
-
Linux防火墙的使用配置
2018-10-22 23:23:20Linux防火墙的使用与配置 访问Linux中的Tomcat,打开8080和80端口