Solved an interesting DNN challenge this morning and thought I'd share in case anyone else runs up against the same issue and finds this useful.
We have a number of public only no registration websites and have noticed in the event logs that we were getting a lot of failed login attempts despite the fact that the site settings user registration is set to none and no login link appears anywhere on the site.
Which means someone or something is hitting login.aspx or using the ?ctl=login query string directive to access the login page.
You'd think the solve for this would be to create a login page without a user login module on it and set that as the site's login page -- but DNN, for some good reasons, does not permit setting a page without a login module on it.
Here's a solve if you host your own server...
Create a custom login page with the login module with a hard to guess URL (something like dnnlogin343824093 for example.) Just be sure not to name it with anything starting with the string "login" -- the reason why will be evident shortly. Then set the page to not appear in the menu and also deselecting the index checkbox in page settings, advanced settings, other settings so the page will not appear in the site map and/or be indexed by search engines. Do not set this page to the site login page leave the default so that DNN will use login.aspx.
Finally install Microsoft's excellent url rewrite 2.0 on the server [http://www.iis.net/downloads/microsoft/url-rewrite], access the site via IIS manager and create a url rewrite rule to 301 redirect login* (wildcard) to any url you'd like. Since the site is set to use the default login page this will also catch the ?ctl=login requests when they are redirected.