在iptables中配置MySQL安全规则,主要是限制外部对MySQL服务器的访问,只允许特定的IP地址或IP范围访问,从而提高数据库的安全性。以下是一些基本的配置步骤和规则示例:
允许本地访问:
localhost
或127.0.0.1
)访问。你可以通过以下规则确保这一点:iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
这条规则允许来自IP地址127.0.0.1
(即本地)的TCP流量访问端口3306
(MySQL的默认端口)。限制外部访问:
iptables -A INPUT -p tcp --dport 3306 -j DROP
这条规则会丢弃所有尝试访问端口3306
的TCP流量。配置白名单:
192.168.1.100
访问MySQL:iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
你可以根据需要添加多个这样的规则,每个规则允许一个特定的IP地址访问。保存和持久化规则:
iptables-save
命令将当前规则保存到一个文件中,并使用iptables-restore
命令在系统启动时恢复这些规则。例如:# 保存规则到文件
sudo iptables-save > /etc/iptables/rules.v4
# 在系统启动时恢复规则
sudo iptables-restore < /etc/iptables/rules.v4
/etc/iptables
目录并确保其权限设置正确,以便能够保存和恢复规则。其他安全注意事项:
/etc/mysql/my.cnf
或/etc/my.cnf
)中的bind-address
参数设置为127.0.0.1
,以防止MySQL监听所有可用的网络接口。请注意,iptables规则的具体语法和可用选项可能会因操作系统和内核版本的不同而有所差异。建议查阅你所使用的操作系统的相关文档以获取准确的指令和最佳实践。