O prolínání práce v IT a osobního života

úterý 26. června 2007

Přesun databází na server s odlišným kódováním

Včera jsem se do pozdních večerních hodin trápil s přesunem několika databází ze starého MySQL serveru na nový. Celý problém spočíval pouze v tom, že jsem nemohl naimportovat databázi obsahující češtinu tak, aby se text neproměnil v 'rozsypaný čaj'.

Po dlouhém trápení jsem konečně přišel na to, že musí být správné kódování nastaveno po celé trase komunikace. Tzn. ztrojová data, klient, db spojení, server/databáze/tabulka. Jako užitečnou pomůcku je možné použít následující výpis:


mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

Share:

Problém s Enigmail


Narazil jsem na podivný problém se šifrováním pošty. Již dlouhou dobu používám Thunderbird/Enigmail/GnuPG. Pro zvýšení produktivity práce jsem se rozhodl, že si stejnou instalaci poštovního klienta rozšířeného o šifrování udělám i doma. Na domácím PC jsem však zjistil, že i když GnuPG funguje normálně, Enigmail nefunguje (nefunkční šifrování/podepisování, prázdné seznamy klíčů).

Prakticky jediným rozdílem oproti instalaci používané v kanceláři bylo to, že doma mám XP Home v české mutaci.

Po delším experimentování jsem náhodou zjistil, že když se v Enigmailu nastaví cesta ke gpg.exe ručně, tak vše začne fungovat.

Použité verze:
Thunderbird 2.0.0.4
Enigmail 0.95.1
GnuPG 1.4.7
Share:

Problém s Enigmail


Narazil jsem na podivný problém se šifrováním pošty. Již dlouhou dobu používám Thunderbird/Enigmail/GnuPG. Pro zvýšení produktivity práce jsem se rozhodl, že si stejnou instalaci poštovního klienta rozšířeného o šifrování udělám i doma. Na domácím PC jsem však zjistil, že i když GnuPG funguje normálně, Enigmail nefunguje (nefunkční šifrování/podepisování, prázdné seznamy klíčů).

Prakticky jediným rozdílem oproti instalaci používané v kanceláři bylo to, že doma mám XP Home v české mutaci.

Po delším experimentování jsem náhodou zjistil, že když se v Enigmailu nastaví cesta ke gpg.exe ručně, tak vše začne fungovat.

Použité verze:
Thunderbird 2.0.0.4
Enigmail 0.95.1
GnuPG 1.4.7
Share:

úterý 19. června 2007

SSH a ssh-agent

Správa sítí sebou přináší neustálé přihlašování na vzdálené servery a další síťové prvky. Pokud používáte na pracovní stanici respektive lokálním serveru OpenSSH a na vzdálených serverech máte nainstalovány privátní klíče, při každém novém připojování zadáváte heslo k vašemu privátnímu klíči.
Právě pro tyto případy je v OpenSSH obsažen ssh-agent. Jeho funkce spočívá v tom, že si zapamatuje jednou zadané heslo pro privatní klíč (passphrase), a při dalším připojení se na něj program ssh již nedotazuje.

Zprovoznění je jednoduché, přidejte si následující script do .bash_profile na pracovní stanici, respektive lokálním serveru:

##
## SSH AGENT
##
BIN_SSH_AGENT=`which ssh-agent`
BIN_SSH_ADD=`which ssh-add`
SSH_AGENT_ENV=~/.ssh/ssh_agent_env

function start_ssh_agent {
$BIN_SSH_AGENT -s > $SSH_AGENT_ENV
. $SSH_AGENT_ENV
$BIN_SSH_ADD
}

if [ -f $SSH_AGENT_ENV ]; then
. $SSH_AGENT_ENV >/dev/null
ps x | grep $SSH_AGENT_PID | grep ssh-agent >/dev/null \
|| start_ssh_agent
else
start_ssh_agent;
fi


Během příštího přihlášení bude spuštěn ssh-agent, a po zadání hesla pro privátní klíč, proběhnou již všechny následující konexe bez manuální autorizace.
Share:

SSH a ssh-agent

