Monday 23 December 2013

Disable Recursion for DNS

Recursion allows your DNS server to contact other DNS servers to assist in resolving domain names when it cannot resolve the domain itself. While recursion can prove to be useful tool when it is necessary, it also opens the DNS server open to attack, which could take down the DNS server altogether. Recursion is generally only necessary when there is a known need for it. If recursion is not a known need for your DNS server, it is best to disable recursion. Follow the steps below based on your operating system or control panel to disable DNS recursion.


Disable Recursion in Plesk
Log into the Plesk Admin Panel.
Select Tools and Settings.
Click DNS Template Settings from the section.
Select Localnets from the DNS Recursion section.
Click the OK button.


Disable Recursion in Windows Server 2003 and 2008
Go to DNS Manager from the Start menu:
Click the Start button.
Select Administrative Tools.
Select DNS.

Now Right click on the desired DNS Server in the Console Tree.
Select the Proprerties tab.
Click the Advanced button in the Server Options section.
Select the Disable Recursion checkbox.
Click the OK button.


Disable Recursion in Linux
Locate the named.conf file within the operating system.Open the named.conf file in your preferred editor.

Add the following details to the Options section:

opttions{
.............
allow-transfer {"none";};
allow-recursion {"none";};
recursion no;
............
};

Save and exit the file. The restart the named service. 

# /etc/init.d/named restart



Thursday 17 October 2013

Error: You need to install the missing perl modules and then install csf in DirectAdmin

If you end up with the error "Error: You need to install the missing perl modules and then install csf in DirectAdmin"

Running the following commands should fix the issue. 

# yum install perl-Time-HiRes
OR
# yum install perl-libwww-perl




Sunday 6 October 2013

vzquota : (error) Quota on syscall for id XXX: Device or resource busy



If you get this error, it means that some file from VE private area was in use. Here XXX is the vps id.


#vzctl restart XXX
Restarting container
Starting container...
vzquota : (error) Quota on syscall for id XXX: Device or resource busy
vzquota : (error) Possible reasons:
vzquota : (error) - Container's root is already mounted
vzquota : (error) - there are opened files inside Container's private area
vzquota : (error) - your current working directory is inside Container's
vzquota : (error) private area
vzquota : (error) Currently used file(s):

To fix this, run the following command and find out if any process using the files in VE private area.

# lsof 2> /dev/null | egrep '/vz/root/XXX | /vz/private/XXX'

If any process lists,  kill those process and try start the VPS again.

And you should now able to start the vps without any issue...!!





Tuesday 1 October 2013

Error in Kloxo: Could not open database connection

If you get the below error while trying to access Kloxo Control Panel

Could not open database connection

You can fix it by excecuting below commands from the server.

#mysql -u root -p
mysql> grant all on kloxo.* to kloxo@localhost identified by '{new password}';
mysql> flush privileges;
mysql> quit
Then do,

#cat "{new password}" > usr/local/lxlabs/kloxo/etc/conf/kloxo.pass
#sh /script/restart
Replace "new password " with your password in above commands.

This will fix the issue !!!


Friday 27 September 2013

Weird charecters on site

If you find weird characters in your site instead of the original content as shown below, you can try the fix given below.

 K511����� �Ϸ��Ϸ�ر� ��ȥ���� 917������Ϸ��

For fixing this issue, open your " http.conf " file with your favorite editor
# vi http.conf
And find the line,
AddDefaultCharset UTF-8 
 And comment it.
#AddDefaultCharset UTF-8
Now restart apache.
# /etc/init.d/httpd restart 

Now you should be able to view the site without any weird characters.!!


  

Thursday 26 September 2013

directive requires additional arguments

If you get the following error while trying to start apache in a kloxo server 

#/etc/init.d/http start
Starting httpd: Syntax error on line 2 of /home/apache/conf/defaults/_default.conf:
<VirtualHost> directive requires additional arguments
[FAILED]
Run the following command
# sh /script/fixweb
This should fix the issue..


Tuesday 24 September 2013

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

While trying to start / restart nginx, if get the following error

# /etc/init.d/nginx restart
Stopping nginx: [FAILED]
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
Run the following command to fix the issue. 
# fuser -k 80/tcp
 Where:  fuser - identify processes using files or sockets
               -k     Kill  processes accessing the file.

Now you can start / restart nginx successfully.
# /etc/init.d/nginx restart
Stopping nginx: [ OK ]
Starting nginx: [ OK ]

!!!!!!!!!!!!!!!!................

Error: Kernel image does not exist: /boot/solus-vmlinuz

If you come across the error " Error: Kernel image does not exist: /boot/solus-vmlinuz " while trying to start a xen vps using the below comand

# xm create -c /home/xen/vmID/vmID.cfg
Using config file "/home/xen/vmID/vmID.cfg".
Error: Kernel image does not exist: /boot/solus-vmlinuz
To fix this, just run the following php script.

# php /usr/local/solusvm/includes/xenkernel.php
Making SolusVM initrd...
Setting kernel links...
Kernel setup completed.
Now, you could start the vps without any issue.... 
# xm create -c /home/xen/vmID/vmID.cfg

