Generování hesel ve formátu md5 crypt

Pravděpodobně nejčastěji potřebuji generovat heslo v md5 crypt formátu, taktže zde uvedu pár postupů jak na to.

Krátký textík o formátu hesel používaných v UNIXových systémech: http://www.zdenda.com/hesla-v-solarisu-a-linuxu

mkpasswd

Program mkpasswd (používám verzi z Debianu) je možné použít pro generování například MD5 hashů hesel. Jenže né vždy je vhodné/možné použít tento program (například na webu v PHP a podobně je nevhodné spouštět externí programy), proto jsem tu sezbíral různé možnosti jak generovat hashe hesel.

Příklad jak volat mkpassw:

mkpasswd --hash=md5 -S blahblah  foobar

blahblah je takzvaný SALT, foobar je naše heslo. Salt samozřejmě nemusíte zadávat. Nedoporučuji spouštět mkpasswd takto z příkazového řádku, protože heslo vám zustane zapsané v historii shellu a během spouštění mkpasswd ho každý může vidět ve výpisu procesů (pokud nezadáte heslo jako parametr, mkpasswd vás k jeho zadání vyzve po spuštění).

Pozor na Slackware, je v něm jiný program mkpasswd než v Debianu.

OpenSSL

Pokud v systému nenajdete program mkpasswd, můžete zkusit openssl.

openssl passwd -1 heslo

Heslo samozřejmě nemusíte zadávat jako parametr, ale můžete počkat až vás o něj openssl požádá po spuštění.

PHP

Funkce md5(text) počítá hash a používá se pro kontrolu integrity dat, nehodí se pro uložení hesla kvůli slovníkovému útoku.

Pro heslo se používá funkce crypt(heslo,salt), kde salt je pro md5-hesla “$1$ABCDEFGH$” kde ABCDEFGH je nahodnych osm znaků (velká,malá,čísla). V PHP pokud je salt prázdný řetězec, salt se vygeneruje (neplati pro staré verze).

crypt("foobar",'$1$blahblah$')

C

cc -o program program.c -lcrypt

#include <stdio.h>
#include <crypt.h>
#include <stdlib.h>
#include <time.h>

#define SALTLEN 8

static char chset[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

char *myCrypt(char *pwd) {
  int i;
  char salt[SALTLEN+5]="$1$";

  srand(time(NULL));
  for(i=0;i<SALTLEN;i++)
    salt[i+3]=chset[rand() % strlen(chset)];
  salt[i+3]='$';
  salt[i+4]='\0';

  return crypt(pwd,salt);
}

int main(int argc, char *argv[]) {
  if (argc<2)
    fprintf(stderr,"Use: %s password\n",argv[0]);
  else
    printf("%s\n",myCrypt(argv[1]));
  return 0;
}

Pár poznámek k mod_rewrite

Pár mnou celkem běžně používaných nastavení mod_rewrite. Kompletní dokumentaci najdete v oficiální dokumentaci.

Přestěhování stránek na nové URL

dřív býval v URL unikátní parametr view=neco a podle toho jsem to určoval…

RewriteCond %{HTTP_HOST}  ^www\.zdenda\.com
RewriteCond %{QUERY_STRING} view=lin_gpg
RewriteRule ^(index.php)?  http://%{HTTP_HOST}/jak-na-gnupg? [R=301,L]

Presmerovani na novou domenu

RewriteCond  %{HTTP_HOST}  ^www\.stara.domena\.tld$
RewriteRule  ^(.*)$ http://www.nova-domena.tld$1 [L,R=301,QSA]

Krásná URL v Drupalu

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Zablokování stránky podle refereru

RewriteCond  %{HTTP_REFERER} ^http://www.hnusnej.server/co/na/me/odkazuje
RewriteRule ^/.*  -  [F]

domena na www.domena

RewriteCond  %{HTTP_HOST}  ^([^.]+)\.([^.]+)$
RewriteRule  ^(.*)$  http://www.%{HTTP_HOST}$1 [L,R=301,QSA]

www.neco.domena.tld na neco.domena.tld

RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.([^.]+)\.([^.]+)$ 
RewriteRule ^(.*)$ http://%1.%2.%3$1 [L,R=301,QSA]

Přesměrování z /blbost/cokoliv na /

RewriteEngine on
RewriteBase    /~tsunami/rewrite/
RewriteRule    ^(.+[^/])$           /~tsunami/rewrite/  [R]

Zakázání hot-linků

RewriteCond %{HTTP_REFERER} ^http://(www\.)?badsite1\.tld/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?badsite2\.tld/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?badsite3\.tld/ [NC]
RewriteRule ^/.* - [F]

VMware Server

O společnosti VMware Inc. jste určitě již slyšeli, firma
vyrábí programy pro virtualizaci počítačů a jeden z nich si
tu popíšeme.

1.1. O co jde?

Virtualizace je poslední dobou hodně
zmiňované téma, psal jsem o ní už i tady – Solaris 10 a zóny a zřejmě bude ještě psát pokud
konečně dopíšu článek o Xenu :-). Produkty od společnosti
VMWare jsou asi jedny z nejznámějších na trhu, ještě
nedávno byly dostupné pouze za peníze. Zdarma byl nejdřív
dostupný VMware Player no a poté byl uvolněn i
VMware Server dostupný nyní ve verzi 1.0 a je
vlastně pokračovatelem dřívější GSX varianty.

