文章目录

  • 1.火墙介绍
    • 1.1 netfilter
    • 1.2 iptables
    • 1.3 iptables|firewalld(火墙管理的两种工具)
  • 2.火墙管理工具切换
    • 2.1 firewalld----->iptables的切换
    • 2.2 iptales -------> fiewalld的切换
  • 3. iptables 的使用
    • 3.1 iptables 策略记录文件
    • 3.2 永久保存策略
  • 4.火墙默认策略
    • 4.1 默认策略中的5条链
    • 4.2 默认的3张表
    • 4.3 iptables命令
    • 4.4 数据包状态
    • 4.5 NAT表中的SNAT和DNAT
  • 5. firewalld
    • 5.1关于firewalld的域
    • 5.2 关于firewalld的设定原理及数据存储
  • 5.3 firewalld的管理命令
    • 5.4 firewalld的高级规则
    • 5.5firewalld中的NAT

1.火墙介绍

1.1 netfilter

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些 信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。

1.2 iptables

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
Iptables 是用来设置、维护和检查Linux内核的IP包过滤规则的,是用来填写netfilter的工具
可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作’target’(目标),也可以跳向同一个表内的用户定义的链。
netfilter/iptables 的最大优点是它可以配置有状态的防火墙。

1.3 iptables|firewalld(火墙管理的两种工具)

iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。
相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念,即不同的防火墙策略集合,用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。


2.火墙管理工具切换

火墙的管理方式只能有一种
注意:在rhel8中默认使用的是firewalld

2.1 firewalld----->iptables的切换

dnf install iptables-services -y安装iptables
systemctl stop firewalld关闭firewall
systemct disable firewalld开机不启动firewall
systemctl mask firewalld冻结firewall使不被其他程序打开
systemctl enable --now iptables启动iptables并设定开机启动




2.2 iptales -------> fiewalld的切换

systemctl disable --now iptables
systemctl mask iptables
systemctl unmask firewalld
systemctl enable --now firewalld


3. iptables 的使用

3.1 iptables 策略记录文件

/etc/sysconfig/iptables iptables 策略记录文件


3.2 永久保存策略

(以下两种方式任选其一即可)
(1)iptales-save > /etc/sysconfig/iptables 读取火墙策略信息并导入iptables策略记录文件
(2)service iptables save 保存策略信息



4.火墙默认策略

4.1 默认策略中的5条链

input 输入
output 输出
forward 转发
postrouting 路由之后
prerouting 路由之前

4.2 默认的3张表

filter 经过本机内核的数据 (input、output 、forward)
nat 不经过内核的数据 (postrouting、prerouting、input、output)
mangle 当filter和nat表不够用时使用 (input 、output 、forward 、postrouting、 prerouting)




4.3 iptables命令

iptables的命令 用途
t 指定表名称
-n 不做解析(显示主机IP)
-L 查看
-A 添加策略
-D 删除策略
-p 协议
- -dport 目的地端口
-s 来源
-j 动作
-j   ACCEPT 允许
-j    DROP 丢弃(无回应)
-j    REJECT 拒绝(有回应)
-j   SNAT 源地址转换
-j   DNAT 目的地地址转换
-N 新建链
-E 更改链名称
-X 删除链
-D 删除规则
-I 插入规则
-R 更改规则
-P 更改默认规

1.查看表信息:


2.关于策略读取规则:
注意:火墙中的策略读取是 从上到下的读取方式,当所读取到的策略和当前的资源达到的匹配的程度,就执行当前的策略,不会读取后续的策略了。










3.只允许指定IP访问SSH(指定服务)


4.-R更改策略


5.-P更改默认策略
注意:默认策略是ACCEPT,如果想要更改可以使用-P,但注意**-P后面不能指定为REJECT**,只能跟ACCEPT或者DROP


6.对链的控制
-N 新建链


-E 更改链名称


4.4 数据包状态

1.数据包的状态转变 : 为了解决掉在传输数据包时由于火墙读取策略导致的延迟问题,转换数据包的状态可以使已经检测过的数据包再次传输时直接通过火墙策略而不必等候火墙策略的读取。

2.数据包的三种状态:

状态 含义
RELATED 建立过连接的
ESTABLISHED 正在连接的
NEW 新的

3.在添加火墙策略时写入数据包的状态:
(1)设定建立过连接和正在建立连接的数据包的火墙策略为允许:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

(2)设定本机的回环接口允许新的数据包:
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT

