iptables 屏蔽端口
场景
最近工作中遇到安全整改问题,认为我们的服务能够通过nmap 嗅探到mysql端口属于安全隐患,需要整改对端口进行屏蔽。因为我们服务上只有iptables防火墙软件,下文记录此次通过iptables进行端口屏蔽,屏蔽非服务依赖的无关网段嗅探
iptables扫盲介绍
B站视频
这个视频不长,加速下不到10分钟就看完了,能够很好的扫盲,磨刀不误砍柴工,了解下基本的知识和命令含义不至于眼瞎
命令示例
iptables -I INPUT -p tcp --dport 3306 -j DROP
iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT
iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT
iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT
iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT
iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx/24 --dport 3306 -j ACCEPT
iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT
执行后查看防火墙配置:
[root@ZJHZ-BJ-CXPT1 boco4a]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- ZJHZ-BJ-CXPT1.localdomain anywhere tcp dpt:mysql
ACCEPT tcp -- xxx.xxx.xxx.xxx/24 anywhere tcp dpt:mysql
ACCEPT tcp -- xxx.xxx.xxx.xxx/25 anywhere tcp dpt:mysql
ACCEPT tcp -- xxx.xx.xxx.0/25 anywhere tcp dpt:mysql
ACCEPT tcp -- xxx.xxx.xxx.xx anywhere tcp dpt:mysql
ACCEPT tcp -- xxx.xxx.xxx.xxx anywhere tcp dpt:mysql
DROP tcp -- anywhere anywhere tcp dpt:mysql
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
简单解读
# iptables 过滤的规则从上至下执行过滤
# -I:iptable有'-I'和'-A'两种添加方式,I=insert 插入在首位,A=append 追加在末尾,通过I添加的配置通过上图,执行前和执行后顺序颠倒,配置后先通过白名单过滤,再经过拦截;这是添加顺序的作用
# 配置中的localdomain说明这是一条本地回环的配置,添加后显示为iptables内部的别名
配置后我们通过无关的机器 nmap -A ip地址 扫描是这样的