首页 > 系统相关 >iptables——相关概念

iptables——相关概念

时间:2023-07-25 19:33:51浏览次数:40  
标签:iptables 数据包 防火墙 ACCEPT 概念 规则 相关 mangle

本系列文章参考朱双印博客,原文链接:https://www.zsythink.net/archives/1199

写在前面

设置iptables防火墙,需要明确的2点:
1.本机开通了哪些服务端口
2.有哪些机器需要访问本机
一般为了安全性考虑,先只开通需要本机对需要访问本机的22端口和本机的服务端口。

# 阻止所有流量
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# 允许回环设备
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# 允许已经建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许SSH连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许HTTP和HTTPS连接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 允许DNS查询
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

# 允许ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

相关概念

1.防火墙分类

从逻辑上可以分为主机防火墙和网络防火墙。

  • 主机防火墙:针对于单个主机进行防护。
  • 网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。
    网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。

从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。

  • 硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。
  • 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。

2.iptables简介

iptables其实是一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”netfilter中,netfilter才是真正的防火墙,也就是安全框架(framework),位于内核空间。
iptables是一个命令行工具,位于用户空间,用这个工具操作真正的框架。
netfilter/iptables(下文中简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

netfilter是Linux操作系统核心层内部的一个数据包处理模块,具有如下功能:

  • 1.网络地址转换(Network Address Translate)
  • 2.数据包内容修改
  • 3.数据包过滤
    所以虽然使用service iptables start启动iptables服务,但是准确的来说,iptables并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的功能。

3.iptables基础

3.1链的概念

每个经过某个链的报文,都要将这条链上的所有规则都匹配一遍,如果有符合条件的规则,则执行规则对应的动作。
链有5种,位于用户空间:prerouting,forward,postrouting,input(流向web服务),output

  • 到本机某进程的报文流向:prerouting -> input
  • 由本机转发的报文流向:prerouting -> forward -> postrouting
  • 由本机的某进程发出报文(响应报文)流向:output -> postrouting

3.2表

具有相同功能的规则的集合叫做表。表一共分4种:filter表,nat表(network address translation),mangle表,raw表。

  • filter表:负责过滤功能,防火墙;内核模块:iptables_filter
  • nat表:网络地址转换功能;内核模块:iptables_nat
  • mangle表:拆解报文,做出修改,并重新封装;内核模块:iptables_mangle
  • raw表:关闭nat表上启用的连接追踪机制;内核模块:iptables_raw
3.3表链关系

每条“链”上的规则都存在于哪些”表“,即某条链只拥有哪张表相应的功能。

  • prerouting链的规则只能存放在:nat表,raw表,mangle表
  • input链的规则只能存放在:mangle表,filter表(centos7中有nat表,centos6中没有)
  • forward链的规则只能存放在:mangle表,filter表
  • output链的规则只能存放在:raw表,mangle表,filter表,nat表
  • postrouting链的规则只能存放在:mangle表,raw表

实际使用中,是针对“表”作为操作入口,对规则进行定义。

3.4表(功能)<->链(钩子)
  • raw表规则可被哪些链使用:prerouting,output
  • mangle表规则可被哪些链使用:prerouting,input,forward,postrouting,output
  • nat表规则可被哪些链使用:prerouting,output,postrouting(centos7中有input)
  • filter表规则可被哪些链使用:input,forward,output

数据包在经过一条“链”的时候,会将当前链的所有规则都匹配一遍,但匹配时会有先后顺序,哪张“表”的规则会放在“链”的最前面执行呢,这就涉及到表的优先级。

3.5表的优先级

由高到低:raw -> mangle -> nat -> filter

3.6数据经过防火墙的流程

3.7规则

根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理。
规则的组成:匹配条件+动作
匹配条件:基本匹配条件、扩展匹配条件
基本匹配条件:源地址SourceIP,目标地址Destination IP
扩展匹配条件:以模块形式存在,需要依赖对应的扩展模块。比如源端口Source Port,目标端口Destination Port

3.8处理动作

在iptables中被称为target,动作也分为基本动作和扩展动作。

  • ACCEPT:允许数据包通过。
  • DROP:直接丢弃数据包,不给任何回应消息。
  • REJECT:拒绝数据包通过,必要时会给数据发送段一个响应的信息,客户端刚请求就会收到拒绝的信息。
  • SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。
  • MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的IP上。
  • DNAT:目标地址转换。
  • REDIRECT:在本机做端口映射。
  • LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,除了记录之外不对数据包做任何操作,仍然让下一条规则去匹配。

标签:iptables,数据包,防火墙,ACCEPT,概念,规则,相关,mangle
From: https://www.cnblogs.com/even160941/p/17580790.html

相关文章

  • 【后端面经-Java】Java基本概念
    【后端面经-Java】Java基本概念目录【后端面经-Java】Java基本概念1.面向对象和面向过程1.1概念1.2优缺点对比2.C++和Java的区别2.1"去其糟粕"——Java同学,你对C++的这些东西有什么意见?2.2改进之处————Java同学,你的这个论文,,,创新点是什么?面试模拟参考资料1.面向对象和......
  • 赛维1325雕刻机系统安装和相关支持软件
    “赛维”牌雕刻机是行业内较为知名的cnc数控品牌。因工作原因,我公司也购买了一台sw1325雕刻机,其实是买错了,根据台面大小来看,1318.1312都可以买。买这个雕刻机主要用于切割本公司亚克力面板的切割使用。但官方原本留的售后联系方式服务并不理想。后又联系该公司张工,获得了一个比较......
  • 通过iptables转发后的端口telnet通但是curl不通的问题
    今天遇到一个问题,一个隔离安全域的服务器需要访问承载网上的gitlab,但是无法直接做互通,所以需要通过iptables转发一次。完成iptables规则后,发现telnet端口是通的但是curlhttp:地址加端口就会返回不通。于是不停的改iptables规则,甚至放行forword规则,最后检查发现是存在外网的代理(代......
  • Ubuntu中iptables的相关操作命令
    iptables简介:Iptables和UFW (UncomplicatedFirewall)都是Linux操作系统中常用的防火墙管理工具,它们的主要区别如下:相同点:两者都是Linux操作系统中的防火墙管理工具,可以配置网络规则以限制网络流量。工作原理:iptables和UFW都基于netfilter框架来实现防火墙功能。......
  • 使用 MyBatis 相关依赖包(20230725)
    开发SpringBoot应用时使用MyBatis的相关依赖包…… 说明:本文首次发布于2023-7-2510点(北京时间),其中的“最新”是这个时间点最新。 0、序章梳理开发SpringBoot项目时,使用各种MyBatis相关依赖包的版本及其关系。 1、SpringBoot2.7.13默认MyBatisFramewo......
  • 数据仓库的概念
    数据仓库的定义(Data Warehouse)是为企业所有决策制定制定过程,提供所有系统数据支持的战略集合。数据仓库好处:可以帮助企业改进业务流程、控制成本,提高产品质量等。数据仓库做什么:清洗,转义,分类,重组,合并,拆分,统计等。数据仓库输出到哪:报表系统,用户画像,推荐系统,机器学习,风控系统......
  • Redis相关面试题
    Redis相关面试题面试官:什么是缓存穿透?怎么解决?候选人:嗯~~,我想一下缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到DB去查询,可能导致DB挂掉。这种情况大概率是遭到了攻击。解决方案的话,我们通常都......
  • UE4常用概念
          ......
  • JS中文件相关的知识(一):MIME类型
    不知道有没有同学和我一样,写代码时一遇到文件操作就犯怵,必须要先去把知识补一遍再说;对于Content-Type、responseType、ArrayBuffer、buffer、blob、file等这些词汇,心里问号一大堆,从来都没有真正区分清楚过;这样下去不是办法呀,真的猛士,应该敢于...一百次浮于表面,不如一次深入骨髓。......
  • PostgreSQL 相关
    pgsql下载地址.net库nugetnpgsql4.1.12查询时表名要加"",否则会报关系"xx"不存在。heidisql列举数据库有错误,public并不是数据库名称。列举数据库sql:SELECTdatnameFROMpg_database;......