作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
什么是防火墙
我们想象一下把每台服务器当成一个小区,我们去访问另外一个小区的朋友,我们需要经过什么步骤:
首先我要出我们自己的小区,会经过保安看的大门,这个一般不会做限制,但是如果有特殊情况,比如疫情期间小区封闭,保安就不会让我出去。
当我们正常走出去小区以后,怎么到朋友的小区这个以后讲网络的时候来具体讲。
其次我们到达朋友所在的小区,肯定会经过小区门口,小区门口的保安就会问我:你找谁?然后我会告诉他我找谁,他会翻看本子看看这个人对外来的人是怎么规定的,是让他进,还是不让他进。
最后这个小区不仅仅是一个封闭的小区,他还可以通向其他小区,而不仅仅通向本小区。我到门口的时候,他会首先问我你到我们小区,还是到其他小区,然后又翻个本本确认让不让我通行。
小区的门卫就是防火墙,他不仅控制着我能否出小区(这个限制比较少),甚至可以控制我能到隔壁的小区A,但是不能到隔壁的小区B。也可以控制外面的人能否进入我小区,或者经过我们小区去隔壁小区,大概流程就是下面这样的。
门卫不仅控制出门,也控制进门,门卫也就相当于防火墙,记录在门卫小本本里面的东西就是具体防火墙规则。
什么是Linux防火墙
Linux 防火墙是用于管理进出 Linux 系统网络流量的软件或服务,具有以下关键作用:
一、访问控制
-
网络隔离:划分网络区域,保护内网安全并隔离不同网络接口。
-
端口管理:控制应用程序使用的网络端口访问权限。
-
IP 地址过滤:根据源和目标 IP 地址来决定网络数据包是否能通过。
二、安全防护
-
阻止攻击:检测并抵御常见网络攻击,如端口扫描和拒绝服务攻击等。
-
数据包过滤:分析数据包内容和协议信息以决定是否放行。
-
日志记录:记录网络连接信息和阻止的连接尝试,便于安全审计和故障排查。
三、网络管理
-
流量控制:限制特定应用或连接的网络带宽,保障关键业务应用的网络性能。
-
网络地址转换(NAT):实现内部网络设备共享公共 IP 地址连接外部网络,并增加网络安全性。
-
VPN 支持:作为 VPN 端点,创建安全远程连接和网络扩展通道。
防火墙的实现
Linux 防火墙常见实现方式有以下几种:
iptables/netfilter:
-
基于内核的
netfilter
框架,通过iptables
命令行工具管理规则。 -
优点是灵活性高、广泛应用且性能好,能实现精细的数据包过滤控制。
-
缺点是命令行操作复杂,规则管理难度较大。
firewalld:
-
同样基于
netfilter
,采用区域概念简化配置。 -
优点是易于使用、支持动态更新规则且扩展性良好。
-
缺点是相对较新可能存在兼容性问题,并且可能有一定性能开销。
ufw(Uncomplicated Firewall):
-
简化的防火墙前端工具。
-
优点是简单易用、便于快速部署。
-
缺点是功能有限、扩展性差。
总结
1.在centos6及以前的版本默认就是iptables。
2.在centos7里面默认是firewalld,但是同时也支持iptables。
3.这两种模式可根据个人习惯来使用,但是iptables相对通用性会更高一点,而且我们后面要讲docker和k8s就会使用到iptabels,所以我们主要也讲解iptables。
4.我们这里讲的是Linux系统自带的软件防火墙,实际上还有硬件防火墙,waf防火墙等等。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。