Fighting DDOS attacks with pf
Bartek W. aka Mastier
mistrzipan at gmail.com
Mon Aug 20 17:20:28 UTC 2012
W dniu 20.08.2012 18:27, Jason Hellenthal pisze:
> All of the methods listed in more recent messages are just fine of
> methods to *somewhat* handle the DDoS on the hosts being attacked.
>
> - *But* -
>
> The only way you are going to take care of this is going to you're
> provider at the next level and asking them for assistance. Most of the
> addresses you will be seeing are probably spoofed or part of some
> amplification attack at which you will end up blocking out legitimate
> customers anyhow.
>
> So level up and go to your're Tier 2, Tier 1's.
Beside, I advise you check thoroughly from where the attacks are
actually coming from. In our case a lot of ACK and SYN attack with IP
addresses looking like PA or PI addresses outside our network eventually
appeared to be our customers having those public addresses spoofed on
their machines causing global chaos. I am not sure which malware was
causing such behaviour, but make your research in that direction. Check
if those massive SYN are actually coming from WAN. Use tcpdump or
trafshow to review if this public address are really in WAN.
>
> On Mon, Aug 20, 2012 at 11:53:09AM -0400, J David wrote:
>> Hello,
>>
>> We experience frequent DDOS attacks, and we're having a tough time
>> mitigating them with pf. We have plenty of bandwidth and processing
>> power, we just can't seem to get the rules right.
>>
>> If, for example, I have a single IP address on the outside attacking a
>> range of IPs on the inside, it is very easy to write a max-src-states
>> rule that will count the states for that IP and flush the attacker to
>> a "drop quick" table if they exceed the limit.
>>
>> However, the nature of a DDOS attack is that there is not a single
>> source IP. The source IP is either outright forged or one of a large
>> number of compromised attacking hosts. So what I really want to do is
>> have a "max-dst-states" rule that would at least temporarily blackhole
>> an IP being attacked, but there's no such thing.
>>
>> Currently we have to run a script once per minute that parses "pfctl
>> -s info" looking for large numbers of states to a common destination.
>> But as we have our states set to 1000000, this is really inefficient
>> and of course takes at least a minute to catch up to an attack.
>>
>> Is there a better way to do this?
>>
>> This is on FreeBSD 9.1-PRERELEASE #0 r238540.
>>
>> Thanks for any help!
>> _______________________________________________
>> freebsd-pf at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-pf
>> To unsubscribe, send any mail to "freebsd-pf-unsubscribe at freebsd.org"
More information about the freebsd-pf
mailing list