我需要在 telnet 中进行大量测试。我正在研究一些方法来自动检测我们电子邮件服务器上的字典攻击,然后将它们限制回去,或者将它们列入黑名单等。
我现在准备进行一些测试,看看我的工作是否有回报。我想我会下载一些脚本小子应用程序来运行测试。我找不到任何东西,而那些我能找到的东西是坏的或二进制的和不可配置的。
我将有一个我在循环中生成的地址列表。
我想将 $address 作为参数并执行以下操作:
telnet myserver.com 25 helo some-string.com mail from: me@me.com rcpt to: $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
这没有按预期执行。
我能做些什么来实现我的目标?