Question: I need to monitor open and closed ports on dozens of hosts. I've found a [Nagios](http://en.wikipedia.org/wiki/Nagios) plugin that does what I need, but I would have to use this script through [NRPE](http://en.wikipedia.org/wiki/Nagios#Nagios_Remote_Plugin_Executor).

Some of the hosts are powered by Linux and they all have Perl installed. But some of them are Windows machines, and it's not convenient for me to install Perl on every one of them. That's why I can not use this plugin.

I hope that there's Nagios plugin that uses [Nmap](http://en.wikipedia.org/wiki/Nmap), or something similar, so it could check ports on every host remotely, without installing plugins on remote hosts, only on the server.

Answer: 
This guy has developed a nagios script for linux that does exactly what you are asking:

<http://www.altsec.info/check_scan.html>

I'm trying now to find a Windows equivalent

Miguel
I suppose what you want is to make sure that there is no "positive" response on any port apart from a short whitelist. I can see how you would prefer not to have 65000 check\_tcp:s on each host :)

Mind you, I'm not sure nagios is really your best bet for this. Partly, it risks being a test that is always red and also, if you are serious about it, you should not limit the check to hosts that you actually know about. This sits awkwardly with Nagios which expects a host as the basic unit of configuration.

Personally, I would probably have a separate tool that mailed me when something new shows up. In its most trivial form, this would be just a script that reacted to a non-zero diff of nmap output between today and yesterday and mailed me. In more complex form, such software tend to be sorted as IDSes which are not my expertise, but Google may be able to help.