MySQL went away errors

This means that the server timed out and closed the connection. Two most common reasons (and fixes) for the MySQL server has gone away (error 2006) are:

  1. Your wait_timeout variable in your MySQL my.cnf configuration file is not large enough. To fix: vi /etc/mysql/my.cnf, set wait_timeout = 600 seconds (you can tweak/decrease this value when error 2006 is gone), then service mysql restart.
  2. Server dropped an incorrect or too large packet. If MySQL gets a packet that is too large or incorrect, it assumes that something has gone wrong with the client and closes the connection. You can increase the maximal packet size limit by increasing the value of max_allowed_packet in my.cnf file. To fix: vi /etc/mysql/my.cnf, set max_allowed_packet = 64M (you can tweak/decrease this value when error 2006 is gone), then service mysql restart.
Posted in Linux, MySQL | Comments Off on MySQL went away errors

Creating multiple chroots

Edit the /etc/ssh/sshd_config:

1. Comment out the Subsystem sftp line
2. Create line as follows:
Subsystem sftp internal-sftp
3. Add the following at the bottom of the sshd_config file:
Match Group sftponly
ChrootDirectory %h
X11Forwarding no
AllowTCPForwarding no
ForceCommand internal-sftp
4. Restart ssh
5. Create a file called create_chroot.sh:
useradd -d /home/contractor3 -s /bin/false -G sftponly contractor3
chown root:root /home/contractor3/
chmod 755 /home/contractor3/
mkdir /home/contractor3/upload
chown contractor3:contractor3 /home/contractor3/upload
passwd contractor3

Posted in Linux | Comments Off on Creating multiple chroots

Determining what security fixes have been backported

RPM Command

The rpm command can be used to determine what fixes have been backported as follows:

rpm -q --changelog pkgname

will show the package changelog, where vulnerabilities that have been patched in a package are listed.

 

Another place to look for information on a vulnerability is on http://nvd.nist.gov. You can search by Vulnerability number.

Posted in Linux | Comments Off on Determining what security fixes have been backported

Force phpMyAdmin to https

1) Using Apache .htaccess (this can also be put in the httpd.conf if you don’t use .htaccess files):

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/directory(.*)$ https://%{HTTP_HOST}/directory$1 [L,R]

2) Using phpMyAdmin’s config.inc.php file:

** place this at the end of the file somewhere
$cfg[‘ForceSSL’] = true;

Posted in Linux, OPENSSL and TLS | Comments Off on Force phpMyAdmin to https

Checking whether TRACE/TRACK are enabled in Apache

curl -v -X TRACE http://www.yourserver.com
Running it against an Apache server with TraceEnable Off correctly returns HTTP/1.1 405 Method Not Allowed (just tested on an Apache 2.2.22)
This also works on HTTPS sites, provided that cURL has the correct information supplied to the SSL layer. This is the lazy man’s check of Google
curl –insecure -v -X TRACE https://www.google.com/
If it shows that it is enabled, add the following to the httpd.conf file:

TraceEnable Off

 

Posted in Linux | Comments Off on Checking whether TRACE/TRACK are enabled in Apache

Upgrade PHP

Ubuntu:

sudo add-apt-repository ppa:ondreej/php5

sudo apt-get update

sudo apt-get install php5

Ubuntu 10.04 LTS:

sudo echo “deb http://ppa.launchpad.net/ondrej/php5/ubuntu lucid mail” >> /etc/apt/sources.list

sudo echo “deb-src http://ppa.launchpad.net/ondrej/php5/ubuntu lucid mail” >> /etc/apt/sources.list

sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys E5267A6C

sudo apt-get update

sudo apt-get install php5

 

CentOS

Posted in Linux | Comments Off on Upgrade PHP

Sed command

s/example.com/newdomain.net/g default.template > newdomain.net.conf

Posted in Linux | Comments Off on Sed command

Comparison of different package managers

https://wiki.archlinux.org/index.php/Pacman_Rosetta

Posted in Linux | Comments Off on Comparison of different package managers

PostgreSQL examples

http://darthdeus.github.io/blog/2013/08/19/postgresql-basics-by-example/

To look at a stored procedure:

Use this to find the procedure name:

SELECT routine_schema As schema_name, routine_name As procedure_name FROM information_schema.routines;

Then use this from the psql prompt to read the sql:

SELECT pg_get_functiondef(( SELECT oid FROM pg_proc WHERE proname = '<function_name>'));

To create a table with an auto-incrementing index:

database=# CREATE TABLE VLS_TEST(
id INTEGER DEFAULT nextval('jobs_tags_id_seq'::regclass) NOT NULL,
job_id integer NOT NULL,
TEST TEXT NOT NULL);

To insert a row into this table, just don’t include the id field:

database=# INSERT INTO VLS_TEST (job_id, TEST) VALUES ( 234, 'This is test text.');
INSERT 0 1

database=# SELECT * from VLS_TEST;
id | job_id | test

------+--------+--------------------
8223 | 234 | This is test text.
(1 row)

Posted in Linux | Comments Off on PostgreSQL examples

Editing the siteurl in the database of a wordpress site

use dbname;
update wp_options set option_value = http://www.domain.com where option_name = ‘siteurl’ and option_value = ‘http://www.olddomain.com’;

Posted in Linux | Comments Off on Editing the siteurl in the database of a wordpress site