[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [hobbit] Monitoring SMTP Relay server using hobbit
- To: hobbit (at) hswn.dk
- Subject: Re: [hobbit] Monitoring SMTP Relay server using hobbit
- From: Alexander Bech <alex (at) bakarasse.de>
- Date: Sat, 19 Dec 2009 15:36:12 +0100
- References: <8ef2324f0912180044x6087228dg36778eefbdbe0381 (at) mail.gmail.com>
- User-agent: Thunderbird 2.0.0.23 (X11/20090817)
Balasubramaniam Natarajan schrieb:
> Hi
>
> I have two Windows 2003 server which works as SMTP relay server.
>
> What are the key parameter of the server should I monitor from Xymon.
>
> I want to check certain parameters like
>
> 1. If the Mail server is accepting mails.
> 2. If the Mail Server is able to relay it to the next server.
> 3. Is my Mail relaying server free from open relaying and stuffs,
>
> How could I achieve all these using Xymon? I have BBNT "An NT/W2K
> **CLIENT** for Big Brother System & Network Monitor Version 1.08d" on
> all the Windows 2003 servers.
Hi,
for 1 and 3 you can use a server-side script using expect:
file expect-smtp
###################
#!/usr/bin/expect
set mailserver [lrange $argv 0 0]
set from [lrange $argv 1 1]
set to [lrange $argv 2 2]
set timeout 90
spawn telnet $mailserver 25
expect "failed" {
send_user "$mailserver: connect failed\n"
exit
} "2?? *" {
} "4?? *" {
exit
} "refused" {
send_user "$mailserver: connect refused\n"
exit
} "closed" {
send_user "$mailserver: connect closed\n"
exit
} timeout {
send_user "$mailserver: connect to port 25 timeout\n"
exit
}
send "HELO server.isp.de\r"
expect "2?? *" {
} "5?? *" {
send_user "=== $mailserver: HELO 5??\n"
exit
} "4?? *" {
send_user "=== $mailserver: HELO 4??\n"
exit
}
send "MAIL FROM: <$from>\r"
expect "2?? *" {
} "5?? *" {
exit
} "4?? *" {
exit
}
send "RCPT TO: <$to>\r"
expect "2?? *" {
set smtpcode "2xx"
send_user "smtpcode = $smtpcode\n"
} "5?? *" {
set smtpcode "5xx"
send_user "smtpcode = $smtpcode\n"
exit
} "4?? *" {
set smtpcode "4xx"
send_user "smtpcode = $smtpcode\n"
exit
}
send "RSET\r"
send "QUIT\r"
exit
#########################
I call it from server-side shell-script mailserver-verify.sh
for a list of mailservers.
(in my case: check rejecting invalid recipients during the SMTP protocol)...
...
TEXT=$(${BBHOME}/ext/expect-smtp ${IP} verify (at) isp.de
non-existent-address (at) ${DOMAIN})
...
220 server03.domain.de Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Sat, 19 Dec 2009 14:57:09 +0100
HELO relay.isp.de
250 server03.domain.de Hello [10.224.138.110]
MAIL FROM: verify (at) isp.de
250 2.1.0 verify (at) isp.de....Sender OK
RCPT TO: non-existent-address (at) domain.de
550 5.1.1 User unknown
smtpcode = 5xx
... evaluate the line "smtpcode =" in ${TEXT},
and sent a message to xymon-server.
Regards,
Alex