(3)对于新的指定服务的数据包添加火墙策略设定为允许:
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

(4)添加火墙策略,设定除指定IP的所有主机都可以进行的服务:
iptables -A INPUT -m state --state NEW ! -s 192.168.0.200 -p tcp --dport 22 -j ACCEPT

(!代表非)
(5)对于剩余其他新的数据包添加火墙策略设定为拒绝:
iptables -A INPUT -m state --state NEW -j REJECT

(5)永久保存火墙策略
service iptables save



测试:


4.5 NAT表中的SNAT和DNAT

实验环境:
双网卡主机1的IP:192.168.0.60和172.25.254.60主机1相当于路由器(开启内核路由功能)
单网卡主机2的IP:172.25.254.70 主机2相当于内网主机
第三方主机3的IP:192.168.0.200 主机3相当于外网主机
1. SNAT:在路由之后做的源地址转换
实验目的:可以让单网卡主机连接到不同网段的主机 ,使172(内网)--------->192(外网)






在双网卡主机中添加火墙策略:
iptables -t nat -A POSTROUTING -o ens160 -j SNAT --to-source 192.168.1.104

把源地址转换的动作是在路由之后做的,在双网卡主机是数据从ens224网卡进入,从ens160网卡出去的数据做源地址转换,把源地址172.25.254.70转换为192.168.0.60。

测试:


2. DNAT:在路由之前做的目的地地址转换
在双网卡主机中添加火墙策略:
iptables -t nat -A PREROUTING -i ens160 -j DNAT --to-dest 172.25.254.30

把目的地地址转换的动作是在路由之前做的,使主机3通过连接192.168.0.60而真实连接的是172.25.254.70。


5. firewalld

在企业7之后添加了firewalld的管理方式






5.1关于firewalld的域

域名 工作内容 工作范围(允许的服务)
trusted 接受所有的网络连接 全部
home 用于家庭网络,允许接受 ssh、mdns、ipp-client、samba-client、dhcp-client
work 工作网络 ssh、ipp-client、dhcp-client
public 公共网络 ssh、dhcp-client
dmz 军级网络 ssh
block 拒绝所有 drop (所有数据全部丢弃无任何回复 )
internal 内部网络 ssh、mdns、ipp-clien、 samba-client、dhcp-client
external ipv4网络地址伪装转发 sshd

5.2 关于firewalld的设定原理及数据存储

/etc/firewalld 火墙配置目录
/lib/firewalld 火墙模块目录

1. 火墙主配置文件更改默认域
(1)可以使用命令firewall-cmd --set-default-zone=在火墙中更改默认域;
(2)也可以在火墙主配置文件 /etc/firewalld/firewalld.conf中添加数据


2.在火墙中添加服务
添加服务到火墙策略中
(1)可以使用命令firewall-cmd --permanent --add-service=firewall-cmd --reload在火墙中添加服务;
注意:不加- -permanent表示临时添加,- -permanent表示永久添加服务到火墙策略中,重启火墙后,服务还继续存在。
(2)也可以在配置目录中的子目录文件 /etc/firewalld/zones/public.xml中添加服务数据,并重启火墙


3.在火墙中添加不被允许的服务(需要编辑模块目录中的认证文件)




5.3 firewalld的管理命令

firewall-cmd --state 查看火墙状态

firewall-cmd --get-services 查看所有可以设定的服务

firewall-cmd --permanent --add-service=cockpit 添加服务
firewall-cmd --reload


firewall-cmd --permanent --remove-service=cockpit 移除服务
firewall-cmd --reload

firewall-cmd --get-zones 查看所有的域

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 --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 --reload



firewall-cmd --permanent --remove-interface=ens224 --zone=public 删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block 添加指定域的网络接口



firewall-cmd --permanent --change-interface=ens224 --zone=public 更改网络接口到指定域


5.4 firewalld的高级规则

firewall-cmd --direct --get-all-rules查看高级规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 192.168.0.0/24 -p tcp -dport 22 -j ACCEPT 设定高级规则
实验环境: RedhatLinux7系统中,IP:192.168.0.200
为了让效果更加真实,在火墙服务允许列表中移除ssh服务


设定192.168.0.200主机可以通过22端口来访问主机rhel8

测试:


5.5firewalld中的NAT

1. SNAT:做地址伪装
实验环境:
1.双网卡主机,在双网卡主机中开启内核路由功能 (充当路由器),并打开masquerade 地址伪装功能
双网卡主机IP:192.168.0.60和172.25.254.0.60
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
主机2的IP:172.25.254.70(内网),设定网关为双网卡IP172.25.254.0.60
主机3的IP:192.168.0.200(外网)


