文章目录

  • 前言
  • 一、Iptables
  • 二、包过滤的工作层次
  • 三、iptable的表、链结构
    • 1. 四表五链
    • 2. 四表
    • 3. 五链
    • 4. 数据包过滤的匹配流程
  • 四、规则链匹配顺序
    • 1. 主机型防火墙
    • 2. 规则链内的匹配设顺序
    • 3. 数据包在规则表、链间的匹配流程
  • 五、编写防火墙规则
  • 六、基本语法
  • 七、添加、查看、删除规则等基本操作
  • 总结

前言

在 Internet 中,企业通过架设各种应用系统来为用户提供各种网络服务,如 Web 网站、电子邮件系统、FTP 服务器、数据库系统等。那么,如何来保护这些服务器,过滤企业不需要的访问甚至是恶意的入侵呢?Linux 的防火墙体系主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux 系统的防火墙体系基于内核编码实现, 具有非常稳定的性能和高效率,也因此获得广泛的应用。

一、Iptables

  1. 位于/sbin/iptables,用来管理防火墙规则的工具
  2. 称为LINUX防火墙的“用户态”

二、包过滤的工作层次

  1. 主要是网络层,针对IP数据包
  2. 体现在对包内的IP地址、端口等信息的处理上

三、iptable的表、链结构

1. 四表五链

1.1、规则的作用:对数据包进行过滤或处理

1.2、链的作用:容纳各种防火墙规则

1.3、链的分类依据:处理数据包的不同时机

2. 四表

2.1、raw:主要用来决定是否对数据包进行状态跟踪,包含两个规则链:OUTPUT、PREROUTING

2.2、Mangle:修改数据包内容,用来做流量整形的,给数据包设置标记,包含五个规则链:INPUT、OUTPUT、FORWSRD、PREROUTING、POSTROUTING

2.3、NAT:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口,包含三个规则链:OUTPUT、PREROUTING、POSTROUTING

2.4、Filter:负责过滤数据包,确定是否放行该数据包(过滤),包含三个链,即:PREROUTING、POSTROUTING、OUTPUT

3. 五链

3.1、INPUT:处理入站数据包

3.2、OUTPUT:处理出站数据包

3.3、FORWARD:处理转发数据包

3.4、POSTROUTING链:在进行路由选择后处理数据包3.5、PREROUTING链:在进行路由选择前处理数据包

4. 数据包过滤的匹配流程

优先顺序:raw>mangle>nat>filter

四、规则链匹配顺序

1. 主机型防火墙

1.1、数据包直接进入到防火墙所在的服务器的内部某一个应用程序当中,直接进入到服务,入站数据(来自外界的数据包,且目标地址是防火墙本机) : PREROUTING --> INPUT --> 本机的应用程序。

1.2、出站数据(从防火墙本机向外部地址发送的数据包):本机的应用程序–>OUTPUT-.>POSTROUTING。

1.3、网络型防火墙:转发数据(需要经过防火墙转发的数据包) : PREROUTING --> FORWARD --> POSTROUTING。

2. 规则链内的匹配设顺序

2.1、自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)要么放行 要么丢弃,若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)

2.2、一旦找到一条匹配规则将不再检查后续的其他规则,如果一直找不到匹配的规则,就按默认规则处理。

2.3、默认规则用iptables -L查看,规则链后面出现(policy ACCEPT)即是默认放行

2.4、默认策略不参与链内规则的顺序编排

2.5、-F清空链时,默认策略不受影响

3. 数据包在规则表、链间的匹配流程

3.1、入站数据流向:来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理(是否修改数据包地址等),然后进行路由选择(判断该数据包应发往何处);如果数据包的目标地址是防火墙本机(如 Internet 用户访问网关的 Web 服务端口),那么内核将其传递给INPUT 链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如 httpd 服务器)进行响应。

3.2、转发数据流向:来自外界的数据包到达防火墙后,首先被 PREROUTING 链处理,然后再进行路由选择;如果数据包的目标地址是其他外部地址(如局域网用户通过网关访问 QQ 服务器),则内核将其传递给 FORWARD 链进行处理(允许转发或拦截、丢弃),最后交给 POSTROUTING 链(是否修改数据包的地址等)进行处理。

3.3、出站数据流向:防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网 DNS服务时),首先进行路由选择,确定了输出路径后,再经由 OUTPUT 链处理,最后再交 POSTROUTING 链(是否修改数据包的地址等)进行处理。

五、编写防火墙规则

1、IP table安装

CentOS7默认使用firewalld防火墙,没有安装IP table,若想使用,必须先关系firewalld防火墙,再安装iptable

六、基本语法

1、语法构成

2、数据包的常见控制类型

七、添加、查看、删除规则等基本操作

1、iptables 命令的常用管理选项

2、查询iptable以及清空iptable文件

3、禁止ICMPping通本网段


4、Ssh 22端口案例
-i 在指定链中插入一条新的

-d 删除

5、查看规则列表

6、以数字形式显示

7、删除规则

8、自上而下顺序



9、规则的匹配条件
9.1、通用匹配:可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件。
协议匹配:-p协议名
地址匹配:-s 源地址、-d目的地址
端口匹配:-i入站网卡、-o出站网卡
9.2、案例


9.3、隐含匹配

9.3.1、端口匹配: --sport 源端口、–dport 目的端口

9.3.2、–sport 1000 匹配源端口是1000的数据包

