How to prevent DDOS attack by CSF firewall?

Preventing DDOS attack from csf firewall.

First make sure DDOS attack is not from open recursive DNS settings. To check and fix that issue please read this article – Preventing DDOS aplification open resolver attack

This article is to set CSF firewall so that any DDOS intentional attack to your server can be prevented.

 

Step 1: open and edit CSF config file. 

vi /etc/csf/csf.conf

 

Settings: 

Enable connection tracking.
CT_LIMIT is max number of connection allowed from one IP, you can set this value as per your server requirement.

CT_LIMIT =100

Set connection tracking interval.

CT_INTERVAL =30

If you want to get possible ddos attack email then enable it.

CT_EMAIL_ALERT =1

If you want to make IP blocks permanent then set this to 1, otherwise blocks
will be temporary and will be cleared after CT_BLOCK_TIME seconds

CT_PERMANENT = 1

If you opt for temporary IP blocks for CT, then the following is the interval
in seconds that the IP will remained blocked for (e.g. 1800 = 30 mins)

CT_BLOCK_TIME = 1800

If you only want to count specific ports (e.g. 80,443) then add the ports
to the following as a comma separated list. E.g. “80,443”

CT_PORTS = 80,23,443

 

These settings will be enough for DDOS attacks but if you are getting more attacks even you have above option configured then we can set few more options.

 

Step 2: Enable distributed attacks

LF_DISTATTACK = 1  

Set the following to the minimum number of unique IP addresses that trigger
LF_DISTATTACK

LF_DISTATTACK_UNIQ = 2

 

Step 3: Enable distributed FTP attacks

LF_DISTFTP = 1

 

Set the following to the minimum number of unique IP addresses that trigger
LF_DISTFTP. LF_DISTFTP_UNIQ must be <= LF_DISTFTP for this to work

LF_DISTFTP_UNIQ = 3

 

If this option is set to 1 the blocks will be permanent
If this option is > 1, the blocks will be temporary for the specified number
of seconds

LF_DISTFTP_PERM =1

 

Step 4: Enable distributed SMTP attacks.

 

LF_DISTSMTP =1

 

Set the following to the minimum number of unique IP addresses that trigger
LF_DISTSMTP. LF_DISTSMTP_UNIQ must be <= LF_DISTSMTP for this to work

LF_DISTSMTP_UNIQ =4

 

If this option is set to 1 the blocks will be permanent
If this option is > 1, the blocks will be temporary for the specified number
of seconds

LF_DISTSMTP_PERM =1

 

This is the interval during which a distributed FTP or SMTP attack is
measured

LF_DIST_INTERVAL = 300
Advertisements

8 thoughts on “How to prevent DDOS attack by CSF firewall?

  1. Ananda Raj Pandey April 28, 2014 / 2:52 am

    You can limit based on number of request or bandwidth with csf

  2. Mark F Edwards September 25, 2014 / 4:22 pm

    you said “CT_LIMIT =1” – but isn’t CT_LIMIT a limit value? should it be something like CT_LIMIT=100?

    • Ananda Raj Pandey October 30, 2014 / 11:04 pm

      CT_LIMIT is max number of allowed connection from one IP, you need to set this as per your server requirement. You can set it to 100 or more as you need.

      • Ananda Raj Pandey October 30, 2014 / 11:05 pm

        Yes, CT_LIMIT is max number of connection to the server from one IP, you can set it as per your server requirement and type of server. To remove confusion , i am editing my post.

  3. Ricardo October 30, 2014 / 7:37 pm

    Is incorrect setting posted! In CT_LIMIT put 100 or 150, leave with 1 with only one access the IP will be blocked.

  4. lolcopter August 25, 2015 / 8:03 pm

    DDoS From CSF? I don’t think it was designed to attack the server it runs on.

    • omkar July 24, 2016 / 7:05 am

      It meant preventing DDOS using CSF Firewall ; just a confusion from words …..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s