Мне нужно сделать большой набор тестов в telnet. Я работаю над некоторыми способами автоматического обнаружения атак по словарю на нашем почтовом сервере, а затем отбрасываю их назад или помещаю в черный список и т. Д.
Теперь я готов выполнить несколько тестов и посмотреть, окупится ли моя работа. Я подумал, что просто скачаю какое-нибудь скрипт-детское приложение для запуска тестов. Я не могу найти ни одного, и те, которые я могу, плохие или двоичные и не конфигурируемые.
У меня будет список адресов, которые я генерирую в цикле.
Я хочу взять $ address в качестве аргумента и сделать это:
telnet myserver.com 25
привет some-string.com
почта от: me@me.com
rcpt to: $ address
бросить курить
В рамках этого мне нужно протестировать несколько вещей, например, если я включу серый список, я хочу потерпеть неудачу в сценарии, так как это моя первая контрмера. Полагаю, в этом случае у меня просто будет тайм-аут 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
Это не работает, как ожидалось.
Что я могу сделать, чтобы достичь своей цели?