Posts Tagged ‘PHP’

Automatically update pfSense firewalls (with puppet)

July 14th, 2014 Comments off

Updating pfSense firewalls is easy and stable thanks to its proven upgrade mechanisms. So why should I use the WebGUI to update every pfSense firewall manually? If you have multiple pfSense firewalls and a working test environment, there is no reason to avoid automatic updates.

I’ve extracted a portion of the pfSense firmware upgrade code and put together a small PHP script. This makes it possible to automatically update pfSense. In combination with puppet you need just one line to enable automatic updates:

class { 'pfsense_autoupdate': }

Now your pfSense firewall will check hourly for new versions and install it (almost) instantly. If you want more control you can specify any of the optional parameters:

class { 'pfsense_autoupdate':
  major_updates => false,
  update_hours => ['22-23', '2-4', 6],
  update_weekdays => ['6-7'],
  random_sleep => false,
  firmware_url => '',
  sig_verification => false,
  quiet => true,

You may download the PHP script and puppet module from puppet forge. Additionally you may want to check out the project page on github. Note that you need the puppet agent for pfSense and my pfSense provider collection for this to work.

PHP 5.3 und alte MySQL Passwörter

February 12th, 2013 Comments off

Nach der Migration eines alten Webservers von PHP 5.2 auf PHP 5.3 funktionierte eine uralte PHP-Anwendung nicht mehr. Sie verweigerte den Dienst mit folgender Meldung:

mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf

Das ist natürlich ein alter Hut. Wir einnern uns: Mit MySQL 4.1 wurde ein neues sichereres Passwortformat eingeführt. Das war lange Zeit kein Problem, denn auf einem neuen MySQL Server konnte seither mit der Option old-passwords die Unterstützung für das alte Format beibehalten werden.

Und mit PHP 5.3 endete die Unterstützung für das vorherige unsichere Passwortformat. Offenbar endgültig, denn der Zugriff funktioniert weder mit mysql noch mit mysqli (obwohl dies von manchen als Lösung angegeben wird).

Also muss jeder in den sauren Apfel beißen und das fragliche Passwort neu setzen, genauso wie es die PHP-Fehlermeldung bereits vorgeschlagen hatte:

SELECT user, Length(Password) FROM mysql.user WHERE user=’username’;
UPDATE mysql.user SET Password=PASSWORD(‘altesPasswort’) WHERE user=’username’;
SELECT user, Length(Password) FROM mysql.user WHERE user=’username’;

Der Zugriff mit PHP 5.3+ sollte ab sofort möglich sein.

Categories: [DE] Tech Tags: , , ,