So well.. I hope it is done by now.
A: Package filter:
1) Filtering so far has a usual SYN package filter (too many SYN requests in a short amount of time whose ACKs are not acked (meaning server opens a socket but the socket is not used) will result in a 3 minute iptables ban (no access to any server ressource at all).
2) ICMP requests (PING) currently allowed
B: For Apache:
1) multiple requests on the exact same URI at the same time will result in 403 errors,
2) multiple GET requests in general on addresses will also (only the limit of allowed requests is higher),
3) too many GET requests on non-existing pages (DoS attacking applications sending just GET requests randomly) also 403 (even less requests allowed than option 1)
4) too many POST requests per second (very low limit!)
5) unauthorized PUT requests
Apache behaviour is simple: get blocked because one of the reasons once and you get a 5 second ban and all requests end up in 403. Manage to get 10 blocks in 1 hour will give you a 15 minute ban. Let's see how well this ends up defeating packages

.