1.2. Možnosti využití

VMware Server nainstalujete na dostatečně výkonný
počítač jako běžnou aplikaci. Poté můžete v VMware spouštět
samostatné operační systémy navzájem od sebe izolované a v
různých konfiguracích. VMWare Server funguje v Linuxu a MS
Windows na platformě x86 případně x86_64, umožňuje také
využít v hostovaném systému druhý procesor/jádro pokud ho v
počítači máte. Na dnešním průměrném počítači nepotřebují,
narozdíl od konkurenčního Xenu, operační systémy hostované v VMware žádné
úpravy. Pokud máte x86 HW s podporou virtualizace, tak samozřejmě
můžete do Xenu nainstalovat systém, například MS Windows,
bez jeho úpravy.

Jaké jsou výhody použití VMware Serveru proti běžně
používané verzi Workstation? Instalace a používání je
přibližně stejně náročné na znalosti u obou verzí, ale
Server je narozdíl od Workstation verze za 0 Kč. Taky vás
tak naštvalo, že jste potřebovali restartovat Xka a museli
jste ukončit i VMware Workstation? Server funguje na pozadí
a připojujete se k němu tlustým klientem lokálně nebo přes
síť. Klienta můžete klidně “natvrdo” sestřelit, Server to
neovlivní. Dále je tu webové rozhraní pro základní správu
virtuální strojů, které umožňuje zobrazuje jejich stav
případně umožňí základní konfiguraci vituálního stroje nebo
jeho zapnutí a vypnutí.

Pro centralizovanou správu více instancí VMware Serveru
je třeba použít (placený) nástroj VirtualCenter.

K čemu je VMware Server vhodný? Například pro vývojáře,
testování nových verzí programů nebo také pro hračičky co
si nemohou nebo nechtějí pořídit další počítače na
hraní.

1.3. Instalace

Instalaci rozdělíme do dvou kroků, první je instalace
serverové části a druhá klientstké.

1.3.1. Server

Z webu VMware je třeba stáhnout
instalační soubory pro server a webové rozhraní (VMware Server for Linux (101 MiB),
Management Interface (34 MiB)), pokud
máte distribuci založenou na RPM, můžete stáhnout přímo
rpm balíčky jinak stáhnete odkazované .tar.gz balíky.
Také se na té stránce nezapomeňte zaregistrovat abyste
dostali klíč pro aktivaci. Docela zajímavou stránkou
vhodnou k přečtění ještě před instalací jsou i aktuální
Release Notes, dokumentace a nápověda pro hostované systémy. Pokud
by vám něco nefungovalo, tak doporučuji prohledat
diskuzní fórum případně ještě mrkněte
na server platan.vc.cvut.cz po vmware-any-any-update
patchi (obsahuje upravené zdrojáky jaderných modulů
virtuálních síťovek používaných pro vmware).

1.3.2. Klient

