【问题标题】:Securely passing database updates to a server outside a vpn将数据库更新安全地传递到 vpn 之外的服务器
【发布时间】:2013-02-04 16:29:33
【问题描述】:

我现在花了很长时间试图弄清楚如何将几行从 SonicWall VPN 内的服务器传递到远程 VPS 云服务器。 VPN 内的服务器是运行 SQL Server 2005 的 Microsoft 2003,目标服务器是带有 MySQL 的 CentOS 6。我一直无法找到让 CentOS 从 VPN 外部轻松安全地访问 MSSql 服务器的方法。总的来说,我对 SonicWall 或其他防火墙的了解极为有限,我真的不想打开安全风险之门。因此,鉴于此,我提出了以下解决方案:

1) 预定的 PHP 脚本提取行并在密码保护的 excel 文件中以 AES-256 对其进行加密

2) 脚本然后使用 FTP 将 excel 文件上传到我的远程服务器

3) 具有相同加密密钥的远程服务器解密文件并将行上传到 MySQL 数据库。

两个问题:

1) 这是将敏感数据从一台服务器移动到另一台服务器的安全方法吗?

2) 有没有更简单的方法来访问我没有想到的数据?

【问题讨论】:

  • 您是否考虑过使用 ssl 的 Web 服务?
  • cURL + SSL 怎么样?
  • 现在正在阅读...但看起来我会让 Windows Server 使用 cURL 与我的 CentOS VPS 建立安全连接并插入新行?

标签: php sql-server ftp aes vpn


【解决方案1】:

您使用 FTP 和文件进行本质上是系统到系统的传输,这可能会由于文件锁定而导致麻烦,而且看起来很丑。

更好的方法是让远程 CentOS 机器公开一个端口/Web 服务,该服务由 HTTPS 公开,需要客户端身份验证:

  1. 您的脚本从某个来源检索行
  2. 脚本将行转换为服务器可以读取的格式
  3. 脚本调用客户端公开的端口,这是一个传出连接,因此应该更容易从 VPN 外部获取(基于可以在 VPN 外部获取 FTP 连接的事实)
  4. 脚本验证服务器端证书并提供它自己的客户端证书并通过 SSL 传输行
  5. CentOS 主机接收行并根据需要处理它们。

使用您当前的方法,您需要以某种方式保护 FTP 连接,要安全地做到这一点,需要服务和客户端相互验证自己的身份,而 SSL 在连接协商方面承担了这方面的大部分繁重工作和协议流。

【讨论】:

  • 太好了,这让我读到了。你认为在 Windows 服务器上定期运行的 Python SSH 脚本会适合这个吗? CentOS 服务器有 SSH,看起来我可以使用 Paraminko 制作 Python 脚本来从 Windows 执行 SSH 命令。
  • @Candide SSH 将是 SSL 的一个很好的替代方案,它可以简化密钥生成和到远程服务器的密钥分发。您应该能够获得定期运行脚本所需的所有 Windows 基础架构,我个人会使用 Cygwin
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多