firewalld 防火墙
firewalld防火墙
firewalld简述
firewalld:防火墙,其实就是一个隔离工具:工作于主机或者网络的边缘
对于进出本主机或者网络的报文根据事先定义好的网络规则做匹配检测,
对于能够被规则所匹配的报文做出相应处理的组件(这个组件可以是硬件,也可以是软件):
- 主机防火墙
- 网络防火墙

功能(也叫表)
filter:过滤,防火墙
nat:network address translation,网络地址转换
mangle:拆分报文,做出修改,在封装起来
raw:关闭nat表上启用的连接追踪功能
链(内置):
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
数据报文的流向
流入:PREROUTING --> INPUT
流出:OUTPUT --> POSTROUTING
转发:PREROUTING --> FORWARD --> POSTROUTING
各功能可以在哪些链上实现
filter: INPUT,FORWARD,OUTPUT
nat:PREROUTING(DNAT),OUTPUT,INPUT,POSTROUTING(SNAT)
mangle: PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
raw:PREROUTING,OUTPUT
路由发生的时刻(PREROUTING,POSTROUTING)
报文进入本机后:
判断目标主机
报文发出之前:
判断经由哪个借口送往下一跳
添加规则时的考量点
(1)要实现什么功能:判断添加在哪张表上;
(2)报文流经的路径:判断添加在哪个链上;
firewalld优先级
策略应用优先级:raw, mangle, nat, filter
策略常用优先级:filter,nat,mangle,raw
链管理
-F: flush,清空规则链:省略链,表示清空指定表上的所有的链
-N: new, 创建新的自定义规则链:
-X: drop, 删除用户自定义的空的规则链-P: Policy, 为指定链这是默认策略,对filter表中的链而言,默认策略通常有ACCEPT,DROP,REJECT;
规则管理
-A:append,将新规则追加于指定链的尾部
-I:insert,将新规则插入至指定链的指定位置
-D:delete,删除指定链上的指定规则:
查看防火墙策略
-L:list, 列出指定链上的所有规则:
-n:number,以数字格式显示地址和端口号
-v:verbose,显示详细信息
-vv,-vvv
--line-numbers:显示规则编号:
匹配条件

-s, source:检查报文中源ip地址是否符合此处指定的地址范围
-d, destination:检查报文中ip地址是否符合此处指定的地址范围
-p, protocol(udp|tcp|icmp):检查报文中的协议
-i, input-interface:数据报文的流入接口:仅能用于PREROUTING,INPUT,FORWARD链上
-o, out-interface:数据报文的流出接口:仅能用于POSTROUTING,OUTPUT,FORWARD链上
-j target:jump至指定的target
ACCEPT:接受
DROP:丢弃
REJECT:拒绝
RETURN:返回调用链
REDIRECT:端口重定向
LOG:记录日志
MARK:做防火墙标记
DNAT:目标地址转换
SNAT:源地址转换
MASQUERADE:地址伪装
....
自定义链:由自定义链中的的规则进行匹配

例子
filter表:

清空所有策略: iptables -F
清空自定义链: iptables -X
自定义一个链 iptables -N old_forward
修改自定义链的名字 iptables -E old_forward new_forward
把filter中forward链的默认策略打成drop iptables -P FORWARD DROP
查看filter表中的策略并且显示行数: iptables -L -n --line-number
删除filter表中forward链中的第9条策略: iptables -t filter -D FORWARD 9 限制所有主机(0.0.0.0)拒绝ping本主机 iptables -t filter -A INPUT -s 0.0.0.0 -d 192.168.254.24 -p icmp -j REJECT
显示所有主机(0.0.0.0)拒绝通过ens33网卡ping本主机 iptables -t filter -A INPUT -d 192.168.254.24 -i ens33 -p icmp -j REJECT

nat表:

#源地址为192.168.250.0网段的ip地址经过防火墙都转换成192.168.31.100这个ip地址(SNAT:源地址转换)
iptables -t nat -A POSTROUTING -s 192.168.250.0/24 ! -d 192.168.250.0/24 -j SNAT --to-source 192.168.31.100 #访问目标地址为192.168.31.200这个机器并且是tcp协议80号端口的都转发给192.168.250.1(DNAT目标地址转换)
iptables -t nat -A PREROUTING -d 192.168.31.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.250.1:80 #访问目标地址为192.168.31.200这个机器并且是tcp协议80号端口的都转发给192.168.31.100的9999号端口(DNAT目标端口地址转换)
iptables -t nat -A PREROUTING -d 192.168.31.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.31.100:9999

