iptables规则表及规则链
一、Linux包过滤防火墙
-
selinux
-
它是linux系统特有的安全机制,限制比较多,配置很繁琐,没有人真正会使用这个来做网安
# 临时管理 [root@CentOS7-4 ~]# setenforce 0 setenforce: SELinux is disabled
-
永久关闭的方法:/etc/sysconfig/selinu,就只需要修改下面的内容即可永久关闭(enforcing是开启)
-
查看当前selinux状态:getenforce
[root@CentOS7-4 ~]# getenforce Disabled
-
注意:如果由 enforcing 或 permissive 改成 disabled,或由 disabled 改成其他两个,那也必须要重新开机。这是因为 SELinux 是整合到核心里面去的,你只可以在SELinux 运作下切换成为强制 (enforcing) 或宽容 (permissive) 模式,不能够直接关闭 SELinux 的!同时,由 SELinux 关闭 (disable) 的状态到开启的状态也需要重新开机啦。
-
-
netfilter
- Linux2.4.x的版本引入的一个子系统,提供整套是hook函数的管理机制,提供包过滤,NAT(网络地址转换)、跟踪协议类型的连接。
- 它是LInux内核的包过滤体系,处于内核态
-
iptables
- linux3.5版本集成的一个ip信息包过滤系统 。
- 位置/sbin/iptables,用来管理防火墙的规则的工具
- 这个iptables处于用户态
-
firewalld
- 和iptables 是一个东西,他们都是应用软件,用户态
二、包过滤原理
-
主要是网络层,针对IP数据包
-
体现在对包内的IP地址、端口等信息的处理上
三、iptables
1、centos系统默认防火墙使用的是firewalld,所以,我们还得安装一下iptables。停用firewalld防火墙:
-
[root@CentOS7-4 ~]# systemctl stop firewalld [root@CentOS7-4 ~]# systemctl disable firewalld (不让开机自启) #查看防火墙状态 [root@CentOS7-4 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)
-
安装与配置iptables
#查看安装包 [root@CentOS7-4 ~]# yum search iptables 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com =========================================== N/S matched: iptables =========================================== iptables-devel.i686 : Development package for iptables iptables-devel.x86_64 : Development package for iptables iptables-services.x86_64 : iptables and ip6tables services for iptables iptables-utils.x86_64 : iptables and ip6tables services for iptables iptables.i686 : Tools for managing Linux kernel packet filtering capabilities iptables.x86_64 : Tools for managing Linux kernel packet filtering capabilities 名称和简介匹配 only,使用“search all”试试。 #安装iptables和iptables-services [root@CentOS7-4 ~]# yum -y install iptables-services iptables #开启iptables [root@CentOS7-4 ~]# systemctl start iptables #查看iptables状态 [root@CentOS7-4 ~]# systemctl status iptables ● iptables.service - IPv4 firewall with iptables Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled) Active: active (exited) since 一 2023-04-03 15:39:14 CST; 1s ago Process: 1473 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS) Main PID: 1473 (code=exited, status=0/SUCCESS) 4月 03 15:39:14 CentOS7-4 systemd[1]: Starting IPv4 firewall with iptables... 4月 03 15:39:14 CentOS7-4 iptables.init[1473]: iptables: Applying firewall rules: [ 确定 ] 4月 03 15:39:14 CentOS7-4 systemd[1]: Started IPv4 firewall with iptables.
需要联网,如果没修改过镜像的话下载速度有点慢,太慢了的情况,可以看看之前的笔记,修改成国内镜像,或者使用本地yum源的方法!!!链接:安装及管理应用程序
2、规则链
- 规则的作用:对数据包进行过滤或处理
- 链的作用:容纳各种防火墙规则
- 链的分类依据:处理数据包的不同时机
- 5种规则链
- INPUT:处理入站数据包
- OUTPUT:处理出站数据包
- FORWARD:处理转发数据包
- POSTROUTING链:在进行路由选择后处理数据包
- PREROUTING链:在进行路由选择前处理数据包
3、规则表
-
表的作用:容纳各种规则链
-
表的划分依据:防火墙规则的作用相似
-
4个规则表
-
raw表:确定是否对该数据包进行状态跟踪
-
mangle表:为数据包设置标记
-
nat表:修改数据包中的源、目标IP地址或端口
-
filter表:确定是否放行该数据包(过滤)
4、匹配流程
- 规则表之间的顺序:raw→mangle→nat→filter
- 规则链之间的顺序
- 入站:PREROUTING→INPUT
- 出站:OUTPUT→POSTROUTING
- 转发:PREROUTING→FORWARD→POSTROUTING
- 按顺序依次检查,匹配即停止(LOG策略例外)
- 若找不到相匹配的规则,则按该链的默认策略处理
- 如果没有任何策略,则直接允许
:PREROUTING→INPUT
- 出站:OUTPUT→POSTROUTING
- 转发:PREROUTING→FORWARD→POSTROUTING
- 按顺序依次检查,匹配即停止(LOG策略例外)
- 若找不到相匹配的规则,则按该链的默认策略处理
- 如果没有任何策略,则直接允许