For Linux, what is the best program/daemon out there that would detect, block, and report computers scanning the server’s ports, sequentially or randomly, for SSH, MySQL, popular web-based administering systems, and other security-sensible services that were moved from their default ports?
ConfigServer Services is a set perl modules/Scripts/daemons, which effectively provide you with port scanning ability, detect it, report and and block it with number of ways to tweak its options.
http://configserver.com/cp/csf.html
I personally recommend it for small scale servers.
Check more discussion of this question.