APLawrence - Information and Resources for Unix and Linux Systems, Bloggers and the self-employed
RSS Feeds Get APLawrence.com by RSS














(OLDER) <- More Stuff -> (NEWER) (NEWEST)
Printer Friendly Version



Installing APF Firewall for cPanel

Smitha Soman

By Smitha Soman, Bobcares.com





The whole process of securing a Server or network is quite extensive. I'm discussing just one major aspect of Security here - Firewalls. Specifically my topic is about APF firewall.

I'm dividing this article into 2 sections :-
The first section is for amateurs. The second section is strictly for experts, at least for those who are more well versed with the intricacies of coding, and would like to understand a bit more about what's happening.


Installing APF Firewall for cPanel

In this section, I would like to enumerate the steps to install APF firewall for CPanel. This would help any person who decides to install APF firewall by themselves, and is maybe dreading that decision, to do so in just 13 EASY-TO-DO steps.

First of all, like all tasks, there's a requirement list here too :
  • Linux Operating System
  • Root access to your system
  • PERL support
  • IP Table Support

When you ensure that you have everything on this check list, you can start the process of installation. I have listed the steps of code you have to use as well.

Well... Here goes....

1) Login as root to your system

2) Download the APF version 0.9.3.3 (current) to your system
bash# wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz

3) Now you have to extract the tar file
bash# tar -zxf apf-current.tar.gz

4) Go to the APF directory
bash# cd apf-0.9.3_3

5) Run the code for installation
bash# ./install.sh 

You will be alerted when the installation is complete.

Install path : /etc/apf
Config path : /etc/apf/conf.apf
Executable path : /usr/local/sbin/apf


6) Modify the APF config file according to your user defined requirements.

bash# vi /etc/apf/conf.apf


(Hit i to enter the INSERT mode)

7) Add in the ports you want to open for inbound (INGRES).

	# Common ingress (inbound) TCP ports
		IG_TCP_CPORTS=" 20,21,22,25,26,53,80,110,143,443,465,993,995,2082,
				2083,2086,2087,2095,2096,3306,6666"
		
		# Common ingress (inbound) UDP ports
		IG_UDP_CPORTS="21,53,465,873"

		# Common ICMP (inbound) types
 
		IG_ICMP_TYPES="3,5,11,0,30,8"


The variables mentioned above are already present in the config file. You can customize the ports.

8) You have to particularly instruct APF to monitor outgoing (EGRESS) ports as well.
Change the line: EGF="0" to EGF="1"


9) Specify the outbound ports to monitor.

		# Common egress (outbound) TCP ports
		EG_TCP_CPORTS="21,22,25,26,37,43,53,80,110,113,443,465,873,2089,3306"
		
		# Common egress (outbound) UDP ports
		EG_UDP_CPORTS="20,21,53,465,873"
		
		# Common ICMP (outbound) types
 
		EG_ICMP_TYPES="all"


10) Specify the ports you want to block, if any.
- The allow and deny trust files are located at:
/etc/apf/allow_hosts.rules
/etc/apf/deny_hosts.rules
You just have to list the ip's that you specifically wish to allow or deny in the respective files.

- The format of these files are line-separated addresses, IP masking is supported.

Example:
24.202.16.11
24.202.11.0/24

Save and exit - hit 'esc' :wq 'enter'

11) Start APF
bash# /usr/local/sbin/apf -s 


If everything goes as planned, you'll go back to the command line.

12) If all goes well, edit the config file and change the developer mode to 0

bash# vi /etc/apf/conf.apf 


(Hit i to enter insert mode)

Change DEVM="1" to DEVM="0"

Save and quit - Hit 'esc' :wq 'enter'


13) Restart APF

bash# /usr/local/sbin/apf -r 

Great news !!! APF is now installed and monitoring your system.

Tweaking APF


This section is strictly for professionals who may wish to try their hand at tweaking the APF settings to meet their requirements.

Like I've already mentioned before, here are the major paths to take note of -

Install path : /etc/apf
Config path : /etc/apf/conf.apf
Executable path : /usr/local/sbin/apf

Here are a few more pointers that you could use to further customize your APF firewall.

Usually APF is started at boot time.
You can run it at run time like this -

bash# chkconfig --add apf
 
	bash# chkconfig --level 2345 apf on


You could also remove it from autostart like this -
bash# chkconfig --del apf


And you could enable a cron job that starts the firewall sometime after runtime.

You could DOS protect your system as well.

Change value of USE_AD (in /etc/apf/conf.apf) to 0/1 to disable or enable 
 
	        [0 = Disabled / 1 = Enabled]


=> In additon to specifying the ports and ip's , you could also specify the protocols.

