1.什么是防火墙呢为什么要设置防火墙?
1.防火墙就是用户保护一个单位的内部网络,对数据包进行过滤,不受外部的非法访问、防火墙可以通过ip,端口,协议等参数对数据包进行过滤。
在我们工作中主要有
.安全防护
.流量监控
.数据包过滤
.入侵检测防御
.访问控制
那么和大家聊聊linux里面的防火墙,其实在RockyLinux里面默认用的是FrieWalld防火墙,但是friewalld他的底层还是调用的包过滤防火墙iptables。(当然你可以把friewalld理解为一个皮肤让我们更直观)。
2.iptables的结构
1.iptables它的结构就是我们常说的(4表5链)。
当然并不是说每个表都能是5链,只是有的是5链有的是三链,具体看上面这幅图,其实在我们日常工作中用的最多的是filter表和里面的三种链,具体还是看你项目的端口,后面会给大家部署一个项目详细讲解一下。
这个让大家更直观的看到filter表里面的内容。
那么包过滤匹配的流程
1.从左到右依次匹配匹配即停止。(当然我log日志除外)
2.若无任何匹配则按照这个链接的默认策略。
2.iptables的语法
iptables -t 指定使用的表 -I 指定所使用的链 -指定协议 -j 指定操作策略。
INPUT 对进入本机的数据进行过滤。(可以理解为目标地址) *个人这个比较用的多。
OUTPUT 本机对外产生的数据包 ( 可以理解发送到源地址的)
FORWORD 过滤所有路过本机的数据包(说白了就是源地址和目标地址都不是本机的数据)
大家可以看到 ,我对我的20服务器设置了一个策略,禁止别人ping 我的服务器。
注意重点,如果我们在使用过程中不指定表那么默认使用的是filter表,那么如果我们不使用链那么他默认指定这个表所有的链,如果没有规则那么默认使用防火墙的规则(ACCEPT),这个面试会问!
那么可以对目标进行那些操作呢
ACCEPT (通过)
DROP (拒绝没有返回值) 可以理解和一个人表白然后对方没有任何回复结果很明显就是拒绝。
REJECT (拒绝有返回值告诉你为啥拒绝) ,和什上面这个例子相反打字太累不能复制跳过。
LOG(日志) 所有策略都是匹配及停止log除外。
下面这些我就演示几个常用的。
iptables -nL 查看自己设置的规则。
iptables -F 清空所有的规则。 可以看到哈清空所有规则之后再查看什么也没有了。
iptables -t 表 -I 开头 -p -j 在开头添加
iptables -A -p -j 结尾添加 (规则也是分顺序执行的哦)
iptables -I 2 -p -j 指定第几条。
可以看到顺序 先写的不一定在最前面。iptables -D 链 删除第几条规则
删除完之后第三条规则没有了。
3.防火墙的匹配条件
首先和大家说一下我在工作中常用的是filter表其他的我不熟悉。
1.通用匹配能直接用不依赖其他条件,包括IP协议网络地址,网络端口等。
2.隐藏匹配,要求以特定的协议匹配作为前提,包括端口tcp,icmp协议。
对网络知识没有那么深说的不对的可以评论区纠正。
下面我做一个策略限制特定ip对我进行访问。
iptables -A INPUT -s 192.168.1.10 -j REJECT
注意看规则禁掉之后我来访问一下看看结果。
可以看到禁掉这个ip之后远程登入被拒绝(声明一下本人写完博客对服务器进行修改ip和端口,大佬切勿进行攻击里面啥也没)。
我们可以进行设置整个指定的网段进行禁止
iptables -A -s 192.168.168.0/24 -j DROP
整个网段都无法对我进行远程。
当然我们也可以限制端口访问
iptables -A INPUT -s(ip) -p tcp --dport -j ACCEPT
只能指定的这个IP对我进行访问 注意区分大小写我上面这个报错就是p大写的问题。
那么我有一个需求就是,你不能对我进行ping 而我对你可以进行ping
第一步禁止的请求
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
不制止自身发出去的数据包
iptables -A INPUT -p icmp ! --icmp-type echo-requset -j DROP
看效果
由于本人用的是云服务器,我设置防火墙把自己干死了,腾讯云有办法补救,还是建议大家写一个重置脚本,每5分钟执行一次。
其他的我不多说,因为云服务器有自己的安全组。