作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主,而云服务器基本上就不会使用系统自带的防火墙,而是使用安全组来代替了防火墙的功能,可以简单理解安全组就是web版的防火墙,我们主要从以下几个方面来讲解Linux防火墙:
Linux防火墙-什么是防火墙
Linux防火墙-4表5链
Linux防火墙-filter表
Linux防火墙-nat表
Linux防火墙-常用命令
Linux防火墙-案例(一)
Linux防火墙-案例(二)
Linux防火墙-小结
前面讲了防火墙原理,概念,今天我们就用真实案例需求来设计真实可用的规则。
客户端(普通人):只能访问服务器的web服务,也就是80和443
客户端(运维人员):可以访问服务器的ssh端口和备份端口
客户端(dba):只能访问数据库3306端口
服务端配置如下图
现在我们就需要通过iptables规则来实现以上目的。
1.添加80和443端口允许访问
iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
#-m state --state NEW,ESTABLISHED 也可用不加,加了会更严谨。
2.添加运维的访问ssh端口允许访问
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -s 192.168.179.108 -j ACCEPT
iptables -A INPUT -p tcp --dport 873 -m state --state NEW,ESTABLISHED -s 192.168.179.108 -j ACCEPT
3.添加dba访问数据库端口允许访问
iptables -A INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -s 192.168.179.109 -j ACCEPT
4.添加本地回环允许访问
这个规则是所有linux的标配,因为你不能只允许外面的人访问,自己反而不能访问。
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#OUTPUT不加也可以的
5.添加允许已经建立连接的请求(可选)
如果不添加该规则,执行了下面默认拒绝规则,如果配置错误,可能导致和服务器失去连接。
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
6.除了允许通过规则,其他全部拒绝
iptables -P INPUT DROP
7.测试连接
dba测试:只能连接3306,不能连接22
运维测试:只能连接22,不能连接3306
总结
1.添加允许,后加拒绝。
2.添加拒绝所有,要考虑是否会把自己给屏蔽掉。
3.lo端口必须要全部放通,否则会出现业务不可用。
4.这里的规则并没有持久化,重启就会丢失。
5.这里的端口可根据自己的需求更换。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。