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 ð