我有一个非常偏执的客户,他们用不同的电脑运行两个独立的networking(一个离线,一个在线)。
我有一个挑战,我写了一个应用程序,他们将运行在离线networking,但networking需要能够发送电子邮件到客户端。 我的想法是从离线服务器到发送电子邮件的在线PC之间build立单向networking连接(如二极pipe)。
什么是最有效的方式去做,这是半成本效益? 我可以使用单向网卡吗?
Windows Server 2008networking,Windows PC。
基本上你只需要在两者之间有一个防火墙,而且这个规则非常严格,基本上就是所谓的“拒绝所有”规则,然后只需要一个单一的方法来指向你所需要的单个端口输出规则。 这对安全/networking人员来说很容易,而且应该令客户满意。
我不会完全称他们为偏执狂,我赞扬他们对安全的态度。
如果他们遇到了单独的networking问题,他们也可能会遇到安装防火墙的麻烦。 防火墙上的一个小洞只允许端口25上的通信从离线networking中的特定IP地址传递到在线networking中的特定IP地址,这个小孔应该完美无缺。
我将使用安全服务器上只有GND和TX的串行链路,以及不安全networking上的GNS和RX。 没有stream量控制,因为这可以用来泄漏来自不安全networking的信息。
我将创build一个由2个守护进程组成的小型SMTP-UDP-SMTP代理。 SMTP2UDP和UDP2SMTP。
SMTP2UDP将是一个不安全的MTA,将在安全networking上运行,并接受在串行链路上使用UDP发送的电子邮件。
UDP2SMTP将在不安全的networking上运行,并通过UDP接受电子邮件并将其发送到真实的MTA。
在串行链路上,我会使用一个光电耦合器在要求中使用二极pipe。
如果你想实现对信件的要求,你可以使用一个单向的IP链接,通过UDP(或类似的单向协议)发送它的电子邮件到一个自定义守护进程,这些守护进程监听这些包,并通过SMTP发送到预期收件人。
当然,发送(离线)系统不知道他们是否真的出去了。 为了确认,Ben和Chopper3已经回答了您需要的最小防火墙设置。
TCP协议需要双向通信。 此设置听起来类似于DMZdevise ,您的应用程序在受信任的Intranet中运行,并且邮件服务器和/或收件人位于不受信任的DMZ区域中。
一个configuration良好的防火墙将只能允许从受信任的Intranet发起连接,而不能反过来。 如果这还不够,我怀疑这两个networking之间的任何物理连接都将满足您的客户端,这意味着您将无法自动发送邮件。
如果他们已经在这个范围内分开了networking,那么在这里应该有两个防火墙,中间有一个邮箱function框。 在离线的一面,只允许连接到这个盒子转储消息通过您的自定义应用程序发送。 在线方面,只允许smtp连接到邮件服务器。
你可以用一个单一的双宿主机箱,在每个接口上运行软件防火墙,但是把东西分离出来,这样做会有相同的成本效益,这将创build几个额外的保护层,并且是更可取的。
我只会有两个邮件服务器,一个内部和一个外部。 让服务器不断地将外发电子邮件附加到一个文件中,并且每隔一段时间重命名该文件,将其复制到USB密钥上,并将其放在另一个服务器上的传入文件夹中。 这是多less安装在networking服务器中执行空隙。
如果延迟太重要,可以从外部客户发送。