iptables防火墙

安全技术:

1、入侵检测机制:特点是阻断,量化,定位来自内外网络的威胁情况

提供报警和事后监督,类似于监控

2、入侵防御:以透明模式工作,分析数据包的内容,一切进入本机的内容进行防护,木马,蠕虫,系统漏洞进行分析判断,然后进行阻断。主动的防护机制。部署在整个架构,或者是集群的入口处(必经之路)

3、防火墙:隔离功能,工作在网络或者是主机的边缘

对网络或者主机进出的数据包按照一定规则进行检查(网络层转发的数据包)

我们在工作当中,一般对防火墙的设置都是白名单,拒绝所有,允许个别

4、防水墙,透明模式工作,华为的ensp监控就是防火墙。一切对于防水墙都是透明的

在事前,事中,事后,都可以进行检测


防火墙的种类

防护墙

保护范围:主机防火墙,仅为当前主机服务

网络·防火墙,防护的是另一侧的局域网

网络层·防火墙,iptables,包过滤防火墙

访问控制,每个数据包的源ip地址,目的ip地址,端口号,协议等等进行组合式监控,由此来判断数据包是否允许通过

通信的五要素和四要素

源IP 目的IP 源/目的 端口 协议

源/目的IP 源/目的 端口

iptables:洗头自带的包过滤防火墙

firewalld:主机防火墙,他也有包过滤的功能,centos7以后集成的

iptables:内核防火墙,内置四个表,而且所有在表中的 ,配置规则。配置后立即生效,不需要重启服务


四表五链

  • 四个表

raw:连接跟踪,跟踪数据的一种机制,配置了之后,可以加快防火墙的穿越速度

mangle:修改数据包的标记位规则

nat:地址转换的规则表

filter:包过滤的规则表。根据预定义的规则,人工设置的规则,对符号条件的数据包进行过滤,也是iptables的默认表

  • 四表的优先级

raw–>mangle–>nat–>filter

四表五链

  • 五个链

prerouting链:处理数据包进入本机之前的规则

input链:处理数据包进入本机的规则

FORWARD:处理数据包转发到其他主机的规则

output:处理本机发出的数据包的规则,一般不做处理

postrouting:处理数据包离开本机之后的规则

表里有链,链里面有规则

iptables的配置规则,写在链当中

在这里插入图片描述


管理选项:

-A在指定链的末尾进行追加

-I在指定链的行插入新的规则 。可以指定插入规则的位置

-P修改默认策略(链的策略)

-D删除

-R修改或者替换某条规则

-L查看指定链当中的规则

-n以数字形式显示规则

-v查看详细信息

–line-numbers:给每个链中的规则进行编号查看。

-F清空指定链当中的规则(慎用)

-X清空自定义链的规则

-t指定表名

匹配条件:

-p 可以指定数据包的协议类型

-s 指定数据包的源IP地址

-d 指定数据包的目的IP地址

-i 指定数据包进入本机的网络接口

-o 指定数据包离开本机的时候使用的网络接口

–sport指定源端口

–dport 指定目的端口号

控制类型:

-j 后面跟上控制类型

ACCEPT:允许数据包通过

DROP:拒绝数据包通过,直接丢弃,不给任何回应的信息

REJECT:拒绝,拒绝数据包通过但是会给一个回应的信息

SNAT:修改数据包的源地址

DNAT:修改数据包的目的地址

[root@test1 ~]# iptables -t filter -A INPUT -p icmp -j REJECT   不允许ping
-------------------------------
[root@localhost ~]# ping 192.168.233.50
PING 192.168.233.50 (192.168.233.50) 56(84) bytes of data.
From 192.168.233.50 icmp_seq=1 Destination Port Unreachable
From 192.168.233.50 icmp_seq=2 Destination Port Unreachable
From 192.168.233.50 icmp_seq=3 Destina

[root@test1 ~]# iptables -I INPUT 1 -p icmp -j ACCEPT  插入允许的规则 放在拒绝前面 
---------------------------------
[root@localhost ~]# ping 192.168.233.50
PING 192.168.233.50 (192.168.233.50) 56(84) bytes of data.
64 bytes from 192.168.233.50: icmp_seq=1 ttl=64 time=0.173 ms
64 bytes from 192.168.233.50: icmp_seq=2 ttl=64 time=0.657 ms
64 bytes from 192.168.233.50: icmp_seq=3 ttl=64 time=0.617 ms
[root@test1 ~]# iptables -I INPUT -s 192.168.233.20 -p icmp -j REJECT 
指定IP地址不可ping
---------------------------------------
[root@test1 ~]# iptables -A INPUT -s 192.168.233.20 -p tcp --dport 80 -j REJECT
禁止指定IP指定协议端口号访问

