![使用 VPN 安全连接 MySQL 吗?](https://linux22.com/image/584207/%E4%BD%BF%E7%94%A8%20VPN%20%E5%AE%89%E5%85%A8%E8%BF%9E%E6%8E%A5%20MySQL%20%E5%90%97%EF%BC%9F.png)
我有一个 VPS,安装了 MySQL 5.5,出于明显的安全原因,它只在本地主机上监听。我已经从自己的机器到该 VPS 设置了 VPN 连接,并且成功连接。
向连接到 VPN 的任何人授予所有 MySQL 数据库的相同访问权限(就像本地主机请求一样)的最佳方法是什么?
我问这个问题的方式可能比较愚蠢,所以如果你不明白我的想法,我会详细说明。
编辑:VPS 是 Linux(Cent OS 5.6),如果有帮助的话。MySQL 正在监听 3306。我目前已将来自我的 IP 的所有连接转发到机器公共地址上的端口 3306 到 127.0.0.1:3306。但这不是很方便,因为我经常旅行,当我不在家时,这种方法就失效了。
答案1
你可以让 mysql 本身监听所有接口上的连接[注释掉绑定地址在 my.cnf 中]并使用 iptables 控制访问:
#allow connections from the vpn. insert vpn address range below
IPTABLES -A INPUT -s 192.168.15.0/24 -p tcp --dport 3306 -j ACCEPT
#allow local connections eg your scripts running locally
IPTABLES -A INPUT -s 127.0.0.1 -p tcp --dport 3306 -j ACCEPT
#deny any other attempts of connecting to mysql
IPTABLES -A INPUT -p tcp --dport 3306 -j DROP
您可以更加详细地添加 -i 来指定特定的接口。