iptables防火墙

一.iptables防火墙 组件:

netfilter :属于内核态的功能体系,是一个内核模块,由多个数据包过滤表组成,其中包含数据包的过滤处理规则集,并根据规则过滤处理IP数据包
iptables :属于用户态的管理工具,如同firewalld、ufw,是一个防火墙应用管理程序,用来实现防火墙规则集的增删改查

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

二.四表五链:表中有链 链中有规则 

四表: raw表: 数据包状态跟踪

            mangle表:修改数据包内容,设置标记

            nat表:数据包地址转换

            filter表 :数据包过滤

五链:INPUT :处理入站数据

           OUTPUT :处理出站数据 

           FORWARD :处理转发数据

           PREROUTING :修改目的地址

           POSTROUTING:修改源ip地址

raw表包含:OUTPUT PREROUTING

mangle表: INPUT OUTPUT FORWARD PREROUTING POSTROUTING

nat表:        OUTPUT PREROUTING POSTROUTING

filter表:      INPUT OUTPUT FORWARD

数据包到达防火墙时,规则表之间的优先顺序

表的匹配顺序: raw -> mangle -> nat -> filter

规则链之间的匹配顺序

链的匹配顺序:入站数据 PREROUTING -> INPUT -> 本机的应用程序
                        出站数据 本机的应用程序 -> OUTPUT -> POSTROUTING
                        转发数据 PREROUTING -> FORWARD -> POSTROUTING

规则内的的匹配顺序:

从上往下依次匹配链中的规则,匹配到即停止;若没有匹配的规则,则按照链的默认规则处理

iptables安装

CentOS 7默认使用firewalld防火墙,没有安装 iptables,若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装 iptables
systemctl stop firewalld.service
systemctl disable firewalld.service

yum install -y iptables iptables-services
systemctl start iptables.service

iptables防火墙的配置方法

命令格式:

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]

注意事项:
不指定表名时,默认指filter表
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
控制类型和链名使用大写字母,其余均为小写

常用的管理选项:

-A :在指定链的末尾追加(--append)一条新的规则
-I :在指定链的开头插入(--insert)一条新的规则,未指定序号时默认作为第一条规则
-R :修改、替换(--replace)指定链中的某一条规则,可指定规则序号或具体内容
-P :设置指定链的默认策略(--policy)
-D :删除(--delete)指定链中的某一条规则,可指定规则序号或具体内容
-F :清空(--flush)指定链中的所有规则,若未指定链名,则清空表中的所有链
-L :列出(--list)指定链中所有的规则,若未指定链名,则列出表中的所有链
-n :使用数字形式(--numeric)显示输出结果,如显示 IP 地址而不是主机名
-v :显示详细信息,包括每条规则的匹配包数量和匹配字节数
--line-numbers:查看规则时,显示规则的序v

常用的控制类型:
ACCEPT:允许数据包通过。
DROP:直接丢弃数据包,不给出任何回应信息。
REJECT:拒绝数据包通过,会给数据发送端一个响应信息。
SNAT:修改数据包的源地址。
DNAT:修改数据包的目的地址。
REDIRECT:重定向改变目的端口,将接受的包转发至本机的不同端口
MASQUERADE:伪装成一个非固定公网IP地址。
LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。LOG只是一种辅助动作,并没有真正处理数据包。

匹配条件
通用匹配:条件选项可直接使用
-p 协议        
-s 源IP/网段/域名        
-d 目的IP/网段/域名            
-i 入站网卡接口
-o 出站网卡接口    

案例:

1.增加新的规则

-A :在指定链的末尾追加(--append)一条新的规则

添加新的规则
iptables - t filter -A INPUT -p icmp -j REJECT
查看规则列表   vnL
iptables -t filter -vnL

2.在第一行增加新的规则

在INPUT链添加第一条规则
iptables - t filter -I INPUT -p icmp -j REJECT
查看规则列表   vnL
iptables -t filter -vnL

3.删除规则

1.删除INPUT第一行内容

删除规则
iptables -D 删除的链路第几行
下面演示的时删除INPUT的第一行

2.删除所有链的规则

iptables -t 表名 -F [链名]              #如果不指定链名则删除清空所有链的规则

4.修改规则内容

iptables -t 表名 -R 链名 序号 新规则内容

5.修改默认规则

设置默认策略:

iptables [-t 表名] -P <链名> <控制类型>

iptables -P INPUT DROP
iptables -P FORWARD DROP 
#一般在生产环境中设置网络型防火墙、主机型防火墙时都要设置默认规则为DROP,并设置白名单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值