EclipseTrader v0.30 – FTSE.MIB hack

December 9th, 2009

Mi sono trovato ad usare EclipseTrader, perché cercavo un tool gratuito che mi facesse vedere l’andamento della borsa e mi facesse fare un minimo di Analisi Tecnica del mercato azionario Italiano e USA, senza dover ricorrere al Browser.

Ho notato subito un piccolo problemino, ovvero che il FTSE.MIB, l’indice italiano, era presente con il vecchio nome Mibtel e quindi non riusciva a scaricare i dati da Yahoo! Finance. Così sono andato in cerca dei file in cui era impostato l’index con il nome sbagliato (^MIBTEL) e l’ho sostiuto con FTSEMIB.MI.

La ricerca l’ho fatto in questo modo (nella home dei sorgenti):

for file in `find .`; do grep Mibtel $file; [ "$?" == "0" ] && echo $file; done

Il file da editare è uno solo (./workspace/securities.xml), in cui bisogna sostituire la parola Mibtel con la parola FTSE.MIB e la parola ^MIBTEL con FTSEMIB.MI.

Vedi lo screenshot di EclipseTrader per vedere il FTSE.MIB funzionante.

La stessa cosa vale per qualsiasi altro indice o titolo che non trova, ad esempio Unicredit (UCG.MI) per EclipseTrader ha come simbolo UC.MI, quindi bisogna cambiare anche questo simbolo.

N.B. le modifiche vanno fatte mentre non si sta utilizzando EclipseTrader, sennò alla chiusura andrebbe a sovrascrivere i cambiamenti.

EDIT: mi sono un po’ complicato la vita, perché ho notato che facendo tasto destro sopra il titolo e cliccando su Properties si può cambiare Code e Description al volo.

Creare un mirror LVM

October 27th, 2009

Ho assegnato 3 dischi da 1GB alla mia macchina virtuale e, dopo aver partizionato ogni disco con un unica partizione grande quanto tutto il disco, ho creato i Physical Volume con il comando:
pvcreate /dev/sd[bcd]1
Ho creato il Volume Group:
vgcreate -v vg_mirror /dev/sd[bcd]1
Ed infine ho creato un mirror da 1GB con il comando:
lvcreate -m 1 -L 1000M -n lv_mirror vg_mirror
Con il comando lvs si può vedere lo stato del syncing del mirror, che in questo caso è molto veloce essendo di un solo gigabyte.
Ora si può creare il filesystem con mkfs.ext3 o con il filesystem che si preferisce e, volendo, si può settare a 0 il maximal mount count con:
tune2fs -c 0 /dev/vg_mirror/lv_mirror

Per maggiori informazioni sul Mirror LVM, vedere il man di lvcreate.

Bind – DNS server su CentOS 5

June 29th, 2009

Installazione
Ci sono più pacchetti da installare per avere un server DNS sicuro e funzionante:
yum install bind bind-chroot bind-devel bind-libbind-devel bind-libs bind-sdb bind-utils caching-nameserver

Configurazione
Si trovano degli esempi per la configurazione di bind sotto /usr/share/doc/bind-$version/sample/, se si vuole approfondire con le configurazioni in maniera più strong. Ricordo che la directoy di lavoro sarà sempre la /var/named/chroot.
Proviamo intanto a configurare il nostro DNS server come caching nameserver, copiando il file di esempio named.caching-nameserver.conf:
cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
e creiamo quindi il link simbolico al file sotto /etc/:
ln -s /var/named/chroot/etc/named.conf /etc/named.conf
Editiamo dunque il file /etc/named.conf e facciamo in modo che sia il più possibile simile a questo:

options {
    listen-on port 53 { 127.0.0.1; 192.168.0.1; };
    listen-on-v6 port 53 { ::1; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    //query-source    port 53;
    //query-source-v6 port 53;
    //allow-query     { localhost; };
};
logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};
include "/etc/named.rfc1912.zones";

Le direttive più importanti da sapere sono:
* listen-on port: indica su che porta il servizio deve ascoltare e con quale IP (loopback e pubblico);
* allow-query: indica quali indirizzi o subnet possono fare query al nostro server DNS, quindi può essere impostato come server dns di una piccola rete, senza venire esposto ad Internet. Nel mio caso l’ho commentato perché questo server è esposto su Internet.
Le altre direttive non sono meno importanti ma in questo momento non serve sapere a cosa servono :P

Zone
Adesso bisogna impostare la zona per il nostro dominio da gestire, prenderemo il classico esempio del dominio example.com.
La zona va così scritta all’interno del named.conf, insieme al reverse:

zone "example.com" {
    type master;
    file "example.com.zone";
};
zone "reverse-example.com" {
    type master;
    file "reverse-example.com.zone";
};

Le zone saranno quindi di tipo master e il loro file di configurazione, definito dalla direttiva file, verrà cercato di defautl sotto /var/named/chroot/var/named/.
I files delle zone saranno così configurati.

