iptables和firewalld基础
1、四表五链概念:
filter表 过滤数据包
Nat表 用于网络地址转换(IP、端口)
Mangle表 修改数据包的服务类型、TTL、并且可以配置路由实现QOS
Raw表 决定数据包是否被状态跟踪机制处理
INPUT链 进来的数据包应用此规则链中的策略
OUTPUT链 外出的数据包应用此规则链中的策略
FORWARD链 转发数据包时应用此规则链中的策略
PREROUTING链 对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
POSTROUTING链 对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)
2、数据报文流程
数据报文从进入服务器到出来会经过5道关卡,分别为Preouting(路由前),input(输入),outing(输出),Forward(转发),Postrouting(路由后)
iptables
服务策略
ACCEPT
(允许流量通过)REJECT
(拒绝流量通过)LOG
(记录日志信息)DROP
(拒绝流量通过)
3、iptables
与 firewalld 区别
相同点:都是用来定义防火墙策略的防火墙管理工具
区别:
iptables服务会把配置好的防火墙策略,交由内核层面的 netfilter 网络过滤器来处理
firewalld服务则是把配置好的防火墙策略,交由内核层面的 nftables 包过滤框架来处理
4、DROP 和 REJECT策略的区别:
防火墙策略:
设置为REJECT拒绝动作后,流量发送方会看到端口不可达的响应
修改成DROP拒绝动作后,流量发送方会看到响应超时的提醒
5、iptables命令参数
-t<表> 指定要操纵的表
--line-numbers 显示规则的序号
-n 以数字格式显示地址和端口号
-P 设置默认策略
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新规则
-I num 在规则链的头部加入新规则
-D num 删除某一条规则
-s 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外
-d 区配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如TCP、UDP、ICMP
--sport num 匹配来源端口号
--dport num 匹配目标端口号
6、iptables基本的命令使用
1.查看防火墙规则
iptables -nvL --line-numbers
2.清空防火墙规则
iptables -F 清空所有的防火墙规则
iptables -X 删除用户自定义的空链
iptables -Z 清空计数
3.把INPUT
规则链的默认策略设置为拒绝/允许
iptables -P INPUT REJECT/ACCEPT
4.删除INPUT
规则链中刚刚加入的那条策略
iptables -D INPUT 1
5.保存当前的数据包计算器和字节计数器的值
iptables-save -c > /etc/sysconfig/iptables
指定要保存的表的名称
iptables-save -t filter > filter.bak
6.还原防火墙规则
iptables-restore
7.将INPUT
规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量:
iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 22 -j REJECT
8.向INPUT
规则链中添加拒绝所有人访问本机12345端口的策略规则:
iptables -I INPUT -p tcp --dport 12345 -j REJECT
iptables -I INPUT -p utp --dport 12345 -j REJECT
9.向INPUT
规则链中添加拒绝192.168.8.105主机访问本机80端口(Web
服务)的策略规则:
iptables -I INPUT -s 192.168.8.105 -p tcp --dport 80 -j REJECT
10.向INPUT
规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则:
iptables -I INPUT -p all --dport 1000:1024 -j REJECT
11.配置允许ssh端口连接
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
12.允许本地回环地址可以正常使用
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
13.允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
***14.启动网络转发规则,公网 210.14.67.7 让内网 192.168.188.0/24 上网
iptables -t nat -A POSTROUTING -s 192.168.188.0/24 -j SNAT --to-source 210.14.67.7
15.端口映射:本机的 2222 端口映射到内网 虚拟机的22 端口
iptables -t nat -A PREROUTING -d 210.14.67.127 -p tcp --dport 2222 -j DNAT --to-dest 192.168.188.115:22
16.阻止Windows蠕虫的攻击
iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --algo kmp --string "cmd.exe"
17.防止SYN洪水攻击
iptables -A INPUT -p tcp --syn -m limit --limit 5/second -j ACCEPT
18. 参考:https://blog.csdn.net/szb521/article/details/126415217
7.firewalld:基于CLI
(命令行界面)和基于GUI
(图形用户界面)的两种管理方式。
firewalld中常用的区域名称及策略规则:
trusted 允许所有的数据包
home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
internal 等同于home区域
work 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关
firewall-cmd
是firewalld
防火墙配置管理工具的CLI
firewall-cmd命令正常设置防火墙策略时添加--permanent参数,这样配置的防火墙策略就可以永久生效
参数|作用
--get-default-zone|查询默认的区域名称
--set-default-zone=<区域名称>|设置默认的区域,使其永久生效
--get-zones|显示可用的区域
--get-services|显示预先定义的服务
--get-active-zones|显示当前正在使用的区域与网卡名称
--add-source=|将源自此IP或子网的流量导向指定的区域
--remove-source=|不再将源自此IP或子网的流量导向某个指定区域
--add-interface=<网卡名称>|将源自该网卡的所有流量都导向某个指定区域
--change-interface=<网卡名称>|将某个网卡与区域进行关联
--list-all|显示当前区域的网卡配置参数、资源、端口以及服务等信息
--list-all-zones|显示所有区域的网卡配置参数、资源、端口以及服务等信息
--add-service=<服务名>|设置默认区域允许该服务的流量
--add-port=<端口号/协议>|设置默认区域允许该端口的流量
--remove-service=<服务名>|设置默认区域不再允许该服务的流量
--remove-port=<端口号/协议>|设置默认区域不再允许该端口的流量
--reload|让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
--panic-on|开启应急状况模式
--panic-off|关闭应急状况模式
8、firewalld命令示例:
1.查看firewalld
服务当前所使用的区域:
firewall-cmd --get-default-zone
2.查询eth0
网卡在firewalld
服务中的区域:
firewall-cmd --get-zone-of-interface=eth0
3.让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
firewall-cmd --reload
4.把firewalld
服务的当前默认区域设置为public
:
firewall-cmd --set-default-zone=public
5.启动/关闭firewalld
防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用):
firewall-cmd --panic-on/off
6.查询public
区域是否允许请求SSH
和HTTPS
协议的流量
firewall-cmd --zone=public --query-service=ssh
firewall-cmd --zone=public --query-service=https
7.把firewalld
服务中请求HTTPS
协议的流量设置为永久允许,并立即生效:
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
把firewalld
服务中请求HTTP
协议的流量设置为永久拒绝,并立即生效:
firewall-cmd --permanent --zone=public --remove-service=http
8.端口:把在firewalld
服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效:
firewall-cmd --zone=public --add-port=8080-8081/tcp
firewall-cmd --zone=public --list-port //查看当前的端口
9.把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:
firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
10.参考:https://blog.csdn.net/herhan1/article/details/114461334
iptables和firewalld基础的更多相关文章
- 9.Iptables与Firewalld防火墙
第9章 Iptables与Firewalld防火墙 章节简述: 保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用 ...
- netfilter/iptables和firewalld的关系
1.netfilter 是linux 内核模块,其中包含了大量的内核规则,而要想对这些内核规则进行操作,就需要用户态的工具. iptables和firewalld就是一个用户态的工具. 2.iptab ...
- centos7之iptables与firewalld
保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网 与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用. firewalld与iptables iptables f ...
- 第7章 Iptables与Firewalld防火墙。
第7章 Iptables与Firewalld防火墙. Chapter7_听较强节奏的音乐能够让您更长时间的投入在学习中. <Linux就该这么学> 00:00/00:00 ...
- 第8章 Iptables与Firewalld防火墙
章节简述: 红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config. 本章节基于数十个防火墙需求 ...
- linux服务之iptables与firewalld
开发语言: 服务器端:在内核中实现,无守护程序 客户端:一般是cli界面下的iptables命令 相关包:iptables-1.4.7-11.el6.x86_64 netfilter/iptables ...
- 《linux就该这么学》第十节课:第8章iptables和firewalld
网卡配置: 物理机:192.168.10.1/24 服务器:192.168.10.10/24 客户端:192.168.10.20/24 1.vim /etc/sysc ...
- iptables和firewalld的配置
一.iptables 1.配置 vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -p tcp -m tcp ...
- Iptables静态防火墙基础教程
文章目录检查Iptables是否安装Iptables相关的文件配置Iptables规则自定义规则保存规则 Iptables对于刚入门Linux的新手都比较难理解和配置.但是如果你掌握了其中的诀窍,你就 ...
随机推荐
- SpringBoot 01 概述
官方文档 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/ 简介 SpringBoot 是一个 JavaWeb ...
- Java注解最全详解(超级详细)
Java注解是一个很重要的知识点,掌握好Java注解有利于学习Java开发框架底层实现.@mikechen Java注解定义 Java注解又称Java标注,是在 JDK5 时引入的新特性,注解(也被称 ...
- NC202475 树上子链
题目链接 题目 题目描述 给定一棵树 T ,树 T 上每个点都有一个权值. 定义一颗树的子链的大小为:这个子链上所有结点的权值和 . 请在树 T 中找出一条最大的子链并输出. 输入描述 第一行输入一个 ...
- C#基础_C#计算样本标准差和总体标准差
首先我们先了解样本标准差和总体标准差: 样本标准差=方差的算术平方根=s=sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/(n-1)) 总体标准差=σ=sqrt(( ...
- Html飞机大战(六):移动飞机
好家伙,这篇移动主角 我们先来看看一个好东西, addEventListener() 方法 (他真的很好用) 我们直译一下,就叫他添加事件监听器方法 而可监听的对象就有很多啦 我们来了解一 ...
- .md图片链接转存并替换路径,及相关报错解决方法
最初我想把Typora中.md文件中的web图片链接都下载保存到本地,并且替换.md文本中的路径 说干就干,因为在网上没有找到现成的程序所以自己写了这个程序 思路是循环查找文件夹中的文件,然后yiel ...
- RTMP播放器开发填坑之道
好多开发者提到,在目前开源播放器如此泛滥的情况下,为什么还需要做自研框架的RTMP播放器,自研和开源播放器,到底好在哪些方面?以下大概聊聊我们的一点经验,感兴趣的,可以关注 github: 1. 低延 ...
- 如何在 Jenkins CI/CD 流水线中保护密钥?
CI/CD 流水线是 DevOps 团队软件交付过程的基本组成部分.该流水线利用自动化和持续监控来实现软件的无缝交付.通过持续自动化,确保 CI/CD 流水线每一步的安全性非常重要.在流水线的各个阶段 ...
- 高德地图与CAD图叠加显示方法汇总及优缺点分析
前言 高德地图应用在许多领域,平常我们用的地图导航,除过正常的地图导航指引功能之外,其实还有很多实用的功能.如高德影像地图应用在包括地理.土地测量.水文学.生态学.气象学以及海洋学等方面.Auto ...
- VMware Component Manager服务无法启动
近日,给一台Windows 2016上的vCenter打补丁,系统重启后,发现vmware的很多服务无法启动了.这是一台老版本的vcenter,虽然已经2021年了,但是它还管理着一些很老的ESX,比 ...