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-cmdfirewalld防火墙配置管理工具的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区域是否允许请求SSHHTTPS协议的流量
  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基础的更多相关文章

  1. 9.Iptables与Firewalld防火墙

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

  2. netfilter/iptables和firewalld的关系

    1.netfilter 是linux 内核模块,其中包含了大量的内核规则,而要想对这些内核规则进行操作,就需要用户态的工具. iptables和firewalld就是一个用户态的工具. 2.iptab ...

  3. centos7之iptables与firewalld

    保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网 与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用. firewalld与iptables iptables f ...

  4. 第7章 Iptables与Firewalld防火墙。

    第7章 Iptables与Firewalld防火墙.     Chapter7_听较强节奏的音乐能够让您更长时间的投入在学习中. <Linux就该这么学> 00:00/00:00     ...

  5. 第8章 Iptables与Firewalld防火墙

    章节简述: 红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config. 本章节基于数十个防火墙需求 ...

  6. linux服务之iptables与firewalld

    开发语言: 服务器端:在内核中实现,无守护程序 客户端:一般是cli界面下的iptables命令 相关包:iptables-1.4.7-11.el6.x86_64 netfilter/iptables ...

  7. 《linux就该这么学》第十节课:第8章iptables和firewalld

            网卡配置: 物理机:192.168.10.1/24 服务器:192.168.10.10/24 客户端:192.168.10.20/24         1.vim  /etc/sysc ...

  8. iptables和firewalld的配置

    一.iptables 1.配置 vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -p tcp -m tcp ...

  9. Iptables静态防火墙基础教程

    文章目录检查Iptables是否安装Iptables相关的文件配置Iptables规则自定义规则保存规则 Iptables对于刚入门Linux的新手都比较难理解和配置.但是如果你掌握了其中的诀窍,你就 ...

随机推荐

  1. js运算符和逻辑分支

    运算符 1.拼接运算符:+,加号两边只要有一边出现字符串就是拼接 2.算术运算符  如:2+3: 3.赋值运算符+=,-=,/=,*= 4.关系运算符>,<,==,=== != !== ! ...

  2. 你必须学UML之理论篇

    1.前言 对于当前社会背景下从事软件开发的工作者而言,"写代码"实际上并不是唯一的工作.特别在一些中小型的企业当中,这些企业往往对于开发者的要求,不单单停留在写代码完成相应功能上, ...

  3. 【lwip】04-网络数据包流向

    目录 前言 4.1 TCPIP分层与lwip数据共享 4.2 协议栈线程模型 4.3 pbuf 结构体 4.3.1 pbuf的标志位flags 4.4 pbuf的类型 4.4.1 PBUF_RAM类型 ...

  4. elasticsearch设置密码及Java密码连接

    目录 1. 安装 2. 修改elasticsearch-8.2.2\config\elasticsearch.yml文件里面xpack.security.enabled: false为 3. 重新启动 ...

  5. 域名+端口号 访问minio服务问题

    业务上需要用到分布式文件服务,选择了minio作为文件服务的组件,搭建好服务后使用IP+端口号(http://xx.xx.xx.xx:9001)的形式访问在所有环境下都没有问题. 上线部署时出于正规和 ...

  6. picoCTF:keygenme-py 解题思路

    keygenme-py 解题思路 题目如下 点击 keygenme-trial.py 获取要破解的文件 py文件代码为 点击查看代码 #================================ ...

  7. vue简单的请求api并渲染到表格

    环境 vue3.11 组件库 https://element-plus.gitee.io/#/zh-CN 开始 初始化一个项目 App.vue <template> <div> ...

  8. 让Python更优雅更易读(第二集)

    友情链接 让Python更优雅更易读(第一集) 1.装饰器 1.1装饰器特别适合用来实现以下功能 运行时校验:在执行阶段进行特定校验,当校验通不过时终止执行. 适合原因:装饰器可以方便地在函数执行前介 ...

  9. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(完)

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  10. 【面试题】JS改变this指向的三种方法

    一.this指向 点击打开视频讲解更加详细 this随处可见,一般谁调用,this就指向谁.this在不同环境下,不同作用下,表现的也不同. 以下几种情况,this都是指向window 1.全局作用下 ...