; file di configurazione della zona example.com
$TTL    3D
@       IN  SOA ns1.example.com. root.server.example.com. (
                            2009062900  ; versione del file YYYYMMDD+versione
                            2H
                            1H
                            1W
                            1D )
        IN  NS  ns1
        IN  NS  ns2
        IN  MX 10   smtp
ns1     IN  A   192.168.0.1
ns2     IN  A   192.168.0.1
server IN  A   192.168.0.1
host1   IN  A  192.168.0.2
host2   IN  A  192.168.0.3
printer  IN  A  192.168.0.42
;
; file di configurazione di reverse-example.com
$TTL    3D
@       IN  SOA ns1.example.com. root.server.example.com. (
                            2009062900
                            2H
                            1H
                            1W
                            1D )
; commento
        IN  NS  ns1.example.com.
        IN  NS  ns2.example.com.
1       IN  PTR ns1.example.com.
2       IN  PTR ns2.example.com.
10     IN  PTR server.example.com.
20     IN  PTR host1.example.com.
21     IN  PTR host2.example.com.
40     IN PTR printer.example.com.

Da notare nel secondo file (reverse-example.com) che i numeri (1,2,10,20,..) indicano delle priorità, e sono utili nel caso di più name server o più mail server disponibili da più indirizzi della subnet.
Nel primo file invece vengono definiti tutti gli IP degli host appartenti al dominio example.com.

Permessi
Controllare i permessi dei file creati durante la configurazione, ricordarsi di cambiare l’owner in root:named.

SElinux
Controllare i permessi anche di SElinux per i file appena creati con:
ls -lZ /var/named/chroot/etc/
ls -lZ /var/named/chroot/var/named/

Se siete abbastanza esperti di SElinux potete cambiare i permessi anomali con chcon sennò date:
restorecon -R -v '/var/named/chroot/etc/'
restrorecon -R -v '/var/named/chroot/var/named/'

Abilitare le policy bloccanti per il servizio Named:
setsebool -P named_disable_trans on
setsebool -P named_write_master_zones on

Firewall
Aprire la porta tcp/53 del firewall:
iptables -A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT

Start del servizio
Assicurarsi che il servizio restarti al reboot della macchina e startare il servizio:
chkconfig named on
service named start

Tenere d’occhio lo standard error e il /var/log/messages in caso di errori durante lo start del servizio.

Dig per testarne il funzionamento
Se named è partito senza problemi o se avete risolto i problemi di start del servizio, bisogna poter testarne il funzionamento e qui entra in gioco dig (DNS lookup utility).
Ad esempio:

[checco@hitchhiker ~]$ dig checco.42ers.net
;
; <<>> DiG 9.6.1rc1-RedHat-9.6.1-0.4.rc1.fc11 <<>> checco.42ers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58987
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;
;; QUESTION SECTION:
;checco.42ers.net.              IN      A
;
;; ANSWER SECTION:
checco.42ers.net.       232567  IN      A       92.243.0.223
;
;; Query time: 151 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Jun 29 16:45:42 2009
;; MSG SIZE  rcvd: 50

Link Utili
O'Reilly - DNS and Bind (4th edition): http://docstore.mik.ua/orelly/networking_2ndEd/dns/index.htm
BIND 9 Manual Pages: http://www.bind9.net/manuals

Proxy server con Squid su CentOS 5

June 28th, 2009

Squid è il più usato e famoso tra i Proxy Caching Server per Linux.

Installazione
Installare tramite yum il pacchetto singolo per il nostro Proxy Server:
yum install squid

Configurazione
Editare il file /etc/squid/squid.conf e assicurarsi di aver commentato la riga:
http_access deny all
E assicuriamoci di avere scommentato le 2 direttive:
icp_access allow all
http_reply_access allow all

Se si vuole, si può configurare il nome e la porta del servizio di Proxy:
http_port 3128
visible_hostname proxy.example.com

SElinux
Se avete SElinux disabilitato, potete saltare questa procedura; per vedere se è abilitato:
getenforce
Per trovare le policy che riguardano squid:
getsebool -a | grep squid
con cui si otterrà:
squid_connect_any --> off
Quindi, per abilitare la policy relativa
setsebool -P squid_connect_any on

Firewall
Se non usate un firewall, potete saltare questa parte; per vedere se è attivato, controllare le regole con:
iptables -nvL
Apro la porta 3128 per il Proxy:
iptables -A INPUT -p tcp -m state --state NEW --dport 3128 -j ACCEPT

Start del servizio
Assicurarsi che riparta al reboot della macchina con chkconfig:
chkconfig squid on
Faccio partire il servizio:
service squid start

Link Utili
Squid Documentation: http://www.squid-cache.org/Doc/config/
Squid Web Proxy Wiki: http://wiki.squid-cache.org/
Squid, The Definitive Guide: http://oreilly.com/catalog/9780596001629/