firewalld 防火墙的更多相关文章
- 第8章 Iptables与Firewalld防火墙
章节简述: 红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config. 本章节基于数十个防火墙需求 ...
- CentOS7使用firewalld防火墙配置端口
安装启用firewalld防火墙 CentOS7默认的防火墙是firewalld 如果没有firewalld防火墙,可以执行yum install firewalld 命令进行安装 firewalld ...
- CentOS7、REHL7的firewalld防火墙使用简单说明
title: CentOS7.REHL7的firewalld防火墙使用简单说明 categories: Linux tags: - Linux timezone: Asia/Shanghai date ...
- Linux firewalld 防火墙
Linux firewalld 防火墙 简介 RHEL 7 系统中集成了多款防火墙管理工具,其中 firewalld(Dynamic Firewall Manager of Linux system ...
- CentOS 7 打开关闭FirewallD防火墙端口命令
CentOS 7 使用firewalld代替了原来的iptables,使用方法如下: >>>关闭防火墙 systemctl stop firewalld.service ...
- 第7章 Iptables与Firewalld防火墙。
第7章 Iptables与Firewalld防火墙. Chapter7_听较强节奏的音乐能够让您更长时间的投入在学习中. <Linux就该这么学> 00:00/00:00 ...
- CentOS 7.0 关闭firewalld防火墙指令 及更换Iptables防火墙
CentOS 7.0 关闭firewalld防火墙指令 及更换Iptables防火墙 时间:2014-10-13 19:03:48 作者:哎丫丫 来源:哎丫丫数码网 查看:11761 评论:2 ...
- CentOS firewalld 防火墙操作
Centos 7 开启端口CentOS 7 默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的 CentOS 7 采用了 firewalld 防火墙 如要查询 ...
- 9.Iptables与Firewalld防火墙
第9章 Iptables与Firewalld防火墙 章节简述: 保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用 ...
- CentOS 7出现Failed to start firewalld.service: Unit is masked的解决办法和firewalld 防火墙开关
说明:刚刚使用systemctl start firewalld命令开启防火墙的时候,却开不成功,出现Failed to start firewalld.service: Unit is masked ...
随机推荐
- nohup 命令的使用
nohup 命令的使用 1. nohup简介 nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号.在注销后使用 nohup 命令运行后台中的 ...
- docker 启动容器失败 id already in use
问题:id already in use 解决:/etc/docker/daemon.json {"shutdown-timeout": 60}
- [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
Linux下安装MySQL执行scripts/mysql_install_db --user=mysql脚本时,报错如下: Filling help tables...2019-12-24 16:46 ...
- Kafka工作流程
Kafka生产过程分析 1 写入方式 producer采用推(push)模式将消息发布到broker,每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘效率比随机 ...
- Java多线程_同步工具CyclicBarrier
CyclicBarrier概念:CyclicBarrier是多线程中的一个同步工具,它允许一组线程互相等待,直到到达某个公共屏障点.形象点儿说,CyclicBarrier就是一个屏障,要求这一组线程中 ...
- 两台Windows Server 2012 R2数据库同步
文件服务器/备库(192.168.0.1) 数据库服务器/备份文件服务器(192.168.0.2) 数据库实时同步 一.在主数据库服务器里,同样打开隐藏文件,找到C:\ProgramData\MySQ ...
- npm install @wepy/cli -g 出错
npm install @wepy/cli -g 出错:npm ERR! Unexpected end of JSON input while parsing near '...1.0.0" ...
- Python 快速验证代理IP是否有效
有时候,我们需要用到代理IP,比如在爬虫的时候,但是得到了IP之后,可能不知道怎么验证这些IP是不是有效的,这时候我们可以使用Python携带该IP来模拟访问某一个网站,如果多次未成功访问,则说明这个 ...
- 跟我一起学.NetCore之中间件(Middleware)简介和解析请求管道构建
前言 中间件(Middleware)对于Asp.NetCore项目来说,不能说重要,而是不能缺少,因为Asp.NetCore的请求管道就是通过一系列的中间件组成的:在服务器接收到请求之后,请求会经过请 ...
- 【python】装饰器听了N次也没印象,读完这篇你就懂了
装饰器其实一直是我的一个"老大难".这个知识点就放在那,但是拖延症... 其实在平常写写脚本的过程中,这个知识点你可能用到不多 但在面试的时候,这可是一个高频问题. 一.什么是装饰 ...