Symlink / Softlink Protection For Security In Apache – SOLVED

You may need to read the whole article before choosing it.

Step 1 :  You may need to  turn on “SymLinksIfOwnerMatch” in WHM Apache Global Configuration

Step  2:  Apply the Patch from rack9 , what he do is to turn on by default in apache  source and compile it to apply this patch please do it as follows,

wget http://layer1.rack911.com/before_apache_make -O /scripts/before_apache_make
chmod 700 /scripts/before_apache_make

#Rebuild apache after.

/scripts/easyapache

Step  3 :  Apply the Symlink Race condition patch from Blue Host. It is is now available in easy apache. To apply the patch, select Symlink Race Condition Protection from the Exhaustive Options list during the EasyApache build process.

Please read the whole article from  http://docs.cpanel.net/twiki/bin/view/EasyApache/Apache/SymlinkPatch

Now check the server if it is already have a Symlink

# find /home*/*/public_html -type l

All the above solutions can be exploited  easily too. Our Security team tested and find out it. But there is another  good option in cloud linux.

This issue can easily be fixed in Cloud linux Using the secure links. It is one of the best solution.  It use  a kernel level protection. You can enable it in sysctl.conf  by adding the following lines

fs.enforce_symlinksifowner = 1

You can set any of the followivg values

fs.enforce_symlinkowner == 0 -> do not check symlink ownership
fs.enforce_symlinkowner == 1 -> deny if gid == symlinkown_gid
fs.enforce_symlinkowner == 2 -> deny if gid > symlinkown_gid   [since kernel 2.6.32-379.19.1.lve1.2.8]

If you need to exclude Symlink check of a specific user , you can do it as follows,

fs.symlinkown_gid = XX   , where XX is the  UID

To apply the Sysctl changes , plese do it as follows,

sysctl -p

Please read more about it from  http://docs.cloudlinux.com/index.html?securelinks.html