Správa sítí sebou přináší neustálé přihlašování na vzdálené servery a další síťové prvky. Pokud používáte na pracovní stanici respektive lokálním serveru OpenSSH a na vzdálených serverech máte nainstalovány privátní klíče, při každém novém připojování zadáváte heslo k vašemu privátnímu klíči.
Právě pro tyto případy je v OpenSSH obsažen ssh-agent. Jeho funkce spočívá v tom, že si zapamatuje jednou zadané heslo pro privatní klíč (passphrase), a při dalším připojení se na něj program ssh již nedotazuje.

Zprovoznění je jednoduché, přidejte si následující script do .bash_profile na pracovní stanici, respektive lokálním serveru:

##
## SSH AGENT
##
BIN_SSH_AGENT=`which ssh-agent`
BIN_SSH_ADD=`which ssh-add`
SSH_AGENT_ENV=~/.ssh/ssh_agent_env

function start_ssh_agent {
$BIN_SSH_AGENT -s > $SSH_AGENT_ENV
. $SSH_AGENT_ENV
$BIN_SSH_ADD
}

if [ -f $SSH_AGENT_ENV ]; then
. $SSH_AGENT_ENV >/dev/null
ps x | grep $SSH_AGENT_PID | grep ssh-agent >/dev/null \
|| start_ssh_agent
else
start_ssh_agent;
fi


Během příštího přihlášení bude spuštěn ssh-agent, a po zadání hesla pro privátní klíč, proběhnou již všechny následující konexe bez manuální autorizace.
Share:

středa 13. června 2007

Vizualizace Cisco flows na Linuxu



Základem pro optimalizaci konfigurace routingu (QoS) respektive firewallingu je mít nějaké informace o tom co se na síti děje (v tomto případě jaká data routerem tečou). V tomto případě jsem si potřeboval udělat obrázek o tom, jaká data protékají routerem Cisco 1841. Měřící server je Debian. Kvůli maximální úspoře času a vynaložení minimálního úsilí jsem chtěl vystačit s balíčky z distribuce a nic nepřekládat.

Instalace potřebných balíků
apt-get install flow-tools flowscan flowscan-cuflow \
flowscan-cugrapher ksh libboulder-perl libcflow-perl \
libconfigreader-perl libhtml-parser-perl libhtml-table-perl \
libhtml-tagset-perl libhtml-tree-perl libnet-patricia-perl \
liburi-perl libwww-perl libxml-parser-perl rrdtool


Konfigurace flow-capture

Nejdříve je třeba zajisti zachytávání a ukládání dat z routeru. Pro tento účel slouží flow-capture.
Do souboru /etc/flow-tools/flow-capture.conf jsem zadal následující řádek:
-w /var/flow/firewall -n 275 -N 0 0/192.168.1.12/3000

Tato konfigurace určuje do jakého adresáře se budou zachycená data ukládat, jaké časové období bude v jednom souboru uloženo, na jakém rozhraní, z jakého routeru a na jakém portu se budou data zachytávat. Flow-capture je nakonfigurováno, je možné ho spustit pomocí /etc/init.d/flow-capture start.

Konfigurace Cisco routeru

Na routeru je třeba zapnout exportování flows:
conf term
ip flow-export source FastEthernet0/0
ip flow-export version 5
ip flow-export destination 192.168.1.16 3000
int fa0/0
ip flow ingress
ip flow egress
end

Pokud je všechno správně nakonfigurováno, tak by se v tuto chvíli měl v adresáři do kterého flow-capture ukládá svá data objevit první soubor.

Konfigurace CUGrapher

V souboru /etc/flowscan/CUGrapher.cf je nutné zadat alespoň cestu ke zpracovaným datům. V mém případě vypadá tento soubor následovně:
OutputDir /var/flow/reports/rrds


Konfigurace CUFlow

