Pages

Thursday, October 31, 2013

R1soft Agent Installation


Installing Backup Agent Using YUM
================================
You should configure the YUM repository to manage install and upgrades of the Backup Agent.
(1)Create a yum repository for r1soft
#cd /etc/yum.repos.d
# nano -w /etc/yum.repos.d/r1soft.repo
(use any text editor according to your convenience)
(2)Add the following to the .repo file
------------------------------------------------------
[r1soft]
name=R1Soft Repository Server
baseurl=http://repo.r1soft.com/yum/stable/$basearch/
enabled=1
gpgcheck=0
--------------------------------------------------------
(3) Install serverbackup-agent
#yum install serverbackup-agent
(4) Test the connectivity with r1soft server using the following command
#serverbackup-setup –test-connection
(5) Install the kernel-devel package using YUM
#yum install kernel-devel
(Note: Please make sure that you have installed proper kernel-devel and header packages.)
(6) Run the following command to build the kernel module.
#serverbackup-setup --get-module
(7) The cdp-agent is installed now and you can restart it as follows
#/etc/init.d/cdp-agent restart
(8) It is important to fetch key from the server. Use the following command to fetch key from the cdp-server
#serverbackup-setup --get-key http://<cdp-server_IP>:<port>
To view the list of keys.
#serverbackup-setup --list-keys

Custom PHP.ini with FastCGI


A custom php.ini in fastcgi server will be only active if following steps are followed:

1. Copy default php.ini to user's cgi-bin folder. 
cd /home/user/public-html/cgi-bin
cp /usr/local/lib/php.ini /home/user/public_html/cgi-bin

2. Make necessary changes in it.

3. Create php.fcgi file in /home/user/public_html/cgi-bin folder, to load custom php.ini, with the contents below:
#!/bin/sh
export PHP_FCGI_CHILDREN=1
export PHP_FCGI_MAX_REQUESTS=10
exec /usr/local/cpanel/cgi-sys/php5

Where /usr/local/cpanel/cgi-sys/php5 is the path of PHP 5 in a cPanel server. Check /etc/httpd/conf/php.conf to see what it shows for cgi-sys path for your version of PHP.

4. Save file and make it executable. 
chmod +x /home/user/public_html/cgi-bin/php.fcgi
chown -R user:user /home/user/public_html/cgi-bin/

5. Edit .htaccess to point to php.cgi file. 
cd /home/user/public_html
vi .htaccess

At the top of .htaccess, put the contents below: 
AddHandler php5-fastcgi .php
Action php5-fastcgi /cgi-bin/php.fcgi

6. Add following lines to /usr/local/apache/conf/php.conf file: 
Action php5-fastcgi /cgi-bin/php.fcgi
AddType application/x-httpd-php .php

7. Distill, rebuild Apache and then restart it. 
/usr/local/cpanel/bin/apache_conf_distiller --update
/scripts/rebuildhttpdconf
/etc/init.d/httpd restart

Make sure the above values in php.conf files are not deleted with the update.

You can now test using a phpinfo page and make sure the 'Loaded Configuration' is correctly shown as /home/user/public_html/cgi-bin/php.ini

Wednesday, October 9, 2013

Symlink Attack

Script to find out symlinks
===================

ls /var/cpanel/users | grep -v "\`\|\.\|cpanel\|root\|mysql\|nobody" | while read CPUSER; do find /home/$CPUSER -type l -not \( -lname "/home/$CPUSER/*" -o -lname "*rvsitebuilder*" -o -lname "[^/]*" -o -lname "/usr/local/apache/domlogs/*" -o -lname "/usr/local/urchin/*" \) ; done

Security measures.
=============
(1)Change the binary permission
#chmod 760 /bin/ln

(2)WHM Tweak
WHM Main >> Service Configuration >> Apache Configuration >> Global Configuration you will find the settings for Directory “/” Options

(3) Reset all cPanel/FTP passwords

Saturday, October 5, 2013

