Apache Webserver Module Development -- 2
Budget: $250 – $750 USD
We're looking for an apache module, that is similar to this but we would like it written from scratch due to our product wanting in house software.
https://github.com/kaufmannr/mod_spamhaus_new
https://github.com/lucaercoli/mod_spamhaus
Project Requirements:
- Apache Module Development (Linux)
- C
- APR/Apache knowledge
Program requirements:
Apache configuration settings:
rbl_server (remote DNSBL server, defaults to spamhaus' XBL if unspecified)
rbl_logging (Defaults to 1, which logs blocked connections. 0 disables all logging)
rbl_whitelist (Defaults to Off, if on, it will load the whitelisted IPv4/IPv6 addresses file)
rbl_whitelist_file (defaults to /etc/rbl.whitelist) - Should take either single entries or CIDR (IPv4/V6).
rbl_use_DROP (defaults to disabled/unset - if enabled, uses https://www.spamhaus.org/drop/drop.txt in addition to rbl_server '
rbl_use_file (defaults to unset) - if enabled, a local or remote http:// file can be used for blocklists
rbl_return_status (Returns a specific HTTP status code to the blocked client, defaults to 403)
Design additions/notes:
- Cache 'hits' to reduce DNS queries. If a connecting client is matched in the DNS queries, cache it and purge the cache it after x/y/z minutes?
- Handle DNS failures (unreachable DNSBL)
- Ability to use it within a VirtualHost<> (similar to other modules, ie: IfModule mod_rewrite)
- Ability to disable/enable it globally or per vhost.
- Debbugging code should be left in place for testing/simulation.
- Loading the whitelist_file *should* strip out all comments/spaces/newlines and just use IPv4/IPv6 entries.
- localhost (127.0.0.1) and localhost6 (::1) should be whitelisted regardless of settings
- CIDR support/matching in the blacklist files
- Ability to have more than one rbl_server with a max of 5. (Scale the cache size with the # of rbl_servers)?
- An apache graceful/HUP should purge any caches, reload any files.
- More than one rbl should 'halt' on a match, ie: if rbl_server #3 matches a DNSBL, then stop processing any further DNS lookups.
https://github.com/kaufmannr/mod_spamhaus_new
https://github.com/lucaercoli/mod_spamhaus
Project Requirements:
- Apache Module Development (Linux)
- C
- APR/Apache knowledge
Program requirements:
Apache configuration settings:
rbl_server (remote DNSBL server, defaults to spamhaus' XBL if unspecified)
rbl_logging (Defaults to 1, which logs blocked connections. 0 disables all logging)
rbl_whitelist (Defaults to Off, if on, it will load the whitelisted IPv4/IPv6 addresses file)
rbl_whitelist_file (defaults to /etc/rbl.whitelist) - Should take either single entries or CIDR (IPv4/V6).
rbl_use_DROP (defaults to disabled/unset - if enabled, uses https://www.spamhaus.org/drop/drop.txt in addition to rbl_server '
rbl_use_file (defaults to unset) - if enabled, a local or remote http:// file can be used for blocklists
rbl_return_status (Returns a specific HTTP status code to the blocked client, defaults to 403)
Design additions/notes:
- Cache 'hits' to reduce DNS queries. If a connecting client is matched in the DNS queries, cache it and purge the cache it after x/y/z minutes?
- Handle DNS failures (unreachable DNSBL)
- Ability to use it within a VirtualHost<> (similar to other modules, ie: IfModule mod_rewrite)
- Ability to disable/enable it globally or per vhost.
- Debbugging code should be left in place for testing/simulation.
- Loading the whitelist_file *should* strip out all comments/spaces/newlines and just use IPv4/IPv6 entries.
- localhost (127.0.0.1) and localhost6 (::1) should be whitelisted regardless of settings
- CIDR support/matching in the blacklist files
- Ability to have more than one rbl_server with a max of 5. (Scale the cache size with the # of rbl_servers)?
- An apache graceful/HUP should purge any caches, reload any files.
- More than one rbl should 'halt' on a match, ie: if rbl_server #3 matches a DNSBL, then stop processing any further DNS lookups.