一、需求:使用iptables来做黑白名单限制外部主机访问3306端口,只开放允许主机A和主机B访问3306端口。
二、以主机A举例配置如下:
- 查看iptables 状态
systemctl status iptables #查看状态
- 关闭状态下添加策略 (AB两台都需要添加)
iptables -P INPUT ACCEPT # 所有进入的流量都会被允许通过
iptables -P OUTPUT ACCEPT # 所有进入的流量都会被允许通过
iptables -A INPUT -p tcp --dport 3306 -j DROP #拒绝所有人访问3306
- 查看策略信息
iptables -L -n #查看策略信息
iptables -L -n --line-number #查看策略序列号
#iptables -D INPUT 2 #删除序列号2的策略 不需要执行 添加策略不生效,指定策略删除(执行去掉#号)重新添加在测试
- 查看策略3306添加之后开启防火墙 (两台都需要开启)
systemctl start iptables
- 访问3306端口
A主机 测试3306是否可以访问,不能访问3306端口说明设置生效
A主机 #Telnet 192.168.1.131 3306 #测试显示的连接不通
- 测试成功之后添加指定主机ip访问
注:如指定主机访问数据库需注意数据库连接地址是否是vip地址连接
或其他连接地址,不放开整段是因为漏扫主机可能是同段主机。
注:ip填写自己的
A主机先添加测试正常后在添加B主机
iptables -I INPUT -s 192.168.1.131 -p tcp --dport 3306 -j ACCEPT #指定ip访问3306端口
Iptables -I INPUT -s 192.168.1.141 -p tcp --dport 3306 -j ACCEPTvip:19.168.1.141
#192.168.1.141 服务连接数据库的地址
A主机添加之后测试 telnet 192.168.1.131 3306
telnet 192.168.1.141 3306
#测试显示联通
- 主机B配置参考主机A配置 注: 替换对应IP地址
Ps:如做实验没有3306端口可以用nc -l -p 3306 来实现对端口的实现
nc -l -p 3306
之后需要复制ssh窗口 来验证
netstat -lntp
有3306 nc的说明模拟成功