iptables简介(一)
  Qn0V923SdTA7 2023年11月13日 29 0


一、iptables 简介

前言

在早期的 Linux 系统中,默认使用的是 iptables 配置防火墙。尽管新型 的 firewalld 防火墙已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用 iptables。考虑到 iptables 在当前生产环境中还具有顽强的生命力,我觉得还是有必要再好好地讲解一下这项技术。

1、什么是iptables?

iptables 是 Linux 防火墙工作在用户空间的管理工具,是 netfilter/iptablesIP 信息包过滤系统是一部分,用来设置、维护和检查 Linux 内核的 IP 数据包过滤规则。

2、iptables特点

iptables 是基于内核的防火墙,功能非常强大;iptables 内置了filter,nat和mangle三张表。所有规则配置后,立即生效,不需要重启服务。

二、iptables 组成

iptables的结构是由(tables)组成,而tables是由组成,链又是由具体的规则组成。因此我们在编写iptables规则时,要先指定表再指定链。tables的作用是区分不同功能的规则,并且存储这些规则。

表的图如下,后面再详细介绍

iptables简介(一)_开机自启动

注意:raw表用于处理异常情况,一般使用不到,常用的是另外三张表。

所以,总体说来,iptables是由“三表五链”组成。

1、三张表介绍

这个比较重要,要记住

表名

作用

包括的链

filter

负责过滤数据包

input,output,forward

nat

用于网络地址转换(IP、端口)

prerouting,postrouting ,output

mangle

用于修改数据包、流量整形、给数据包打标识

input,output,forward,prerouting,postrouting 

优先级:mangle > nat > filter

2、五条链介绍

这个先大体了解,以后结合实际应用再理解

链名

功能

input

匹配目标IP是本机的数据包

output

出口数据包,一般不在此链上做配置

forward

匹配流经本机的数据包

prerouting

修改目的地址,用来做 DNAT 。如:把内网中的 80 端口映射到互联网端口

postrouting

修改源地址,用来做 SNAT。如:局域网共享一个公网IP接入Internet

三、iptables 处理数据包流程:

这个供参考,在实际应用中有细节不明白,到这里来查阅。

iptables简介(一)_生产环境_02

从这个图可以看出,在网卡和应用程序(Application)中间隔着一个iptables(紫色的那一片),它就相当于一个卫士,帮你筛选信息。比如你现在正在聊QQ(就是应用程序Applicatin),那么最下面网卡来的信息,先由iptables把关,一般来的信息有几种,要拦截的危险信息,要接收的有用信息,要转发的信息,这个先由链prerouting(路由前)来处理,该拦截的拦截,该接收的送到链input(输入)就到QQ里面去了,该转发的就forward(这个相当于只当二传手不会到QQ去),再看QQ处理后的信息,到链output(输出),最后的出口是链postrouting(路由后)。

最后我们来说一下网卡进出的信息,左边进的信息先到链prerouting(路由前),而右边出去的信息从postrouting(路由后)出

iptables简介(一)_IP_03

一个路由前,一个路由后是啥意思呢?这是因为我们的linux处理网络信息有多套机制,不光是一个iptables,还有内部路由器,还有SELINUX等等,它们共同起作用,prerouting就是在路由动作前先做一些事情,postrouting就是在路由操作完之后再做些事情。这里可以看出iptables的控制权高于内部路由机制。

    总结:整体数据包分两类:1、发给防火墙本身的数据包 ;2、需要经过防火墙的数据包

四、iptables 安装

1、关闭 firewall

systemctl stop firewalld 		     #关闭firewalld服务
systemctl disable firewalld 	   #禁止firewalld开机自启动
systemctl mask --now firewalld   #屏蔽firewalld服务,以防止其他服务启动它

2、安装 iptables

#先查看是否安装,可以看它的状态

systemctl  status  iptables

#安装:

yum -y install iptables iptables-services

#升级

yum update iptables

3、启动服务

systemctl start iptables            #启动iptables
systemctl enable iptables           #设置iptables开机自启动

4、配置文件

/etc/sysconfig/iptables

可以用命令 cat 查看文件

另外,要关闭掉  SELINUX ,否则的话,iptables 不读取配置文件,防火墙不生效。

安装好iptables后,可以用命令查看到已经有的表,命令如下:

iptables   -L

另外,在开启 iptables 之后,你原来能用的一些服务,比如 FTP、DNS可能无法用了 ,这个时候,你可能要清空一下iptables 表中的规则,使用下面的命令

iptables   -F

下面是一些经常会用到的命令

#查看iptables现有规则

iptables -L -

#先允许所有,不然有可能会杯具

iptables -P INPUT ACCEPT 

#清空所有默认规则

iptables -F

#清空所有自定义规则

iptables -

#所有计数器归0

iptables -Z

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: Linux常用命令 下一篇: PostgreSQL explain使用
  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
Qn0V923SdTA7