Getting " 403: Forbidden " error while trying to access Transmission (BitTorrent client) Web Interface

If you get the following error while trying to access Transmission (BitTorrent client) Web Interface.


403: Forbidden
Unauthorized IP Address.
Either disable the IP address whitelist or add your address to it.
If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.
If you're still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.



To fix this issue, login to the server and stop the transmission-daemon.
# /etc/init.d/transmission-daemon stop

Now edit settings.json file,
# vi /var/lib/transmission/.config/transmission-daemon/settings.json
And find the line rpc-whitelist-enabled and edit as following,
rpc-whitelist-enabled : false

Now start the transmission-daemon
# /etc/init.d/transmission-daemon start

The issue should be fixed now. And you would able to access the web interface now.

ERROR! MySQL manager or server PID file could not be found!

Some times you may get mysql error on the page. And on checking the status of the mysql, if you are getting following error 

# /etc/init.d/mysqld status
ERROR! MySQL manager or server PID file could not be found!
Then the Fix is below.

Check the file /etc/my.conf and see any thing mentioned as " basedir= ". If nothing mentioned in the file, by default it would be /var/lib. Then, check the permission for /var/lib/mysql and make sure all are having user and group " mysql ". If not do
#chown -R mysql.mysql /var/lib/mysql
Then, restart mysql
#/etc/init.d/mysql restart
This should fix the issue.






Wednesday 28 August 2013

Install suPHP on debian

Before starting the installation install the prerequisites needed to build mod_suphp with the command below.

#apt-get install php5-cgi apache2-prefork-dev
Now move to the directory where you would like to download the installation file
#cd /usr/local/src
The download it with the command below.
#wget http://www.suphp.org/download/suphp-0.6.2.tar.gz
Now unpack the file
#tar xvfz suphp-0.6.2.tar.gz
and,
#cd suphp-0.6.2
Now you can install with the following commands.

#./configure
Now if you end up with following error while running ./configure
APXS was not found, so mod_suphp will not be built!
Run the command again with the following option. ( where path to apxs may differ )
#./configure --with-apxs=/usr/bin/apxs2
 Now you can proceed with the commands below.
#make
#make install
Now add the module to apache.
#vi /etc/apache2/httpd.conf
And add the following line.
LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so
Then restart apache.
#/etc/init.d/apache2 restart

DONE!!


Enable Iptables Modules for a VPS

Before enabling the modules to the VPS , make sure that its enabled in the root node of the VPS. You can check it using the command below.
#lsmod | grep -i module_name
If its not enabled, then enable it by using the modprobe command 
#modprobe iptables_module
#modprobe ipt_helper
#modprobe ipt_REDIRECT
#modprobe ipt_TCPMSS
#modprobe ipt_LOG
#modprobe ipt_TOS
#modprobe iptable_nat
#modprobe ipt_length
#modprobe ipt_tcpmss
#modprobe iptable_mangle
#modprobe ipt_tos
#modprobe iptable_filter
#modprobe ipt_helper
#modprobe ipt_tos
#modprobe ipt_ttl
#modprobe ipt_SAME
#modprobe ipt_REJECT
#modprobe ipt_helper
#modprobe ipt_owner
#modprobe ip_tables
#modprobe ipt_MASQUERADE
#modprobe ipt_multiport/xt_multiport
#modprobe ipt_state/xt_state
#modprobe ipt_limit/xt_limit
#modprobe ipt_recent
#modprobe xt_connlimit
#modprobe ipt_owner/xt_owner
#modprobe iptable_nat/ipt_DNAT
#modprobe iptable_nat/ipt_REDIRECT

Now to enable the module to the container, first stop the container which one you want to enable the module . Assuming the vps id as 101 here.  

# vzctl stop 101
Now you can enable the module to the vps either by executing the following command

# vzctl set 101 --iptables ipt_REJECT --iptables ipt_tos --iptables ipt_TOS --iptables ipt_LOG --iptables ip_conntrack --iptables ipt_limit --iptables ipt_multiport --iptables iptable_filter --iptables iptable_mangle --iptables ipt_TCPMSS --iptables ipt_tcpmss --iptables ipt_ttl --iptables ipt_length --iptables ipt_state --iptables iptable_nat --iptables ip_nat_ftp --save
                                                 OR
By adding manually to the configuration file /etc/vz/conf/veid.conf 
#vi /etc/vz/conf/101.conf
and then paste following at the end of the file.
 
IPTABLES="iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc"

Now restart the container.
# vzctl restart 101

This will enable the modules to the vps.




Install Ioncube loader in Debian

For installing Ioncube loader in debian follow the steps below.

Get into the server and change the directory where you would like to download the package to. 

#cd /usr/local/src
Now download IonCube loader using the command below ( chose according to which architecture you have )

#wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
                                                        OR
#wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Now extract the downloaded file
#tar zxvf ioncube_loaders_lin_*.tar.gz

 Now move the directory ioncube to a permanent location
