iptables防火墙

1.iptables简介

netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案。

1.1 netfilter和iptables的区别

netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,属于“内核态”(KernelSpace,又称内核空间)的防火墙功能体系;

Iptables:指的是用来管理Linux防火墙的命令程序,通常位于/sbin/iptables,属于“用户态”(UserSpace,又称用户空间)的防火墙管理体系;

所以其实iptables只是Linux防火墙的管理工具而已,真正实现防火墙功能的是 netfilter,它是Linux内核中实现包过滤的内部结构。

1.2 iptables和firewalld的关系

Cetnos7以上版本中替换了iptables变为firewalld作管理工具,配置方法有变化但内核还是通过netfilter实现。

2.iptables安装和服务管理

Centos6中iptables默认已经安装可直接使用,Centos7中安装iptables替换默认firewalld步骤如下:

yum install -y iptabels-service
systemctl stop firewalld
systemctl disable firewalld
systemctl start iptables
systemctl enable iptables

iptables配置文件,服务管理:

/etc/sysconfig/iptables      #iptbales规则存放文件
iptales-save > /etc/sysconfig/iptables      #保存规则到配置文件
iptables-restore < /etc/sysconfig/iptables      #恢复iptables配置文件
service iptales start/stop/restart/status/save      #Centos6中服务管理
systemctl start/stop/restart/status iptables      #Centos7中服务管理
3.iptables的四表五链:

iptables防火墙

默认4个规则表:
raw表:一般用作跳过nat或对数据包进行状态跟踪;
mangle表:一般用于修改数据包,如修改TOS/TTL或者设置Mark标记;
nat表:一般用于网络地址转换,如源地址转换和目的地址转换;
filter表:一般用于对数据包进行过滤;

默认5种规则链:
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
PREROUTING:在进行路由选择前处理数据包(做目标地址转换)
POSTROUTING:在进行路由选择后处理数据包(做源地址转换)

INPUT、OUTPUT链主要用在“主机型防火墙”中,即主要针对服务器本机进行保护的防火墙;
FORWARD、PREROUTING、POSTROUTING链多用在“网络型防火墙”中。

链、表的优先顺序:
表间优先顺序:
raw > mangle > nat > filter
链间匹配顺序:
入站数据:PREROUTING、INPUT
出站数据:OUTPUT、POSTROUTING
转发数据:PREROUTING、FORWARD、POSTROUTING
链内匹配顺序:
至上向下依次检查、匹配到对应规则即停止(LOG日志策略例外)
若在链内找不到匹配规则、则按照该链默认策略处理(未修改情况下、默认策略为允许)

iptables防火墙

iptables防火墙

4.iptables命令语法:
iptables [-t 表名] 管理选项 [链名]  [条件匹配] [-j 目标动作或者调整]
  不指定表名、表示filter表
  不指定链名、表示所有链

iptables防火墙

相关推荐