Advanced trust usage :
The trust rules can be made in advanced format with 4 options(proto:flow:port:ip);

protocol: [packet protocol tcp/udp]

flow in/out: [packet direction, inbound or outbound]

s/d=port: [packet source or destination port]

s/d=ip(/xx) [packet source or destination address, masking supported]

Flow assumed as Input if not defined. Protocol assumed as TCP if not defined. When defining rules with protocol, flow is required.

proto:flow:[s/d]=port:[s/d]=ip(/mask)
		
	s - source , d - destination , flow - packet flow in/out
	
	Examples: 
			inbound to destination port 22 from 24.202.16.11 -
 
				tcp:in:d=22:s=24.202.16.11 


I have already mentioned 2 options, to start and restart APF. The main 'apf' script has a few operations built in to ease the use of your firewall.

bash #/usr/local/sbin/apf [OPTION]

		-s|--start ............. load firewall policies
		-r|--restart ........... flush & load firewall
		-f|--flush|--stop ...... flush firewall
		-l|--list .............. list chain rules
		-st|--status ........... firewall status
		-a HOST|--allow HOST ... add host (IP/FQDN) to allow_hosts.rules and
		immediately load new rule into firewall
		-d HOST|--deny HOST .... add host (IP/FQDN) to deny_hosts.rules and
 
		immediately load new rule into firewall


Or
APF can also be started from the init script located at /etc/init.d/apf, standard start|stop|restart arguments are accepted by this script. Here are a few options in the APF config file /etc/apf/conf.apf .
        - Option: DEVM="1"

			Definition:  APF comes default in dev. mode; meaning the firewall rules
			will be flushed every 5 minutes. This is intended to prevent you from
			being locked out of your system in the event of undesired results from APF.
			Set the DEVM="1" option to zero (0) once APF is operating as desired.
			Do NOT! leave this option enabled on a permanent basis, or you defeat
			the purpose of using a firewall.

	- Option: FWPATH="/etc/apf"
			Definition: Absolute install path to APF; should not be changed usually.


	- Option: IF="eth0"
			Definition: Network interface visable too the Internet/Intranet.

	- Option: NET=`ifconfig $IF | grep inet | cut -d : -f 2 | cut -d \  -f 1`
			Definition: IP Address that $IF holds; either define the IP in this value
			or leave it as-is to autodetect.

	- Option: IPTLOG="/var/log/apf_log"
			Definition: Location that APF should log status information to.

	- Option: DROP_LOG="1"

			Definition: Control toggle to enable/disable netfilter kernel log chains.
			These chains appear in the default syslog kernel log; /var/log/messages.

	- Option: LRATE="60"
			Definition: Limiting toggle to increase or decrease the max iptables
			logging events per/minute. This should be left high but may be decreased
			to preserve disk space and logging overhead.

	- Option: EGF="0"
			Definition: Toggle on or off the egress packet filtering; when off APF will
			operate as traditional older versions did with just input filtering.
			[0 = Disabled / 1 = Enabled]

	- Option: USE_DS="0"
			Definition: DShield.org's "block" list of top networks that have exhibited 
			suspicious activity. [0 = Disabled / 1 = Enabled]

Hope this article helps you install, configure and customize APF firewall for your CPanel system.



More Articles by Smitha Soman




Click here to add your comments



Don't miss responses! Subscribe to Comments by RSS or by Email

Click here to add your comments


If you want a picture to show with your comment, go get a Gravatar

cartoon
Versatile Site Map Generator $59.00
Buy A1 Sitemap Generator


/Web/apf_cpanel.html copyright January 2006 Smitha Soman All Rights Reserved

Have you tried Searching this site?

Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more. We appreciate comments and article submissions.

Publishing your articles here

Jump to Comments



Many of the products and books I review are things I purchased for my own use. Some were given to me specifically for the purpose of reviewing them. I resell or can earn commissions from the sale of some of these items. Links within these pages may be affiliate links that pay me for referring you to them. That's mostly insignificant amounts of money; whenever it is not I have made my relationship plain. I also may own stock in companies mentioned here. If you have any question, please do feel free to contact me.

Specific links that take you to pages that allow you to purchase the item I reviewed are very likely to pay me a commission. Many of the books I review were given to me by the publishers specifically for the purpose of writing a review. These gifts and referral fees do not affect my opinions; I often give bad reviews anyway.

We use Google third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you. If you would like more information about this practice and to know your choices about not having this information used by these companies, click here.


book graphic unix and linux troubleshooting guide

My Troubleshooting E-Book will show you how to solve tough problems on Linux and Unix systems!



 I sell and support
 Kerio Mail server






More:
       - Administration
       - Web/HTML


Unix/Linux Consultants

Skills Tests

Guest Post Here











My Favorites

Change Congress