Cloud Linux: Tips




Conversion of CentOS5 or Centos6 to CloudLinux
---------------------------------------------------
$ wget http://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy
$ sh cldeploy -k <activation_key> # if you have activation key
or
$ sh cldeploy -i # if you have IP based license
$ reboot

CageFS Installation
-------------------------
$ yum install cagefs
$ /usr/sbin/cagefsctl –init

If you don't have enough disk space in /usr/share, use following commands to have cagefs-skeleton being placed in a different location:

$ mkdir /home/cagefs-skeleton
$ ln -s /home/cagefs-skeleton /usr/share/cagefs-skeleton


To enable all user in cageFS

 $/usr/sbin/cagefsctl –enable-all


PHP Selector Installation
---------------------------------
Installation of different versions of PHP & modules:
$ yum groupinstall alt-php

Update CageFS & LVE Manager with support for PHP Alternatives
$ yum update cagefs lvemanager

cPanel/WHM: Make sure 'Select PHP version' is enabled in Feature Manager


Add an rpm/command to CageFS
---------------------------------
/usr/sbin/cagefsctl --addrpm rsync
cagefsctl --force-update

List the available roms in cageFS
------------------------------------
/usr/sbin/cagefsctl --list-rpm


Set to unlimitted: LVE Limits
-------------------------------------
CLoudLinux 6
--------------------
You can set default LVE limits to unlimited, i.e.
#lvectl set default --cpu=100 --ncpu=100 --vmem=0 --pmem=0 --nproc=0 --maxEntryProcs=10000 --io=0
#lvectl apply all

CloudLinux 5
-------------------
pmem and io limits are not available on CL5, please use it this way:
#lvectl set default --cpu=100 --ncpu=100 --vmem=0 --maxEntryProcs=10000
#lvectl apply all

Mounting Software RAID1 member: madadm

(1)I connected my old hard drive and realized that it was RAID member:



#fdisk -l /dev/sdd
Disk /dev/sdd: 250.1 GB, 250058268160 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488395055 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x90909090

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1   *        2048     2099199     1048576   fd  Linux raid autodetect
/dev/sdd2         2099200     6293503     2097152   82  Linux swap / Solaris
/dev/sdd3         6293504    69208063    31457280   fd  Linux raid autodetect
/dev/sdd4        69208064   488394751   209593344   fd  Linux raid autodetect

You cannot mount it as a normal partition


#mkdir /mnt/old_hdd 
#mount /dev/sdd4 /mnt/old_hdd 
mount: unknown filesystem type 'linux_raid_member'

(2) If you are using RAID1 array, you can mount using madadm


#mdadm --examine /dev/sdd4
/dev/sdd4:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 957e7cb5:bfd41f70:9cb84b0d:f53e5a4c
           Name : milosz-desktop:2
  Creation Time : Sat Aug 20 18:48:26 2011
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 419184640 (199.88 GiB 214.62 GB)
     Array Size : 419184496 (199.88 GiB 214.62 GB)
  Used Dev Size : 419184496 (199.88 GiB 214.62 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : db8a694f:750a0ded:22a6d046:5c4db280

    Update Time : Tue May  8 20:50:32 2012
       Checksum : 75dbc3b6 - correct
         Events : 191


   Device Role : Active device 1
   Array State : .A ('A' == active, '.' == missing)


In order to mount it properly, you will have to create a md virtual device with mdadm.


#mdadm -A -R /dev/md9 /dev/sdd4
mdadm: /dev/md9 has been started with 1 drive (out of 2).

Now you can mount /dev/md9 without any problem.


#mount /dev/md9 /mnt/old_hdd/
#mount | grep ^/dev/md9
/dev/md9 on /mnt/old_hdd type ext4 (rw)

You will be able to copy the data to another drive now. Once the data is transferred, you can unmount it as follows 


#umount /mnt/old_hdd 
#mdadm -S /dev/md9
mdadm: stopped /dev/md9