Wednesday, July 3, 2024
HomeTutorialsWeb HostingConfigure Cpanel Firewalld on CentOS|RHEL 7/8

Configure Cpanel Firewalld on CentOS|RHEL 7/8

This short guide will teach you how to Configure Cpanel Firewalld on CentOS|RHEL 7/8. The default installation of Cpanel Server should automatically configure the firewall for you. If you’re using CentOS 6, It should configure iptables for you, If on CentOS|RHEL 7/8, firewalld should be set for you.

But this is not always the case. Suppose you installed Cpanel when firewalld service was not running, and later started firewalld, the rules for Cpanel won’t be available. In this case, you have to manually invoke cpanel scripts to configure the firewall.

Configure Cpanel Firewalld on CentOS|RHEL 7/8

There are two ways to achieve this. One is using the script which automatically configures the firewalld by adding a service profile for cpanel. An alternative method if for you to define cpanel firewalld service and load it to firewalld service.

For both methods you’ll need firewalld installed and running:

sudo yum -y install firewalld
sudo systemctl enable --now firewalld.service

Before we begin configurations let’s backup iptables rules:

sudo iptables-save > /etc/sysconfig/iptables.save

Configure Cpanel firewalld using a script

This is the easy method, you just need to run a single command and bam!.

sudo /usr/local/cpanel/scripts/configure_firewall_for_cpanel
sudo iptables-restore < /etc/sysconfig/iptables.save

This should take care of any iptables rules in existence. Note that with firewalld, you can’t have a different firewall service like csf running, it will mask firewalld.

After the script is executed, confirm the new firewall rules:

$ sudo firewall-cmd --list-all
public
 target: default
 icmp-block-inversion: no
 interfaces: sources: 
 services: dhcpv6-client ssh cpanel
 ports: 
 protocols: 
 masquerade: no
 forward-ports: 
 source-ports: 
 icmp-blocks: rich rules:

You can see we have cpanel service listed. The script created a service for it located under /etc/firewalld/services/cpanel.xml:

Configure Cpanel firewalld manually

For manual configuration, define /etc/firewalld/services/cpanel.xml with these content:

$ sudo vim /etc/firewalld/services/cpanel.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>cPanel</short>
  <description>This option allows you to access cPanel &amp; WHM's standard services.</description>
  <port protocol="tcp" port="21"/>
  <port protocol="tcp" port="22"/>
  <port protocol="tcp" port="25"/>
  <port protocol="tcp" port="26"/>
  <port protocol="tcp" port="53"/>
  <port protocol="tcp" port="80"/>
  <port protocol="tcp" port="110"/>
  <port protocol="tcp" port="143"/>
  <port protocol="tcp" port="443"/>
  <port protocol="tcp" port="465"/>
  <port protocol="tcp" port="579"/>
  <port protocol="tcp" port="587"/>
  <port protocol="tcp" port="993"/>
  <port protocol="tcp" port="995"/>
  <port protocol="tcp" port="2077"/>
  <port protocol="tcp" port="2078"/>
  <port protocol="tcp" port="2079"/>
  <port protocol="tcp" port="2080"/>
  <port protocol="tcp" port="2082"/>
  <port protocol="tcp" port="2083"/>
  <port protocol="tcp" port="2086"/>
  <port protocol="tcp" port="2087"/>
  <port protocol="tcp" port="2090"/>
  <port protocol="tcp" port="2091"/>
  <port protocol="tcp" port="2095"/>
  <port protocol="tcp" port="2096"/>
  <port protocol="tcp" port="3306"/>
  <port protocol="tcp" port="8080"/>
  <port protocol="tcp" port="8443"/>
  <port protocol="tcp" port="49152-65534"/>
  <port protocol="udp" port="53"/>
</service>

Then add the service to firewalld:

sudo firewall-cmd --add-service=cpanel --permanent
sudo firewall-cmd --reload

You can now test to confirm that you can indeed access the ports defined.

Conclusion

Thanks for reading our guide on how to Configure Cpanel Firewalld on CentOS 7. There is no defined way to configure a firewall for Cpanel. You can use ufw, CSF or vanilla iptables commands. Whichever works for you is okay. The aim is to secure the server, so how you do it is not a matter of concern.

Also read:

Calisto Chipfumbu
Calisto Chipfumbuhttp://cchipfumbu@gmail.com
I have 5 years' worth of experience in the IT industry, primarily focused on Linux and Database administration. In those years, apart from learning significant technical knowledge, I also became comfortable working in a professional team and adapting to my environment, as I switched through 3 roles in that time.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments