Blog

How To Configure CSF To Prevent DDoS Attacks

Tags: csfDDOSfirewallserver security

Published on: December 19, 2016 by Navesh M N

How To Configure CSF To Prevent DDoS Attacks

Scenario:

What is DDOS?

Before discussing how to control DDoS attack using CSF, let me explain what is DDOS attack and how it affects the smooth functioning of a server. DDoS stands for Distributed Denial of Service. It is an attempt to make an online service unavailable by traffic flooding from multiple sources. This makes it impossible to stop the attack by blocking a single IP and also it is difficult to find out the legitimate user from the traffic.

Controlling DDoS attack using CSF

Most of the cPanel servers will use Config Server Firewall(CSF) settings to prevent their servers. Here, I am going to provide some steps to manage a DDoS attack by tweaking the features in the CSF settings.

To check server is under DDoS attack:

You can run the below commands to check whether the server is under attack or not.

To show the number of connections and IP address,


netstat -alpn | grep :80 | awk '{print $4}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -n

If the server has more IP address configured in it, then the above result will help you to find which server IP is under attack.

For example, if the result is huge such as 1000, then you can suppose that the server is under DDoS attack

Tweaking the CSF settings:

1) Open CSF config file.


vi /etc/csf/csf.conf

2) Restricting number of simultaneous connections from a single IP would be quite effective in managing DDOS attacks. So reduce the value of CT_Limit to a reasonable range. Here I am changing it to 50


CT_LIMIT=50

It means that the maximum number of connections from an IP is 50. However the value is not an arbitrary one, you should change the value in accordance with your settings.

3) Change the connection tracking interval CT_INTERVAL


CT_INTERVEAL=30

Here, the connection tracking value is set to 30 seconds which is recommendable. If you decrease the interval to some lower value, then there will be a chance to generate false positives and will block legit connections.

4) To enable protection for a particular port, you can specify them in the configuration variable ‘CT_PORTS’. For eg. In majority of the cases, DDOS will be targeted to the web server and DNS server.  So the port numbers to be specified in such instances for a default installation are 80 and 53.

In the below example I am tweaking the protection for web server both for normal and SSL connections


CT_PORTS=80,443

5) By default, SYNFLOOD (SYNFLOOD = “0”) is disabled in CSF. If the server is under SYNFLOOD attack, you make it enable temporarily as below.

 SYNFLOOD = “1" 
SYNFLOOD_RATE = “30/s” 
SYNFLOOD_BURST = “30" 

If 30 connections are received from an IP/sec for 30 times, then it will block the concerned IP. You can adjust the SYNFLOOD_BURST rate depends on your server.

6. You can set a limit for the number of connections to particular port by altering the value “CONLIMIT”.

 CONNLIMIT = 80;20,443;15 

The above value will limit only 20 connections to the port 80 and 15 connections to the port 443 from single IP

7 ) Now the modifications are complete. In order to make them effective, we need to restart the CSF service with the new configuration parameters.

 /etc/init.d/csf restart

or

csf -r 

I hope, the above measure will help you to prevent the server from DDoS. Thank you for your time 🙂

Get Dedicated Webhosting Support Team

Category : Linux

Navesh M N

Navesh M N

Navesh is working as a sysadmin at SupportSages. He also contributing his SEO knowledge in business development. Apart from this, he is a keen observer of National and International politics. He is also a die-hard football fan.

You may also read:

Comments

Add new commentSIGN IN

Let's Connect

Get new updates

Categories

$0.000 items