测试:


2. DNAT:做地址伪装
firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=172.25.254.70
firewall-cmd --reload
测试:

RHCE——火墙之iptables和firewalld部署相关推荐

  1. Linux学习笔记--12(iptables与firewalld)

    防火墙管理 在公网与企业内网之间充当保护屏障的防火墙,虽然有软件或硬件之分,但主要功能都是依据策略对穿越防火墙自身的流量进行过滤. 防火墙策略可以基于流量的源目地址.端口号.协议.应用等信息来定制,然 ...

  2. linux就该这么学第8章Iptables与Firewalld防火墙。

    本章讲解了如下内容: ➢ 防火墙管理工具: ➢ iptables: ➢ firewalld: ➢ 服务的访问控制列表. 保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网与内网 ...

  3. 9.Iptables与Firewalld防火墙

    第9章 Iptables与Firewalld防火墙 章节简述: 保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用 ...

  4. Linux 防火墙配置(iptables和firewalld)

    目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Fire ...

  5. RH254-第二十六节-iptables和firewalld防火墙

    防火墙管理工具 保证数据的安全性是继可用性之后最为重要的一项工作,防火墙技术作为公网与内网之间的保护屏障,起着至关重要的作用.面对同学们普遍不了解在红帽RHEL7系统中新旧两款防火墙的差异,认识在红帽 ...

  6. Firewall--防火墙设置(iptables,firewalld)

    防火墙 防火墙的分类 linux防火墙 防火墙功能 静态防火墙 五链四表 iptabls的使用 动态防火墙 firewalld的认识 firewalld的配置 防火墙的分类 1. 从软.硬件形式上分为 ...

  7. Linux中的火墙(1)(iptables)

    文章目录 1.火墙介绍 2.火墙管理工具切换 3.iptables 的使用 4.火墙默认策略 5.iptables命令 1.火墙介绍 netfilter:真正的防火墙,位于内核空间. iptables ...

  8. 第8章 Iptables与Firewalld防火墙

    本章分别使用iptables.firewall-cmd.firewall-config和TCP Wrappers等防火墙策略配置服务 iptables服务把用于处理或过滤流量的策略条目称之为规则,多条 ...

  9. centos7 中iptables、firewalld 、netfilter 关系

    centos7系统使用firewalld服务替代了iptables服务,但是依然可以使用iptables来管理内核的netfilter 但其实iptables服务和firewalld服务都不是真正的防 ...

最新文章

  1. loadruner11 socket脚本-10053错误
  2. 进程间的通信IPC(无名管道和命名管道)
  3. 【ArcGIS Pro微课1000例】0006:ArcGIS Pro 2.5三维显示DEM数字高程模型
  4. 高效的数据压缩编码方式 Protobuf
  5. 我们为什么会爱上一个人?
  6. matlab fdtd,fdtd(fdtd中文教程)
  7. Java中判断当前数据是否全为数字
  8. bzoj4030【HEOI2015】小L的白日梦
  9. DB9标准的公头\母头接线定义
  10. 信息系统项目管理师考试难?一次过备考经验分享给大家
  11. 通过PyMuPDF编写增值税发票多PDF文件合并工具
  12. java 开根号函数_java程序中怎么调用平方根函数
  13. BMZCTF misc1
  14. 如何使用计算机文件共享,两台电脑如何共享文件?【步骤图解】
  15. Android 9.0 wifi 热点 汇总
  16. mysql大于等于between比较_MySQL范围查询优化,Between与大于等于对比及优化
  17. 巧用CUDA中的pinned memory
  18. 修改谷歌浏览器不安全提示
  19. python蚂蚁森林自动偷能量_蚂蚁森林自动偷能量 激活 - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...
  20. Java: Java字面量、 变量和常量

热门文章

  1. 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度
  2. ipad-mini 越狱总结
  3. 案例银行转账存储过程
  4. 理解极大似然估计与最大后验概率估计
  5. 给老鼠大脑注入光纤能控制老鼠酗酒了?!|技术前沿洞察
  6. 怎样查询对方IP地址
  7. 操作系统学习笔记——北京大学陈向群老师课后及习题答案(6)
  8. ASP.NET Identity 三(转载)
  9. JSP页面查询显示常用模式
  10. 阿里云腾讯云轻量应用服务器搭建网站教程