匹配规则的策略:


从上往下按照规则顺序进行匹配 ,匹配到了规则后面的规则就不再匹配 。针对相同规则的类型,匹配到了之后后续的规则也不生效

num --line-numbers 序号

pkts:匹配规则收到的报文个数

bytes:包的大小总和

target:规则对应的动作

删除

[root@test1 ~]# iptables -vnL --line-number
Chain INPUT (policy ACCEPT 44086 packets, 3388K bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       14  2288 REJECT     tcp  --  *      *       192.168.233.20       0.0.0.0/0            tcp dpt:22 reject-with icmp-port-unreachable
2        1    60 REJECT     tcp  --  *      *       192.168.233.20       0.0.0.0/0            tcp dpt:80 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 68341 packets, 13M bytes)
num   pkts bytes target     prot opt in     out     source               destination         


[root@test1 ~]# iptables -D  INPUT 2      -------删除2 序号的规则   


[root@test1 ~]# iptables -vnL --line-number
Chain INPUT (policy ACCEPT 77 packets, 5577 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       14  2288 REJECT     tcp  --  *      *       192.168.233.20       0.0.0.0/0            tcp dpt:22 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 120 packets, 21552 bytes)
num   pkts bytes target     prot opt in     out     source               destination         


修改

[root@test1 ~]# iptables -vnL --line-number
Chain INPUT (policy ACCEPT 77 packets, 5577 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       14  2288 REJECT     tcp  --  *      *       192.168.233.20       0.0.0.0/0            tcp dpt:22 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 120 packets, 21552 bytes)
num   pkts bytes target     prot opt in     out     source               destination         




[root@test1 ~]# iptables -R INPUT 1 -p icmp -j ACCEPT   也是根据列名序号来进行修改 




[root@test1 ~]# iptables -vnL --line-number
Chain INPUT (policy ACCEPT 60 packets, 4645 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 86 packets, 17548 bytes)
num   pkts bytes target     prot opt in     out     source               destination  

修改默认策略 (在工作中也都是通过策略来拒绝而不是规则拒绝)

[root@test1 ~]# iptables -P INPUT DROP 
拒绝所有,允许个别    跟白名单效果一样的   你需要什么,要用什么就开什么 
这只是临时的 ,重启服务就会还原 

通用匹配规则 :
ip+端口+网段+接口(指的就是网卡设备)

[root@test1 ~]# iptables -A INPUT -s 192.168.233.20 -j DROP   
只要是192.168.233.20ip过来的数据通通拒绝
----------
[root@test1 ~]# iptables -A INPUT -i ens33 -s 192.168.233.0/24 -j DROP 
192.168.233.0/24这个网段的所有机器全部禁止访问 
----------
[root@test1 ~]# iptables -A INPUT -s 192.168.233.0/24 -p tcp --dport 80 -j REJECT
指定网段指定协议端口不可访问

隐藏扩展模块

-p 指定协议时 ,不需要使用-m来指明这个扩展模块

指定多端口匹配
[root@test1 ~]# iptables -A INPUT -p tcp --dport 22:80 -j REJECT  

小的端口号要在前,大的端口号要在后,不然会保存,这是固定格式 (22:80)

-m 扩展模块 明确指定类型 多端口MAC地址 ip范围。

[root@test1 ~]# iptables -A INPUT  -p tcp -m multiport --dport 80,22,21,53 -j REJECT 

-m 扩展模块相对于上面的 更为方便一点,可以不用管大小随意排序,用,隔开即可

-m iprange --src-range 源ip范围

-m iprange --dst-range 目的ip范围

指定IP范围做出限制

[root@test1 ~]# iptables -A INPUT -p icmp -m iprange --src-range 192.168.233.20-192.168.233.30 -j REJECT

-m mac --mac-source 禁止MAC地址

[root@test1 ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:2d:9c:95 -j REJECT 

主要知识点

通信元素 四表五链

查看: iptables -vnL --line-numbers 给链里面的规则来进行编号

增:-A INPUT -I INOUT

改:-R

删:-D INPUT

在生产中默认策略都是拒绝所有,允许个别 与白名单差不多

配置规则都是ACCEPT 所有在生产环境中 iptables -F (慎用)

规范的格式 iptables -I INPUT 1 -s 192.168.233.20 -p tcp --dport 80 -j REJECT


备份与还原

[root@localhost ~]# iptables-save > /opt/iptables.bak  备份 
[root@localhost opt]# iptables-restore < /opt/iptables.bak   还原

创建自定义链

[root@localhost opt]# iptables -N czy 
[root@localhost opt]# iptables -vnL
****
Chain czy (0 references)
 pkts bytes target     prot opt in     out     source               destination   
--------------------
czy就是我自定义的链
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早上的星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值