Sorry, I don’t know anything about your “xterm-color” terminal.
Oggi durante una serie di comandi con un senso ben preciso Solaris mi ha parlato in questo modo:
Sorry, I don’t know anything about your “xterm-color” terminal.
La perplessità generale mi ha fatto lanciare questo comando:
bash-3.00# export TERM=vt100
Ma molto probabilmente sarebbe stato meglio un terminale “ansi”
Sorry, I don’t know anything about your “xterm-color” terminal. Read More »
Perl – Zabbix SMS Allert
Un netmonitor, non è un vero netmonitor se non fa squillare il telefono del sysadmin con un sms almeno 3 volte a notte, ecco qui uno script in perl per interfacciare zabbix con il servizio fornito da Mobyt tramite un POST http su un loro gateway, con qualche aggiustatina può essere usato anche con altri servizi analoghi.
#!/usr/bin/perl
# Leonardo Rizzi
# Version 0.3
# SMS sent throuth Mobyt gateway
# Designed for use without ip autentication only MD5 Hash
# Attention: there aren't any check but message limit is of 160 charaters.use Digest::MD5 qw(md5_hex);
use strict;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
my ($operation, $qty, $rcpt, $query, $out, $ua, $ok, $ko, $data, $from);
my ($code, $id, $password);$id="username";
$password="password";
$ok='SMS Sent Correctly';
$ko='SMS Not Sent';
$from= $ARGV[1];
$operation="TEXT";
$qty = 'h';#attention this fuking provider don't accept 00 for international area code only + if you use 00 you get sent error
$rcpt = $ARGV[0];
$data = $ARGV[2];
$code = join '', $id,$operation,$rcpt,$from,$data,$password;my $ticket=md5_hex($code);
$ua = new LWP::UserAgent;
$ua->agent("SMS_MD5_Relay/0.2 " . $ua->agent);
my $req = POST 'http://smsweb.mobyt.it/sms-gw/sendsmart',
[
id => $id,
operation => 'TEXT',
rcpt => $rcpt,
from => $from,
data => $data,
qty => $qty,
ticket=> $ticket
];my $res=$ua->request($req);
if ($res->content =~ /^OK/)
{
fine_ok (); }
else
{ fine_ko (); }exit;
sub fine_ko () {
my $msg=shift;
print "$ko\n";
exit (1);}
sub fine_ok () {
my $msg=shift;
print "$ok\n";
exit (1);}
Perl – Zabbix SMS Allert Read More »
MySQL – Reset root password
E si a volte capita di non ricordare o avere sotto mano la password di un database mysql, ecco qualche breve passaggio per reimpostarla:
1. Stoppare il server mysql solitamente una cosa del genere dovrebbe bastare:
root@tardis:~# /etc/init.d/mysql stop
2. Avviare una sessione del demone mysql con il parametro “skip grant table”
root@tardis:~# mysqld_safe –skip-grant-tables
3. A questo punto è possibile collegarsi al server senza che richieda credenziali quindi:
root@tardis:~# mysql
>
4. Reipostiamo direttamente nella tabella del db la password di root:
mysql> UPDATE mysql.user SET Password=PASSWORD(‘NewPass’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
5. Stoppiamo il demone avviato con il “skip grant table” e riavviare quello corretto:
root@tardis:~# /etc/init.d/mysql start
MySQL – Reset root password Read More »
PHP – Charset
Questo è dedicato a tutti quei programmatorucoli da quattro soldi che credono che si un problema di server quando nelle loro paginette del cavolo non vedono correttamente i caratteri.
Questa cosa:
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″/>
Solitamente è quello che viene inserito nelle pagine html.
Per chi volesse capire ecco la spiegazione del perché questo non basta, in pratica l’engine legge il codice lo interpreta e restituisce un qualcosa, ovviamente questo qualcosa è definito chiaramente in fase di programmazione se vi dimenticate di inserire la codifica (vedi sotto) come diavolo può sapere l’engine php, che charset avete usato nella pagina?
<?php
header('Content-type: text/html; charset=utf-8');
?>
Quindi ricordate di entrambe le cose anche se la pagina contiene html ma è .php e non rompete ai sistemisti che hanno già tante cose da fare.
Apple – Resetting PowerBook and iBook Power Management Unit (PMU)
Ogni tanto il sistema di alimentazione, dei powerbook ammetto che si blocca o feggio ancora fa un po’ i fattacci suoi, una resettatina non fa male:
Rimando alla documentazione ufficiale sul sito apple:
Apple – Resetting PowerBook and iBook Power Management Unit (PMU) Read More »
Debian – PXE installation
Dato che ultimamente è più facile per me avere a portata di mano un portatile o dispositivo simile e non i cd che vanno innesorabilmente persi, mi sono deciso a mettere un sistema di boot PXE sul notebook per effettuare l’installazioni dei server.
Ecco quello che serve per partire, è necessario avere questi 3 pacchetti:
– Il server TFTP dove risiederanno le immagini di boot.
– Il server DHCP per distribuire gli indirizzi e i parametri PXE
– Il dnsmasq questo servirà ad installazione avviata per recuperare i pacchetti dal repository
1. Quindi prima cosa installiamo:
root@tardis:~/apt-get install tftpd-hpa dhcp3-server dnsmasq
2. Abilitiamo il server tftp con questi passaggi:
Editiamo:
/etc/default/tftpd-hpa
Modificando questo parametro:
RUN_DAEMON=”no”
in questo:
RUN_DAEMON=”yes”
Io mi sono creato per comodità un link simbolico alla root del tftp in /
root@tardis:~# ln -s /var/lib/tftpboot /tftp-root
Ora di può far partire il servizio:
root@tardis:~# /etc/init.d/tftpd-hpa start
3. Abilitiamo il server dhcp:
Editiamo questo file:
/etc/dhcp3/dhcpd.conf
Inserendo queste righe:
option domain-name-servers 192.168.10.50;
default-lease-time 86400;
max-lease-time 604800;
authoritative;subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.1.20;
filename “pxelinux.0”;
next-server 192.168.10.50;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.10.50;
}
Ora di può far partire il servizio:
root@tardis:~# /etc/init.d/dhcpd-server start
4. Abilitiamo il dnsmasq
Editiamo questo file:
/etc/dnsmasq.conf
dhcp-boot=pxelinux.0,tardis,192.168.10.50
Ora di può far partire il servizio:
root@tardis:~# /etc/init.d/dnsmasq start
5. Routing:
Questa parte ci serve per fare il get dal repository usando il portatile da router.
root@tardis:~# echo 1 > /proc/sys/net/ipv4/ip_forward
6. Prepariamo il repository locale:
root@tardis:~# cd /tftp-root
root@tardis:~# wget http://ftp.nl.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/netboot.tar.gz
root@tardis:~# tar xvf netboot.tar.gz
Con questa operazione creaiamo il repository per il boot normale senza opzioni, eventuali parametri andranno specificati manualmente.
Ora collegando una macchina da installare con il pxe abilitato, prederà l’ip dal server dhcp e caricherà l’immagine di boot tramite tftp!
Debian – PXE installation Read More »
Debian – debian-sys-maint
Se per sbaglio durante un restore di un database mysql cancellaste l’utente di sistema debian-sys-maint
Potete ripristinarlo usando la password generata e scritta in chiaro in questo file:
/etc/mysql/debian.cnf
Questo è necessario se usate il sitema APT per gestire gli aggiornamenti dei servizi, in caso contrario non ha senso di esistere.
Debian – debian-sys-maint Read More »
Cavo Ottico
Non c’è cosa migliore di incontrare una bobinona di fibra ottica, sotto l’ufficio di primo mattino.
Ero convinto che avvesero fermato l’ampliamento dell’infrastruttura ottica nelle zone centrali di milano, mi fa pensare che siamo attivati a livelli critici di saturazione delle linee su rame.
Tool – Make Self
Segnalo un tool per creare gli eseguibili autoestraenti sui sistemi *nix sempre utile per ogni evenienza.
Ed è solo lunedì..
Lunedì +
Il Lunedì, le ferrovie che scioperano, la benedizione natalizia dell’ufficio, hanno messo veramente a dura prova la mia pazienza.
Ed è solo lunedì.. Read More »
VPS Linux – TUN/TAP Device
Se aquistato una vps con Debian basata su XEN ricordatevi che nella maggio parte dei casi mancano tools per gestire i moduli quindi per utilizzare un qualsiasi modulo in questo caso particolare tun/tap occorre installarli:
# apt-get install module-init-tools
#modprobe tun
# mkdir /dev/net
# mknod /dev/net/tun c 10 200
A questo punto è tutto pronto.
Per riconoscere se è questo il vostro problema è facile incorrere in questo errore:
QM_MODULES: Function not implemented
VPS Linux – TUN/TAP Device Read More »
Cisco Acquires Jabber, Inc.
Questa mi suona propio nuova eppure è una notizia di qualche settimana fa, Cisco ha acquisito Jabber.
Ma che sta succedendo?
More info:
http://www.cisco.com/web/about/ac49/ac0/ac1/ac258/JabberInc.html
Cisco Acquires Jabber, Inc. Read More »
Manipolazione certificati ssl P12
Memo su come estrarre i certificati compressi in P12
Comando per estrarre la chiave:
# openssl pkcs12 -nocerts -in cert.p12 -out key.pem
Comando per estrarre il certificato:
# openssl pkcs12 -nokeys -in cert.p12 -out cert.pem
Comando per decriptare la chiave, questo serve per evitare di reinserire tutte le volte che si usa la chiave, la password rsa:
# openssl rsa -in key.pem -out decryptkey.pem
Manipolazione certificati ssl P12 Read More »
Linux – Zabbix Build 1.6.1 (MySql)
Una breve guida sull’implementazione di questo giovane netmonitor che a mio avviso a differenza di soluzioni più conosciute e consolidate come nagios, introduce una gestione molto più web oriented semplificando moldo le operazioni in ambienti che necessitano di rapida scalabilità.
L’installazione è stata effettuato con successo usando Debian Etch 4.0r5 e CentOS 5.2 inutile dire che tutte le operazio che seguiranno dovranno essere fatte da utente ‘root’
1. Prepariamo quello che ci serve per la compilazione:
tardis:~# aptitude -y install build-essential libmysqlclient-dev libssl-dev libsnmp-dev libiksemel-dev libcurl3-dev
tardis:~# apt-get install snmp libiksemel3 libcurl3 libsnmp-base libmysqlclient15off
2. Scarichiamo i sorgenti, e procediamo con scompattazione:
tardis:~# wget http://garr.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.6.1.tar.gz
tardis:~# tar zxvf zabbix-1.6.1.tar.gz
tardis:~# cd zabbix-1.6.1
3. Configurazione e compilazione, in questo caso verà compilato oltre all’agente dedicato a discovery e al monitoraggio, anche il server che ha la funzione di raccogliere di dati dai vari agent, gestire gli allarmi e le operazioni di cordinameto:
tardis:~# ./configure –prefix=/usr –with-mysql –with-net-snmp –enable-server –enable-agent –enable-ipv6 –with-jabber
tardis:~# make
Ora una piccola nota, se compilaste direttamente su macchine di produzione a questo punto basterebbe fare un ‘make install’ non avendo gli strumenti dedicati, è necessario spostare il compilato sulla macchina dedicata e procedere a mano, quindi (questa fase è da eseguire sulla macchina di produzione che dovrà avere a bordo Apache2, PHP5, Mysql5 già funzionanti):
4. Creiamo utente e gruppo dedicato:
groupadd zabbix
useradd -c ‘Zabbix’ -d /home/zabbix -g zabbix -s /bin/bash zabbix
mkdir /home/zabbix
chown zabbix:zabbix /home/zabbix
5. Creiamo database e utente dedicato in mysql server:
mysql -p -u root
create database zabbix;
grant all on zabbix.* to ‘zabbix’@’localhost’ identified by ‘changeme’;
quit;
6. Popoliamo le tabelle del database:
server:~/zabbix-1.6.1# mysql -u root -p zabbix < create/schema/mysql.sql
server:~/zabbix-1.6.1# mysql -u root -p zabbix < create/data/data.sql
server:~/zabbix-1.6.1# mysql -u root -p zabbix < create/data/images_mysql.sql
7. Creaiamo una struttura di directory dedicata, questa soluzione potrebbe risultare noiasa, ma durante le operazioni di aggiornamento e manutenzione sarà molto più comodo e veloce:
server:~# mkdir /usr/share/zabbix
server:~# mkdir /usr/share/zabbix/sbin
server:~# mkdir /usr/share/zabbix/etc
server:~# mkdir /usr/share/zabbix/frontends
8. Con i seguenti passaggi creaiamo un link simbolico delle /etc di zabbix alla /etc di sistema, copiamo il frontend php nella directory dedicata, e infine copiamo gli esguibili compilati che ci servono:
server:~/zabbix-1.6.1# ln -s /usr/share/zabbix/etc/ /etc/zabbix
server:~/zabbix-1.6.1# cp -r frontends/php/* /usr/share/zabbix/frontendsserver:~/zabbix-1.6.1# cp src/zabbix_agent/zabbix_agent /usr/share/zabbix/sbin/zabbix_agent
server:~/zabbix-1.6.1# cp src/zabbix_agent/zabbix_agentd /usr/share/zabbix/sbin/zabbix_agentd
server:~/zabbix-1.6.1# cp src/zabbix_server/zabbix_server /usr/share/zabbix/sbin/zabbix_server
9. Configuriamo i file di init.d copiandoli e aggiustando i path
server:~/zabbix-1.6.1# cp misc/init.d/debian/* /etc/init.d/
Modificate entrambi gli script aggiustando i path in particolare questa riga:
da così: DAEMON=/home/zabbix/bin/${NAME}
deve diventare così: DAEMON=/usr/share/zabbix/sbin/${NAME}
10. Aggiungiamo la definizione delle porte usate da zabbix nei /etc/services
echo ”
zabbix_agent 10050/tcp # Zabbix ports
zabbix_trap 10051/tcp” >> /etc/services
11. Copiamo le configurazioni di default e apportiamo le modifiche di base:
server:~/zabbix-1.6.1# chown -R zabbix:zabbix /usr/share/zabbix/etc
server:~/zabbix-1.6.1# cp misc/conf/zabbix_* /usr/share/zabbix/etc
Editiamo il file: zabbix_agentd.conf e assicuriamoci che ci sia la seguente riga
Server=127.0.0.1
Editiamo zabbix_server.conf
max_execution_time = 300
date.timezone = UTC
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=changeme
12. Apache e PHP
Nel file php.ini è necessario avere i seguenti parametri definiti:
max_execution_time = 300
date.timezone = UTC
La configurazione di apache è abbastanza a discrezione dell’amministratore si può fare in due modi:
Creando un vhost dedicato:
<virtualhost>
ServerName zabbix.domain.tld
DocumentRoot /usr/share/zabbix/frontends
<directory>
Options FollowSymLinks
AllowOverride None
</directory>
</virtualhost>
Oppure creando un’alias in una vhost già definito:
<IfModule mod_alias.c>
Alias /zabbix /usr/share/zabbix/frontends
</IfModule>
13. Ora se tutto è stato fatto correttamente avviando i servizi e aprendo la pagina web si potrà procedere con la rapiada configurazione del frontends e poi all’uso ma prima i seguenti comandi:
/etc/init.d/apache2 restart
/etc/init.d/zabbix-server start
/etc/init.d/zabbix-agent start
Linux – Zabbix Build 1.6.1 (MySql) Read More »
Mac OS X – root user
Abilitare l’utente di root nelle varie versioni dell’os X
10.5
Dal tool “Directory Utility” che si trova in Applications – Utility, sbloccare le impostazioni con il lucchettino, poi dal menu “Edit” c’e’ la comoda voce “Enable Root User” dopodiche’ settare la password.
10.2 – 10.3 – 10.4
Dal tool “NetInfo Manager” che si trova in Applications – Utility, sbloccare le impostazioni con il lucchettino, poi dal menu “Security” c’e’ la voce “Enable Root User” dopodiche’ settare la password.
10.0 – 10.1
Dal tool “NetInfo Manager” che si trova in Applications – Utility, sbloccare le impostazioni con il lucchettino, poi dal menu “Security”, “Domain”c’e’ la voce “Enable Root User” dopodiche’ settare la password.
Mac OS X – root user Read More »
Apache – Client denied by server configuration
Tipico errore 403 Access Denied e nel log una stringa simile a quest “client denied by server configuration” con incluso il path del file specifico?
Allora con buona probabilita’ manca una direttiva nella configurazione globale o nella singola del vhost:
<Directory “/var/www/”>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Apache – Client denied by server configuration Read More »
Linux – IPv6 Tunnel Broker
Come definire il link ad un tunnel broker i questo esempio HE.net da sistema operativo linux utilizzando i net tools
Prima parte crea l’interfaccia di tunneling sull’ipv4:
ifconfig sit0 up
ifconfig sit0 inet6 tunnel ::216.66.84.42
Seconda parte genera l’endpoint del tunnel in ipv6:
ifconfig sit1 up
ifconfig sit1 inet6 add 2001:470:1f12:11c::2/64
Terza parte definisce la rotta sul device relativo all’endpoing del tunnel per tutto il traffico ipv6:
route -A inet6 add ::/0 dev sit1
Linux – IPv6 Tunnel Broker Read More »
Export
Memo, questo e’ solo per ricordarmi l’export del profile:
export PATH=$PATH:/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/dt/bin:/usr/ccs/bin
Whois – Controlli ricorsivi
Come eseguire controlli ricorsivi sui whois e generare un file per singola query usando poche righe di bash scripting, attenzione ai limiti per server (il file si chiamera’ “list” e deve avere un dominio di secondo livello per riga) quindi questo e’ tutto:
#!/bin/bash
declare -a ARRAY
exec 10<list
let count=0while read LINE <&10; do
whois $LINE > /home/leo/whois/result/$LINE
echo $LINE
ARRAY[$count]=$LINE
((count++))
doneecho Number of elements: ${#ARRAY[@]}
echo ${ARRAY[@]}
exec 10>&-
Whois – Controlli ricorsivi Read More »
Cisco – ATM Line Status
Breve memo sul comando per l’analisi dello stato del modulo ATM per le linea adsl in caso di problemi e’ sempre bene verificare i livelli di attenuazione e margine di rumore della linea al fine di valutare la qualita’ del segnale della linea.
router# show dsl interface atm0/0
Cisco – ATM Line Status Read More »
IRC Cut 01 – #solaris
<Giaco> dannazione non trovo la sprite
<Giaco> solo la fanta
<Giaco> oddio che male sto ginocchiolo
<Giaco> ma sip e’ udp o tcp ?
<Giaco> ah forse era aix udp
<Giaco> non mi piace ios
<mega> ma che stai vaneggiando?
<Giaco> ios e’ come il linux
<Giaco> non e’ come i bsd
<mega> tu fumi troppe canne
<mega> vado a nanna
<mega> notte
<Giaco> era aix o iax ?
<Giaco> ciao
IRC Cut 01 – #solaris Read More »
Hardware – MacPRO ITA Keyboard on windows
Vi sarà mai capitato di aver collegato una tastiera Apple ad un PC in particolar modo una PRO Ita, ovviamente nei driver standard la mappatura non esiste, neache lontanamente.
Ho creato con un software fornito da Microsoft (Microsoft Keyboard Layout Creator) la mappatura della tastiera nel file scaricabile qua sotto è contenuto un installer e il sorgente per modificabile.
Attezione il tast “DEL” è mappato con il tasto virgola del tastierino per comodità.
Hardware – MacPRO ITA Keyboard on windows Read More »
Cisco – SSH
Ecco come abilitare, l’ssh sugli apparati con cisco con IOS
Prima fase configurare un dominio, e generare i certificati, al fine di incrementare la sicurezza consiglio di usare almeno la chiave 768 Bit che permette l’uso di SSH v2
route_01_no#conf t
Enter configuration commands, one per line. End with CNTL/Z.
route_01_no(config)#ip domain-name stars.deepreflect.net
route_01_no(config)#cry key generate rsaThe name for the keys will be: route_01_no.stars.deepreflect.net
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.How many bits in the modulus [512]: 768
% Generating 768 bit RSA keys, keys will be non-exportable…[OK]
La seconda fase e’ abilitare il protocollo SSH v2 e abilitare le line vty all’accesso:
route_01_no(config)#ip ssh version 2
route_01_no(config)#line vty 0 4
route_01_no(config-line)# transport input telnet ssh
route_01_no(config-line)#
route_01_no(config)#end
route_01_no#
Mac OS X – your network have been changed by another application
Dopo l’aggiornamento sulla sicurezza 2008-006 versione del sistema 10.4.11 e’ insorto un problema nelle preferenze di sistema, sezione network:
All’apertura si verifica questo errore “your network have been changed by another application” non reversibile con gli strumenti messi a disposizione per intenderci il tasto “OK”
Questo succede per dei monivi di sicurezza dato che le preferenze di rete interagiscono in continuazione con il portachiavi di sistema, vedi per le password PPP, le chiavi Airport e altre configurazioni di accesso.
La cosa piu’ sbrigativa sarebbe tenere le configurazioni bloccate con il lucchettino, ma risulta molto scomodo dover autenticare ogni modifica.
Come soluzione definitiva si puo’ procedere in questo modo:
Cercare la seguente cartella
/Library/Preferences/SystemConfiguration
Cancellare i seguenti file:
com.apple.airport.preferences.plist
NetworkInterfaces.plist
preferences.plist
com.apple.nat.plist
Dopo aver fatto questo e’ necessario cancellare tutto il database del portachiavi di sistema, o almeno la definizione delle password legate ai servizi di rete. Attenzione i dati di autenticazione dovranno essere reiseriti al fine di ricostruire con i giusti privilegi il db.
Mac OS X – your network have been changed by another application Read More »
E poi si chiedono perché cambio lavoro.
Lavorereste mai in una societa’ di telecomunicazioni in cui sostituiscono un firewall Checkpoint su piattaforma Nokia con uno Zyxel ZyWall USG.
Sono inorridito
E poi si chiedono perché cambio lavoro. Read More »
Cisco – Lock & Key
Discutendo una sera sulla sicurezza dei servizi SSH e sull’alternativa di utilizzare porte non standard per ovviare ai frequenti tentativi di instrusione automatici effettuati da bot, l’idea e’ offuscare la porta 22 con stratagemmi simili a port knocking, IOS a riguardo puo’ essere sfruttato con una funzione chiamata Lock & Key si tratta di condizionare una ACL per un tempo limitato per mezzo di autenticazione.
Il meccanismo puo’ essere integrato su router di confine o router di accesso che abbiamo autenticazione locale o TACAS+
– Prima fase e’ abilitare e definire il metodo di autenticazione, in questo esempio e’ locale sul router nel caso ci sia un server ACS specificare i parametri.
aaa new-model
aaa authentication login userauthen local
aaa authentication login clientauth local
aaa authorization network groupauthor local
– Seconda fase definire almeno un utente:
username cisco privilege 15 password cisco
– Terza fase applicare un gruppo all’interfaccia di ingresso:
interface FastEthernet0/0
ip access-group 150 in
– Quarta fase definire l’access list, la prima abilita il telnet, la seconda abilita l’ssh in condizione di autenticazione posiva, e lascia attiva la regola per 120 secondi dopo che connesione viene chiusa:
access-list 150 permit tcp any any eq telnet
access-list 150 dynamic TL01 timeout 120 permit tcp any any eq 22
– Quinta fase definire l’autocommad nella sezione terminali virtuali, nel caso specifico se si esegue un login via telnet si attiva l’ACL, per la gestione del router sono dedicate le line SSH
line vty 0 4
privilege level 15
autocommand access-enable timeout 5
transport input telnetline vty 5 9
privilege level 15
transport input ssh
Cisco – Lock & Key Read More »
Php – Riconoscimento lingua browser
Visto che mi hanno chiesto un sistema per riconoscere la lingua del browser con successiva visualizzazione del rispettivo contenuto, posto il codice, spiego usanto una variabile di ambiente php e comparando le prime due cifre della lingua impostata nel browser le compara con due lingue italiano e tedesco e successivamente se non sono una di queste due rimanda alla pagine inglese, semplice e coinciso:
<?php
if (substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2) == "it")
{
include("index_ita.htm");
}
elseif (substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2) == "de")
{
include("index_deu.htm");
} else {
include("index_eng.htm");
}
?>
Php – Riconoscimento lingua browser Read More »
Mac OS X – Verbose Boot
Be l’os x anche se propio non sembra un sistema unix a causa di tutta questa bella grafica, in realta’ lo e’ fino all’osso, quindi nel caso si volesse visualizzare il verbose mode del boot ecco come fare:
Da terminale in modalita’ root:
Per abilitare:
# nvram boot-args=”-v”
Per disabilitare:
# nvram boot-args=
Per la versione del firmware:
# nvram -p
Mac OS X – Verbose Boot Read More »
Mac OS X – Flush DNS Cache
Ecco i comandi vari ed eventuali sempre utili, ovviamente eseguiti da terminale:
Leopard 10.5
# dscacheutil -flushcache
Tiger 10.4
# lookupd -flushcache
Mac OS X – Flush DNS Cache Read More »
Server Strings
Adoro quando i server rispondono cosi’ (si, il server di posta e’ in ascolto anche in ipv6):
leobook-w:~ leonardorizzi$ telnet mail.deepreflect.net 25
Trying 2001:470:1f13:10a::100…
Connected to mail.deepreflect.net.
Escape character is ‘^]’.
220 deepreflect.net ESMTP – Life is short talk fast!
Win NT – Logon Script Network MAP
Script semplice e veloce per mappare le unita’ di rete nei domini active directory, c’e’ chi usa ancora il “net use” ma purtroppo hanno anche inventato il VBS:
Notare che la terza mappatura mappa la home prendendo come variabili dallo username.
Nominare .vbs
Option Explicit
Dim objNetwork, strRemotePath1, strRemotePath2, strRemotePath3
Dim strUserName, strDriveLetter1, strDriveLetter2, strDriveLetter3
strDriveLetter1 = "S:"
strDriveLetter2 = "P:"
strDriveLetter3 = "X:"strRemotePath1 = "\\server\share"
strRemotePath2 = "\\server\driver"
strRemotePath3 = "\\server"Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive strDriveLetter1, strRemotePath1
objNetwork.MapNetworkDrive strDriveLetter2, strRemotePath2Set objNetwork = WScript.CreateObject("WScript.Network")
strUserName = objNetwork.UserName
objNetwork.MapNetworkDrive strDriveLetter3, strRemotePath3 _
& "\" & strUserName & "$"Wscript.Quit
Win NT – Logon Script Network MAP Read More »
Solaris – Inetd SVC
Breve memo sull’attivazione del servizio tftpd su solaris.
#svcs tftp/udp6
svcs: Pattern ‘tftp/udp6′ doesn’t match any instances
STATE STIME FMRI
#grep tftp /etc/inetd.conf
#tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpbootDecommentare “#tftp dgram udp6 …” nel file /etc/inetd.conf
# grep tftp /etc/inetd.conf
# TFTPD – tftp server (primarily used for booting)
tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot# inetconv
inetconv: Notice: Service manifest for 100235/1 already generated as /var/svc/manifest/network/rpc/100235_1-rpc_ticotsord.xml, skipped
inetconv: Notice: Service manifest for 100083/1 already generated as /var/svc/manifest/network/rpc/100083_1-rpc_tcp.xml, skipped
inetconv: Notice: Service manifest for 100068/2-5 already generated as /var/svc/manifest/network/rpc/100068_2-5-rpc_udp.xml, skipped
tftp -> /var/svc/manifest/network/tftp-udp6.xml Importing tftp-udp6.xml …Doneserver # svcs tftp/udp6
STATE STIME FMRI
online 12:56:05 svc:/network/tftp/udp6:default
Solaris – Inetd SVC Read More »
Cisco – Kerberos and telnet
Questa e’ una cosa che spesso riguarda piu’ in client telnet che non gli OS Cisco, che durante la procedura di login tentano la procedura di automatic login, generando questo questo errore:
leobook:~ leonardorizzi$ telnet route01-nov.stars.deepreflect.net
Trying xxx.xxx.xxx.xxx…
Connected to route01-nov.stars.deepreflect.net.
Escape character is ‘^]’.User Access Verification
Username: Kerberos: No default realm defined for Kerberos!
Questo ovviamente deriva dalla mancanza di configurazione dell’autenticazione kerberos sul sistema, cosa che ovviamente non e’ strettamente necessaria;
Per evitare di vedere e creare nei log righe di errore, semplicemente basta usare il parametro -K di telnet che corrisponde citando il man “-K Specifies no automatic login to the remote system.”
leobook:~ leonardorizzi$ telnet -K route01-nov.stars.deepreflect.net
Trying xxx.xxx.xxx.xxx…
Connected to route01-nov.stars.deepreflect.net.
Escape character is ‘^]’.User Access Verification
Username:
Altra alternativa disattivare l’autologin dalle impostazioni di telnet con:
leobook:~ leonardorizzi$ echo default unset autologin >> ~/.telnetrc
Cisco – Kerberos and telnet Read More »
Cisco – Change Dynamic NAT
Vi sara’ mai capitato di dover riconfigurare il NAT, Route MAP o simili su router in condizioni di nat dinamico, nella maggior parte dei casi si ricevono questi errori:
- Dynamic mapping in use, cannot remove
- %Pool outpool in use, cannot destroy
Si risolve usando il comando “clear” nello specifico:
clear ip nat translation *
dopodiche’ si puo’ agire sul nat indisturbati
conf t no ip nat pool old pool name ip nat pool new pool
Ricordo che in molti casi per poter agire su alcune configurazioni e’ necessario mettere in modalita’ “shutdown” le interfacce direttamente interessate nelle procedure di NAT
Cisco – Change Dynamic NAT Read More »
Cisco – Console Cable Pin
Signal | Console Port (DTE) | RJ-45 Rolled Cable | Adapter | Adapter | Signal |
---|---|---|---|---|---|
RJ-45 | RJ-45 Pin | DB-9 Pin | DB-25 Pin | ||
CTS | 1 | 8 | 7 | 4 | RTS |
DTR | 2 | 7 | 4 | 20 | DSR |
TxD | 3 | 6 | 3 | 2 | RxD |
GND | 4 | 5 | 5 | 7 | GND |
GND | 5 | 4 | 5 | 7 | GND |
RxD | 6 | 3 | 2 | 3 | TxD |
DSR | 7 | 2 | 6 | 8 | DTR |
RTS | 8 | 1 | 8 | 5 | CTS |
Cisco – Console Cable Pin Read More »
SSH key
Nel caso succeda che il demone sshd non parta per i seguenti motivi:
Could not load host key: /etc/ssh/ssh_host_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Disabling protocol version 1. Could not load host key
Disabling protocol version 2. Could not load host key
Con questi comandi si generano le chiavi host:
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key
Milano in agosto
Primi tre giorni di lavoro, Milano e’ ancora vuota sembra incredibile, niente traffico e ho pure trovato parcheggio.
Questo ha meritato una foto, in fondo si puo’ notare la stazione centrale, e la strada praticamente deserta.
Cisco – IOS Image
Breve prontuario per riconoscere le immagini e le relative feature (sono indicate le principali):
IP : y
ADSL : 7
IP PLUS : s
VOICE : v
CRYPTO (maggiore di 64-bit) : k9
CRYPTO (minore di 64-bit) : k8
IBM/AT/IPX : bnr2
FW/IDS : o3
H323 : x
IP/IPX/APPLETALK : bin
IP/FW : oy6
LAWFUL INTERCEPT : u2
ENTERPRISE : js
SSG : g4
Inoltre le immagini sono presenti altre immagini raggruppate per feature:
IP BASE = IOS entry level nessuna caratteristica principale
IP VOICE = VoIP, VoFR, IP Telephony
ADVANCED SECURITY : IOS Firewall, IDS, SSH, IPsec, VPN, 3DES
SP SERVICE : MPLS, SSH, ATM, VoATM
ENTERPRISE BASE : Multiprotocol, IBM
ADVANCED IP SERVICE : IPv6, Advanced Security, Service Provider Service
ENTERPRISE SERICE : Enterprise Base, IBM Full, Service Provider Service
ADVANCED ENTERPRISE SERVICE : Tutto quello descritto prima.
Cisco Catalyst – IOS Upgrade
Comandi base per aggionare un Catalyst 29xx partendo da un’immagine IOS compresssa in tar, ovviamente e’ indispensabile avere a disposizione un server TFTP con gia’ caricata nella root l’immagine.
Fase 1 – Eliminare l’immagine e eventuali web-interface con questi due comandi:
Switch#delete flash:c0000-versioneios.bin
Switch#delete flash:html/*
Fase 2 – Copiare scompattare e caricare l’immagine dall’TFTP
Switch#archive tar /xtract tftp://10.10.10.1/c0000-versioneios.bin flash:
Fase 3 – Verificare l’immagine
Switch#verify flash:c0000-versioneios.bin
Memo:
Le immagini con questa notazione “i6k2l2q4” hanno le seguenti feature:
EI AND SI IOS CRYPTO
Le immagini con questa notazione “i6q4l2” hanno le seguenti feature:
EI AND SI IOS
Cisco Catalyst – IOS Upgrade Read More »
Cisco Catalyst – Port Monitoring
Piccolo memo sull’uso delle funzioni di monitoraggio, sui catalyst, nel caso di debba sniffare il traffico per installare un IDS o per un po’ di sana diagnostica in caso di problemi.
Se lo switch supporta le sessioni di monitoring, esempio se si vuole
monitorare la porta 10 usando uno sniffer sulla 20 cosi’:
!
monitor session 1 source interface Fa0/10
monitor session 1 destination interface Fa0/20
!
Se lo supporta il port monitoring, esempio se si vuole monitorare con uno
sniffer sulla porta 20 il traffico tra porta 10 e porta 1:
!
interface FastEthernet0/20
port monitor FastEthernet0/10
port monitor FastEthernet0/1
port monitor VLAN1
!
Cisco Catalyst – Port Monitoring Read More »
Solaris – Patch It
Un piccolo memo sul sistema di gestione delle patch in Solaris, patch ID 121118 (SPARC version) o 121119 (x86 version)
Questi sono i comandi principali:
Analyze: -/usr/sadm/bin/smpatch analyze
Download: -/usr/sadm/bin/smpatch download
Add Patch: -/usr/sadm/bin/smpatch add
Bisogna registrare il sistema con questo comando:
# /usr/sbin/sconadm register -a -r /tmp/registrationprofile.properties
Il file /tmp/registrationprofile.properties deve essere una cosa simile a questo:
userName=newuser
password=newpassword
hostName=
subscriptionKey=
portalEnabled=false
proxyHostName=
proxyPort=
proxyUserName=
proxyPassword=
Solaris – Patch It Read More »
Dyndns Get Ip from cisco
Dal momento che l’SNMP non ha voglia da andare e avendo bisogno urgente di aggiornare un host su un dns, e essendo il router un Cisco 837 e non potendo usare ios 12.4 che supporta questo genere di protocollo, ho scritto qualche riga.
Un cron esegue ogni 15 minuti questo script:
/opt/dyn/noip2 -i `/opt/dyn/gci`
Ecco il contenuto di gci
#!/bin/sh
host=192.168.x.x
port=23
login=cisco
passwd=cisco
cmd='sh ip int brief'
(echo open ${host} ${port}
sleep 1
echo ${login}
sleep 1
echo ${passwd}
sleep 1
echo ${cmd}
sleep 1
echo exit) | telnet|grep Dialer0|awk '{print $2}'
Sarebbero cose da non usare.
Dyndns Get Ip from cisco Read More »
Cisco IPv6
Anche se non credevo che fosse cosi’ semplice i tunnel 6to4 sui router cisco non sono una cosa complessa come sembra posto uno straccio di configurazione usato con il tunnel broker Hurricane Electric sul server di parigi:
interface Tunnel0
no ip address
no ip redirects
no ip unreachables
no ip proxy-arp
ipv6 address 2001:470:1F12:10A::2/64
ipv6 enable
tunnel source xxx.xxx.xxx.xxx
tunnel destination 216.66.84.42
tunnel mode ipv6ip
!
ipv6 route ::/0 Tunnel0
Attenzione questa e’ usata su un 2600 con IOS 12.3 IP FW IDS PLUS / IPSEC
Ricordo che e’ bene inserire un ACL che faccia passare il protocollo 41 solo dall’end point del tunnel e ovviamente lasciare le risposte icmp abilitate