9.3.3、–sport 1000:3000 匹配源端口是1000-3000的数据包

9.3.4、–sport :3000 匹配源端口是3000及以下的数据包

9.3.5、–sport 1000: 匹配源端口是1000及以上的数据包

9.3.6、注意: --sport和–dport 必须配合-p <协议类型>使用

9.4、案例

10、TCP标记

10.1、SYN建立联机

10.2、ACK确认

10.3、PSH传送

10.4、FIN结束

10.5、RST重置

10.6、URG紧急

10.7、案例

总结

1、netfilter是实现过滤防火墙功能的内核机制,iptables是管理防火墙规则的用户态工具

2、iptables的规则体系默认包括四个表(filter、nat、mangle、raw)和五种链(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING)

3、表的匹配顺序为 raw → mangle → nat → filter

4、链的匹配顺序取决于具体的数据流向,且遵循“匹配即停止”的原则,但LOG操作除外

5、iptables规则的匹配条件类型包括通用匹配、隐含匹配、显示匹配,其中显示匹配必须以“-m 模块名称”加载模块

Linux骚操作之第三十话防火墙相关推荐

  1. MYSQL骚操作之第四十话之索引优化+SQL常用高频语句+删除区别

    文章目录 前言 一.索引优化 1.Btree索引 1.1.概述 1.2.存储结构 1.3.MHISAM引擎索引结构 2.HASH索引 2.1.概述及存储结构 2.2.HASH索引的弊端 3.FULLT ...

  2. LINUX学习基础篇(三十五)日志管理

    LINUX学习基础篇(三十五)日志管理 日志管理 系统中常见的日志文件 日志文件格式 rsyslogd服务的配置文件 日志轮替 logrotate配置文件 配置文件夹 /etc/logrotate.d ...

  3. linux骚操作之第二十话DNS

    文章目录 前言 一.BIND域名服务基础 1.DNS 1.1.DNS系统的作用 1.2.DNS系统的分布式数据结构 2.DNS服务器类型 2.1.主域名服务器 2.2.从域名服务器 2.3.缓存域名服 ...

  4. linux骚操作之第八话硬盘分区及挂载

    文章目录 前言 一.什么是挂载 二.磁盘分区结构 三.文件系统类型 1.XFS文件系统 2.SWAP,交换文件系统 3.LINUX支持的其他文件系统类型 4.CENTOS6 与CENTOS7的区别 四 ...

  5. 骚操作之第四十九话REDIS

    文章目录 一.什么是数据库 二.什么是关系型数据库 三.非关系型数据库 四.关系型数据库和非关系型数据库的区别 五.redis简介 1.什么是redis 2.redis的特点 3.redis应用场景, ...

  6. Linux操作系统学习笔记(三十)docker和k8s的恩怨情仇

    一. 简介   之前聊天发现很多小伙伴对docker和k8s了解甚少,所以决定分享一下在docker和k8s背后这些年容器发展的故事,谈不上以史为鉴,但是至少可以从中汲取经验教训,同时也能了解容器及容 ...

  7. 【正点原子Linux连载】第三十二章 U-Boot启动流程详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  8. 【正点原子Linux连载】第三十八章 根文件系统构建 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. 三十六、rsync通过服务同步、Linux系统日志、screen工具

    三十六.rsync通过服务同步.Linux系统日志.screen工具 一.rsync通过服务同步 该方式可以理解为:在远程主机上建立一个rsync的服务器,在服务器上配置好各种应用,然后本机将作为客户 ...

最新文章

  1. hp-ux 集群,内存 小记
  2. Java 虚拟机对锁优化所做的努力
  3. 预安装CentOS6.5,虚拟机VMware Workstation12配置
  4. Oracle Merge into
  5. cobol_在尝试之前不要讨厌COBOL
  6. JavaScript学习笔记之原型对象
  7. Python新式类与经典类(旧式类)的区别
  8. 《Linux/UNIX系统编程手册》推荐
  9. 3GPP TS 24.301 Release 8 中文版
  10. 什么是软件研发费用定额?
  11. Unity敌人的AI
  12. matlab制作太阳系模型,一种太阳系模型的制作方法
  13. 迅雷android 电视,【迅雷电视助手】迅雷电视助手安卓版(Android)2.0下载_太平洋下载中心...
  14. 使用 Byzanz 录制 Gif 动画或 Ogv 视频
  15. 黑客全票打飞服务器,《鹅鸭杀》停服三天!更有游戏首发被冲下架
  16. PHP网站升级https后如何引用http直播源hls?
  17. VmatrixOJ--IP and QQ
  18. 中关村软件园附近美食一览
  19. c#串口模拟互发数据(COM1-COM2)
  20. 【计量经济学导论】01. 简单回归模型

热门文章

  1. 小学生搞了自己学校的网站!
  2. MySQL 算数表达式
  3. Shakti是什么?
  4. 去中心化与无平台成员:与 Nasheq.eth、Ivan Manchev和Rob Edwards开启 “智能钱包”系列对话!
  5. 2019中兴校招面经整理
  6. 【Maths】对数 logrithm
  7. 因为爱情才放弃自己的强势
  8. 公司裁员前后 你应该怎么做?(结尾有开庭流程)
  9. 信息增益matlab实现,python中如何实现信息增益和信息增益率
  10. 2019年校招实习免费内推(含面试资料简历模板)