Pokud nemáte potřebu programovat si ovládání vmware
serveru stáhněte si balíček s klientem z lokálního
webového rozhraní vmware serveru. Jestli si ale chcete
zkusit ovládat vmware server pomocí vlastních skriptů, je
třeba stáhnout z webu vmware i balíček VMware Server Linux client package (23
MiB).

1.4. Použití

Jestli se vám nechce instalovat nový OS do VMware,
můžete zkusit už hotové obrazy různých systémů, které
můžete stáhnout na webu VMware Technology Network – Virtual
Appliances

Pár screenshotů

Předinstalovaný Sun Java System Identity Manager 7.0

Chcete si vyzkoušet jeden z nejzajímavějších SW produktů firmy SUN Microsystems – Identity Manager verze 7.0? Připravili jsme pro vás kompletní předinstalovaný a přednastavený systém a nyní je volně dostupný ke stažení ve formě image virtuálního počítače pro VMware.

Požadavky na provoz

Systém byl připraven na vmware serveru, který je volně dostupný pro platformu x86 a operační systémy Linux a MS Windows.

Předpokládá se, že VMware server máte nainstalován a zkonfigurován.
Ze síťových nastavení serveru je nutné doporučeno Bridged sítové spojení, případně síťové spojení přenastavit u image dema.

Demo image je zkonfigurován pro využití 256 MiB RAM.

Stažení

Archiv je dostupný na URL http://www.iforce.cz/files-iforce/idm-demo.tar.gz.

Stažený archiv idm-demo.tar.gz rozbalte, vzniklý adresář idm-demo obsahuje soubory určené pro spuštění ve vmware.

Přidání idm-demo do VMware

Ve VMware otevřete idm-demo systém, File -> Open… a po otevření okna klikněte
na tlačítko Browse… a vyhledejte soubor idm-demo.vmx, který se nachází
v adresáři idm-demo.

Pak stačí virtuální stroj spustit. IP adresa virtuálního stroje je192.168.200.254 se síťovou
maskou 255.255.255.0 a ma přednastaveným hostname na idm-demo.iforce.cz. IP adresu si můžete změnit, systém na ní není nijak vázán.

Po bootu virtuálního počítače nastartují všechny potřebné služby pro běh dema.
Do browseru pak stačí zadat adresu http://192.168.200.254 a zobrazí se Vám
podrobnější informace o demu, případně se můžete přihlásit přes SSH na uživatele root (heslo rootroot).

V případě jakýchkoliv dotazů pište na Zdenek.Burda@Avnet.com nebo Lukas.Cirkva@Avnet.com, za instalaci virtuální mašiny můžete poděkovat Jardovi :-).

Sdílení záložek ve Firefoxu mezi více počítači

Nějakou dobu hledám nástroj, který mi umožní pracovat s jednou sadou záložek (bookamrků) ve firefoxu mezi více počítači. Zkoušel jsem různé webové nástroje, které slouží pro správu oblíbených odkazů, ale moc mi to nevyhovovalo.

Nakonec jsem chvíli používal rozšíření do firefoxu Bookmark Sync and Sort, který mi umožnil celou sadu záložek nahrát na server a z jiného počítače snadno stáhnout. To ale obnášelo jednu větší nepříjemnost a to instalovat dané rošíření na každý počítač, kde jsem chtěl sdílet odkazy.

Zvažoval jsem tedy variantu, že si napíšu vlastní systém. Při hledání vhodné inspirace na netu jsem narazil na projekt SiteBar, který mi (až na menší drobnost) vyhovuje. Seznam jeho vlastností je docela srozumitelně sepsán, proto nemá cenu abych to sem opisoval.

SiteBar je aplikace v PHP vyžadující MySQL pro ukládání dat. Mám ho nainstalovaný na serveru s podporou WebDAV a v prohlížečích na svých počítačích mám nainstalované rozšíření XBEL Synchronization (ke stažení na domácí stránce SiteBaru). V prohlžečích kde dané rozšíření nemůžu nainstalovat využiju funkcí SiteBaru. SiteBar je lokalizován do češtiny.

Na živou ukázku se můžete podívat na adrese http://my.sitebar.org/.