#mv ioncube /usr/local/

Now edit the php.ini file and add the following ( You can choose the version of ioncube loader the one that suites your needs )

#vi /etc/php5/apache2/php.ini
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so

Now restart apache
#/etc/init.d/apache2 restart


Done !!

Saturday 24 August 2013

CSF Blocking EVERYTHING

If you have csf installed on a OpenVZ container, suddenly you may end up with  csf blocking all ips and even ssh, email and all services will not be accesible, even though server is working, but firewall puts a block on everyone, and appears offline to others.

I got this fixed by doing the following steps:

Login to the host node and edit /etc/vz/conf/vpsid.conf. For example I'm using 101 as vpsid.

[root@node ~]# vi /etc/vz/conf/101.conf
Then add the following line to the end of the file. 

IPTABLES="iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc"
Now restart the container.

[root@node ~]# vzctl restart  101

The problem should be resolved now!!


umount: /***: device is busy.

Sometimes when you try to umount a device you end up with error " umount: /***: device is busy ", 
e.g.
# umount /***
umount: /***: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Fix 1: It means that some process has a working directory or an open file handle underneath the mount point. The best thing to do is to end the offending process, change its working directory or close the file handle before unmounting.

Fix 2: There is an alternative on Linux though. Using umount -l calls a "lazy" unmount. The filesystem will still be mounted but you won't be able to see or use it, except for processes that are already using it. When the offending program exits (through whatever means) the system will "finish" unmounting the filesystem.

# umount -l /***

 This wil FIX it........


Wednesday 31 July 2013

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

If you end-up with the error ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it means 2 things.

1. You don't have permissions to access the directory /var/lib/mysql/. Check the permission there and change the ownership mysql if it is not. For that do the following
#chown -R mysql.mysql /var/lib/mysql
Then, restart mysql
#/etc/init.d/mysql restart

2. If the permissions are correct, the /tmp/mysql.sock may not be existing. If so do the following.
#/etc/init.d/mysql stop
Then touch a file mysql.sock
#touch /tmp/mysql.sock
Then start the mysql server.
#/etc/init.d/mysql start
 This should fix the issue.....



Install nginx server

Ton install nginx server login to the server as root. Then navigate to the directory whre you would like to download the source file. I usually use /usr/local/src.
#cd /usr/local/src
You can now donload the installation file as shown below.
#wget http://nginxcp.com/latest/nginxadmin.tar
Once the download is finished, extract the tar file that you have downloaded.
#tar xf nginxadmin.tar
Now get into publicnginx
#cd publicnginx
And run the command below to install. 
./nginxinstaller install

You are done !! 

Tuesday 30 July 2013

bash: scp: command not found lost connection

 When you try to scp some thing to a remote server you may endup with the error as shown below.
# scp somefile 10.10.10.10:/home
root@10.10.10.10's password: 
bash: scp: command not found
lost connection

This error occurs because the remote host is missing the openssh-clients package. To fix this issue just login to the remote server, and run the command below.
#yum install openssh-clients
This will fix the issue and you could now scp without any issue.


Monday 29 July 2013

WHM does not show the nameserver ips

When you check the nameserver ips from WHM, it wont show the ip some times. 
Main >> DNS Functions >> Nameserver IPs
To fix this, login to the server as root. The navigate to /var/cpanel.
#cd /var/cpanel
Then make a backup of the file nameserverips.yaml
#cp nameserverips.yaml nameserverips.yaml.bkp
Now edit the file using any editor.
#vi  nameserverips.yaml
It will look like as shown below:
---
ns1.yourdomain.com:
  "": 0
  count: '2'
  zones: ns1.yourdomain.com,ns2.yourdomain.com
ns2.yourdomain.com:
  "": 0
  count: '2'
  zones: ns1.yourdomain,ns2.yourdomain
Now make the following changes in the file.
---
ns1.yourdomain.com:
  "10.10.10.1": 1
  count: '2'
  zones: ns1.yourdomain.com,ns2.yourdomain.com
ns2.yourdomain.com:
  "10.10.10.2": 1
  count: '2'
  zones: ns1.yourdomain,ns2.yourdomain
Where you should replace the nameservers ns1.yourdomain.com and ns2.yourdomain.com with your nameservers, and  ips 10.10.10.1 and 10.10.10.2 to your name server ips.




How to install Csf

Csf installation is very simple and quite straightforward. Login to the server as root, then navigate to the desired location where you wan't to download the installation file.
#cd /usr/local/src
Then download the installation package:
#wget http://www.configserver.com/free/csf.tgz
Now ontar the package using the blow command
#tar -xzf csf.tgz 
Now get into the directory csf
#cd csf 
Now run the below command to install
#sh install.sh
 Once the installation is done, you can do the configuration in
#/etc/csf/csf.conf
Once this is done  disable TESTING mode, lfd will not start while this is enabled. For this change the value to "0" from "1" in csf.conf file.
TESTING = "0"
Once this is done, restart the csf .
#csf -r 


DONE!!!!