Tak, a nyní konečně přijde to zajímavé. V souboru /etc/flowscan/CUFlow.cf jsou nastavena kritéria pro zpracování. Zde popište jak vypadá Vaše síť a jaká data chcete vizualizovat. Pro inspiraci přikládám obsah svého souboru:
Subnet 192.168.0.0/16
Network 192.168.1.0/24 servers
Network 192.168.3.0/24 ucebny
Network 192.168.4.0/24 internat1
Network 192.168.5.0/24 internat2
OutputDir /var/flow/reports/rrds
Multicast
Scoreboard 10 /var/flow/reports/scoreboard
/var/www/flow/topten.html
AggregateScore 10 /var/flow/reports/scoreboard/agg.dat
/var/www/flow/overall.html
Router 192.168.1.12 firewall
Service 20-21/tcp ftp
Service 22/tcp ssh
Service 23/tcp telnet
Service 25/tcp smtp
Service 53/udp,53/tcp dns
Service 80/tcp http
Service 110/tcp pop3
Service 119/tcp nntp
Service 143/tcp imap
Service 412/tcp,412/udp dc
Service 443/tcp https
Service 1214/tcp kazaa
Service 4661-4662/tcp,4665/udp edonkey
Service 5190/tcp aim
Service 6346-6347/tcp gnutella
Service 6665-6669/tcp irc
Service 54320/tcp bo2k
Service 7070/tcp,554/tcp,6970-7170/udp real
Protocol 1 icmp
Protocol 4 ipinip
Protocol 6 tcp
Protocol 17 udp
Protocol 47 gre
Protocol 50 esp
Protocol 51 ah
Protocol 57 skip
Protocol 88 eigrp
Protocol 169
Protocol 255
TOS 0 normal
TOS 1-255 other
ASNumber 1 Genuity


Konfigurace Flowscan

Kritéria zpracování již máme nastavená, zbývá určit kde se data nacházejí a začít je zpracovávat. Cesta k datům se nachází v /etc/flowscan/flowscan.cf. Opět přikládám své nastavení:
FlowFileGlob /var/flow/firewall/*ft-v05.*
ReportClasses CUFlow
WaitSeconds 30
Verbose 1

Zbývá spustit flowscan (respektive jej přidat do startovacích skriptů).

Prohlížení dat

Na http://vas.server.nekde/cgi-bin/CUGrapher.cgi máte samotný nástroj pro vizualizaci dat. Zde si můžete naklikat svá kritéria a vygenerovat graf.

Viz Vizualizace Cisco flows dle AS
Share:

Pozor, Cisco také hovoří reklamštinou...

Během procesu výběru vhodného HW pro konkrétní řešení je nutné se opřít o doporučení výrobce. V případě společnosti Cisco Systems je to mnohdy nelehký úkol, protože kolik jaký box reálně utáhne se nedá nijak spolehlivě predikovat, takže každý technik tvrdí něco jiného. To je sice nepříjemné, ale logické a pochopitelné.
Co mě však opravdu zvedlo ze židle je rozpor následujících dvou dokumentů. První z nich popisuje kolik který router uroutuje v případě, že na něm nejsou nakonfigurovány žádné další služby (raw switching).

Portable Product Sheet - Router Perf


Druhý dokument popisuje datové propustnosti pro VPN provoz.

Portable Product Sheet - VPN

Již při zběžném porovnání obou dokumentů poznáte, že zde něco nesedí.

První z dokumentů jasně informuje o tom, že se jedná o výkon pro raw switching a že jsou rychlosti přepočtené pro velikost packetu 64 bytů. Ze zkušenosti vím, že v případě ISR se reálné hodnoty propustnosti při běžném nastavení firewallingu a běžných velikostech packetů rovnají přibližně polovině propustnosti pro raw switching @64B. Takže jisté vodítko to je :).

Ale ten druhý dokument, to je již IMHO jen reklamština. Když jsem z něho citoval při rozhovoru s expertem Cisca, tak mě požádal, abych mu poslal URL kde jsem tento nesmysl vyšťoural. Reálné hodnoty propustnosti VPN leží bohužel někde úplně jinde...
Share:

středa 6. června 2007

O výchově raubířů ve 21. století

Zkušenost ukazuje, že nejúčinějším nástrojem pro výchovu puberťáků je vhodné využití iptables na domácím firewallu, fyzické tresty už používají jen barbaři :-)
Share: