如何自动执行telnet端口25测试?

5 telnet

我需要在telnet中进行大量测试.我正在研究一些方法来自动检测我们的电子邮件服务器上的字典攻击,然后限制它们,或将它们列入黑名单等.

我现在准备进行一些测试,看看我的工作是否有成效.我想我会下载一些脚本kiddy app来运行测试.我找不到任何我可以找到的,或者是二进制和不可配置的.

我将在循环中生成一个地址列表.

我想把$ address作为参数并执行此操作:

telnet myserver.com 25 helo some-string.com邮箱:me@me.com rcpt:$ address quit

在其中,我需要测试一些东西,例如,如果我启用了灰名单,我想让脚本失败,因为这是我的第一个对策.我想在那种情况下,我只会有telnet超时?

  • helo 应该返回一个以220开头的代码字符串,这与我进行此测试所需的一样准确.

  • mail from 应该返回250,或者寻找OK就足够了

  • rctp to 当我发送一个有效的用户时,应该返回250或Ok,但是大多数时候我会发送一个错误的地址,所以我找不到250或OK.

  • 最后,我将发送一个quit.

我无法在交互情况下获得条件和日志记录.我看了看expect但却无法上班.

我的代码到目前为止:

echo -e "helo foo\nmail from: foo.... | telnet example.com 25 | grep -i blah 
Run Code Online (Sandbox Code Playgroud)

这没有达到预期的效果.

我能做些什么来完成我的目标?

And*_*ico 6

试试netcat:http://netcat.sourceforge.net/

它允许您在套接字上发送和接收数据.telnet不是你想要的 - 它是用于交互式的.


Joh*_*ker 1

我很惊讶 Expect 没有为您做这件事,因为它就是为这类事情而编写的。

Perl 在某些方面更简单并且可以完成这样的工作。但使用Perl,你就不用费心Telnet了,你可以直接打开端口25。

如果您确实想测试您的服务器,请获取Siege的源代码并将其修改为使用 SMTP 而不是 HTTP。这是我最喜欢的测试 Apache 性能的工具,我确信用它测试 Sendmail 不会太难。