验证可以通过TLS建立TCP连接

时间:2019-02-11 15:21:33

标签: python-3.x openssl tls1.2

我正在使用“测试连接”功能来根据用户输入的配置详细信息测试远程Syslog服务器是否可用。用户提供的基本详细信息是ip和运行系统日志服务器的port。指示Syslog服务器是否已启用TLS/SSL的开关,以及是否启用TLS/SSL时用于上传Syslog Servers公共证书的地方。

一个被证明是困难的(我认为是不可能的)极端情况是将Syslog服务器配置为使用TLS,但是客户端应用程序在未启用TLS/SSL的情况下发送了测试消息。只要ipport正确,消息就可以成功发送。 Syslog服务器甚至记录该消息,尽管它没有被加密,但它只是垃圾。

要求是能够检测到这种情况并向用户报告他们需要启用TLS/SSL。我认为这是不可能的,因为无法从Syslog服务器读取信息(据我所知),并且只要包含该消息的TCP包得到确认,就没有任何依据可以做出该决定。

这是我编写的用于测试连接的快速原型脚本,但是除非Syslog服务器根本不可用,否则我不会导致失败。

def send():
  with socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) as sock:
    sock.connect((hostname, 6514))
    sock.send('Testing Syslog')

for x in range(10):
  send()
  time.sleep(1)

我想要的是以下之一:

  1. 确认这是无法通过程序处理的情况
  2. 指向某种syslog文档的链接,该文档描述了客户端如何验证邮件是否已正确接收和解密。
  3. 可用于验证此配置是否存在的python脚本或openssl命令集。

0 个答案:

没有答案