我想知道人们如何testing他们的networking连接是否安全。 所以,如果我使用ssh,我被告知它是安全的。 但我想validation这一点,所以我试图使用tcpdump。 下面是我使用的命令。
tcpdump port 22 -X
然后我得到我不知道解释的原始数据包。 另外,我不确定这种方法是否正确。
这个问题的另一个练习是使用telnet。 所以,我知道这是不安全的。 但是当我尝试执行以下命令时:
telnet <IP address> 3306 tcpdump port 3306 -X
tcpdump的输出对我来说也很神秘。
任何build议/意见?
首先,我不以root身份运行,所以我必须使用sudo。 你可以在Mac上看到使用它的数据包。
sudo tcpdump -i en0 -X -s 0 src host <server>
如果你不能读取你input到服务器的内容,那么它就被encryption了。 我认为实际上采取的数据和密钥解密超出了你会发现在这里。
我能提供的最好的build议是学会阅读你使用的工具的输出。 严重的是,如果你不知道如何解释tcpdump为什么要使用它呢? 这是一个复杂的主题,但有很多书籍和文章可以教你如何读取数据。
为了让自己的生活变得更轻松,你应该考虑使用一个GUI工具,比如Wireshark ,它以一种大多数人比较容易阅读的格式呈现相同的信息。
SSH是encryption和安全的,如果它认为任何错误(或已经改变),它会在一个非常明显的方式咩咩地告诉你。 没有encryption密码的SSH服务需要一个明确的命令行切换,当你这样做的时候,它将会失败。
tcpdump本身并不会告诉你连接是否被encryption,你需要自己分析这些包。 如果你不觉得你可以直接理解数据包,那么Wireshark可以帮助你。
Wireshark是可以帮助你的工具。 安装在您的计算机上,并捕获几个小包的数据包,如果您可以看到数据包中的内容,然后解密。
当我连接到一个主机/服务,我不确定连接的安全性时,我通常运行一个tcpdump / wireshark来查看数据是否以明文forms发送。 这对数据可能或可能不被encryption的应用程序/进程/协议(telnet,mysql,ldap,xmpp,smtp等)非常有用。 如果我有任何疑问,我总是可以search一些文档,authentication是如何工作的,哪些安全选项可用,等等。
但是,如果您使用ssh,但是您的密码是“abc123”或从任何Internet位置都可以访问,则必须注意,如果使用ssh,则会比使用复杂密码或访问受限制的telnet更不安全。 因此,安全必须被视为一个整体。 这不仅关于您使用的协议/algorithm。
当然,对那些“安全专家”说“Telnet是不安全的”的话,不要太多的信任。 好奇心:Telnet + SRP比SSH更安全,更安全;)