Sexta-feira, 4 de Janeiro de 2008

Portagens

A1, Aveiro Sul – Coimbra, ida e volta, 5,40 euros cada.

Sempre são 1080$00 na moeda antiga.
Isto não será um bocadinho de exagero ?

Chiça!


A ouvir: Estrela do Mar, Jorge Palma.
YouTube: http://www.youtube.com/watch?v=NBvsiX6mY-I

 

tags:
publicado por gamito às 19:32
link do post | comentar
Quinta-feira, 13 de Dezembro de 2007

Há 20 anos atrás... *sigh*

publicado por gamito às 20:32
link do post | comentar | ver comentários (2)
Quarta-feira, 5 de Dezembro de 2007

Vou criar a minha própria distribuição de Linux...

... and guess what, agora que o software do Prof. Dan Bernstein é do domínio público, vai ser uma distribuição para um servidor de email completo utilizando qmail como MTA.

Provavelmente vai chamar-se qmailux e será baseada em CentOS 5.1

Há tanto tempo que eu queria fazer isto mas não podia.
It's a dream come true :)


A ouvir: Wow, Kate Bush.
YouTube: http://www.youtube.com/watch?v=xKh-HhzMXGE

 

tags:
publicado por gamito às 02:12
link do post | comentar | ver comentários (2)
Terça-feira, 4 de Dezembro de 2007

Finalmente

O Prof. Dan Bernstein decidiu colocar todo o seu software já escrito (e.g. qmail, djbdns, daemontools) e futuro sob domínio público.

Aqui a página onde faz o anúncio para o qmail e aqui o vídeo aonde anuciou a novidade com palmas e gritinhos da audiência.

Vou fazer RPMs para o qmail, daemontools, ucspi-tcp e checkpassword, yack :)

Será que vem aí um qmail 2 ?


A ouvir: Victor's Solo Piano, Danny Elfman.
YouTube: http://www.youtube.com/watch?v=UgYbVV4OHbE

 

tags:
publicado por gamito às 16:13
link do post | comentar | ver comentários (2)
Segunda-feira, 19 de Novembro de 2007

SAPO codebits

Foi com muita pena que, por motivos de tempo, não pude inscrever-me no SAPO codebits que unanimemente foi considerado um sucesso.

Queria lá ter ido fazer uma(s) brincadeira(s) com um servidor de email e web services numa máquina virtual, ouvir a apresentação do Nuno Loureiro sobre a API do webmail do SAPO que era uma coisa que me interessava bastante e conviver com algumas pessoas conhecidas que já não vejo há algum tempo (Paulo Laureano Santos, Paulo Trezentos, Mário Valente...).

Paciência, talvez para o ano possa ir.


A ouvir: Thank You, Led Zeppelin.
Youtube: http://www.youtube.com/watch?v=Qj3bi_mckW0

 

tags:
publicado por gamito às 05:05
link do post | comentar
Quarta-feira, 14 de Novembro de 2007

Sporting

Tenho andado nos últimos dias um bocado arredado das notícias e só agora soube dos três secos que o meu Sporting emborcou do Braga.

Eu por mim já me estou lixando, business as usual.

Agora, começo é a sentir-me um bocado "culpado" por ter feito do meu filho de 9 anos um Sportinguista ferrenho.

Porra para isto.


A ouvir: Dance On A Volcano, Genesis.
YouTube: http://www.youtube.com/watch?v=FraoJitaP7I

 

tags:
publicado por gamito às 16:27
link do post | comentar | ver comentários (1)

Caixa Mágica e Mandriva

Devo dizer que acolho a notícia de a Caixa Mágica mudar a sua base de SuSE para Mandriva com a maior satisfação.

Com efeito, a Mandriva é de longe a melhor distribuição Linux KDE based que há.
Let there be no doubt about it.

Agora bom, bom, era a Caixa Mágica ter um sistema de gestão de pacotes diferente do urpmi que na verdade é uma boa treta.

Espero que a Caixa Mágica tenha artes para contornar/resolver esta questão.

Nice move, Paulo :)

PS. O DarkLord da Caixa Mágica deixou em comentário que a distribuição não vai usar o urpmi, mas sim o apt-rpm/Synaptic.

 

Nice move again, Paulo :)


A Ouvir: Eleventh Earl Of Mar, Genesis.
YouTube: http://www.youtube.com/watch?v=9sNgU4cJVP4

 

tags:
publicado por gamito às 16:14
link do post | comentar | ver comentários (3)

A1 Aveiro - Lisboa

A A1, pelo menos entre Aveiro e Lisboa, está metade em obras, com duas faixas estreitinhas e placas de velocidade máxima de 80 km/h.

Quanto ao preço, é o mesmo de sempre.

Arrota pelintra.


A ouvir: Down And Out, Genesis.
YouTube: http://www.youtube.com/watch?v=HFqs3zhjjYU

 

tags:
publicado por gamito às 15:44
link do post | comentar | ver comentários (2)
Quarta-feira, 7 de Novembro de 2007

Browser mamão

Este Firefox em Linux, suga a módica quantidade de 120 MB de RAM e não tenho extensões instaladas.

Irra lá para o gajo.

A ouvir: Red Rain, Peter Gabriel.
YouTube: http://www.youtube.com/watch?v=pIG5wU0EhCc

 

publicado por gamito às 09:01
link do post | comentar | ver comentários (4)
Sábado, 27 de Outubro de 2007

gFTP

Esta recente versão do Mandriva, traz pela primeira vez o Filezilla em vez do gFTP como cliente de FTP.

Ok, o Filezilla tem uma grande fama — especialmente em Windows, já que é à borliú e legal — mas em Linux prefiro o velhinho gFTP.

Como não havia um RPM para este Mandriva, vá de ./configure && make && make install.

E aqui está o bicharoco a fungar :)




A ouvir: Left Of Center, Suzanne Vega.
Youtube: http://www.youtube.com/watch?v=KFXftW3Uq9E

 

tags:
publicado por gamito às 21:49
link do post | comentar | ver comentários (4)

PlayStation 3 e Sony

Há coisa de três meses, comprei uma PlayStation 3 para o meu filho. Há dois, avariou-se, deixou de reconhecer qualquer tipo de disco.

Liguei para a assistência da Sony, foram impecáveis. Não se puseram com perguntas da treta.
Disseram-me para colocar (só) a consola numa caixa, junto com cópia do talão de compra e do código da avaria que me deram, e ligar para a SEUR de Coimbra que eles vinham buscá-la. E que daí a duas ou três semanas, teria uma nova.

Impecável, no outro dia de manhã, vieram mesmo buscá-la.

Não demorou duas ou três semanas, mas quatro. Bem, ninguém morreu por causa disso, acho.

Agora, PlayStation novinha em folha, toca a ligá-la... nada. Nem imagem, nem som, népia, zero, nada, niente.

Já experimentei com dois cabos diferentes e nada.

Esta malta não testa o que envia ? A consola é mesmo nova, dá para ver.

Agora lá vai o meu filho ficar mais quatro semanas sem a consola.

Quer dizer, quase metade do tempo que passou desde que comprei a consola, na prática é como se não o tivesse feito.


A ouvir: Come Away With Me, Norah Jones.
Youtube: http://www.youtube.com/watch?v=aBKcKQHZXks

 

publicado por gamito às 15:21
link do post | comentar | ver comentários (2)

Mas quem é o gajo ?

Eu confesso que quando nos telejornais da SIC vem aquela treta do FUTURO HOJE com aquele senhor de bigode e pera, levanto-me e vou à varanda fumar um cigarro enquanto a coisa passa.
Isto não é treta, é mesmo verdade, já não tenho pachorra para as asneiras umas em cima das outras que o homem debita.

No entanto ontem, por curiosidade, fiquei para ver o que diria ele do Leopard.

Mas não, ele não disse nada sobre o Leopard, só falou no "Léópárde".

Ainda que mal pergunte, que raio de futuristicamente hoje é este homem que nem Inglês sabe falar ?

Ainda por cima descobriu a pólvora: os múltiplos desktops que já há tanto tempo existem, excepto no Windows que é a única coisa que ele conhece.

Segundo ele, "é como se fossem quatro computadores num só".
É o milagre da multiplicação da capacidade de processamento. São processadores, Senhor.

Seguem mais uns cigarrinhos à varanda, não caio em mais nenhuma.

A ouvir: Nightingale, Norah Jones,
Youtube: http://www.youtube.com/watch?v=hdtioKfk9T8

 

publicado por gamito às 15:14
link do post | comentar | ver comentários (2)
Sexta-feira, 28 de Setembro de 2007

Negócios do Open Source

Hoje comprei um template para o Joomla para o projecto que estou a fazer.

Foram 39,95 USD mas a coisa vale bem o dinheiro.

Agora, documentação para mexer naquilo ? Duas páginas que não explicam a ponta de um corno e não, não se trata de mexer em CSS. É muito mais do que isso.
Tem que andar o pessoal no fórum do site a dar dicas uns aos outros.

Outra coisa que não percebo, por muito burro que possa ser, é porque é que as imagens só mostram os layers quando abertas no Fireworks em Windows.
Nem Photoshop, nem GIMP, nem Paint Shop Pro, nem nada.
Se se quiser alterar as imagens tem que ser no Fireworks, obviamente em Windows.


A ouvir: A Song For You, Ray Charles.
YouTube: http://www.youtube.com/watch?v=mXGc0OoZEsM

 

tags:
publicado por gamito às 21:39
link do post

Não estão fartos disto ?

De ter que premir a tecla y para copiar ficheiros com o mesmo nome ?

# cp * /lixo
cp: overwrite `/lixo/cert.pem'? y
cp: overwrite `/lixo/create-homedir'? y
cp: overwrite `/lixo/defaultdelivery'? y
cp: overwrite `/lixo/defaultdomain'? y
cp: overwrite `/lixo/defaultquota'? y
cp: overwrite `/lixo/dirmaker'? y
cp: overwrite `/lixo/ldapbasedn'? y
cp: overwrite `/lixo/ldapcluster'? y
cp: overwrite `/lixo/ldapgid'? y
cp: overwrite `/lixo/ldaplocaldelivery'? y
cp: overwrite `/lixo/ldaplogin'? y
cp: overwrite `/lixo/ldapmessagestore'? y
cp: overwrite `/lixo/ldapobjectclass'? y
cp: overwrite `/lixo/ldappassword'? y
cp: overwrite `/lixo/ldapserver'? y
cp: overwrite `/lixo/ldapuid'? y
cp: overwrite `/lixo/locals'? y
cp: overwrite `/lixo/Makefile'? y
cp: overwrite `/lixo/me'? y
cp: overwrite `/lixo/plusdomain'? y
cp: overwrite `/lixo/qmail-imapd.rules'? y
cp: overwrite `/lixo/qmail-pop3d.rules'? y
cp: overwrite `/lixo/qmail-qmqpd.rules'? y
cp: overwrite `/lixo/qmail-smtpd.rules'? y
cp: overwrite `/lixo/quotawarning'? y
cp: overwrite `/lixo/rcpthosts'? y
cp: overwrite `/lixo/signatures'? y
cp: overwrite `/lixo/tcp.smtp'? y
cp: overwrite `/lixo/tcp.smtp.cdb'? y

Bem, isto é porque o cp tem um alias para o paramêtro -i (# man cp):

# alias
alias cp='cp -i'

Das duas uma: ou o removem, o que não é muito aconselhável, ou fazem:

# \cp * /lixo

Yap, o backslash faz toda a diferença ;-)


A ouvir: On An Island, David Gilmour
YouTube: http://www.youtube.com/watch?v=SROK4biHOPk

 

tags:
publicado por gamito às 13:33
link do post

Naughty, naughty

Era só para dizer a estes curiosos wannabes que não, não viram a minha home share do Samba.

De qualquer modo, basta uma linha no smb.conf para afastar a curiosidade:

hosts allow = 192.168.0.100

Lista de curiosos:

# ls /var/log/samba/[^smbd*-a-z]*  | cut -f5 -d '/' | cut -f1 -d '.'

carla-2000gzr9q
carlos-ir33ncm8
carlos
carlos
carlos-s6b9brdp
casa-7xtjzspqi8
casa
celeron
cesar
chupapa-b1o4lc5
cliente-5uvddox
comp
computador1
computador1
computername
contabilidade
cpq28901672019
cracks
crack
eric
f-dvb8w73sf78t7
filipe-02i2d14a
flaviacg
helena
hermano
hnunes01
hnunes01
home-mt6or4k6l
house-pyldfzdzz
hvvm9xjz1wzhbkg
ibm558097x
individu-jid4ez
individu-jid4ez
ines
isabel
jcpc-m4kqvro83u
jcthc
jcthc
jesus-83txnx9u8
jmrr-8rozz76apo
joao-cdqkfh3gfm
jorge-0avyhq88a
jorge
levi-a5n4d52cfj
lobo-ee166pqgp0
loureiro
luis-95modnu830
luisa
nat-7q46e74wygk
newton___
newton___
nmbd
nmbd
nmbd
nmbd
nome-e3vucd6gwq
nuno
nuno
o-c4f6hc8efdrzm
oscar
p40
pandreia-5mbo1i
particul-u9ukxk
patrice
pc1
pc931196262726
pc931196262726
pc_iolanda
pcmiudos
pessoal-hanf015
posto1
privado-edadehn
pt-c
rakel
ricardo-mxokjho
richar-8d10ybcn
rita-39cm61gbeg
roubado
rozete-a7amtaee
rui-n5tfqykvyff
talentoaa
talentoaa
telmo
test-kk74z8p2oe
tiago
torvalds
torvalds
torvalds
torvalds
torvalds
user-penacho
usila-v3ggbctko
utilizad-sg66h6
xanita
x
yr3fp4mcbfipc43


A ouvir: Portobello Belle, Dire Straits
YouTube: http://www.youtube.com/watch?v=Jdbbt31abSU

 

tags:
publicado por gamito às 13:02
link do post
Terça-feira, 25 de Setembro de 2007

PHP chrooted

Na sequência do artigo anterior sobre como correr o MySQl num ambiente chrooted, aqui vai a vez do PHP.

# gzip -dc apache_1.3.47.tar.gz | tar xvf -
# gzip -dc php-5.2.3.tar.gz | tar xvf -
# gzip -dc mod_security_1.95.tar.gz | tar xvf -
# cp mod_security_1.95/apache1/mod_security.c apache_1.3.37/src/modules/extra/

# cd apache_1.3.37
# ./configure --prefix=/usr/local/httpd

Compilar o PHP:

# cd ../php-5.3.2
# ./configure --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.37 --enable-safe-mode (etc. mais opções)

# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini
# chown root:sys /usr/local/lib/php.ini
# chmod 644 /usr/local/lib/php.ini

O Apache:

# cd ../apache_1.3.37
# ./configure --prefix=/usr/local/httpd --disable-module=all --server-uid=apache --server-gid=apache --enable-module=access --enable-module=log_config --enable-module=dir --enable-module=mime --enable-module=auth --activate-module=src/modules/extra/mod_security --enable-module=security --activate-module=src/modules/php5/libphp5.a
# make
# make install


#chown -R root:sys /usr/local/httpd

Agora, prepara-se o ambiente chrooted para o Apache com o módulo PHP:

# cp /usr/local/mysql/lib/mysql/libmysqlclient.so.12 /chroot/httpd/usr/lib/
# cp /usr/lib/libm.so.2 /chroot/httpd/usr/lib/
# cp /usr/lib/libz.so.2 /chroot/httpd/usr/lib/

Adicionamemte, temos que copiar o ficheiro de configuração do PHP:

# umask 022
# mkdir -p /chroot/httpd/usr/local/lib
# cp /usr/local/lib/php.ini /chroot/httpd/usr/local/lib/

# mkdir /chroot/httpd/tmp
# chown -R root.root
/chroot/httpd/tmp
# chmod 1777 /chroot/httpd/tmp

# chroot /chroot/httpd /usr/local/httpd/bin/httpd

# ln /tmp/mysql.sock /chroot/httpd/tmp/


Configuração do Apache para defesa contra cross side scripting e SQL injection, através do mod_secutity:

<IfModule mod_security.c>
 AddHandler application/x-httpd-php .php

 SecAuditEngine On
 SecAuditLog logs/audit_log
 SecFilterScanPOST On
 SecFilterEngine On

 SecFilterDefaultAction "deny,log,status:500"
 SecFilter "<(.|\n)+>"

 SecFilter "'"
 SecFilter "\""
</IfModule>


Ok, para a próxima, explico como tornar o Apache chrooted, ok ?


A ouvir: Just Good Friends, Fish.
YouTube: http://www.youtube.com/watch?v=ApxexrzQQas

 

tags:
publicado por gamito às 15:02
link do post
Domingo, 23 de Setembro de 2007

Joomla

Estou a fazer o meu novo projecto em Joomla.

É absolutamente 5 estrelas, tinham-me dito horrores de como construir um site com ele, mas acho que para quem como eu fez o tirocínio em CMS com o Siteseed 1, está preparado para enfrentar qualquer outro (desculpa Paulo Laureano Santos, mas tinha que dizer isto :P).

Só é pena que algumas das extensões mais interessantes sejam pagas, mas enfim, já percebi que há uma verdadeira indústria de volta do Joomla.

Mas compensa e recomendo, construir um site com isto é o mesmo que limpar o rabinho a um bebé.


A ouvir: The Carpet Crawlers, Genesis.
YouTube: http://www.youtube.com/watch?v=ko0hiIYGANU

 

tags:
publicado por gamito às 23:58
link do post

Novo Projecto

Estou a começar um novo projecto, já tenho domínio registado e muita coisa feita.

E não, não tem nada que ver com blogs :P


A ouvir: Come As You Are, Nirvana
YouTube: http://www.youtube.com/watch?v=aNqAyIijj-Y

tags:
publicado por gamito às 17:49
link do post

MySQL :: It's the ctl, stupid

Er... pois, o ctl file normal do MySQL agora não funciona, por isso, aqui vai um para arrancar e parar o MySQL chrooted.

#!/bin/sh

CHROOT_MYSQL=/chroot/mysql
SOCKET=/tmp/mysql.sock
MYSQLD=/usr/local/mysql/libexec/mysqld
PIDFILE=/usr/local/mysql/var/`hostname`.pid
CHROOTUID=/usr/local/sbin/chrootuid

echo -n " mysql"

case "$1" in
start)
        nohup ${CHROOTUID} ${CHROOT_MYSQL} mysql ${MYSQLD} >/dev/null 2>&1 &
        sleep 5 && ln ${CHROOT_MYSQL}/${SOCKET}
        ;;
stop)
        kill `cat ${CHROOT_MYSQL}/${PIDFILE}`
        rm -rf ${CHROOT_MYSQL}/${SOCKET}
        ;;
*)
        echo ""
        echo "Usage: `basename $0` {start|stop}" >&2
        exit 64
        ;;
esac

exit 0


A ouvir: Still Got The Blues, Gary Moore
YouTube: http://www.youtube.com/watch?v=wPA4KXKyVjU

tags:
publicado por gamito às 12:25
link do post

MySQL :: Just a little tighter, honey

No seguimento do artigo sobre o MySQL em ambiente chrooted, ainda há mais algumas coisas que podem ser feitas para aumentar a sua segurança, nomeadamente:

  • Desabilitar o acesso remoto:

    Adicionar ao ficheiro /etc/my.cnf, na secção [mysqld], a linha

    skip-networking

    Se, mesmo assim, for necessário o acesso remoto ao MySQL, por exemplo para efectuar um backup, pode utilizar-se o SSH:

    # ssh mysqlserver /usr/local/mysql/bin/mysqldump -A > backup.sql

  • Desabilitar a utilização do comando LOAD DATA LOCAL INFILE:

    Adicionar ao /etc/my.cnf a linha

    set-variable=local-infile=0

  • Remover a base de dados test, bem como todos os users, excepto o root:

    mysql> drop database test;
    mysql> use mysql;
    mysql> delete from db;
    mysql> delete from user where not (host="localhost" and user="root");
    mysql> flush privileges;

  • Agora, alterar o nome do administrador do MySQL (root) para outro:

    mysql> update user set user="mydbadmin" where user="root";
    mysql> flush privileges;

A ouvir: Come Away With Me, Norah Jones
YouTube: http://www.youtube.com/watch?v=aBKcKQHZXks

tags:
publicado por gamito às 12:06
link do post

MySQL chrooted

Uma coisa que eu costumo fazer sempre nos servidores que instalo é "chrootar" o MySQL e aplicar-lhe alguns truques (que ficam para outro artigo) para o tornar o mais seguro possível.

Vou assumir um MySQL instalado tal como neste artigo que escrevi anteriormente e a funcionar perfeitamente. Para o verificar, executar:

# mysql -p

Para tudo estar bem, deve aparecer o seguinte:
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.00 sec)
mysql> quit;
Adiante para o chroot...

É necessário criar a seguinte estrutura de directórios:

# mkdir -p /chroot/mysql/dev
# mkdir -p /chroot/mysql/etc
# mkdir -p /chroot/mysql/tmp
# mkdir -p /chroot/mysql/var/tmp
# mkdir -p /chroot/mysql/usr/local/mysql/libexec
# mkdir -p /chroot/mysql/usr/local/mysql/share/mysql/english


Os direitos de acesso a estes directórios devem ser os seguintes:

# chown -R root:sys /chroot/mysql
# chmod -R 755 /chroot/mysql
# chmod 1777 /chroot/mysql/tmp


Agora, têm que ser copiados alguns ficheiros para esta estrutura de directórios:

# cp /usr/local/mysql/libexec/mysqld
 /chroot/mysql/usr/local/mysql/libexec/
# cp /usr/local/mysql/share/mysql/english/errmsg.sys
 /chroot/mysql/usr/local/mysql/share/mysql/english/
# cp /etc/hosts /chroot/mysql/etc/
# cp /etc/host.conf /chroot/mysql/etc/
# cp /etc/resolv.conf /chroot/mysql/etc/
# cp /etc/group /chroot/mysql/etc/
# cp /etc/master.passwd /chroot/mysql/etc/passwords
# cp /etc/my.cnf /chroot/mysql/etc/


Dos ficheiros /chroot/mysql/etc/passwords e /chroot/mysql/etc/group,
removem-se todas as linhas, excepto as respeitantes ao MySQL.


Tem que ser criado um device file especial para o /dev/null:
# mknod /chroot/mysql/dev/null c 2 2
# chown root:sys /chroot/mysql/dev/null
# chmod 666 /chroot/mysql/dev/null


E copiar a base de dados dos previlégios do MySQL:

# cp -R /usr/local/mysql/var/ /chroot/mysql/usr/local/mysql/var
# chown -R mysql:mysql /chroot/mysql/usr/local/mysql/var
O MySQL está pronto a ser executado num ambiente chrooted:

# chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &
Bem, quando tiver pachorra, escrevo um artigo sobre como correr o Apache também em ambiente chrooted e como integrar com o PHP e o MySQL de modo a fazer um todo coerente.


A ouvir: Yet Another Movie, Pink Floyd
YouTube: http://www.youtube.com/watch?v=Ep9RTAmH5Rw

tags:
publicado por gamito às 00:28
link do post

BASH, stdout e stderr

Precisei de fazer um script (backup.sh) corrido pelo cron daemon fazendo com o que o rsync  gerasse o maior número de informação possível dos respectivos logs (-vv) para um ficheiro – /var/log/rsync.backup.log

Os logs precisavam de combinar o stdout e o stderr, portanto:

# backup.sh >> /var/log/backup.log 2>&1

Contudo, apenas queria que o output do stderr fosse para o cron, para em caso de erro, me ser enviado em e-mail.

Então:

# (./backup.sh > /var/log/backup.log) 2>&1 | tee -a /var/log/backup.log

o que propaga o stderr para o cron e a restante tralha do stdout para o ficheiro de logs :)

Agora só me falta organizar a informação, é uma chatice que o stdout e o stderr não sejam sincronizados.


A ouvir: Sorrow, Pink Floyd
YouTube: http://www.youtube.com/watch?v=njQtAC6EH8E

tags:
publicado por gamito às 00:11
link do post
Sexta-feira, 21 de Setembro de 2007

4 kb stack ou 8kb stack

O valor por omissão para o stack size no Linux são 8 kb.
Note-se que este é o valor para o kernel stack, não para o user-space stack.

Contudo, na configuração do Kernel, este valor pode ser alterado para 4kb, na secção Kernel hacking:




Em que ficamos então ? Qual o melhor valor para o read/write size ?

Várias operações requerem ou são mais eficientes quando lidam com tamanhos múltiplos do block size.
Diferentes operações podem envolver diferentes block sizes; e.g. a page size da RAM não é necessariamente
a mesma da do block size do disco, portanto, operações
que envolvam cópia de dados entre disco e RAM
devem idealmente usar valores que sejam múltiplos de ambos (i.e. um múltiplo do maior dos dois).

Também, a page size da RAM pode variar entre arquitecturas de
CPU, enquanto que o block size dos discos pode variar com
os filesystems utilizados ou mesmo em diferentes partições
 do mesmo filesystem.

Quaisquer tamanhos relevantes, podem ser obtidos via uma
macro standard ou através do sysconf() ou fo [f]pathconf().

Quanto a networking, não opera em blocos, portanto, não interessa.


A ouvir: This Is The Sea - Waterboys
YouTube: http://www.youtube.com/watch?v=gTTKcrbQog8

tags:
publicado por gamito às 17:29
link do post

A funny guy...

in qmail's mailing list:

"Hi,

I want to send emails using Qmail server in asp.Net Webapplication (windows platform).Is it possible to migrate Qmail in windows  platform.Can you please assist me on the same.Your reply  would be more than appreciated.

Thanks in Advance.
*******************"


A ouvir: Hoochie Coochie Man, Eric Clapton
YouTube: http://www.youtube.com/watch?v=4z4fxDOd7IE

tags:
publicado por gamito às 13:42
link do post

Truques, Minas e Alçapões :: II

Fazer um rsync para backup de dados, por exemplo, com SSH é muito simples.

Temos que ter a nossa chave pública no servidor remoto.

Suponhamos que tenho que fazer um backup dos meus e-mails:

# /usr/bin/rsync -azq -e "ssh -i /root/rsync/chave-mirror-rsync"   gamito@192.168.0.102/var/spool/mail/gamito/ /var/spool/mail/gamito/


A ouvir: Sorrow, Pink Floyd
YouTube:
http://www.youtube.com/watch?v=njQtAC6EH8E


tags:
publicado por gamito às 13:32
link do post

Truques, Minas e Alçapões :: I

Já me aconteceu, num script em BASH, ter que atribuir uma password a um user sem interacção com o teclado.

É muito simples de fazer e podem experimentar na vossa consola:

# echo gamito:segredo | chpasswd


A ouvir: Shine On You Crazy Diamond, Pink Floyd
YouTube: http://www.youtube.com/watch?v=vyqgjCKm9nQ


tags:
publicado por gamito às 12:25
link do post
Quinta-feira, 20 de Setembro de 2007

Logs do mrtg

Se se instalar  o mrtg e se se executá-lo como é normal de 5 em 5 minutos através do cron daemon, vai inserir duas linhas – uma para login e outra para logout – no ficheiro /var/log/messages, enchendo-o de lixo.

A solução é passar esses logs do mrtg para um ficheiro separado, por exemplo, auth.

Editar o ficheiro /etc/syslog.conf e mudar a linha:

*.info;mail.none;authpriv.none;cron.none /var/log/messages

para:

*.info;auth.none;mail.none;authpriv.none;cron.none /var/log/messages

Adicionar a linha:
auth.* /var/log/auth

Convém fazer também o logrotate do ficheiro auth:
Editar o ficheiro /etc/logrotate.d/syslog e adicionar no topo a linha:

/var/log/auth

Gravar o ficheiro e efectuar um restart ao serviço syslogd:

# /etc/init.d/syslog restart

Done :)
tags:
publicado por gamito às 18:16
link do post

Salmos, 23

O Senhor é meu pastor, nada me faltará.

Em verdes prados me faz descansar
e conduz-me a águas refrescantes.

Reconforta a minha alma
e guia-me por caminhos rectos, por amor do seu nome.

Ainda que atravesse vales tenebrosos,
de nenhum mal terei medo
porque Tu estás comigo.

A Tua vara e o Teu cajado dão-me confiança.

Preparas a mesa para mim
à vista dos meus inimigos;
ungiste com óleo a minha cabeça;
a minha taça transbordou.

Na verdade a Tua bondade e o Teu amor
hão-de acompanhar-me todos os dias da minha vida,
e habitarei na casa do Senhor
para todo o sempre.
tags:
publicado por gamito às 18:06
link do post
Terça-feira, 21 de Agosto de 2007

Servidor caseiro - XXVII

Já vimos que a gestão do nosso servidor de correio electrónico com vários domínios se tornou bastante mais fácil, depois da instalação do vpopmail.
No entanto, esta configuração pode tornar-se ainda mais fácil se instalarmos um pacote de software que permite que se efectue a gestão de contas de correio, aliases, reencaminhamentos (forward) e listas de distribuição de forma ainda mais fácil, e sem ser necessário recorrer à linha de comando.
Este software foi criado pela mesma equipa que criou o vpopmail, e foi precisamente a pensar na interacção com o vpopmail que se desenhou o sistema de gestão.
Uma vez que este sistema funciona através da web, é necessário ter instalado e a funcionar um servidor web; assumimos que está instalado o servidor conforme o descrito em capítulos anteriores. A instalação do qmailadmin é relativamente simples.


Mas antes...
Uma funcionalidade indispensável em sistemas de webmail é a possibilidade de, em determinadas circunstâncias, poder enviar respostas automáticas associadas à chegada de mensagens de correio electrónico. A utilização típica desta funcionalidade é em alturas de férias, de forma a notificar os emissores de mensagens que chegam à nossa caixa de correio da nossa situação actual. Vou acompanhar a instalação de um dos vários sistemas de respostas automáticas, que será posteriormente integrado no meu sistema de webmail.


O qmail-autorseponder, necessita das bglibs instaladas:
# make
# install
# ldconfig


O qmail-autoresponder
# make
# cp qmail-autoresponder /usr/local/bin/autoresponder


O qmailadmin:
./configure --without-authpwd --without-authshadow --without-authpam --without-authldap --without-authdaemon --enable-unicode --enable-imageurl=/icons --without-fcgi --enable-https=auto --enable-autopurge=7  --prefix=/home/www/webmail --enable-maxpurge=30 --enable-mimetypes=/usr/local/httpd/conf/mime.types --enable-modify-quota --enable-autoresponder-path=/usr/local/bin --enable-htmldir=/home/www --enable-cgibindir=/usr/local/httpd/cgi-bin --with-htmllibdir=/home/www/qmailadmin
# make
# make install-strip


E está em http://planetgeek.dynip.sapo.pt/cgi-bin/qmailadmin



A password para entrar é a que escolhi quando instalei o domínio com o vpopmail.
Uma vez dentro do qmailadmin, é tudo extremamente intuitivo


Enough for today...
tags:
publicado por gamito às 20:00
link do post | comentar

Servidor caseiro - XXVI

Neste artigo vou demonstrar a instalação de software que permite a criação e utilização de mailing lists, vulgarmente conhecidas como listas de distribuição de correio. Adicionalmente, instalarei uma modificação a este software que permite gerar arquivos das listas com os seus respectivos índices e disponibilizá-los através de páginas web.

O software que vou aqui utilizar para implementar mailing lists é o ezmlm (EaZy Mailing List Manager).
O ezmlm foi criado pelo autor do qmail, tendo em vista funcionar com este.
Do mesmo modo que o qmail, também o ezmlm é constituído não por uma peça monolítica de software, mas por vários pequenos programas que interagem entre si.

O ezmlm é muito fácil de instalar e de configurar e mais fácil ainda é com ele criar uma mailing list. A lista de features do ezmlm não tem fim. A versão que vou aqui instalar inclui um add-on denominado ezmlm-idx escrito por Frederik Lindberg, que permite o threading de mensagens, criação de digests, moderação de mailing lists, etc.
Além disso, o ezmlm-idx lida com mensagens MIME.


Instalar o ezmlm:
# patch -p0 < ezmlm-0.53.errno.patch
# \cp -p -r ../ezmlm-idx-0.40/* .
# patch < idx.patch
# make
# make man
# make setup

Os binários ficam em /usr/local/bin/ezmlm

Agora, criar mailing lists à mão é uma verdadeira seca, esperem pelo próximo artigo, no qual vou falar do qmailadmin e depois tudo é mais fácil.


One hour late for the tea :(
tags:
publicado por gamito às 17:52
link do post | comentar

Servidor caseiro - XXV

O Zope é um web application server.
Por vezes, quando me perguntam o que é, tenho dificuladade em explicar.
Normalmente perguntam-me "É um servidor web ?", e respondo "não, contém um servidor web.

Como não consigo explicar muito bem, deixo aqui a definição que está na

homepage do Zope:

"Zope is an open source web application server primarily written in the Python programming language. It features a transactional object database which can store not only content and custom data, but also dynamic HTML templates, scripts, a search engine, and relational
database (RDBMS) connections and code. It features a strong  through-the-web development model, allowing you to update your web site from anywhere in the world. To allow for this, Zope also features a tightly integrated security model. Built around the concept of "safe
delegation of control", Zope's security architecture also allows you to turn control over parts of a web site to other organizations or individuals. The transactional model applies not only to Zope's object database, but to many relational database connectors as well, allowing
for strong data integrity. This transaction model happens automatically, ensuring that all data is successfully stored in connected data sources by the time a response is returned to a web
browser or other client.

There are numerous products (plug-in Zope components) available for download to extend the basic set of site building tools. These products include new content objects; relational database and other external data source connectors; advanced content management tools; and full applications for e-commerce, content and document management, or bug
and issue tracking. Zope includes its own HTTP, FTP, WebDAV, and XML-RPC serving capabilities, but can also be used with the Apache or other web servers."


Resolvi usar o Zope 2 em vez do 3.

O Zope 2.4.10.4 necessita do Python 2.4 e o que vem na distribuição é o
2.4.3, pelo que vou instalá-lo em /usr/local/python-2.4.4 para não
armar confusão nos directórios dos binários, bibliotecas, includes, etc.

Instalar o Python 2.4.4:
# ./configure --prefix=/usr/local/python-2.4.4
# make
# make install


O Zope:
#  ./configure --with-python=/usr/local/python-2.4.4/bin/python2.4
# make
# make install
# /usr/local/zope/bin/mkzopeinstance.py

(no último passo é-lhe solicitado um directório aonde instalar a zope
instance, um login e password)

Para não correr o Zope como root, crio um grupo e um user zope:
# groupadd zope
# useradd -g zope zope

Ajustar permissões:
# cd /usr/local
# chown -R zope.zope zope-instance/

Agora edito o ficheiro /usr/local/zope-instance/etc/zope.conf e adiciono a directiva

effective-user zope

É tempo de arrancar o Zope:
# su zope -c '/usr/local/zope-instance/bin/runzope &'

(Para que o Zope arranque quando se inicia o servidor, adicionar esta linha ao ficheiro /etc/rc.local)

O Zope corre por omissão na porta 8080, pelo que o podem ver em:
http://planetgeek.dynip.sapo.pt:8080

O Zope tem ainda um servidor de FTP na porta 8021 e WebDav na 1980.
É só descomentar as linhas no ficheiro zope.conf

Para gerirem o Zope, o URL é:
http://o-url-do-vosso-zope/manage

e inserem o login e password que escolheram quando criaram a zope instance.

Good riddance :)
tags:
publicado por gamito às 12:20
link do post | comentar

Números de telemóvel abandonados

Quando me roubaram a carteira, passado pouco tempo, começei a receber umas chamadas estranhas, daquelas que ligam e quando se atende, desligam.

Como tinha um cartão meu na carteira, pensei que talvez fosse quem ma tivesse gamado e decidi mudar de número.

Liguei para a Vodafone que me disse que podia fazer a mudança pelo telefone nessa mesma chamada e que depois dela feita, era só desligar e voltar a ligar que já ficava com o número novo.
Assim foi, fiquei espantado pela eficiência e só me custou 2,5 euros.

Ora acontece, que agora todos os dias recebo chamadas à procura de um tal de Prof. Amílcar.

Branco é galinha o põe, o Prof. Amílcar já teve o número que me foi atribuido a mim.

Pergunta de algibeira, quando um número é descontinuado não podia ser pura e simplemente riscado do mapa ?
É que porra, há 9 milhões de números de números possíveis.


publicado por gamito às 11:17
link do post | comentar | ver comentários (3)

Servidor caseiro - XXIV

O FTP é um protocolo que a maioria dos utilizadores regulares desconhece já completamente.
Contudo, os utilizadores mais experientes e profissionais, não dispensam esta ferramenta.

O servidor que vem incluído no CentOS é o vsFTPd (very secure TFP daemon).
Confesso que nunca experimentei, há muitos anos que utilizo o pure-ftpd, é extremamente seguro, com uma quantidade de opções de configuração enorme e, last but not the least, permite a virtualização de utilizadores o que é sempre uma good thing :)


Instalar o pure-ftpd:

Começo por criar um directório no qual vou guardar o certificado para que o servidor suporte SSL
# mkdir /etc/pure-ftpd-ssl

Crio o certificado:
# ./openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pure-ftpd-ssl/pure-ftpd.pem -out /etc/pure-ftpd-ssl/pure-ftpd.pem


Compilar e instalar o pure-ftpd:
# ./configure --prefix=/usr/local/pure-ftpd --with-puredb --with-quotas --with-ratios --with-peruserlimits --with-largefile --with-certfile=/etc/pure-ftpd-ssl/pure-ftpd.pem
# make
# make install-strip


Uma breve explicação sobre as opções seleccionadas:

--with-puredb
É o que vai permitir a virtualização de utilizadores.

--with-quotas
Permite a utilização de quotas por utilizador.

--with-ratios
Permite a configuração de rácios upload/download do servidor ou por utilizador.

--with-peruserlimits
Permite definir um número máximo de ligações simultâneas ao servidor pelo mesmo IP ou por utilizador.

--with-largefile
Permite downloads superiores a 2 GB.

--with-certfile
Permite FTP sobre SSL.


Confesso que nunca percebi porque o install do pure-ftp não cria este directório, uma vez que é necessário, portanto tenho que o criar:
# cd /usr/local/pure-ftpd
# mkdir etc


Criar o utilizador virtual gamito:
# ./bin/pure-pw useradd gamito -u gamito -g gamito -d /home/gamito/ gamito

Criar a versão binária do ficheiro de logins e passwords:
# ./bin/pure-pw mkdb


Agorra, arranco o servidor:
# /usr/local/pure-ftpd/sbin/pure-ftpd -l puredb:/usr/local/pure-ftpd/etc/pureftpd.pdb &

(Para que o servidor arranque sempre que o computador é iniciado, coloco esta linha no ficheiro /etc/rc.local)


Vou testar:

# ftp planetgeek.dynip.sapo.pt
Connected to planetgeek.dynip.sapo.pt.
220---------- Welcome to Pure-FTPd ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 08:45. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
500 This security scheme is not implemented
500 This security scheme is not implemented
KERBEROS_V4 rejected as an authentication type
Name (planetgeek.dynip.sapo.pt:root): gamito
331 User gamito OK. Password required
Password:
230-User gamito has group access to:  506
230 OK. Current directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (192,168,0,101,102,202)
150 Accepted data connection
-rw-r--r--    1 0        0         7231146 Aug 21 07:29 Zope-2.10.4-final.tgz
226-Options: -l
226 1 matches total
ftp> binary
200 TYPE is now 8-bit binary
ftp> mget *.tgz
mget Zope-2.10.4-final.tgz? y
227 Entering Passive Mode (192,168,0,101,246,80)
150-Accepted data connection
150 7061.7 kbytes to download
226-File successfully transferred
226 0.376 seconds (measured here), 18.32 Mbytes per second
7231146 bytes received in 0.38 seconds (1.9e+04 Kbytes/s)
ftp> quit

E está tudo bem :)

Vou ver com um cliente de FTP:





E cá estou eu ligado, é de notar (ver círculo) que apesar de estar na verdade no directório /home/gamito, estou jailed, i. e., não posso subir na hierarquia de directórios.

O pure-ftpd é extremamente versátil, quer na configuração, quer nos parâmetros de arranque, para mais informação, visite a página oficial do projecto.


See you on Zope...
tags:
publicado por gamito às 08:59
link do post | comentar | ver comentários (1)

Humm...

http://webstats.sapo.pt/

Os blogs agora estão a aceder a isto.
Só vi agora ou vai haver esta novidade para a major release do mês que vem ?
tags:
publicado por gamito às 00:24
link do post | comentar
Segunda-feira, 20 de Agosto de 2007

Servidor caseiro - XXIII

Ora bem, vamos ver o estado da arte do servidor.

Tenho instalado:
  • Linux CentOS 5 com vários serviços a correr;
  • Apache com suporte a SSL, PHP, PERL e Python;
  • DNS;
  • MySQL;
  • PostgreSQL;
  • Samba (servidor de ficheiros);
  • OpenLDAP;
  • SMTP;
  • POP3;
  • POP3/SSL;
  • IMAP;
  • IMAP/SSL;
  • Anti-vírus;
  • Anti-SPAM.
Vou ver os recursos do sistema:

# free
             total       used       free     shared    buffers     cached
Mem:        385560     358488      27072          0      28592     171212
-/+ buffers/cache:     158684     226876
Swap:       787176          0     787176

Portanto, 2702 + 28592 + 171212 = 202506 bytes disponíveis, ou seja 385560 -
202506 = 183054 bytes ocupados de um total de 385560.

Bem bom, com tanto serviço a correr.

Claro que eu não ando aqui a vender banha da cobra como certos senhores, sei que a máquina está praticamente sem carga, mas pela experiência que tenho ainda é capaz de aguentar muito.
Então se lhe puser mais 128 MB  de RAM...


Going to catch a movie...
tags:
publicado por gamito às 22:48
link do post | comentar

Servidor caseiro - XXII

O FuzzyOCR é um plugin para o SpamAssassin que se destina a apanhar SPAM por palavras contidas em imagens nas mensagens de correio electrónico, algo que se está a tornar moda no basfond dos spammers.

O FuzzyOCR necessita primeiro que seja instalado algum software antes dele próprio:

Dois módulos PERL:
String::Approx
Time::HiRes
# perl Makefile.PL && make && make install

A giflib:
# ./configure && make && make install && ldconfig

A libungif:
./configure && make && make install && ldconfig

O ocrad:
./configure && make && make install

A netpbm:
# ./configure
# make
# make package pkgdir=/usr/local/lib/netpbm
# ./installnetpbm

O gocr com suporte a netpbm:
# ./configure --prefix=/usr/local --with-netpbm=../netpbm-10.26.42
# make
# make install

O gifsicle:
# ./configure
# make
# make install

O FuzzyOCR:
# cp -p -r FuzzyOcr* /etc/mail/spamassassin/


Em /etc/mail/spamassassin, está agora um ficheiro chamado FuzzyOcr.words que contém a lista de palavras que ele procura nas imagens.
Podemos acrescentar a gosto quantas quisermos.

Convém acrescentar o PATH dos binários do netpbm ao PATH do sistema:
# export PATH=$PATH::/usr/local/netpbm/bin/


Vou agora enviar um e-mail da minha conta do GMail, sem qualquer texto, apenas com a seguinte imagem:


e verificar qual o resultado.

Chegada a mensagem, vou ver o envelope para verificar o resultado:

From - Mon Aug 20 22:37:21 2007
X-Account-Key: account6
X-UIDL: 1187645780.11464.planetgeek.dynip.sapo.pt,S=28372
X-Mozilla-Status: 0001
X-Mozilla-Status2: 10000000
X-Mozilla-Keys:                                                                                
Return-Path: <gamito@gmail.com>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 11461 invoked by uid 513); 20 Aug 2007 21:36:20 -0000
Received: from 209.85.128.185 by planetgeek.dynip.sapo.pt (envelope-from <gamito@gmail.com>, uid 0) with qmail-scanner-2.01
 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3. 
 Clear:RC:0(209.85.128.185):SA:1(8.0/5.0):.
 Processed in 14.989563 secs); 20 Aug 2007 21:36:20 -0000
X-Spam-Status: Yes, score=8.0 required=5.0
X-Spam-Level: ++++++++

(...)

Received: by 10.82.108.9 with SMTP id g9mr5049417buc.1187645797008;
        Mon, 20 Aug 2007 14:36:37 -0700 (PDT)
Received: by 10.82.100.10 with HTTP; Mon, 20 Aug 2007 14:36:36 -0700 (PDT)
Message-ID: <91df29a20708201436lb3458a6j3c4fe5c266baed3d@mail.gmail.com>
Date: Mon, 20 Aug 2007 22:36:36 +0100
From: "=?ISO-8859-1?Q?M=E1rio_Gamito?=" <gamito@gmail.com>
To: teste@planetgeek.dynip.sapo.pt
Subject: [+++ SPAM +++] Teste FuzzyOCR
MIME-Version: 1.0
Content-Type: multipart/mixed;

(...)


Conforme se pode verificar, a mensagem apenas com a imagem foi classificada com um score de 8.0, logo é SPAM.

E pode ver-se no Thunderbird:



Cool, isnt't it ?
tags:
publicado por gamito às 22:42
link do post | comentar

Servidor caseiro - XXI

Ainda não tinha configurado o Apache para ver se o PHP, o PERL e o Python estavam bem.


Estão :)


See you lads...
tags:
publicado por gamito às 17:54
link do post | comentar

Servidor caseiro - XX

Agora, instálo o qmail-scanner, para que as mensagens possam ser processadas pelo anti-vírus e pelo SpamAssassin.

Tenho que instalar o pacote perl-suidperl e mudar-lhe o ownership e as permissões antes de instalar o qmail-scanner:

# yum install perl-suidperl
# chown root /usr/bin/suidperl
# chmod 4711 /usr/bin/suidperl

Agora o qmail-scanner:

É necessário criar um grupo e um user chamados qscand:

# groupadd qscand
# useradd -s /bin/false -g qscand qscand

A seguir:

# ./configure

Aqui, respondemos "Y":

It will then generate qmail-scanner-queue.pl - it is up to you to install it
correctly.

Continue? ([Y]/N)

Agora faz-nos outra pergunta:

virus-admin=System Anti-Virus Administrator <root@planetgeek.dynip.sapo.pt>
local-domains='planetgeek.dynip.sapo.pt'
silent-viruses='klez','bugbear','hybris','yaha','braid','nimda','tanatos','sobig','winevar','palyh','fizzer','gibe','cailont','lovelorn','swen','dumaru','sober','hawawi','holar-i','mimail','poffer','bagle','worm.galil','mydoom','worm.sco','tanx','novarg','\@mm'
scanners="fprot","fast_spamassassin"

If that looks correct, I will now generate qmail-scanner-queue.pl
for your system...
Continue? ([Y]/N)

Como aparece na linha a string scanners="fprot","fast_spamassassin", é sinal de que o qmail-scanner reconheceu o anti-vírus e o SpamAssassin, por isso respondo "Y".
Se não aparecer um ou outro ou os dois, é porque alguma coisa está mal. Nesse caso, é melhor responder "N" e verificar a instalação do que não aparece na linha.


De seguida,

# ./configure --install

e volto a responder "Y" às perguntas

Aqui:

Hit RETURN to create initial directory structure under /var/spool/qscan,
and install qmail-scanner-queue.pl under /var/qmail/bin:

clico simplesmente em ENTER.


Para terminar:

# ./contrib/test_installation.sh
# ./contrib/test_installation.sh -doit

Este útlimo passo, envia para o root, um e-mail com o "virus" EICAR para podermos verificar se o sistema está a funcionar, contudo, o qmail não aceita mensagens endereçadas ao root.

Para que o qmail passe a utilizar o qmail-scanner, é necessário modificar o ficheiro tcp.smtp para:

127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
127.0.0.2:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
192.168.0.100:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
192.168.0.101:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
192.168.0.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
:allow


e refazer o binário tcp.smtp.cdb:

# cat tcp.smtp | tcprules tcp.smtp.cdb rules.temp


O SpamAssassin é excelente, mas é um autêntico devorador de RAM, pelo que temos que alterar a run file do qmail-send e alterar o parâmetro softlimit para um valor superior, caso contrário as mensagens não passam:

#!/bin/sh
exec env - PATH="/usr/local/bin:/var/qmail/bin" \
 softlimit -m 150000000 tcpserver -v -P -R -H -l 0 \
 -x /var/qmail/control/tcp.smtp.cdb -u qmaild -g nofiles 0 smtp \
 qmail-smtpd \
 2>&1


É necessário reiniciar o qmail-send para que assuma a alteração:

# svc -t /service/qmail-send


Tudo pronto, vou enviar uma mensagem de teste:

# telnet planetgeek.dynip.sapo.pt 25
Trying 192.168.0.101...
Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
Escape character is '^]'.
220 planetgeek.dynip.sapo.pt ESMTP
EHLO planetgeek.dynip.sapo.pt
250-planetgeek.dynip.sapo.pt
250-PIPELINING
250 8BITMIME
MAIL FROM: root@planetgeek.dynip.sapo.pt
250 ok
RCPT TO: teste@planetgeek.dynip.sapo.pt
250 ok
DATA
354 go ahead
Teste do qmail-scanner, SpamAssassin e f-prot
.
250 ok 1187615673 qp 360
QUIT
221 planetgeek.dynip.sapo.pt
Connection closed by foreign host.


Mudo para o directório /home/vpopmail/domains/planetgeek.dynip.sapo.pt/teste/Maildir/new onde deverá estar o ficheeiro da mensagem acabada de enviar.

# cd /home/vpopmail/domains/planetgeek.dynip.sapo.pt/teste/Maildir/new

# ls
1187615674.372.planetgeek.dynip.sapo.pt,S=593

Faço agora um cat ao ficheiro para analisar o envelope da mensagem:

# cat 1187615674.372.planetgeek.dynip.sapo.pt\,S\=593
Return-Path: <root@planetgeek.dynip.sapo.pt>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 369 invoked by uid 513); 20 Aug 2007 13:14:33 -0000
Received: from 192.168.0.101 by planetgeek.dynip.sapo.pt (envelope-from <root@planetgeek.dynip.sapo.pt>, uid 0) with qmail-scanner-2.01
 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3.
 Clear:RC:1(192.168.0.101):.
 Processed in 0.079826 secs); 20 Aug 2007 13:14:33 -0000
Received: from unknown (HELO planetgeek.dynip.sapo.pt) (192.168.0.101)
  by 0 with SMTP; 20 Aug 2007 13:14:08 -0000
Teste do qmail-scanner, SpamAssassin e f-prot


Como se pode ver no bold, a mensagem foi analisada pelo anti-vírus e pelo f-prot.

Está tudo bem :)

Vou experimentar enviando uma mensagem a partir do exterior, através do interface webmail do GMail, da conta gamito@gmail.com para teste@planetgeek.dynip.sapo.pt.

Mensagem recebida, faço o cat do respectivo ficheiro para verificar o envelope:

# cat 1187620258.4399.planetgeek.dynip.sapo.pt\,S\=2363
Return-Path: <gamito@gmail.com>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 4397 invoked by uid 513); 20 Aug 2007 14:30:58 -0000
Received: from 209.85.128.187 by planetgeek.dynip.sapo.pt (envelope-from <gamito@gmail.com>, uid 0) with qmail-scanner-2.01
 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3.
 Clear:RC:0(209.85.128.187):SA:0(0.1/5.0):.
 Processed in 11.372664 secs); 20 Aug 2007 14:30:58 -0000
X-Spam-Status: No, score=0.1 required=5.0
X-Spam-Level:
Received: from unknown (HELO fk-out-0910.google.com) (209.85.128.187)
  by 0 with SMTP; 20 Aug 2007 14:30:45 -0000
Received: by fk-out-0910.google.com with SMTP id f40so1256164fka
        for <teste@planetgeek.dynip.sapo.pt>; Mon, 20 Aug 2007 07:31:16 -0700 (PDT)
DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed;
        d=gmail.com; s=beta;

(...)

------=_Part_111403_22450460.1187620276171
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Teste de fora - GMail

------=_Part_111403_22450460.1187620276171
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Teste de fora - GMail

------=_Part_111403_22450460.1187620276171--

Também funciona, como se pode ver a bold, o SpamAssassin atribuiu um score de 0.1 valores ao mail. Por omissão, para scores iguais ou superiores a 5.0, a mensagem é marcada como sendo SPAM.
Este valor pode ser alterado, mas 5.0 é uma boa opção.


Agora envio também a partir do GMail uma mensagem da caixa do SPAM, para ver como o meu servidor a recebe.
Cat ao ficheiro:

# cat 1187620673.4450.planetgeek.dynip.sapo.pt\,S\=4131
Return-Path: <gamito@gmail.com>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 4447 invoked by uid 513); 20 Aug 2007 14:37:53 -0000
Received: from 72.14.214.235 by planetgeek.dynip.sapo.pt (envelope-from <gamito@gmail.com>, uid 0) with qmail-scanner-2.01
 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3.
 Clear:RC:0(72.14.214.235):SA:1(29.0/5.0):.
 Processed in 12.438092 secs); 20 Aug 2007 14:37:53 -0000
X-Spam-Status: Yes, score=29.0 required=5.0
X-Spam-Level: +++++++++++++++++++++++++++++
Received: from unknown (HELO hu-out-0506.google.com) (72.14.214.235)
  by 0 with SMTP; 20 Aug 2007 14:37:40 -0000
Received: by hu-out-0506.google.com with SMTP id 23so1958072huc
        for <teste@planetgeek.dynip.sapo.pt>; Mon, 20 Aug 2007 07:38:11 -0700 (PDT)
DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed;
        d=gmail.com; s=beta;

(...)

Received: by 10.82.151.14 with SMTP id y14mr7892319bud.1187620690859;
        Mon, 20 Aug 2007 07:38:10 -0700 (PDT)
Received: by 10.82.100.3 with HTTP; Mon, 20 Aug 2007 07:38:10 -0700 (PDT)
Message-ID: <91df29a20708200738n1c235ce0labf65c16e8ff25ba@mail.gmail.com>
Date: Mon, 20 Aug 2007 15:38:10 +0100
From: "=?ISO-8859-1?Q?M=E1rio_Gamito?=" <gamito@gmail.com>
To: teste@planetgeek.dynip.sapo.pt
Subject: [+++ SPAM +++] Cheap Pharmacy- Buy Xanax Valium Viagra and other meds cheap vd0a01



Conforme se pode ver, esta mensagem atingiu um score de 29.0, pelo que foi marcada como sendo SPAM, e o respectivo Subject ficou com a string [+++ SPAM +++] adicionada no início.

Tudo a correr sobre rodas :)

Falta testar o anti-vírus, para isso, uso o EICAR que não é um vírus, mas que foi criado para que todos os anti-vírus o identifiquem como tal.
Pode ser descarregado aqui.

Ao contrário das mensagens de SPAM, as que contêm vírus não são entregues.
São colocadas no directório /var/spool/qscan/quarantine/viruses/new

# cd /var/spool/qscan/quarantine/viruses/new

# ls
planetgeek.dynip.sapo.pt11876213385404534


Podemos fazer um cat ao ficheiro para vermos o vírus:

# cat planetgeek.dynip.sapo.pt11876213385404534
Received: from unknown (HELO ?192.168.0.100?) (192.168.0.100)
  by 0 with SMTP; 20 Aug 2007 14:48:57 -0000
Message-ID: <46C9A9F4.7030700@gmail.com>
Date: Mon, 20 Aug 2007 15:49:24 +0100
From: =?ISO-8859-1?Q?M=E1rio_Gamito?= <gamito@gmail.com>
User-Agent: Thunderbird 2.0.0.6 (Windows/20070728)
MIME-Version: 1.0
To:  teste@planetgeek.dynip.sapo.pt
Subject: Teste do =?ISO-8859-1?Q?anti-v=EDrus?=
Content-Type: multipart/mixed;
 boundary="------------010207090307060604020104"

This is a multi-part message in MIME format.
--------------010207090307060604020104
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Vírus EICAR
--
:wq! Mário Gamito

--------------010207090307060604020104
Content-Type: application/octet-stream;
 name="eicar.com"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="eicar.com"

WDVPIVAlQEFQWzRcUFpYNTQoUF4pN0NDKTd9JEVJQ0FSLVNUQU5EQVJELUFOVElWSVJVUy1U
RVNULUZJTEUhJEgrSCo=
--------------010207090307060604020104--

*** Qmail-Scanner Quarantine Envelope Details Begin ***
X-Qmail-Scanner-Mail-From: "gamito@gmail.com" via planetgeek.dynip.sapo.pt
X-Qmail-Scanner-Rcpt-To: "teste@planetgeek.dynip.sapo.pt"
X-Qmail-Scanner: 2.01 (f-prot: 4.6.7/3.16.15. spamassassin: 3.2.3.  virus Found. Processed in 2.139228 secs)
Quarantine-Description: EICAR_Test_File
*** Qmail-Scanner Envelope Details End ***


Encontrado.

Está tudo a funcionar 5* :)


Going shopping...
tags:
publicado por gamito às 15:17
link do post | comentar

Servidor caseiro - XIX

Anti-SPAM é sinónimo de SpamAssassin, mas há outras barreiras ao SPAM.

De forma a fazer face à sofisticação dos mecanismos de SPAM, um tal de Paul Vixie (bastante conhecido pelo seu envolvimento em vários sistemas e projectos da Internet desde há vários anos) resolveu criar um sistema que permitisse fazer frente a esta questão. O sistema consiste num mecanismo de teste de servidores de correio electrónico, verificando se estes estão mal configurados, isto é, se permitem a sua utilização como relays abertos;  por outro lado publica de várias formas uma lista de servidores que estão dentro destas características e que é facilmente consultável.

O projecto chama-se Mail Abuse Protection System, e tem a sua face visível em http://mail-abuse.org/; é possível ver vários tipos de listas, embora tenham todas o objectivo de localizar servidores que tenham sido denunciados como origem de mensagens de SPAM ou que estejam abertos a esse tipo de práticas (através de má configuração). A consulta das várias listas é possível através deste site web, que contém adicionalmente informações sobre como resolver este problema (no caso de má configuração de servidores de correio electrónico) e uma forma de pedir a remoção do nosso servidor destas listas. A utilização deste sistema passou a requerer um pagamento prévio, o que implica que deixou de ser utilizado por toda a gente. Existem alguns outros projectos que fornecem este serviço de forma gratuita; alguns destes são o The Open Relay Database, o Open Relay Black List e o Open Relay Black Zone.

Uma outra forma de publicação destas listas, num formato mais adequado à utilização automática (i. e., sem intervenção humana) é através do sistema de DNS; esta forma de publicação permite ainda que as listas sejam propagadas para vários outros servidores, de forma a aliviar a carga a que este serviço sujeita os servidores onde está activo.

Embora o objectivo destes projectos seja o mesmo, têm aproximações diferentes à forma como permitem a interacção com os administradores de servidores marcados na lista negra, tendo também aproximações diferentes em relação aos testes e procedimentos que utilizam para validar as várias situações. Os servidores de DNS a utilizar para estas consultas são alguns dos seguintes:

relays.ordb.org
or.orbl.org
inputs.orbz.org e outputs.orbz.org

Para que possamos usufruir das vantagens destes sistemas, é necessário modificar a forma de funcionamento do nosso servidor de correio de forma a verificar se a origem das mensagens que recebemos está nestas listas negras.
As modificações a fazer não implicam compilação de uma nova versão do qmail; basta incluir no arranque do qmail-smtpd alguns parâmetros adicionais. Vamos então mudar o ficheiro de arranque do qmail-smtpd, que está em /var/qmail/supervise/qmail-smtpd/run, para o seguinte:

#!/bin/sh
env – PATH=”/usr/local/bin:/var/qmail/bin” \
 QMAILQUEUE=”/var/qmail/bin/qmail-scanner-queue.pl” \
 softlimit –m 5000000 tcpserver -v -P -R -H -x \
 /var/qmail/control/tcp.smtp.cdb \
 -u qmaild -g nofiles 0 smtp \
 rblsmtpd –r relays.ordb.org \
 qmail-smtpd 2>&1

É necessário reiniciar o qmail-send para assumir a alteração:

# svc -t /service/qmail-send

O SPAM que for apanhado por esta via, não chega sequer a entrar no servidor, é rejeitado logo à partida.


Instalar o SpamAssassin

Há três modos (pelo menos) de instalar o SpamAssassin.

Instalar o RPM do sistema:

# yum Install Mail-SpamAssassin

O SpamAssasssin é tanto mais eficiente quantos mais uns certos e específicos módulos PERL estiverem instalados no sistema. Infelizmente, o RPM não contém esses módulos, pelo que não é uma boa escolha.


Através do CPAN:

# perl -MCPAN -e shell           
o conf prerequisites_policy ask
install Mail::SpamAssassin
quit

Isto é óptimo, como na verdade o SpamAssassin é um módulo PERL, com um único comando, instalo-o numa simples linha. Dá tempo de ir tomar um café e quando voltar estar pronto, com todas as dependências de módulos instaladas também.
Contudo, pela experiência que tenho (e já experimentei no passado por 3 ou 4 vezes), alguma coisa corre sempre mal e fico parado a meio, sem saber o que já está instalado e é a confusão total.


Instalar todos os módulos manualmente:

Dá um bocado de trabalho, mas não é tanto assim, uma vez que a forma de instalação dos módulos PERL é sempre a mesma:

# perl Makefile.PL && make && make install

Fica aqui a lista de todos os módulos PERL que o SpamAssassin suporta para uma eficiência máxima. A ordem de instalação é irrelevante, à excepção daqueles que têm depndências, estas devem ser instaladas primeiro, obviamente.

As dependências estão assinaladas por identação e o SpamAssassin, como é óbvio será o último a instalar.

É este o método que eu utilizo.

Digest::SHA1
Net::DNS
  Digest::HMAC_MD5
  Net::IP
Mail::SPF
  Net::DNS::Resolver::Programmable
  NetAddr::IP
  Module::Build
    Module::Signature
     ExtUtils::ParseXS
       ExtUtils::CBuilder
     version
     Archive::Tar
     Pod::Readme
       Pod::Text
       Regexp::Common
     ExtUtils::CBuilder
Mail::SPF::Query
  Net::CIDR::Lite
  Sys::Hostname::Long
IP::Country *
Net::Ident
IO::Socket::SSL
  Net::SSLeay
Mail::DomainKeys
  Crypt::OpenSSL::RSA
  Mail::Address
Mail::DKIM
  Digest::SHA
  Error
Archive::Tar
  IO::Zlib
  Text::Diff
    Algorithm::Diff
Encode::Detect
Mail:: Spamassassin

Saca daqui os módulos todos para não andares uma hora às apalpadelas :)


Rules du Jour:

As Rules du Jour são uma peça muito importante para um anti-SPAM eficaz. São ficheiros que contêm regras específicas para SPAM específico e que são actualizadas frequentemente.
Por exemplo, os ficheiros 20_drugs.cf e 20_porn.cf são auto-explicativos do tipo de SPAM que permitem apanhar.

Primeiro, tenho que correr este comando

# spamassassin -D --lint

Agora executo (por omissão, se não for passado o nome de nenhum outro canal, o SpamAssassin aponta para updates.spamasassin.org)

# sa-update

Agora, tenho em /etc/mail/spamassassin um directório chamado sa-update-keys

Executo lá dentro o comando

# sa-update --import pubring.gpg

para importar a chave com que os ficheiros de regras são assinados, para ter a certeza de que são os autênticos.

Agora, finalmente, importar as regras:

# sa-update --channel updates.spamassassin.org
# rm -rf /usr/share/spamassassin/*.txt
# rm -rf /usr/share/spamassassin/*.template

Por fim, coloco uma linha no crontab para ir buscar as regras todos os dias às 00:05

05 0 * * * root /usr/bin/sa-update --channel updates.spamassassin.org


No código do SpamAssassin, no directório spamd, existe um ficheiro  chamado redhat-rc-script.sh que é o ctl para o programa. Copio-o para /etc/initd.d e dou-lhe as instruções para que seja iniciado no arranque do servidor e parado quando este seja desligado:

# cp spamd/redhat-rc-script.sh /etc/init.d/spamd
# cd /etc/init.d
# chkconfig --level 3 spamd on
# ./spamd start


IMPORTANTE: O SPAM não deve ser eliminado automaticamente sem que chegue às mailboxes dos utilizadores, por causa dos falsos positivos.
Se assim fosse, podia perder-se um negócio de milhões por causa de um mail mal marcado.
O que se faz é acrescentar uma string ao Subject das mensagens consideradas como SPAM e os utilizadores podem criar um filtro no seu cliente de e-mail – baseado nessa string – e enviá-lo para uma pasta de SPAM.
De vez em quando, convém dar uma olhada nessa pasta.

Para acrescentar, por exemplo, a string [+++ SPAM +++] às mensagens de SPAM, edito o ficheiro /var/qmail/bin/qmail-scanner-queue.pl e mudo a linha

my $spamc_subject='';

para

rewrite_header Subject [+++ SPAM +++]

É necessário reiniciar o SpamAssasssin para que assuma a alteração:

# /etc/init.d/spamd restart

Isto é uma instalação básica do qmail, há outros canais de regras, há o FuzzyOCR para detectar SPAM em mensagens cujo conteúdo é uma imagem, etc.
Se alguém pretender informação sobre outras coisas, é favor deixar um comentário.

O SpamAssassin está agora instalado, mas ainda não integrado com o qmail, o que quer dizer que as mensagens ainda não estão a ser processadas pelo sistema (nem pelo anti-vírus).
Para isso, é necessário instalar o qmail-scanner, que fica para o próximo artigo desta série.


Yours Sleepy...
tags:
publicado por gamito às 12:34
link do post | comentar | ver comentários (2)

Ubuntu : O Enigma

Para que conste, considero o Ubuntu uma boa distribuição Linux para desktop, provavelmente a melhor a par com o Mandriva no campo do KDE.
Já experimentei as versões mais recentes das duas saber ver como é.

Contudo, há alguns aspectos no Ubuntu que me preocupam.

Já cá ando há tempo suficiente para saber que as bolhas rebentam mais cedo ou mais tarde.
Ora o Ubuntu, digamos que já se aguentou mais tempo até agora sem rebentar, o que não quer dizer que não venha a acontecer e aí, quanto maior a bolha, maior o estoiro.

Adiante...
A situação em que o Ubuntu se encontra neste momento pode dar para dois lados, ambos preocupantes:
  1. A bolha vai crescer durante mais algum tempo e depois, por qualquer razão (maybe the next big thing ?), rebenta.
    Quem é que vai ficar a apanhar os cacos do Linux no desktop ?
    É o fim do Linux nesta área;

  2. A bolha cresce exponencialmente, não rebenta e o Ubuntu torna-se na "Microsoft do Linux".
Ora ambos os cenários são catastróficos, o primeiro é a completa descredibilização do Linux no desktop.

A segunda é mais grave, a grande força do Linux e do Software Livre em geral sempre foi a variedade de escolha.
Num cenário de distribuição dominanante, inevitavelmente vão começar a surgir novidades no Ubuntu das quais os utilizadores não vão gostar.
O Ubuntu está a começar a secar as restantes distribuições desktop oriented, até o Fedora já está a implodir.

É que diga-se o que se disser, a malta que está a sério no Software Livre gosta tanto de dinheiro como o Bill Gates, same shit.

E aqui entra o bacano responsável pelo Ubuntu. Para mim, a ideia inicial dele era fazer dinheiro com o Launchpad, mas o Ubuntu cresceu tanto que se tornou maior do que o seu criador.

Por outro lado, uma posição de "monopólio" do Ubuntu no desktop (ou de outra distribuição qualquer) terá consequências no Linux do servidor.
Já estou a ver um decisor de um Banco, por exemplo, a dizer "Hum... querem instalar nos nossos servidores o mesmo sistema operativo tão bonitinho que usam nos vossos portáteis ? Não me parece..."

O Ubuntu não está vocacionado para servir (não sei como há gente com coragem para ter servidores Ubuntu em produção), a SuSE e a Red Hat reinam nos servidores através das suas variantes empresariais (Oracle, anyone ?), mas uma distribuição única orientada para  desktop – que é a face visível do Linux – irá inevitavelmente repecurtir-se no Linux servidor.

Portanto, eu tenho muito gosto que o Ubuntu continue a ser um sucesso e a trazer muitas pessoas para o Linux, mas gostaria de ver algum equilíbrio com mais três ou quatro distribuições.
Volto a frisar, sem variedade de escolha, o Software Livre é inconsequente.

PS. Entretanto, saiu o Euromilhões ao GNOME, se não fosse o Ubuntu já estaria morto e enterrado.
tags:
publicado por gamito às 00:27
link do post | comentar | ver comentários (9)
Domingo, 19 de Agosto de 2007

Leixões 1 - Benfica 1

Caros Lampiões,

Qual a probabilidade de um Nigeriano que veio do campeonato de Malta, marcar um golo na sua estreia contra um clube recém promovido a clube com mais sócios no mundo?

Deve ser como encontrar um trevo na tromba d'um elefante.

Ai o meu cálculo combinatório que já lá vai há tantos anos, senão calculava mesmo as probabilidades de tal acontecer, mas assim ao por alto, diria que com o Engº do Tenta e as condições acima descritas, devem ser elevadas :P

Abraços Leoninos
tags:
publicado por gamito às 19:30
link do post | comentar

Servidor caseiro - XVIII

Como preparação para instalar e configurar o SpamAssassin e o qmail-scanner, tenho que primeiro instalar o maildrop e o t-nef.

O maildrop requer a biblioteca de desenvolvimento do pcre, pelo que tenho que a instalar:

# yum install pcre-devel

Agora o maildrop:

# ./configure && make && make install && ldconfig

e depois o t-nef (este software remove aqueles attachments estúpidos do Outlook e Outlook Express):

# ./configure && make && make install


Kind Regards...
tags:
publicado por gamito às 17:27
link do post | comentar

Servidor caseiro - XVII

O anti-vírus que utilizo para servidores de e-mail UNIX há muitos anos é o f-prot.
Não é software livre (nem as in speach nem as in beer), mas nunca me deixou passar um único vírus que fosse em servidores de produção.
Para utilização pessoal é gratuito.

É muito fácil de instalar, mas primeiro é preciso instalar três módulos PERL, cujas dependências ficam aqui assinaladas por identação:

libwww-perl
  Compress::Zlib
    Compress::Raw::Zlib
      IO::Compress::Base
      IO::Compress::Base::Common
      IO::Compress::Gzip
HTML::Parser
HTML::Tagset

Para instalar o f-prot, copia-se a tarball para /usr/local e descomprime-se. Depois, executam-se os comandos:

# cd /usr/local/
# ln -fs /usr/local/f-prot/f-prot.sh bin/f-prot
# ln -fs /usr/local/f-prot/man_pages/ man/man8
# chmod +x /usr/local/f-prot/f-prot*

# ./check-updates.pl
***************************************
* F-Prot Antivirus Updater            *
***************************************

There's a new version of:
"Document/Office/Macro viruses" signatures on the web.
Starting to download...
Download completed.

There's a new version of:
"Application/Script viruses and Trojans" signatures on the web.
Starting to download...
Download completed.

Preparing to install Application/Script viruses and Trojans signatures.
Application/Script viruses and Trojans signatures have successfully been installed.

Preparing to install Document/Office/Macro viruses signatures.
Document/Office/Macro viruses signatures have successfully been installed.


**********************************
* Update completed successfully. *
**********************************

Finalmente, coloca-se uma linha no crontab, para que todos os dias às 00:00 horas, seja executado o comando que faz o download das definições dos vírus.

00 * * * * root /usr/local/f-prot/tools/check-updates.pl


Quickie :)
tags:
publicado por gamito às 16:38
link do post | comentar

Servidor caseiro - XVI

Agora que o servidor de e-mail está quase instalado (falta o anti-vírus, o SpamAssassin, o webmail e as interfaces gráficas de gestão), alguns pontos a considerar:
  • Não posso utilizar o SMTP porque o meu IP público do SAPO ADSL está blacklisted no spamhaus (pelo menos) e deste modo as mensagens nem entram nos servidores de destino, são rejeitadas logo à partida;

  • Como o servidor está a obter IP dinâmico do meu router, sempre que é (re)inicializado, o sistema coloca o IP do DNS do mesmo no ficheiro /etc/resolv.conf
    Para que quando o servidor arranque, seja utilizada a cache de DNS que instalei, coloco no ficheiro /etc/rc.local, a linha

    echo "nameserver 127.0.0.1" > /etc/resolv.conf

    Deste modo, como os comandos contidos neste ficheiro são os últimos a serem executados quando o sistema arranca, fico sempre no ficheiro /etc/resolv.conf com o IP da minha cache de DNS;

  • Para problemas com as run files do qmail, um bom método de "debugar" é executar o comando:

    # ps auxwww | grep readproctitle

    Vão aparecer todas as descrições dos problemas.
    Claro que os logs do qmail também são uma ajuda inestimável;

  • Existe um script em PERL, chamado qmHandle que é excelente para gerir a queue do qmail. Saca daqui;

  • Convém instalar o qmess822 do DJB para substituir o qmail-inject. Isto evita os problemas gerados por clientes de e-mail mal comportados como o (in)famous Outlook;

  • Ficaram muitas coisas por explicar, onde está o software, truques, minas e alçapões, etc., mas explicar tudo levaria dias.
    Se alguém estiver a seguir esta série de artigos (coisa que duvido), coloque as questões em comentários aos artigos que terei muito gosto em ajudar no que puder.

Entering lunch mode...
tags:
publicado por gamito às 13:02
link do post | comentar | ver comentários (1)

Servidor caseiro - XV

O software de IMAP que utilizo é o Courier-imap.

O courier-imap lida (e foi criado com essa finalidade) com o formato Maildir de caixas de correio originário do qmail. Para além disso, acrescenta uma série de features como quotas por software.
Suporta um grande número de possibilidades de formatos de autenticação, desde RDBMS (MySQL, PostgreSQL) a PAM, LDAP, etc.
O que utilizei aqui é o vchkpw por causa do vpopmail.

Permite ainda a criação de shared folders entre grupos de contas e tem suporte a IMAP sobre SSL.

O Courier-imap, a certo ponto do seu desenvolvimento, foi dividido entre dois ficheiros de código, o courier-authlib que contém as bibliotecas de autenticação e um servidor de autenticação e o courier-imap que é o servidor de IMAP propriamente dito.

O courier-authlib tem um bug que faz abortar a compilação em GCC ≥ 4 se se escolher o authvchkpw como método de autenticação, mas como sou *cough* boa pessoa *cough*, deixo aqui um pequeno patch que escrevi para resolver o problema (os tracinhos não contam :P):

-----------------------------------------------------------------
--- courier-authlib-0.59.3/authvchkpw.c 2007-08-19 07:23:30.000000000 +0200
+++ courier-authlib-0.59.3b/authvchkpw.c        2007-08-19 07:23:30.908980669 +0000
@@ -55,16 +55,19 @@
        return (*i->callback_func)(a, i->callback_arg);
 }

 #if HAVE_HMACLIB

 #include        "libhmac/hmac.h"
 #include        "cramlib.h"

+static int auth_vchkpw_login(const char *service, char *authdata,
+        int (*callback_func)(struct authinfo *, void *), void *callback_arg);
+

 static int auth_vchkpw_cram(const char *service,
                            const char *authtype, char *authdata,
                            int (*callback_func)(struct authinfo *, void *),
                            void *callback_arg)
 {
         struct  cram_callback_info      cci;
-----------------------------------------------------------------

Crio um ficheiro chamado por exemplo vchkpw-courier-auth.patch e executo:

# patch -p1 < vchkpw-courier-auth.patch
patching file authvchkpw.c
Hunk #1 succeeded at 55 with fuzz 1.

Os dois ficheiros de código do Courier-imap instalam-se do mesmo modo:

# cd /home/vpopmail/courier-authlib-0.59.3
# export CPPFLAGS="-I/usr/local/ssl/include"
# export LDFLAGS="-L/usr/local/ssl/lib"

#./configure --without-ipv6 --enable-unicode --enable-workarounds-for-imap-client-bugs --without-authpwd --without-authpam --without-authuserdb --without-authcram --with-authvchkpw --without-authldap --without-authmysql --without-authpgsql --without-authdaemon --without-authcustom --without-authshadow --with-redhat
# make
# su root
# make install-strip
# make install-configure

Repetir para courier-imap-4.1.3

Copio os ficheiros de arranque do IMAP e do IMAP/SSL para /etc/init.d

# cd /usr/lib/courier-imap/libexec
# cp imapd.rc /etc/init.d/imapd
# cp imapd-ssl.rc /etc/init.d/imapd-ssl

Como o chkconfig não reconhece estes ficheiros ctl como válidos, tenho que fazer o trabalho à mão para que os dois serviços arranquem automaticamente quando o servidor for ligado (se tiver interface gráfica, tem que repetir a operação para o directório /etc/rc5.d):

# cd /etc/rc3.d
# ln -s ../init.d/imapd S99imapd
# ln -s ../init.d/imapd-ssl S99imapd-ssl

Tenho que copiar o certificado que criei antes para o POP3/SSL para o sítio certo no Courier-imap (o mesmo certificado serve):

# cp /usr/local/ssl/bin/imapd.pem /usr/lib/courier-imap/share/

Agora, antes de mais, é necessário correr o authdaemon do Courier-imap (o servidor authdaemon necessita de estar permanentemente a correr. Para que ele arranque quando se inicia o servidor, colocar no ficheiro /etc/rc.local a linha /usr/local/sbin/authdaemond start):

# /usr/local/sbin/authdaemond start

É altura de ter uma conversa com o IMAP e o IMAP/SSL para verificar se está tudo ok:

IMAP:

# telnet planetgeek.dynip.sapo.pt 143
Trying 192.168.0.101...
Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2005 Double Precision, Inc.  See COPYING for distribution information.
O login teste@planetgeek.dynip.sapo.pt segredo
O OK LOGIN Ok.
O LOGOUT
* BYE Courier-IMAP server shutting down
O OK LOGOUT completed
Connection closed by foreign host.


IMAP/SSL:

# openssl s_client -connect planetgeek.dynip.sapo.pt:993
CONNECTED(00000003)
depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=gamito@planetgeek.dynip.sapo.pt
verify error:num=18:self signed certificate
verify return:1
depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=gamito@planetgeek.dynip.sapo.pt
verify return:1
---
Certificate chain
 0 s:/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=gamito@planetgeek.dynip.sapo.pt
   i:/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=gamito@planetgeek.dynip.sapo.pt
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDzjCCAzegAwIBAgIJAJa6WcKI1VROMA0GCSqGSIb3DQEBBQUAMIGhMQswCQYD
VQQGEwJwdDEPMA0GA1UECBMGQXZlaXJvMQ8wDQYDVQQHEwZJbGhhdm8xDTALBgNV
BAoTBEhvbWUxDjAMBgNVBAsTBURldmVsMSEwHwYDVQQDExhwbGFuZXRnZWVrLmR5
bmlwLnNhcG8ucHQxLjAsBgkqhkiG9w0BCQEWH2dhbWl0b0BwbGFuZXRnZWVrLmR5
bmlwLnNhcG8ucHQwHhcNMDcwODE4MjMwOTQwWhcNMDgwODE3MjMwOTQwWjCBoTEL
MAkGA1UEBhMCcHQxDzANBgNVBAgTBkF2ZWlybzEPMA0GA1UEBxMGSWxoYXZvMQ0w
CwYDVQQKEwRIb21lMQ4wDAYDVQQLEwVEZXZlbDEhMB8GA1UEAxMYcGxhbmV0Z2Vl
ay5keW5pcC5zYXBvLnB0MS4wLAYJKoZIhvcNAQkBFh9nYW1pdG9AcGxhbmV0Z2Vl
ay5keW5pcC5zYXBvLnB0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD1y9db
W0wJZScNQV0fCisBLRakDJWTioXgb5Kzr333ZsF/X8N5ktPEpVQ/3weRbT9RqYMQ
zHWTHyDBhQDQ5L4yoNeitmAXCfO129wDtw7qLlOm6THaktzHRLuWnS5bLWBBdnSn
ELyIQ/xCANGTcRvjKmIrA3WkvbAgkeMg0SjCFQIDAQABo4IBCjCCAQYwHQYDVR0O
BBYEFJVvEdEfiVb36m31qTJIpIPLlwQjMIHWBgNVHSMEgc4wgcuAFJVvEdEfiVb3
6m31qTJIpIPLlwQjoYGnpIGkMIGhMQswCQYDVQQGEwJwdDEPMA0GA1UECBMGQXZl
aXJvMQ8wDQYDVQQHEwZJbGhhdm8xDTALBgNVBAoTBEhvbWUxDjAMBgNVBAsTBURl
dmVsMSEwHwYDVQQDExhwbGFuZXRnZWVrLmR5bmlwLnNhcG8ucHQxLjAsBgkqhkiG
9w0BCQEWH2dhbWl0b0BwbGFuZXRnZWVrLmR5bmlwLnNhcG8ucHSCCQCWulnCiNVU
TjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIiPOkLa6QPkk2VHmIas
jobvnczZNrA63ygoiSFbBDBtsq+UZOcaKBG1L9z1B2n1in5RcQ0ueWnKaymBw8XY
kANdRLqXy5Y0+/M9htFAiLWQGjbjqnNPrsZ531UBV+Hz+zda2FYZsyddiQEizKK2
d4KZwVEG3jpXFZ2GVRPBcGya
-----END CERTIFICATE-----
subject=/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=gamito@planetgeek.dynip.sapo.pt
issuer=/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=gamito@planetgeek.dynip.sapo.pt
---
No client certificate CA names sent
---
SSL handshake has read 1140 bytes and written 340 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 984513454D9DB81F0324D7983AF78C69649A82819FB007033E43B25DAE55C778
    Session-ID-ctx:
    Master-Key: 82B0478015DB6B5BFB4F8F2F1D750BEC5CDE11A7154CD80157EFAEBB557FCDCE0B4CC03B25C7427F1B9940ACF85615B1
    Key-Arg   : None
    Krb5 Principal: None
    Start Time: 1187523291
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=PLAIN ACL ACL2=UNION] Courier-IMAP ready. Copyright 1998-2005 Double Precision, Inc.  See COPYING for distribution information.
O login teste@planetgeek.dynip.sapo.pt segredo
O OK LOGIN Ok.
O LOGOUT
* BYE Courier-IMAP server shutting down
O OK LOGOUT completed
closed


Kwel :)
tags:
publicado por gamito às 12:43
link do post | comentar

Servidor caseiro - XIV

Virtualizar utilizadores é sempre uma good thing (TM).

O vpopmail é um software que permite a virtualização de utilizadores para o qmail e é muito fácil de instalar.

  • Instalação do vpopmail

    # ./configure --enable-qmaildir=/var/qmail --enable-qmail-newu=/var/qmail/bin/qmail-newu --enable-qmail-inject=/var/qmail/bin/qmail-inject --enable-qmail-newmrh=/var/qmail/bin/qmail-newmrh --enable-vpopuser=vpopmail --enable-vpopgroup=vchkpw --enable-roaming-users=n --enable-tcprules-prog=/usr/local/bin/tcprules --enable-tcpserver-file=/var/qmail/control/tcp.smtp  --enable-logging=v --enable-md5-passwords=y --enable-log-name=vpopmail --enable-auth-module=cdb --enable-qmail-ext=y --enable-ip-alias-domains=n --enable-passwd=n --enable-learn-passwords=y --enable-auth-logging=y

    # make

    # make install-strip

    Criar um domínio e um utilizador:

    # ./vadddomain planetgeek.dynip.sapo.pt
    Please enter password for postmaster:
    enter password again:

    # ./vadduser teste@planetgeek.dynip.sapo.pt
    Please enter password for user:
    enter password again:
Já não é necessário existir o utilizador de sistema "teste" para que possa enviar e receber e-mail.

Em lugar disso, dentro do directório /home/vpopmail, foi criado um planetgeek.dynip.sapo.pt (relativo ao domínio) e dentro desse um "teste" com a Maildir.

A run file do qmail-popup, teve que ser alterada, pois já não é o checkpassword que faz a autenticação, mas o vchkpw.

Assim, a run file do qmail-popup, passa a:

#!/bin/sh
exec env - PATH="/usr/local/bin:/home/vpopmail/bin:/var/qmail/bin" \
 tcpserver -v -l 0 -R 0 pop3 \
 qmail-popup planetgeek.dynip.sapo.pt \
 vchkpw \
 qmail-pop3d Maildir \
 2>&1


Também tive que alterar uma linha no stunnel.conf, para que o POP3/SSL possa funcionar neste novo esquema, deste modo, a linha

execargs = qmail-popup 0 /usr/local/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir

passa a

execargs = qmail-popup 0 /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir

Vou verificar se o POP3 e o POP3/SSL continuam a funcionar neste novo esquema.

  • Envio de mensagem de teste

    # telnet planetgeek.dynip.sapo.pt 25
    Trying 192.168.0.101...
    Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
    Escape character is '^]'.
    220 planetgeek.dynip.sapo.pt ESMTP
    EHLO planetgeek.dynip.sapo.pt
    250-planetgeek.dynip.sapo.pt
    250-PIPELINING
    250 8BITMIME
    MAIL FROM: root@planetgeek.dynip.sapo.pt
    250 ok
    RCPT TO: teste@planetgeek.dynip.sapo.pt
    250 ok
    DATA
    354 go ahead
    Teste do vpopmail
    .
    250 ok 1187510342 qp 2362
    QUIT
    221 planetgeek.dynip.sapo.pt
    Connection closed by foreign host.
Fiquei com a mensagem em /home/vpopmail/domains/planetgeek.dynip.sapo.pt/teste/Maildir/new/:

# cd /home/vpopmail/domains/planetgeek.dynip.sapo.pt/teste/Maildir/new/
# ll
total 4
-rw------- 1 vpopmail vchkpw 293 Aug 19 08:59 1187510343.2366.planetgeek.dynip.sapo.pt,S=293

# cat 1187510343.2366.planetgeek.dynip.sapo.pt\,S\=293
Return-Path: <root@planetgeek.dynip.sapo.pt>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 2362 invoked by uid 0); 19 Aug 2007 07:58:53 -0000
Received: from unknown (HELO planetgeek.dynip.sapo.pt) (192.168.0.101)
  by 0 with SMTP; 19 Aug 2007 07:58:53 -0000
Teste do vpopmail

Conclui-se que a mensagem chegou ao sítio certo.

Vou testar agora os daemons (note-se que o login tem que conter agora também a parte do domínio, ou seja o endereço de e-mail completo):

  • POP3

    # telnet planetgeek.dynip.sapo.pt 110
    Trying 192.168.0.101...
    Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
    Escape character is '^]'.
    +OK <2384.1187510433@planetgeek.dynip.sapo.pt>
    user teste@planetgeek.dynip.sapo.pt
    +OK
    pass segredo
    +OK
    stat
    +OK 1 293
    list
    +OK
    1 293
    .
    retr 1
    +OK
    Return-Path: <root@planetgeek.dynip.sapo.pt>
    Delivered-To: teste@planetgeek.dynip.sapo.pt
    Received: (qmail 2362 invoked by uid 0); 19 Aug 2007 07:58:53 -0000
    Received: from unknown (HELO planetgeek.dynip.sapo.pt) (192.168.0.101)
      by 0 with SMTP; 19 Aug 2007 07:58:53 -0000
    Teste do vpopmail

    .
    quit
    +OK
    Connection closed by foreign host.

  • POP3/SSL

    # openssl s_client -connect planetgeek.dynip.sapo.pt:995
    CONNECTED(00000003)
    depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
    verify error:num=18:self signed certificate
    verify return:1
    depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
    verify return:1
    ---
    Certificate chain
     0 s:/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
       i:/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
    ---
    Server certificate
    -----BEGIN CERTIFICATE-----
    MIIDzjCCAzegAwIBAgIJAJa6WcKI1VROMA0GCSqGSIb3DQEBBQUAMIGhMQswCQYD
    VQQGEwJwdDEPMA0GA1UECBMGQXZlaXJvMQ8wDQYDVQQHEwZJbGhhdm8xDTALBgNV
    BAoTBEhvbWUxDjAMBgNVBAsTBURldmVsMSEwHwYDVQQDExhwbGFuZXRnZWVrLmR5
    bmlwLnNhcG8ucHQxLjAsBgkqhkiG9w0BCQEWH2dhbWl0b0BwbGFuZXRnZWVrLmR5
    bmlwLnNhcG8ucHQwHhcNMDcwODE4MjMwOTQwWhcNMDgwODE3MjMwOTQwWjCBoTEL
    MAkGA1UEBhMCcHQxDzANBgNVBAgTBkF2ZWlybzEPMA0GA1UEBxMGSWxoYXZvMQ0w
    CwYDVQQKEwRIb21lMQ4wDAYDVQQLEwVEZXZlbDEhMB8GA1UEAxMYcGxhbmV0Z2Vl
    ay5keW5pcC5zYXBvLnB0MS4wLAYJKoZIhvcNAQkBFh9nYW1pdG9AcGxhbmV0Z2Vl
    ay5keW5pcC5zYXBvLnB0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD1y9db
    W0wJZScNQV0fCisBLRakDJWTioXgb5Kzr333ZsF/X8N5ktPEpVQ/3weRbT9RqYMQ
    zHWTHyDBhQDQ5L4yoNeitmAXCfO129wDtw7qLlOm6THaktzHRLuWnS5bLWBBdnSn
    ELyIQ/xCANGTcRvjKmIrA3WkvbAgkeMg0SjCFQIDAQABo4IBCjCCAQYwHQYDVR0O
    BBYEFJVvEdEfiVb36m31qTJIpIPLlwQjMIHWBgNVHSMEgc4wgcuAFJVvEdEfiVb3
    6m31qTJIpIPLlwQjoYGnpIGkMIGhMQswCQYDVQQGEwJwdDEPMA0GA1UECBMGQXZl
    aXJvMQ8wDQYDVQQHEwZJbGhhdm8xDTALBgNVBAoTBEhvbWUxDjAMBgNVBAsTBURl
    dmVsMSEwHwYDVQQDExhwbGFuZXRnZWVrLmR5bmlwLnNhcG8ucHQxLjAsBgkqhkiG
    9w0BCQEWH2dhbWl0b0BwbGFuZXRnZWVrLmR5bmlwLnNhcG8ucHSCCQCWulnCiNVU
    TjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIiPOkLa6QPkk2VHmIas
    jobvnczZNrA63ygoiSFbBDBtsq+UZOcaKBG1L9z1B2n1in5RcQ0ueWnKaymBw8XY
    kANdRLqXy5Y0+/M9htFAiLWQGjbjqnNPrsZ531UBV+Hz+zda2FYZsyddiQEizKK2
    d4KZwVEG3jpXFZ2GVRPBcGya
    -----END CERTIFICATE-----
    subject=/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
    issuer=/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 1140 bytes and written 340 bytes
    ---
    New, TLSv1/SSLv3, Cipher is AES256-SHA
    Server public key is 1024 bit
    Compression: NONE
    Expansion: NONE
    SSL-Session:
        Protocol  : TLSv1
        Cipher    : AES256-SHA
        Session-ID: AD21D1919EBA3E621AE33FE42E6F585EC5D82DFC4AC8B5E1EA23F9AB70708A5F
        Session-ID-ctx:
        Master-Key: 0FEB364425D36C8DB10EE32D0EF8FABDC2CC4F6281DF63BC46352C53987CE59CDC8E42CAA95FDA0458204B8CC8C8BEBE
        Key-Arg   : None
        Start Time: 1187510526
        Timeout   : 300 (sec)
        Verify return code: 18 (self signed certificate)
    ---
    +OK <2398.1187510526@0>
    user teste@planetgeek.dynip.sapo.pt
    +OK
    pass segredo
    +OK
    stat
    +OK 1 293
    retr 1
    +OK
    Return-Path: <root@planetgeek.dynip.sapo.pt>
    Delivered-To: teste@planetgeek.dynip.sapo.pt
    Received: (qmail 2362 invoked by uid 0); 19 Aug 2007 07:58:53 -0000
    Received: from unknown (HELO planetgeek.dynip.sapo.pt) (192.168.0.101)
      by 0 with SMTP; 19 Aug 2007 07:58:53 -0000
    Teste do vpopmail

    .
    quit
    +OK
    closed
All is well...
tags:
publicado por gamito às 09:04
link do post | comentar

Servidor caseiro - XIII

O qmail funciona com run files. Aqui ficam as que estou a usar (discutíveis, claro):

  • qmail-send:

    #!/bin/sh
    exec env - PATH="/var/qmail/bin:$PATH" \
     qmail-start ./Maildir/
  • qmail-smtpd

    #!/bin/sh
    exec env - PATH="/usr/local/bin:/var/qmail/bin" \
     softlimit -m 5000000 tcpserver -v -P -R -H -l 0 \
     -x /var/qmail/control/tcp.smtp.cdb -u qmaild -g nofiles 0 smtp \
     qmail-smtpd \
     2>&1
  • qmail-popup

    #!/bin/sh
    exec env - PATH="/usr/local/bin:/var/qmail/bin" \
     tcpserver -v -l 0 -R 0 pop3 \
     qmail-popup planetgeek.dynip.sapo.pt \
     checkpassword \
     qmail-pop3d Maildir \
     2>&1
  • qmail-popups

    #!/bin/sh
    exec env - PATH="/usr/local/bin:/usr/local/sbin" \
      tcpserver -v -R -H -l 0 0 995 \
      stunnel /usr/local/etc/stunnel/stunnel.conf \
      2>&1
  • logs

    As run files dos logs são todas iguais, só muda o nome do serviço, fica aqui a do qmail-send como exemplo:

    #!/bin/sh
    env - PATH="/usr/local/bin" \
     setuidgid qmaill multilog t s2500000 /var/log/qmail/qmail-send \
     2>&1
Bye for today...
tags:
publicado por gamito às 01:02
link do post | comentar

Servidor caseiro - XII

POP3 over SSL, importante isto, as pessoas deviam habituar-se a utilizarem comunicações seguras nos seus e-mails, embora a maioria das vezes os responsáveis sejam os administradores de sistemas que ou não estão sensibilizados para a questão ou são incompetentes.

Há vários modos de implementar POP3/SSL em qmail, as mais das vezes, recorrendo a patches.
Eu prefiro utilizar o stunnel.
O stunnel é um software que permite cifrar ligações TCP/IP sobre SSL sem ser necessário mexer no código dos daemons, nest caso o qmail-popup.
Na prática, o que vai acontecer é o estabelecimento de um túnel SSL entre o cliente de correio electrónico e o servidor. Dentro deste túnel SSL, vão passar os comandos normais do POP3 que o stunnel encaminha para o qmail-popup. Assim, a comunicação que passa na rede é segura.
Primeiro, é necessário criar uma chave SSL para o servidor:

# ./openssl req -new -x509 -days 365 -nodes -out imapd.pem -keyout imapd.pem || cleanup
# ./openssl gendh >> imapd.pem || cleanout
# ./openssl x509 -subject -dates -fingerprint -noout -in imapd.pem || cleanup

De seguida, instalar e configurar o stunnel (na instalação, são-me pedidos os dados para a criação de um certificado, mas é irrelevante, pois vai ser substituído pelo criado acima):

# ./configure --with-ssl=/usr/local/ssl
# make
# make install

# cp /usr/local/ssl/bin/imapd.pem /usr/local/etc/stunnel/stunnel.pem
# cd /usr/local/etc/stunnel/
# cp stunnel.conf-sample stunnel.conf

O ficheiro stunnel.conf deve ficar exactamente assim:

; Sample stunnel configuration file by Michal Trojnara 2002-2006
; Some options used here may not be adequate for your particular configuration
; Please make sure you understand them (especially the effect of chroot jail)

; Certificate/key is needed in server mode and optional in client mode
cert = /usr/local/etc/stunnel/stunnel.pem
;key = /usr/local/etc/stunnel/mail.pem

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = all

; Some security enhancements for UNIX systems - comment them out on Win32
#chroot = /usr/local/var/lib/stunnel/
#setuid = nobody
#setgid = nobody
; PID is created inside chroot jail
pid = /tmp/stunnel.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = rle

; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS

; Authentication stuff
;verify = 2
; Don't forget to c_rehash CApath
; CApath is located inside chroot jail
;CApath = /certs
; It's often easier to use CAfile
;CAfile = /usr/local/etc/stunnel/certs.pem
; Don't forget to c_rehash CRLpath
; CRLpath is located inside chroot jail
;CRLpath = /crls
; Alternatively you can use CRLfile
;CRLfile = /usr/local/etc/stunnel/crls.pem

; Some debugging stuff useful for troubleshooting
debug = 7
output = stunnel.log

exec = /var/qmail/bin/qmail-popup
execargs = qmail-popup 0 /usr/local/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir

transparent = yes
local = 192.168.0.101

; Use it for client mode
client = no

; Service-level configuration

#[pop3s]
#accept  = 995
#connect = 110

#[imaps]
#accept  = 993
#connect = 143

#[ssmtp]
#accept  = 465
#connect = 25

;[https]
#;accept  = 443
#;connect = 80
#;TIMEOUTclose = 0

; vim:ft=dosini

É necessário criar uma run file nova para o POP3/SSL:

#!/bin/sh
env - PATH="/usr/local/bin" \
 setuidgid qmaill multilog t s2500000 /var/log/qmail/qmail-popups \
 2>&1

Envio um e-mail primeiro:

# telnet planetgeek.dynip.sapo.pt 25

Trying 192.168.0.101...
Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
Escape character is '^]'.
220 planetgeek.dynip.sapo.pt ESMTP
EHLO planetgeek.dynip.sapo.pt
250-planetgeek.dynip.sapo.pt
250-PIPELINING
250 8BITMIME
MAIL FROM: root@planetgeek.dynip.sapo.pt
250 ok
RCPT TO: teste@planetgeek.dynip.sapo.pt
250 ok
DATA
354 go ahead
Teste do POP3/SSL
.
250 ok 1187479718 qp 8456
QUIT
221 planetgeek.dynip.sapo.pt
Connection closed by foreign host.

Agora testo com o openssl (a porta do POP3/SSL é a 995):

# /usr/local/ssl/bin/openssl s_client -connect planetgeek.dynip.sapo.pt:995
CONNECTED(00000003)
depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
verify error:num=18:self signed certificate
verify return:1
depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
verify return:1
---
Certificate chain
 0 s:/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
   i:/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDzjCCAzegAwIBAgIJAJa6WcKI1VROMA0GCSqGSIb3DQEBBQUAMIGhMQswCQYD
VQQGEwJwdDEPMA0GA1UECBMGQXZlaXJvMQ8wDQYDVQQHEwZJbGhhdm8xDTALBgNV
BAoTBEhvbWUxDjAMBgNVBAsTBURldmVsMSEwHwYDVQQDExhwbGFuZXRnZWVrLmR5
bmlwLnNhcG8ucHQxLjAsBgkqhkiG9w0BCQEWH2dhbWl0b0BwbGFuZXRnZWVrLmR5
bmlwLnNhcG8ucHQwHhcNMDcwODE4MjMwOTQwWhcNMDgwODE3MjMwOTQwWjCBoTEL
MAkGA1UEBhMCcHQxDzANBgNVBAgTBkF2ZWlybzEPMA0GA1UEBxMGSWxoYXZvMQ0w
CwYDVQQKEwRIb21lMQ4wDAYDVQQLEwVEZXZlbDEhMB8GA1UEAxMYcGxhbmV0Z2Vl
ay5keW5pcC5zYXBvLnB0MS4wLAYJKoZIhvcNAQkBFh9nYW1pdG9AcGxhbmV0Z2Vl
ay5keW5pcC5zYXBvLnB0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD1y9db
W0wJZScNQV0fCisBLRakDJWTioXgb5Kzr333ZsF/X8N5ktPEpVQ/3weRbT9RqYMQ
zHWTHyDBhQDQ5L4yoNeitmAXCfO129wDtw7qLlOm6THaktzHRLuWnS5bLWBBdnSn
ELyIQ/xCANGTcRvjKmIrA3WkvbAgkeMg0SjCFQIDAQABo4IBCjCCAQYwHQYDVR0O
BBYEFJVvEdEfiVb36m31qTJIpIPLlwQjMIHWBgNVHSMEgc4wgcuAFJVvEdEfiVb3
6m31qTJIpIPLlwQjoYGnpIGkMIGhMQswCQYDVQQGEwJwdDEPMA0GA1UECBMGQXZl
aXJvMQ8wDQYDVQQHEwZJbGhhdm8xDTALBgNVBAoTBEhvbWUxDjAMBgNVBAsTBURl
dmVsMSEwHwYDVQQDExhwbGFuZXRnZWVrLmR5bmlwLnNhcG8ucHQxLjAsBgkqhkiG
9w0BCQEWH2dhbWl0b0BwbGFuZXRnZWVrLmR5bmlwLnNhcG8ucHSCCQCWulnCiNVU
TjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIiPOkLa6QPkk2VHmIas
jobvnczZNrA63ygoiSFbBDBtsq+UZOcaKBG1L9z1B2n1in5RcQ0ueWnKaymBw8XY
kANdRLqXy5Y0+/M9htFAiLWQGjbjqnNPrsZ531UBV+Hz+zda2FYZsyddiQEizKK2
d4KZwVEG3jpXFZ2GVRPBcGya
-----END CERTIFICATE-----
subject=/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
issuer=/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
---
No client certificate CA names sent
---
SSL handshake has read 1140 bytes and written 340 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: 7466A4FF1DCCEB905D40DDD0DE27F5162B82192ADE6A35B4309AB6A920F81EC5
    Session-ID-ctx:
    Master-Key: 2F48EBCFC4134C96571D61598A38AF35B31A6A1C14419484E57F924B16FD8C75B33685A9B3D35957188F2451F823DEF7
    Key-Arg   : None
    Start Time: 1187480851
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
+OK <8539.1187480851@0>
user teste
+OK
pass segredo
+OK
stat
+OK 1 293
list
+OK
1 293
.
retr 1
+OK
Return-Path: <root@planetgeek.dynip.sapo.pt>
Delivered-To: teste@planetgeek.dynip.sapo.pt
Received: (qmail 8456 invoked by uid 0); 18 Aug 2007 23:28:22 -0000
Received: from unknown (HELO planetgeek.dynip.sapo.pt) (192.168.0.101)
  by 0 with SMTP; 18 Aug 2007 23:28:22 -0000
Teste do POP3/SSL

.
dele 1
+OK
quit
+OK
closed

Funga :)

Until next...
tags:
publicado por gamito às 00:49
link do post | comentar | ver comentários (2)
Sábado, 18 de Agosto de 2007

Servidor caseiro - XI

O qmail já funga :)

É pá, desculpem lá, mas isto não dá para explicar aqui, só me levantava da cadeira daqui a uma semana.
Quem quiser saber como se instala e gere, pode comprar este excelente livro, escrito por uns tais de Mário teste e Ricardo Oliveira.
Os bacanos agradecem, pois recebem 1,25 € por cada exemplar vendido :)

O livro tem algumas coisas desactualizadas porque há software que já mudou a forma de instalar/configurar, mas eu tenho aqui um exemplar todo anotado e terei todo o prazer em ajudar.
Ora bem, vamos ver, isto é o básico, a seguir vem POP3/SSL, IMAP, IMAP/SSL:

  • SMTP

    # telnet planetgeek.dynip.sapo.pt 25
    Trying 192.168.0.101...
    Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
    Escape character is '^]'.
    220 planetgeek.dynip.sapo.pt ESMTP
    EHLO planetgeek.dynip.sapo.pt
    250-planetgeek.dynip.sapo.pt
    250-PIPELINING
    250 8BITMIME
    MAIL FROM: root@planetgeek.dynip.sapo.pt
    250 ok
    RCPT TO: teste@planetgeek.dynip.sapo.pt
    250 ok
    DATA
    354 go ahead
    Subject: Teste do qmail
    qmail rulez...
    .
    250 ok 1187477575 qp 2344
    QUIT
    221 planetgeek.dynip.sapo.pt
    Connection closed by foreign host.


  • POP3

    # telnet planetgeek.dynip.sapo.pt 110
    Trying 192.168.0.101...
    Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
    Escape character is '^]'.
    +OK <2351.1187477582@planetgeek.dynip.sapo.pt>
    user teste
    +OK
    pass segredo
    +OK
    stat
    +OK 1 314
    list
    +OK
    1 314
    .
    retr 1
    +OK
    Return-Path: <root@planetgeek.dynip.sapo.pt>
    Delivered-To: teste@planetgeek.dynip.sapo.pt
    Received: (qmail 2344 invoked by uid 0); 18 Aug 2007 22:52:42 -0000
    Received: from unknown (HELO planetgeek.dynip.sapo.pt) (192.168.0.101)
      by 0 with SMTP; 18 Aug 2007 22:52:42 -0000
    Subject: Teste do qmail
    qmail rulez...
    .
    dele 1
    +OK
    quit
    +OK
    Connection closed by foreign host.
tags:
publicado por gamito às 23:54
link do post | comentar

Servidor caseiro - X

Enquanto ando de volta do qmail, já podem dar uma espreitadela ao Apache, pois já abri a porta 80 e a 443 ao exterior:
Pode ver-se que está tudo bem com o HTTP:

# telnet planetgeek.dynip.sapo.pt 80

Trying 192.168.0.101...
Connected to planetgeek.dynip.sapo.pt (192.168.0.101).
Escape character is '^]'.
GET /
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Apache by Mário teste</title>
<style type="text/css">
<!--
.style1 {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 12px;
}
-->
</style>
</head>

<body>
<div align="center">
  <p><br />
      <br />
    <img src="apache.gif" width="537" height="51" /><br />
    <br />
    <br />
    <br />
    <span class="style1">Brought to you by Mário teste<br />
    with a little help from SAPO's dynamic IP service.</span><br />
    <br />
    <br />
  </p>
  <img src="sapo.jpg" width="147" height="112" alt="SAPO" /></div>
</body>
</html>
Connection closed by foreign host.

E com o HTTPS também:

# openssl s_client -connect planetgeek.dynip.sapo.pt:443

CONNECTED(00000003)
depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
verify error:num=27:certificate not trusted
verify return:1
depth=0 /C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
   i:/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=Mario teste/emailAddress=teste@planetgeek.dynip.sapo.pt
---
Server certificate
-----BEGIN CERTIFICATE-----
MIICpzCCAhACAQEwDQYJKoZIhvcNAQEEBQAwgZUxCzAJBgNVBAYTAnB0MQ8wDQYD
VQQIEwZBdmVpcm8xDzANBgNVBAcTBklsaGF2bzENMAsGA1UEChMESG9tZTEOMAwG
A1UECxMFRGV2ZWwxFTATBgNVBAMTDE1hcmlvIEdhbWl0bzEuMCwGCSqGSIb3DQEJ
ARYfZ2FtaXRvQHBsYW5ldGdlZWsuZHluaXAuc2Fwby5wdDAeFw0wNzA4MTgxNzM0
MjdaFw0wODA4MTcxNzM0MjdaMIGhMQswCQYDVQQGEwJwdDEPMA0GA1UECBMGQXZl
aXJvMQ8wDQYDVQQHEwZJbGhhdm8xDTALBgNVBAoTBEhvbWUxDjAMBgNVBAsTBURl
dmVsMSEwHwYDVQQDExhwbGFuZXRnZWVrLmR5bmlwLnNhcG8ucHQxLjAsBgkqhkiG
9w0BCQEWH2dhbWl0b0BwbGFuZXRnZWVrLmR5bmlwLnNhcG8ucHQwgZ8wDQYJKoZI
hvcNAQEBBQADgY0AMIGJAoGBAMDS96JXEp5ExmOKa5LmZZo2Wim1vN2GYpteUm+J
PrT21PONuyjmliTkg2wj2Zo2zyA+gH87STDur98IX+S+nVvSwqBqm9sZIoxgPm9f
ORlkEC+8Y9YyUB7hSzyEOBrIHgZPGTA1L+s5zKxntY/Boz+PILwKeuDhtWcXbKcR
01f7AgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA1/Nm7AzaLfr/l66Cy5aXJjzWlgMT
gv/J9XWp+rWHHn18PHiBv+gH2vhEzQzBpgoLHE3vsIjguRrm4Q+REoLpKk0X595S
uRFuchcQn7y89Ss3PEk4nPsWv49yNFGDGzJazqPAYKEeQ+fzQXzge2IGa/OBO0LM
eo9PbzmOBHPqF20=
-----END CERTIFICATE-----
subject=/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=planetgeek.dynip.sapo.pt/emailAddress=teste@planetgeek.dynip.sapo.pt
issuer=/C=pt/ST=Aveiro/L=Ilhavo/O=Home/OU=Devel/CN=Mario teste/emailAddress=teste@planetgeek.dynip.sapo.pt
---
No client certificate CA names sent
---
SSL handshake has read 1247 bytes and written 340 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: A05F9289D750D1C996F0ED6246F739ACC3D039BA055CCD3F553A9565B376C1A7
    Session-ID-ctx:
    Master-Key: BDC80C19131A3C17D90AC863041DE22948C2143C56055956DCEB00FCFB9A5CCABA332C83A3FBF40A9784872816E88651
    Key-Arg   : None
    Start Time: 1187464955
    Timeout   : 300 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---
GET /
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Apache by Mário teste</title>
<style type="text/css">
<!--
.style1 {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 12px;
}
-->
</style>
</head>

<body>
<div align="center">
  <p><br />
      <br />
    <img src="apache.gif" width="537" height="51" /><br />
    <br />
    <br />
    <br />
    <span class="style1">Brought to you by Mário teste<br />
    with a little help from SAPO's dynamic IP service.</span><br />
    <br />
    <br />
  </p>
  <img src="sapo.jpg" width="147" height="112" alt="SAPO" /></div>
</body>
</html>
closed
tags:
publicado por gamito às 20:15
link do post | comentar

Servidor caseiro - IX

Antes de mais, dois pequenos apontamentos:

  • A ventilação da máquina faz muito barulho na sala, acho que vou puxar um cabo até ao roupeiro e trancá-la lá :P

  • No ficheiro /root/.bash_profile, na linha

    PATH=$PATH:$HOME/bin

    convém adicionar o PATH para os binários do MySQL e do Apache:

    PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/httpd/bin

    de modo a que não seja necessário digitar o PATH completo para um comando.
Portanto, neste momento, tenho instalado:
  • Um sistema Linux, CestOS 5, com vários serviços;
  • MySQL (RDBMS);
  • PostgreSQL (RDBMS);
  • Apache com suporte a SSL, PHP, PERL e Python (Servidor web com suporte a três linguagens dinãmicas;
  • Samba (servidor de ficheiros);
  • Cache de DNS;
Estado da arte:

# free
             total       used       free     shared    buffers     cached
Mem:        385560     372096      13464          0      21156     282968
-/+ buffers/cache:      67972     317588
Swap:       787176        100     787076

Ora tenho 385560 bytes de RAM total, 13464 livres, 21156 buffered e 282968 cached, o que dá 317588 bytes disponíveis.

Nada mal, não senhor, para um P-III a 500 MHz e 318 MB de RAM.

O que é que dizem a isto os "Microsoft mans", é que numa máquina destas nem um Windows Server instala.

Mas vou deixar um comentário mais completo sobre este assunto no último artigo desta série.

Para já, vou seguir para o qmail.

Back in a while...
tags:
publicado por gamito às 17:15
link do post | comentar | ver comentários (2)

Servidor caseiro - VII

Acabei de instalar o Apache com suporte a tudo quanto me interessa: PHP, PERL, Python, SSL e modsecurity.

  • Pré-configuração do Apache:

    # ./configure --prefix=/usr/local/httpd

    Por agora fica assim, volto a ele mais tarde

  • Instalação de pré-requisitos para o PHP

    Para configurar o PHP com suporte a mcrypt e mhash, é necessário compilar as respectivas bibliotecas. Estão no SourceForge para download.

    Antes, é necessário adicionar ao ficheiro /etc/ld.so.conf as linhas

    /lib
    /usr/lib
    /usr/local/lib

    para que o sistema as reconheça (embora na verdade, só seja estrictamente necessária a última).

    A compilação é feita do mesmo modos para os três ficheiros:

    # ./configure && make && make install && ldconfig

    e deve ser feita por esta ordem: libmcrypt, mhash, mcrypt

    Para o PHP suportar IMAP, o que é uma coisa muito útil para o webmail :), tenho que  compilar a biblioteca c-client da Universidade de Washington que pode ser encontrada em ftp://ftp.cac.washington.edu/imap/

    Antes da compilação, devo editar o ficheiro Makefile e na linha EXTRACFLAGS, colocar à frente, =-ldl, caso contrário, a compilação aborta.

    Compilo:

    # make slx

    A seguir, são necessários uns truques para que o PHP integre bem a biblioteca e não aborte a compilação com erros:

    # mkdir lib
    # mkdir include
    # cd c-client
    # cp *.c ../lib
    # cp *.h ../include
    # cp c-client.a ../lib/libc-client.a

    Deixo por agora as coisas como estão.

  • Instalação do mod_ssl

    O mod_ssl deve ser o primeiro módulo para o Apache.

    Lembram-se do certifocado e chave que criei num artigo anterior ? Pois bem, preciso dele agora:

    # ./configure --with-apache=../apache_1.3.37  -with-crt=/usr/local/ssl/bin/server.crt --with-key=/usr/local/ssl/bin/server.key

  • Instalação do mod_perl

    # perl Makefile.PL APACHE_SRC=../apache_1.3.37/src NO_HTTPD=1 USE_APACI=1 PREP_HTTPD=1 EVERYTHING=1
    # make
    # make install


  • Instalação do modsecurity

    # cd apache1/
    # cp mod_security.c ../../apache_1.3.37/src/modules/extra/

  • Instalação do PHP

    # export LDFLAGS=-lstdc++

    # ./configure --with-mysql=/usr/local/mysql \
      --with-pgsql=/usr/local/pgsql \
      --with-apache=../apache_1.3.37 \
      --with-openssl=/usr/local/ssl \
      --enable-track-vars \
      --with-xml \
      --with-mcrypt \
      --with-gettext \
      --with-ldap \
      --enable-sockets \
      --enable-wddx \
      --enable-xslt \
      --with-xsltsablot \
      --with-zlib \
      --with-kerberos \
      --enable-bcmath \
      --with-bz2 \
      --enable-calendar \
      --with-jpeg-dir \
      --with-tiff-dir \
      --with-curl \
      --with-curlwrappers \
      --with-gdbm \
      --with-expat \
      --with-iconv-dir \
      --with-dom-xslt \
      --with-dom-exslt \
      --with-dom \
      --with-db4 \
      --with-flatfile \
      --with-fam \
      --enable-exif \
      --with-gd \
      --enable-ftp \
      --with-png-dir \
      --with-xpm-dir \
      --with-ttf \
      --with-iconv \
      --with-mhash \
      --with-ncurses \
      --enable-soap \
      --with-readline \
      --with-pear \
      --enable-snmp \
      --enable-ucd-snmp-hack \
      --enable-mbstring \
      --enable-mbstr-enc-trans \
      --with-imap=/usr/local/src/imap-2006e \

    # make

    # make install

    # cp php.ini-dist /usr/local/lib/php.ini

  • Instalação do Apache

    Eu tinha dito num artigo anterior que ia precisar do código do OpenSSl e portanto, não o devia apagar. É agora.

    # SSL_BASE=../openssl-0.9.8e ./configure --prefix=/usr/local/httpd \       --activate-module=src/modules/perl/libperl.a \  --activate-module=src/modules/php5/libphp5.a \
    --enable-module=ssl \
    --activate-module=src/modules/extra/mod_security \
    --enable-module=security \
    --enable-module=rewrite \
    --enable-shared=rewrite \
    --enable-module=proxy \
    --enable-shared=proxy

    # make

    # make install

    O ficheiro ctl do Apache não funciona com o chkconfig de sistemas Red Hat based, pelo que para que arranque automaticamente com o startup do servidor e páre quando se desligue, é necessário efectuar o trabalho manualmente:

    # cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
    # cd /etc/rc3.d
    # ln -s ../init.d/httpd S99httpd
    # ln -s ../init.d/httpd K99httpd

    (se tiver interface gráfica, deve fazer o mesmo para o directório /etc/rc5.d)

    Como o Apache foi compilado com suporte a SSL, sempre que arranca, pergunta-me a password com que foi criado o certificado, o que é "secante".
    Essa pergunta pode ser retirada, embora não seja aconselhável, muito menos em ambientes de produção. Fica a nota.
    Para isso, no directório /usr/local/httpd/conf/ssl.key, corro os seguintes comandos:

    # cp server.key server.key.org
    # openssl rsa -in server.key.org -out server.key
    # chmod 400 server.key

    O modsecurity tem um bug que faz com que a linha inserida no httpd.conf seja:

    AddModule mod_security

    Tenho que a mudar para:

    AddModule mod_security.c

    Se quisermos que o Apache arranque sempre com suporte a SSL, editamos o ficheiro /etc/init.d/httpd e muda-mos a linha nº 87 de

    if $HTTPD; then

    para

    if $HTTPD -DSSL; then

    A configuração do httpd.conf fica ao gosto do freguês.

  • Instalação do mod_python

    A instalação do mod_python é feita depois do Apache estar compilado.

    Quando se instala o mod_python, o Apache no arranque queixa-se de que pode crashar.
    Para evitar isso, edita-se a o ficheiro src/Makefile.in e muda-se a linha

    OPT=

    para

    OPT=-DEAPI

    # ./configure --with-apxs=/usr/local/httpd/bin/apxs

    # make dso
    # make install

    Tenho que adicionar esta linha ao httpd.conf:

    LoadModule python_module /usr/local/httpd/libexec/mod_python.so

    # /etc/init.d/httpd restart

    E pronto, aqui está o Apache a correr com suporte a SSL:

    # ps ax

    (...)

    5600 ?        Ss     0:00 /usr/local/httpd/bin/httpd -DSSL
    5601 ?        S      0:00 /usr/local/httpd/bin/httpd -DSSL
    5602 ?        S      0:00 /usr/local/httpd/bin/httpd -DSSL
    5603 ?        S      0:00 /usr/local/httpd/bin/httpd -DSSL
    5604 ?        S      0:00 /usr/local/httpd/bin/httpd -DSSL
    5605 ?        S      0:00 /usr/local/httpd/bin/httpd -DSSL

    (...)

See ya...
tags:
publicado por gamito às 15:29
link do post | comentar

Servidor caseiro - VI

Ponto da situação, neste momento, com o MySQL, o PostgreSQL, o OpenLDAP e mais uma série de serviços a correr, para além do próprio sistema operativo, é claro, temos o seguinte:

# free
             total       used       free     shared    buffers     cached
Mem:        385560     341920      43640          0      48152     235680
-/+ buffers/cache:      58088     327472
Swap:       787176          0     787176

Ora, tenho um total de 385560 de RAM na máquina, com a indicação de que 341920 estão a ser utilizados.
Contudo, tenho 43460 livres + 48152 buffered e 235680 cached e nada na swap.

Nada mau :)

Processos instalados:

# ps ax
2196 ?        Ss     0:00 /bin/sh /command/svscanboot
2248 ?        S      0:00 svscan /service
2249 ?        S      0:00 readproctitle service errors:....................................................
2250 ?        S      0:00 supervise dnscache
2251 ?        S      0:00 supervise log
2252 ?        S      0:00 /usr/local/bin/dnscache
2253 ?        S      0:00 multilog t ./main
4344 ?        Rs     0:00 sshd: root@pts/0
14346 pts/0    Ss     0:00 -bash
14511 ?        S      0:00 /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
14513 ?        Ss     0:00 postgres: writer process
14514 ?        Ss     0:00 postgres: stats collector process
14558 pts/0    S      0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/planetgeek.dynip.sapo.pt.pid
14593 pts/0    Sl     0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/planetge
14611 pts/0    R+     0:00 ps ax

Vou avançar para o Apache.


See you soon...

tags:
publicado por gamito às 10:19
link do post | comentar
Sexta-feira, 17 de Agosto de 2007

Servidor caseiro - V

A instalação da máquina

tags:
publicado por gamito às 21:23
link do post | comentar

Servidor caseiro - IV

O serviço de IP dinâmico do SAPO, configura o DNS – incluindo o MX record para o mail – para o meu IP fixo, portanto, não dá para instalar um servidor de DNS para criar subdomínios, pois o SAPO não os delega.

No entanto, e especialmente porque vai ter um servidor de mail, uma cache de DNS é sempre um must have.

  • Instalar o djbdns

    O software que utilizo para DNS é o djbdns, também do Prof. Dan Bernstein, como se costuma dizer, o djbdns é o DNS made easy.

    Primeiro instalo as daemontools, só depois o djbdns. Falarei delas quando instalar o qmail.

    # groupadd Gdnscache
    # useradd -s /bin/false -g Gdnscache Gdnscache
    # groupadd Gdnslog
    # useradd -s /bin/false -g Gdnslog Gdnslog

    # dnscache-conf Gdnscache Gdnslog /etc/dnscache
    # ln -s /etc/dnscache /service
    # sleep 5
    # svstat /service/dnscache

    O servidor de DNS passa agora a ser o localhost,
    pelo que o ficheiro /etc/resolv.conf passa a
    conter a seguinte linha:

    nameserver 127.0.0.1

    Para testar, executo o comando:

    # dnsip www.planetgeek.org

    Como nota final, o código do djbdns já tem alguns
    IPs de root servers desactualizados, pelo que
    convém actualizá-los.
    Para obter os IPs dos root servers actuais, executo:

    # dnsq ns . a.root-servers.net

    [root@planetgeek servers]# dnsq ns . a.root-servers.net
    additional: a.root-servers.net 3600000 A 198.41.0.4
    additional: b.root-servers.net 3600000 A 192.228.79.201
    additional: c.root-servers.net 3600000 A 192.33.4.12
    additional: d.root-servers.net 3600000 A 128.8.10.90
    additional: e.root-servers.net 3600000 A 192.203.230.10
    additional: f.root-servers.net 3600000 A 192.5.5.241
    additional: g.root-servers.net 3600000 A 192.112.36.4
    additional: h.root-servers.net 3600000 A 128.63.2.53
    additional: i.root-servers.net 3600000 A 192.36.148.17
    additional: j.root-servers.net 3600000 A 192.58.128.30
    additional: k.root-servers.net 3600000 A 193.0.14.129
    additional: l.root-servers.net 3600000 A 198.32.64.12
    additional: m.root-servers.net 3600000 A 202.12.27.33
    [root@planetgeek servers]#

    São estes os IPs a inserir no ficheiro /etc/dnscache/root/servers/@

    Isto faz o trabalho:

    # dnsq ns . a.root-servers.net | cut -d' ' -f5 | tail -n13 > @

    Vou ver se funga:

    [root@planetgeek servers]# svstat /service/dnscache/
    /service/dnscache/: up (pid 31737) 353138 seconds
    [root@planetgeek servers]#

    Funga :)

I'll be back...
tags:
publicado por gamito às 20:21
link do post | comentar

Servidor caseiro - III

Ok, sistema instalado, um módulo de RAM foi à viola, estou com 384 MB de RAM.

Instalei o OpenSSL, o MySQL e o PostgreSQL. A compilação deve ser feita no directório /usr/local/src

  • Instalar OpenSSL

    # ./config no-idea
    # make depend
    # make
    # make install

    No final, devemos ficar com tudo em /usr/local/ssl/

    Criar a nossa Certificate Authority
    Mudamos para /usr/local/ssl/bin/ e executamos

    # cd /usr/local/ssl
    # ./openssl genrsa -des3 -out ca.key 1024

    É-nos pedida uma password para o ficheiro ca.key
    De seguida criamos um auto-assinado certificado CA com a respectiva chave RSA:

    # ./openssl req -new -x509 -days 365 -key ca.key -out ca.crt

    É-nos pedida a password que demos anteriormente e é-nos colocada uma série de perguntas a que se responde facilmente.

    Criar um certificado SSL
    Criamos uma chave privada com

    # ./openssl genrsa -des3 -out server.key 1024

    É-nos novamente pedida uma password.
    De seguida criamos um Certified Signing Request com a chave privada RSA:

    # ./openssl req -new -key server.key -out server.csr

    Mais uma vez é-nos colocada a mesma série de questões, mas atenção: quando nos for perguntado o Common Name, devemos dar o Full Qualified Domain Name. Esta questão é muito importante.
    É-nos também pedida uma challenge password.

    Assinar o server.csr
    Para que possamos ter um certificado SSL válido, usamos a nossa CA para assinar o ficheiro server.csr
    O mod_ssl tem um utilitário para o fazer. Descomprimimos o ficheiro do código e na directoria pkg.contrib existe um executável denominado sign.sh
    Copiamo-lo para /usr/local/ssl/bin/ e neste directório executamos

    # ./sign.sh server.csr

    É-nos pedida a password que demos antes e respondemos y às duas perguntas seguintes. Se tivermos sucesso podemos ler a mensagem:

    Write out database with 1 new entries
    Data Base Updated
    CA Verifying: server.crt <-> CA cert
    server.crt: OK

    Não se apaga o directório do código fonte do openssl e do mod_ssl, pois adiante será necessário recorrer a eles de novo.


  • Instalar MySQL

    # ./configure --prefix=/usr/local/mysql
    # make
    # make install

    De seguida, deve executar-se o comando

    # scripts/mysql_install_db

    Agora cria-se um utilizador e um grupo mysql:

    # groupadd mysql
    # useradd -g mysql -s /bin/false mysql

    De seguida, no directório /usr/local/mysql/var, executam-se os comandos:

    # chown -R mysql.mysql .
    # find . -follow -type d -print | xargs chown mysql.mysql

    Deve evitar-se que outros utilizadores acedam aos dados do MySQL. Para isso, utilizam-se no mesmo directório, os comandos:

    # chmod -R go-rwx .
    # find . -follow -type d -print | xargs chmod go-rwx

    Em /usr/local/src/mysql-5.0.45/support-files existe um ficheiro denomindao mysql.server. Copia-se para /etc/init.d e dão-se-lhe permissões de execução:

    # cd /usr/local/src/mysql-4.0.12/support-files
    # cp mysql.server /etc/init.d/mysqld
    # cd /etc/init.d
    # chmod +x mysqld

    Arranque o servidor com o comando:

    # /etc/init.d/mysqld start

    Para que o MySQL arranque automaticamente quando ligar o servidor, execute o comando:

    # chkconfig --level 35 mysqld on

    Dê uma password ao utilizador root do MySQL (não confundir com o root do sistema, a semelhança de nomes é pura coincidência) executando o comando:

    # /usr/local/mysql/bin/mysqladmin -u root password segredo

    O root do MySQL fica então com a password segredo.


  • Instalar o PostgreSQL

    # ./configure
    # gmake
    # gmake install
    # groupadd postgres
    # useradd postgres
    # mkdir /usr/local/pgsql/data
    # chown -R postgres.users /usr/local/pgsql/data
    # su - postgres
    # /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
    # /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data > logfile 2>&1 &

    No directório contrib/start-scripts, existe um ficheiro denominado linux que é um script para arrancar o PostgreSQL. Vamos copiá-lo para /etc/init.d, dar-lhe permissões de execução e tornar permanente o seu arranque quando se ligue o servidor:

    # cp linux /etc/init.d/pgsqld
    # cd /etc/init.d
    # chmod +x pgsqld
    # chkconfig --level 35 pgsqld on
Ok, já tenho o sistema instalado, o MySQL e o PostgreSQL.


Keep in touch.
tags:
publicado por gamito às 13:19
link do post | comentar

Servidor caseiro - II

Depois de muitas trocas e baldrocas e de ter comprado um disco IDE de 40 GB por 10 euros :), voltei ao P-III a 500 MHz com 512 MB de RAM.

Também lhe pus o DVD e a ZIP que estavam no P-II

Vou postando aqui os passos que vou fazendo para a instalação do servidor todo, para o caso de alguém querer seguir, embora presuma que quem o quiser, saiba descompactar ficheiros e coisas básicas desse género.

Estou aberto a sugestões e disponível para quem precisar de ajuda.
É só postar nos comentários.
  • Instalação do CentOS 4.5

    A instalação é muito fácil, basta ir seguindo os passos. No meu caso aqui para casa, basta-me uma partição /boot (convém ter 256 MB, mais ou menos), uma / e uma swap;

    Não escolhi nada que seja gráfico, à excepção das bibliotecas de desenvolvimento do X. Quem quiser e se sentir mais à vontade, pode instalar o GNOME ou o KDE, assim tem acesso a uma série de ferramentas administrativas gráficas.
    Se quiser aprender Linux a sério, desaconselho, mas hey, é a minha opinião;

    Depois de instalado o passo seguinte é fazer o update ao sistema. Para isso, é preciso primeiro importar a chave GPG do CentOS com que os pacotes são assinados:

    # rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4

    Depois, fazer o update ao sistema operativo:

    # yum update

    No final é preciso reiniciar, pois nas actualizações veio um kernel novo.

    Eu costumo editar o ficheiro /etc/sysconfig/i18n e onde está UTF-8, mudo para ISO-8859-1, mas isto é à escolha do freguês.

    Se se instalar o mrtg, o crontab executa-o a cada 5 minutos – uma linha para login e outra para logout. Até aqui tudo bem, só que enche o ficheiro /var/log/messages de lixo.
    Para pôr os logs do mrtg noutro ficheiro, por exemplo, /var/log/auth, edito o ficheiro /etc/syslog.conf e mudo a linha:

    *.info;mail.none;authpriv.none;cron.none /var/log/messages

    para:

    *.info;auth.none;mail.none;authpriv.none;cron.none /var/log/messages

    Adicionar també a linha:
    auth.* /var/log/auth

    Faço o logrotate também a este ficheiro:
    Edito o ficheiro /etc/logrotate.d/syslog e no topo, adiciono a linha:
    /var/log/auth

    Gravo o ficheiro e faço um restart ao syslogd:
    # /etc/init.d/syslog restart

    E pronto, os logs do mrtg vão para /var/log/auth.

    Alguns serviços que vêm a correr por omissão no sistema, são absolutamente desnecessários e apenas consomem recursos (poucos obviamente, mas quando se tem uma máquina com pouca RAM, tudo conta).
    Pessoalmente, costumo sempre desligar o gpm e o pcmcia, pelo menos:

    # cd /etc/init.d/
    # chkconfig --level 3 gpm off
    # chkconfig --level 3 pcmcia off
    # ./pcmcia stop
    # ./gpm stop

    Por outro lado, o OpenLDAP não vem a  correr por  omissão, pelo que  tenho que  o colocar:

    # chkconfig --level 3 ldap on
    # ./ldap start

    (se estiver a correr uma interface gráfica, o parâmetro --level do chkconfig deve ser --level 35)
E está o sistema pronto a ser "trabalhado" e a correr :)


I'll keep you posted...
tags:
publicado por gamito às 11:19
link do post | comentar
Quinta-feira, 16 de Agosto de 2007

Servidor caseiro - I

Bem, como sempre nestas coisas de hardware antigo, a Ley de Murphy não perdoa.

O belo disco rígido do P-III deu o berro, de modo que tive que pegar num P-II MMX a 233 MHz que aqui tenho e recomeçar o trabalho.
Este só tem 128 MB de RAM e 6,8 GB de disco rígido, mas tem DVD, dois leitores de CD e uma ZIP.
Vamos ver o que o Linux vale com tão pouca memória :)

Eu vou relatando à medida que for instalando para quem possa interessar.

Para já, vou instalar o CentOS 5 (que para quem não sabe é um clone livre do Red Hat Enterprise Linux 5). É exactamente a mesma coisa.

Eu cá gosto de compilar umas coisas ao meu gosto para que façam aquilo que eu quero (também poderia recompilar os SRPMs), eu sei, é discutível, mas aqui vai aquilo que eu não vou instalar da distribuição e que vou compilar:
  • Apache, PHP (incluindo suporte a mcrypt, mhash, IMAP e mais uma carrada de coisas), mod_perl, mod_python, mod_ssl e mod_security;

  • OpenSSL;

  • MySQL e PostgreSQL (PHP compilado com suporte a estas duas RDBMS);

  • SpamAssassin;

  • Também não instalo o X, nos meus servidores é só runlevel 3, aka consola.

See you...
tags:
publicado por gamito às 18:15
link do post | comentar | ver comentários (2)
Quarta-feira, 15 de Agosto de 2007

Quando falta a inspiração para blogar...


tags:
publicado por gamito às 16:15
link do post | comentar
Terça-feira, 14 de Agosto de 2007

Servidor caseiro

Hoje, decidi-me a começar a instalação do meu primeiro servidor caseiro, utilizando o novo serviço de IP dinâmico do SAPO.

Características:
  • Linux CentOS 5
  • PIII a 500 MHz, 256 MB RAM, HD 20 GB
  • djbdns;
  • qmail LDAP + ezmlm + SpamAssassin + qmail-scanner + vpopmail + etc.
  • Apache + Squid + PHP + mod_perl + mod_python  + mod_ssl + mod_security + etc.
  • Zope
  • MySQL + PostgreSQL
  • IPTABLES
  • OpenLDAP
  • Samba
  • PureFTPd
Devo ter-me esquecido de alguma coisa.
Bem, vou começar, ainda vai demorar um bocado numa máquina destas.
tags:
publicado por gamito às 20:38
link do post | comentar | ver comentários (2)

Add-On Mac OS X look para Thunderbird

O único add-on que eu utilizava para o Thunderbird era o AppleMail que lhe dava um look Mac OS X absolutamente espectacular.

Infelizmente, deixou de ser compatível com o Thunderbird 2.x e o autor do add-on não o actualizou.

Contudo, descobri um modo de ultrapassar o problema.
Descomprimindo o ficheiro .jar e abrindo o install.rdf, basta sustituir a linha

<em:maxVersion>1.5.0.*</em:maxVersion>

por

<em:maxVersion>3.0a1</em:maxVersion>

e voltar a cmprimir, para .zip, por exemplo.

E fica a funcionar perfeitamente em 2.0.0.6, como podem ver:



Saca daqui a versão já modificada por mim e pronta a utilizar, ou a original e faz tu a modificação.

Depois de instalares, tens que ir a Tools -> Addons -> Themes e escolher o Apple Mail.

Funciona em Windows e em Linux.

Enjoy :)
tags:
publicado por gamito às 18:04
link do post | comentar | ver comentários (1)
Segunda-feira, 13 de Agosto de 2007

SourceForge no meu PC

Numa empresa na qual trabalhei, usava-se tanto o SourceForge (que foi comprado pela Collabnet) para a gestão de projectos que acabei por me habituar a ele e instalá-lo no meu portátil para as minhas coisas.

Basta descarregar a ISO e corrê-la no vmplayer, vmware ou vmware server.


O sistema operativo é um CentOS 4.4 e tem tudo o que um developer necessita, para além do software de gestão, como é óbvio.

É um bocadinho pesado, convém ter-se no mínimo 1GB de RAM.



A mesma imagem funciona em Windows e em Linux.
Podem sacar aqui o SourceForge Enterprise Edition e aqui o vmplayer.

E pronto, tenho um SourceForge caseiro.
tags:
publicado por gamito às 18:37
link do post | comentar

Log Me In - Ligação remota ao seu PC Windows

Eu não sou muito adepto destas coisas, mas para quem gostar e puder ser útil, aqui fica.

Através do site Logmein, pode registar-se, fazer o download de uma aplicação e um add-on para o Firefox.




Depois disso, deixe o seu computador Windows de casa ligado e pode ligar-se ao seu computador remotamente através do site. É-lhe pedido o login e a password do seu computador:



E fica a trabalhar no seu computador de casa:



É tudo HTTPS.

Enjoy :)

 
tags:
publicado por gamito às 18:15
link do post | comentar | ver comentários (2)

Notícias do Código Livre

Na semana passada tivemos duas notícias do Código Livre:
  • O Cliente BitTorrent (6) passou a ser código fechado, embora as especificações do protocolo se mantenham abertas;

  • A MySQL AB arranjou um esquema para o MySQL tipo "um MySQL para filhos e outro para enteados".
O caso do BitTorrent, é obviamente um caso de "Hey, vou ganhar uns tostões com isto, que se lixe o código aberto".
Pois, temos pena, mas clientes BitTorrent de código fechado, não obrigado.
Não faltam alternativas livres bem melhores e já me cheira a forks da versão 5.

Já quanto ao MySQL, o assunto tem outros contornos.
O MySQL nunca foi uma excelente RDBMS, contudo, devido à sua simplicidade e facilidade de administração (para a qual o phpMyAdmin muito contribuiu), tornou-se na base de dados mais utilizada em sites web.

Ora, foi precisamente por esta via que os enteados e não os filhos que fizeram do MySQL aquilo que é hoje.
Vamos ver como reagem estas pessoas à atitude da MySQL AB, é que o PostgreSQL está mesmo ao virar da esquina, é uma RDBMS a sério e a transição para quem usa há anos MySQL não é assim tão difícil.

Quer-me parecer que estamos perante dois casos de tiro no pé.

Vamos esperar para ver...
tags:
publicado por gamito às 13:39
link do post | comentar | ver comentários (1)
Sábado, 11 de Agosto de 2007

Sporting 1 - Clube do Bairro das Antas 0

And that's just about it :)
tags:
publicado por gamito às 22:50
link do post | comentar | ver comentários (11)
Sexta-feira, 10 de Agosto de 2007

Flares em HeatSeeker para PSP

Por acaso alguém tem o jogo HeatSeeker para a PSP que me saiba dizer como é que raio se disparam os flares para despistar os mísseis inimigos que vêm contra o nosso avião ?

No manual fala disso, mas não diz qual é o botão ou combinação de botões, já tentei de tudo e não consigo.
Durante o jogo, aparece o alarme para lançar os flares e tunga, plane down :(

Fénix, não consigo passar uma missão por causa disto.

tags:
publicado por gamito às 17:33
link do post | comentar | ver comentários (1)

SAPO Mobile

Fui um dos 100 seleccionados para beta-tester do SAPO Mobile que há-de vir :)

Para já, só posso dizer que está espectacular.
tags:
publicado por gamito às 16:16
link do post | comentar | ver comentários (1)

Horas de entertenimento

... a alta velocidade.

Dois jogos de carros fantásticos.
Especialmente contra outra pessoa em game sharing por wireless.

tags:
publicado por gamito às 16:15
link do post | comentar | ver comentários (1)
Quinta-feira, 9 de Agosto de 2007

O Sporting, claro

Isto já não é novidade, mas qual outro clube se não o Sporting poderia surgir com uma ideia tão invovadora, tão cheia de classe e tão à frente ?

Introduza os seus dados e clique em "Enviar" para ver o vídeo.



Tenha o seu telemóvel ou telefone fixo ligado ao pé de si enquanto corre o vídeo.

O link é este.

PS: O Benfica também inovou, agora têm umas camisolinhas cor-de-rosinha :P
tags:
publicado por gamito às 15:14
link do post | comentar | ver comentários (4)

Portugal, o País dos 11 meses

Neste País, quando chega Agosto, é escusado pensar em fazer qualquer coisa, Portugal está parado.

"Já veio a certidão xpto que pedi ?"
"Ah, sabe como é, Agosto, os serviços estão a meio-gás, o pessoal está de férias..."

"Já veio a peça para o arranjo do meu carro ?"
"Pois, em Agosto muitas fábricas fecham e normalmente a entrega de material atrasa-se, pois efectivamente é uma chatice, compreendo a sua situação, mas efectivamente a peça ainda não chegou, este mês é terrível..."

Ir ao Médico ?
Tudo de férias.

É assim por todo o lado, Portugal dá-se ao luxo de ser o País dos 11 meses.
Depois queixam-se que a produção isto, o PIB aquilo...

Férias repartidas obrigatórias, já.

PS: Já agora, na verdade, Portugal é o País dos 10 meses e meio, porque nos últimos 15 dias do ano, anda tudo a fazer de conta que trabalha, ninguém faz a ponta de um corno à pala das ditas Festas.
Pelo menos no Estado.

tags:
publicado por gamito às 12:16
link do post | comentar | ver comentários (5)
Terça-feira, 7 de Agosto de 2007

As Torres Eólicas em Portugal

Vinha eu no Sábado na Auto-Estrada do Norte, a reparar nas torres eólicas e a pensar, tenho que escrever um artigo sobre isto no meu blog.

Pois bem, o meu colega Obvious adiantou-se, mas aqui vão os meus 2 cents. sobre o assunto à mesma (só li a introdução do artigo do Obvious no Planet Geek, depois de escrever o meu artigo, vou ler o resto a ver se confere).

Ora bem, efectivamente, as torres eólicas de produção de electricidade que estão a surgir como cogumelos no nosso País, são um desastre ambiental, estão a arruinar a nossa paisagem.
Não encontro modo mais suave de dizer isto, tem mesmo que ser pão-pão, queijo-queijo.

Mas o que é mais grave, é que Portugal é um País no qual a produção de energia eléctrica por via eólica não tem qualquer fundamento nem viabilidade.
Por mais parques eólicos que se instalem, Portugal não tem vento suficiente para produzir energia eléctrica por esta via em quantidade sequer... mencionável.
Não, não vale a pena dizer que na minha terrinha faz sempre vento e que as hélices estão sempre a rodar, leiam os relatórios das Agências Internacionais de Energia.

Parques eólicos são realmente eficientes em locais como os Fiordes Nórdicos, por exemplo.

Isto faz-me lembrar que há cá também (confesso que agora não sei exactamente o local) uma instalação de produção de energia eléctrica pela ondulação do mar.

Mas isto anda tudo doido ? Que sentido faz isto num País no qual durante 8 ou 9 meses por ano temos uma ondulação de 1 a 2 metros ?

O que se passa nestes dois casos, é que Portugal quer agarrar o cluster destas tecnologias (e no caso do eólico até está a conseguir), o que por si só não é mau.

Entretanto, vai-se é arruinando a paisagem e isso sim, não é bom.

O que interessa discutir é se vale a pena a troca, ou alternativas que não destruam a paisagem.
tags:
publicado por gamito às 16:04
link do post | comentar | ver comentários (8)
Segunda-feira, 6 de Agosto de 2007

40 Anos de Pink Floyd

Ontem, passaram 40 anos sobre a edição do primeiro álbum dos Pink Floyd – The Piper At The Gates Of Dawn – com Syd Barrett, Roger Waters, Richard Wright e Nick Mason.

O álbum foi um sucesso imediato, pois os Floyd já eram sobejamente conhecidos pelos seus inúmeros concertos underground.

Temas como Astronomy Domine e Interstellar Overdrive rapidamente se tornaram ícones do Rock psicadélico.


Capa de The Piper At The Gates Of Dawn

A história remonta no entanto a 1965 quando Roger Waters, Richard Wright e Nick Mason pertenceram a várias bandas – Sigma 6, The Meggadeaths, The Architectural Abdabs, The Screaming Abdabs e The Abdabs – tendo no final dessas aventuras, convidado Syd Barrett para guitarrista e adoptado o nome Pink Floyd em honra a dois bluesman – Pink Anderson e Floyd Council.
Syd Barrett torna-se o líder dos Pink Floyd, é a sua imagem, alma e coração.

O segundo álbum, A Saucerful Of Secrets, é gravado no famoso Abbey Road Studios da EMI e é lançado no ano seguinte, já com Syd Barret consumido pelo ácido e demais experiências psicadélicas, completamente alheado do mundo.
Devido a este facto, os restantes três Floyds, convidam David Gilmour – amigo do tempo  em que eram colegas na Faculdade de Arquitectura – para guitarrista e assim, este participa em cinco temas do disco.



Capa de A Saucerful Of Secrets

Este, é assim, o único álbum dos Pink Floyd com os cinco.
A Saucerful Of Secrets é hoje considerado como o primeiro álbum de Rock Progressivo da História da Música.
Remember a Day, Set The Controls For The Heart Of The Sun e Corporal Clegg, são temas inesquecíveis e tornaram-se da noite para o dia de audição obrigatória para qualquer melómano avant garde que se prezasse.

Entretanto, Syd Barrett completamente perdido entre as drogas e a fama torna-se incapaz de continuar a dar o seu contributo aos Floyd. Num concerto ao vivo, arranha durante meia-hora seguida, o mesmo acorde na guitarra.
De modo que teve que ser substituído por David Gilmour e nunca mais Syd Barrett tocou com os Pink Floyd.

Seguiu uma carreira a solo com dois álbuns – The Madcap Laughs e Opel – com algum pouco sucesso e refugiou-se na sua loucura em casa da mãe, muito raramente sendo visto em público. Viria a falecer no ano passado.



Syd Barrett

Em 1969, já com a banda com a sua constituição definitiva – Roger Waters, David Gilmour, Richard Wright e Nick Mason – gravam o álbum More, banda sonora para o filme do mesmo nome realizado por Barbet Schroeder.



Capa de More

Apesar de conter temas interessantes como Cyrrus Minor, The Nile Song ou Cymbaline, não é um álbum característico da sonoridade habitual dos Pink Floyd, inclusive, o tema A Spanish Piece é uma incursão de David Gilmour pelo Flamengo Espanhol.
Em 1987 é re-editado em CD.

O álbum seguinte é editado no mesmo ano (1969) e é duplo, sendo um dos discos gravado em estúdio e outro ao vivo. O nome é Ummagumma.
O título Ummagumma é calão de Cambridge para foder.


Capa de Ummagumma

Careful with That Axe, Eugene é talvez um dos temas mais interessantes do disco e o álbum tem uma canção com o título mais longo que alguma vez vi, Several Species of Small Furry Animals Gathered Together in a Cave and Grooving with a Pict.

Este álbum é tido como o impulsionador muitos anos mais tarde da música New Age.

Em 1971, 1972 e 1973, seguem-se os álbuns Atom Heart Mother, Meddle e Obscured by Clouds.

Pessoalmente, apesar de possuir os álbuns e gostar da sua música, considero este como o período menos interessante dos Pink Floyd.

O título do primeiro surge após os Floyd terem lido num artigo de jornal um caso de uma mulher que tinha um pacemaker movido a energia atómica, o álbum era para se chamar The Amazing Pudding.



Capa de Atom Heart Mother

O tema Alan's Psychedelic Breakfast é inevitavelmente a imagem de marca do disco gravado com uma orquestra sinfónica.

O álbum Meddle contém o inesquecível e sempre tocado ao vivo até hoje, One Of These Days, um tema forte com David Gilmour na guitarra Hawaiana.



Capa de Meddle

O segundo lado do álbum contém apenas uma faixa, Echoes.

O último álbum deste trio, Obscured by Clouds, é novamente uma banda sonora, desta feita para o filme La Vallé do mesmo realizador de More.
É um álbum superior a More, na minha opinião e muito mais homogéneo.



Capa de Obscured By Clouds

Roger Waters apenas compôs uma das canções do disco – Free Four – na qual aborda pela primeira vez, a morte do pai, tema que recuperarei adiante.

Em 1973, é lançado aquele que é um dos álbuns-bandeira dos pink Floyd – The Dark Side Of The Moon.
O álbum é considerado como um marco na música Rock, a revista Rolling Stone elegeu-o como o 43º melhor álbum da História, esteve 763 semanas no Billboard 200 do Estados Unidos e é o 5º álbum mais vendido de sempre no mundo.
Ainda hoje se vende na casa dos milhões anualmente. Em 2004, por exemplo, venderam-se 40 milhões de unidades.

O disco foi produzido por Alan Parsons, sim, o mesmo do Alan Parson's Project.

É o primeiro de cinco discos em que as letras das canções são todas de Roger Waters.



Capa de The dark Side Of the Moon

Time, Money, Brain Damage, Eclipse e The Great Gig In The Sky, ficarão para sempre na História da Música Rock.
A voz de Clare Torry no último dos temas mencionados é outro ícone dos Pink Floyd.

Por esta altura, já Roger Waters era o líder incontestado dos Pink Floyd e surge verdadeiramente pela primeira vez os traumas que durante tempos viriam a assolar a música da banda.
O primeiro é Syd Barrett que nunca esqueceram.

A letra da canção Brain Damage é escrita com ele no pensamento:

The lunatic is on the grass.
The lunatic is on the grass.
Remembering games and daisy chains and laughs.
Got to keep the loonies on the path.

The lunatic is in the hall.
The lunatics are in my hall.
The paper holds their folded faces to the floor
And every day the paper boy brings more.

And if the dam breaks open many years too soon
And if there is no room upon the hill
And if your head explodes with dark forebodings too
I'll see you on the dark side of the moon.

The lunatic is in my head.
The lunatic is in my head
You raise the blade, you make the change
You re-arrange me 'til I'm sane.
You lock the door
And throw away the key
There's someone in my head but it's not me.

And if the cloud bursts, thunder in your ear
You shout and no one seems to hear.
And if the band you're in starts playing different tunes
I'll see you on the dark side of the moon.

 
Wish You Were Here é editado em 1975 e todas as letras do álbum são dedicadas a Syd Barrett.
É um excelente conjunto de músicas, a começar pela que dá o nome ao álbum e Shine On You Crazy Diamond.

Em Wish You Were Here, os Floyd cantam:

So, so you think you can tell
Heaven from Hell,
Blue skys from pain.
Can you tell a green field
From a cold steel rail?
A smile from a veil?
Do you think you can tell?

And did they get you to trade
Your heros for ghosts?
Hot ashes for trees?
Hot air for a cool breeze?
Cold comfort for change?
And did you exchange
A walk on part in the war
For a lead role in a cage?

How I wish, how I wish you were here.
We're just two lost souls
Swimming in a fish bowl,
Year after year,
Running over the same old ground.
What have we found?
The same old fears.
Wish you were here.
Capa de Wish You Were Here


David Gilmour e Richard Wright afirmariam anos mais tarde num programa de rádio que Wish You Were Here é o seu disco preferido de sempre, mas a sua concepção trouxe clivagens à banda e Roger Waters assume o controle total de todos os processos na banda.

1977 é o ano de edição de Animals, na minha opinião, provavelmente o álbum mais atípico dos Pink Floyd.
É de uma extrema crueza musical e poética, mas ao mesmo tempo belo.
Retrata vários tipos de pessoas comparando-as com animais.

Dogs:

You gotta be crazy, you gotta have a real need.
You gotta sleep on your toes, and when you're on the street,
You gotta be able to pick out the easy meat with your eyes closed.
And then moving in silently, down wind and out of sight,
You gotta strike when the moment is right without thinking.

And after a while, you can work on points for style.
Like the club tie, and the firm handshake,
A certain look in the eye and an easy smile.
You have to be trusted by the people that you lie to,
So that when they turn their backs on you,
You'll get the chance to put the knife in.


Sheep:


Harmlessly passing your time in the grassland away;
Only dimly aware of a certain unease in the air.
You better watch out,
There may be dogs about
I've looked over Jordan, and I have seen
Things are not what they seem.

What do you get for pretending the danger's not real.
Meek and obedient you follow the leader
Down well trodden corridors into the valley of steel.
What a surprise!
A look of terminal shock in your eyes.
Now things are really what they seem.
No, this is no bad dream.



Capa de Animals

O álbum reflecte o olhar dos Floyd, em particular de Roger Waters sobre o Sistema Capitalista e cada canção, que tem um nome de um animal, representa um tipo de classe desta Sociedade.

Em 1979, surge aquele que é porventura o mais conhecido dos álbuns dos Pink Floyd, The Wall.

Neste duplo álbum conceptual, completamente idealizado e composto por Roger Waters (à excepção do tema Comfortably Numb, composto em parceria com David Gilmour), é dada vida a um personagem chamado Pink, traumatizado na adolescência pela tirania da mãe e opressão dos professores.

Mother:

Hush now baby, baby, dont you cry.
Mother's gonna make all your nightmares come true.
Mother's gonna put all her fears into you.
Mother's gonna keep you right here under her wing.
She wont let you fly, but she might let you sing.
Mama will keep baby cozy and warm.
Ooooh baby ooooh baby oooooh baby,
Of course mama'll help to build the wall.

Hush now baby, baby dont you cry.
Mama's gonna check out all your girlfriends for you.
Mama wont let anyone dirty get through.
Mama's gonna wait up until you get in.
Mama will always find out where you've been.
Mama's gonna keep baby healthy and clean.
Ooooh baby oooh baby oooh baby,
You'll always be baby to me.

Mother, did it need to be so high?


Another Brick In The Wall - Part II:

We don't need no education
We dont need no thought control
No dark sarcasm in the classroom
Teachers leave them kids alone
Hey! Teachers! Leave them kids alone!
All in all it's just another brick in the wall.
All in all you're just another brick in the wall.



Capa de The Wall


O tema Another Brick InThe Wall - Part II, cuja letra pode ser lida em cima, levantou uma celeuma enorme, em especial no Reino Unido. Argumentou-se tudo em desfavor dos Pink Floyd, que eram contra a Educação, um perigo para as crianças, etc.

Mau grado essas vozes, a atitude do público foi de absoluta rendição, o álbum ganhou 23 discos de platina, vendeu 23 milhões de cópias nos Estados Unidos e 30 milhões no resto do mundo. É o álbum duplo mais vendido da História.

Em Portugal, tanto o single como o álbum, estiveram mais de um ano em nº 1 no top de vendas.
O mesmo aconteceu por todo o mundo.

Em The Wall, chega o segundo dos traumas da música Floydiana, a morte em combate do pai de Roger Waters, piloto de caças na 2ª Guerra Mundial:

Another Brick In The Wall - Part I:

Daddy's flown across the ocean
Leaving just a memory
A snapshot in the family album
Daddy what else did you leave for me?
Daddy, what do you leave behind for me?


Vera:

Does anybody here remember Vera Lynn?
Remember how she said that
We would meet again
Some sunny day?
Vera! Vera!
What has become of you?
Does anybody else here
Feel the way I do?

Os Pink Floyd fariam um único concerto do álbum no Earl's Court de Londres, que só seria lançado em 2000, numa edição especial.

Foi lançado também o filme The Wall, realizado por Alan Parker e com Bob Geldof no papel de Pink, naquele que eu penso ser o projecto menos bem conseguido em toda a carreira dos Pink Floyd.

Apesar do estrondoso sucesso do álbum, este marcaria o início do fim dos Pink Floyd, tal como eram. No final das gravações, Roger Waters despede Richard Wright com o argumento de que este não estaria a ser uma mais-valia para o grupo e que tinha o apoio de David Gilmour e de Nick Mason.
Ambos desmentiram o seu apoio a essa decisão.

Em 1983, sai o último álbum dos Pink Floyd com Roger Waters, The Final Cut.
É um projecto levado a cabo completamente por Roger Waters.
Na contracapa, pode ler-se, "The Final Cut: A Requiem for the Post-War Dream - by Roger Waters, performed by Pink Floyd".
Nesta altura, os Floyd já só eram três, sem Richard Wright.
Tanto David Gilmour como Nick Mason foram meros executantes da música de Roger Waters.

Os Pink Floyd, voltam à questão da morte do pai de Waters (o nome completo de Roger Waters é Roger Fletcher Waters).

The Fletcher Memorial Home:
 
Take all your overgrown infants away somewhere
And build them a home, a little place of their own.
The Fletcher Memorial
Home for Incurable Tyrants and Kings.
And they can appear to themselves every day
On closed circuit T.V.
To make sure they're still real.
It's the only connection they feel.
(...)
Did they expect us to treat them with any respect?
They can polish their medals and sharpen their
Smiles, and amuse themselves playing games for awhile.
Boom boom, bang bang, lie down you're dead.

Safe in the permanent gaze of a cold glass eye
With their favorite toys
They'll be good girls and boys
In the Fletcher Memorial Home for colonial
Wasters of life and limb.

Is everyone in?
Are you having a nice time?
Now the final solution can be applied.


Com este disco, nasce – pela mão de Waters – o terceiro trauma dos Pink Floyd, a guerra.
Em The Final Cut, cujo título já é sugestivo, a guerra percorre todo o disco, a 2ª Guerra Mundial, a Guerra das Maldinas, a Guerra em geral.

The Post War Dream:

Tell me true, tell me why, was Jesus crucified

Is it for this that Daddy died?
Was it for you? Was it me?
Did I watch too much T.V.?
Is that a hint of accusation in your eyes?
If it wasn't for the nips
Being so good at building ships
The yards would still be open on the clyde.
And it can't be much fun for them
Beneath the rising sun
With all their kids committing suicide.
What have we done, Maggie what have we done?
What have we done to England?
Should we shout, should we scream
"What happened to the post war dream?"
Oh Maggie, Maggie what have we done?


Southampton Dock:


They disembarked in 45
And no-one spoke and no-one smiled
There were to many spaces in the line.
Gathered at the cenotaph
All agreed with the hand on heart
To sheath the sacrificial Knifes.
But now
She stands upon Southampton dock
With her handkerchief
And her summer frock clings
To her wet body in the rain.
In quiet desperation knuckles
White upon the slippery reins
She bravely waves the boys Goodbye again.

And still the dark stain spreads between
His shoulder blades.
A mute reminder of the poppy fields and graves.
And when the fight was over
We spent what they had made.
But in the bottom of our hearts
We felt the final cut.

 



Capa de The Final Cut

O álbum, apesar de na minha opinião conter excelente música, foi o menos vendido dos Pink Floyd desde 1971.

Não só isso, como termina com os Pink Floyd a quatro.
Roger Waters sai para uma carreira a solo com intermináveis processos judiciais para impedir que os outros três Floyds pudessem utilizar o nome Pink Floyd.
Perdeu sempre.

Em 1987, os Pink Floyd regressam sem Roger Waters, mas com um novo álbum, A Momentary Lapse Of Reason, título obviamente dirigido a Roger Waters.
No álbum, os Pink Floyd são mencionados apenas como David Gilmour e Nick Mason, Richard Wright tem o estatuto de músico convidado.
Para baixista, convidam nada mais, nada menos do que Tony Levin.

Canções como a que dá o nome ao álbum, Learning To Fly ou On The Turning Away, foram sucessos imediatos.



Capa de A Momentary Lapse Of Reason

Os Pink Floyd fazem-se à estrada numa digressão mundial em 1988, sempre com estádios esgotados e eu, com 18 anitos e quase sem tusto no bolso, meti-me num combóio para Espanha, onde os fui ver no Estádio do Atlético de Madrid.
Ironia do destino, dei o filme das fotos que tirei no concerto a um colega que estava na tropa em Lisboa, ele pô-las a revelar numa loja de fotografia do Chiado e depois foi o incêndio.
Lá se foram as minhas fotos.

Desta digressão é lançado o duplo álbum ao vivo, Delicate Sound Of Thunder.




Capa de Delicate Sound Of Thunder


Em 1994, é lançado aquele que é até ao momento o último álbum de originais dos Pink Floyd, The Division Bell.
Na minha opinião, é um conjunto de boas canções, mas não está ao nível do que todos esperavam dos Pink Floyd.
Neste disco, Richard Wright já é novamente membro de pleno direito da banda.



Capa de The Division Bell

Este disco daria origem a mais uma digressão mundial em 1994 que passou por Lisboa e esgotou por dois dias consecutivos o já desaparecido Estádio José de alvalade.
Também lá estive :)
Nesta digressão, os Pink Floyd tocaram nos concertos o álbum The dark Side Of The Moon completo.

Viria a dar também origem a um disco da digressão chamado Pulse.



Capa de Pulse

Chega desta forma ao fim (pelo menos até agora) a história dos Pink Floyd, não sem que no ano passado se tivessem voltado a juntar os quatro, 23 anos depois, no concerto Live 8.

De seguida é-lhes feita uma proposta irrecusável, 250 milhões de dólares líquidos para uma digressão com os quatro. Recusaram.

Os fãs dos Pink Floyd ficaram dividos entre aqueles que acham que verdadeiro Pink Floyd é só com Roger Waters e aqueles que também gostam da banda depois da sua saída, o que é o meu caso.

Eu penso que sem tirar qualquer mérito a Roger Waters, os Pink Floyd nunca teriam sido o que foram sem David Gilmour, a sua guitarra e voz também.
A sonoridade e o estilo de tocar David Gilmour são absolutamente inconfundíveis e são também imagem de marca dos Pink Floyd.
Qual é o fã que não sabe de cor o solo de Comfortably Numb, Another Brick In The Wall - Part II ou Shine On You Crazy Diamond, só para citar alguns exemplos ?

Por outro lado, David Gilmour canta algumas das mais emblemáticas canções dos Pink Floyd, Time, Money, Dogs, o refrão de Comfortably Numb, etc.
Algum fã imagina o Time ou o Dogs cantada pelo Roger Waters ?
Não, pois não ?
O próprio Waters também não, pelo menos a julgar pelos seus concertos ao vivo em que são elementos da banda e não ele que as cantam.

Se o Roger Waters foi o cérebro dos Pink Floyd,  David Gilmour foi o coração.

Tanto o Roger Waters como o David Gilmour têm carreiras a solo muito interessantes, mas fica para outro artigo que este já vai longo :)
tags:
publicado por gamito às 16:38
link do post | comentar | ver comentários (4)
Terça-feira, 31 de Julho de 2007

Syd Barrett, 40 anos muito à frente

Quando os Pink Floyd se formaram, era Syd Barrett o seu compositor, guitarrista e alma.

Era um génio, louco como todos e à loucura se rendeu, só participou em dois álbuns, sendo depois substituído por David Gilmour que à altura tocava em bares em França.

Syd Barrett isolou-se do mundo e lançou alguns discos a solo que só pelos seus verdadeiros fãs foram comprados.

Os Pink Floyd prestaram-lhe tributo nos álbuns The Dark Side Of The Moon e especialmente em Wish You Were Here em que todo o álbum lhe é dedicado.

O personagem Pink no filme The Wall também é inspirado na vida de Syd Barrett.

Numa das sessões de gravação de Wish You Were Here, Syd Barrett apareceu no estúdio, gordo e de barbas compridas e só um bom bocado mais tarde os outros Floyds o reconheceram.

Tanto os Pink Floyd como o David Gilmour e o Roger Waters a solo nunca o esqueceram, tocando sempre ao vivo músicas compostas por ele.

Syd Barret viria a falecer no ano passado e foi nessa altura que muitas bandas que são hoje consideradas como estando muito à frente, vieram a público afirmar que tinha morrido a sua inspiração e falar do amor que nutrem pela sua música.

Deixo-vos aqui com uma canção, Set The Controls For The Heart Of The Sun, com praticamente 40 anos, cantada agora por Roger Waters e vejam lá se o homem não estava mesmo 40 anos à frente do seu tempo.



Little by little the night turns around
Counting the leaves which tremble at dawn
Lotuses lean on each other in yearning
Under the eaves the swallow is resting

Set the controls for the heart of the sun
Over the mountain watching the watcher
Breaking the darkness waking the grapevine
One inch of love is one inch of shadow
Love is the shadow that ripens the wine

Set the controls for the heart of the sun
The heart of the sun...
The heart of the sun...

Witness the man who raves at the wall
Making the shape of his question to heaven
Whether the sun will fall in the evening
Will he remember the lesson of giving ?

Set the controls for the heart of the sun

The heart of the sun...
The heart of the sun...
tags:
publicado por gamito às 16:33
link do post | comentar
Segunda-feira, 30 de Julho de 2007

Tão bom como o David Gilmour ?

David Gilmour há só um, ele e mais nenhum (raios, ando há que tempos para escrever um artigo sobre ele e a sua genialidade como compositor e guitarrista).

Há tempos, comprei o CD (são dois, aliás) do In The Flesh, um concerto do Roger Waters da digressão com o mesmo nome.

Entretanto, dumb me, só hoje é que vi que na caixa vem também um DVD do concerto.
Então não é que um dos três guitarristas da banda que o acompanha tem mesmo jeito para a coisa ?
Ou o gajo é mesmo bom, ou consegue copiar na perfeição os solos do David Gilmour (o que também não é nada fácil, diga-se em abono da verdade).

É canhoto, toca obviamente com a guitarra virada para o lado direito do corpo, mas não troca as cordas, i. e., fica com o bordão em baixo e o Mi fino em cima.

Ora ouçam-no aqui a solar no Another Brick In The Wall, ou no Mother e aqui, muito bom em Dogs.
tags:
publicado por gamito às 21:33
link do post | comentar

4 convites para o Pownce

Ainda tenho 4 convites para o Pownce que são para os 4 primeiros que deixarem aqui o pedido em comentário.

Indicação de e-mail obrigatória para poder fazer o convite.
tags:
publicado por gamito às 11:43
link do post | comentar | ver comentários (3)
Sábado, 28 de Julho de 2007

Thunderbird

Com os rumores que correm sobre a incerteza quanto ao futuro do Thunderbird, fico preocupado.

É que, desde que nasceu o pai do Thunderbird – o Netscape Mail – que utilizo este software para e-mail.

São muuuitos anos e old habits die hard.

Se em Linux é fácil encontrar um substituto (KMail, Evolution...), já em Windows não estou a ver o que passar a utilizar em caso de o Thunderbird acabar.
Recuso-me a usar Outlook Express ou Outlook.
Provavelmente continuarei sempre a usar a última versão do Thunderbird.

De qualquer modo, agradecem-se sugestões :)
tags:
publicado por gamito às 13:46
link do post | comentar | ver comentários (2)

Convites para o Pownce

Tenho 6 para os primeiros 6 que deixarem o pedido em comentário.

E-mail obrigatório, caso contrário não é possível enviá-lo.
tags:
publicado por gamito às 12:15
link do post | comentar | ver comentários (7)
Sexta-feira, 27 de Julho de 2007

Sou só eu que acho...

... uma idiotice esta história de o Ministério da Justiça criar um sistema arbitral para resolver conflitos resultantes de relações de consumo ou de contratos no Second Life ?

Será que os assessores do Ministro da Justiça lhe explicaram bem o que é o Second Life ou andam atrás do hype ?

Esta coisa do Second Life está a atingir proporções absurdas e ridículas, if you ask me.
música: ..
tags:
publicado por gamito às 13:48
link do post | comentar | ver comentários (1)
Quinta-feira, 26 de Julho de 2007

Uma Canção e uma Letra :: II

LLoyd Cole & The Commotions - Perfect Skin

I choose my friends only far too well
I'm upon the pavement, they're all down in the cellar
With their government grants and my I.Q.
They brought me down to size, academia blues
Louise is a girl, I know her well
She's up on the pavement, yes she's a weather girl
And I'm staying up here so I may be undone
She's inappropriate, but then she's much more fun and

When she smiles my way
My eyes go out in vain
She's got perfect skin

Shame on you, you've got no sense of grace, shame on me
Ah just in case I might come to a conclusion
Other than that which is absolutely necessary
And that's perfect skin
Louise is the girl with the perfect skin
She says turn on the light, otherwise it can't be seen
She's got cheekbones like geometry and eyes like sin
And she's sexually enlightened by cosmopolitan and

When she smiles my way
My eyes go out in vain
For her perfect skin
Yeah that's perfect skin

She takes me down to the basement to look at her slides
Of her family life, pretty weird at times
At the age of ten she looked like Greta Garbo
And I loved her then, but how was she to know that

When she smiles my way
My eyes go out in vain
She's got perfect skin

Up eight flights of stairs to her basement flat

Pretty confused huh, being shipped around like that
Seems we climbed so high now we're down so low

Strikes me the moral of this song must

Be there never has been one
tags:
publicado por gamito às 15:36
link do post | comentar

Rattlesnakes

E eis que 20 anos depois de ter gasto o vinil a ouvi-lo, me chega via Amazon essa obra-prima que é o álbum Rattlesnakes dos Lloyd Cole and The Commotions.

Já está a rolar nas minhas orelhas :)

tags:
publicado por gamito às 11:10
link do post | comentar
Quarta-feira, 25 de Julho de 2007

Duas perguntas

  1. Para que é todo este fuzz à volta do BTuga ?

  2. Afinal, o Harry Potter morreu ou não ?
tags:
publicado por gamito às 11:28
link do post | comentar
Terça-feira, 24 de Julho de 2007

The Ultimate Poster

Blade Runner

tags:
publicado por gamito às 17:12
link do post | comentar | ver comentários (1)
Domingo, 22 de Julho de 2007

Socorro... estou viciado, alguém me ajuda ?

HeatSeeker



tags:
publicado por gamito às 07:30
link do post | comentar
Sexta-feira, 20 de Julho de 2007

Uma Canção e uma Letra

The Who - Behind Blue Eyes
(Cantada ao vivo por Suzanne Vega no festival de Jazz de Montreux)

No one knows what it's like
To be the bad man
To be the sad man
Behind blue eyes

No one knows what it's like
To be hated
To be fated
To telling only lies

But my dreams
They aren't as empty
As my conscience seems to be

I have hours, only lonely
My love is vengeance
That's never free

No one knows what it's like
To feel these feelings
Like I do
And I blame you

No one bites back as hard
On their anger
None of my pain and woe
Can show through

But my dreams
They aren't as empty
As my conscience seems to be

I have hours, only lonely
My love is vengeance
That's never free

When my fist clenches, crack it open
Before I use it and lose my cool
When I smile, tell me some bad news
Before I laugh and act like a fool

If I swallow anything evil
Put your finger down my throat
If I shiver, please give me a blanket
Keep me warm, let me wear your coat

No one knows what it's like
To be the bad man
To be the sad man
Behind blue eyes
tags:
publicado por gamito às 16:57
link do post | comentar
Quarta-feira, 18 de Julho de 2007

Via Mário Valente

Hilariante iPhone :)
publicado por gamito às 21:19
link do post | comentar | ver comentários (1)

David Fonseca

Que fique bem claro que adoro a música do David Fonseca, tenho inclusive os dois discos dele a solo.
E não, não são ripados da net, são comprados.

Agora quanto ao vídeo que está na web, apesar de estar muito bem feito, tenho pena, mas a ideia não é original.

Quem como eu viu o concerto da digressão Zoo TV dos U2, já viu de certeza aquele filme, aquela ideia.

Concretamente na encenação que fazem da canção Zoo Station.

O DVD está à venda para quem quiser comparar.

Isto não é uma acusação de plágio, simplesmente, hoje em dia, é difícil ter ideias verdadeiramente originais e as pessoas acabam por, mesmo que inconscientemente, se inspirar em coisas que já viram.

Bem, tenho que comprar este disco também.
tags:
publicado por gamito às 18:49
link do post | comentar | ver comentários (1)
Terça-feira, 17 de Julho de 2007

SAPO :: DNS Dinâmico

O SAPO ADSL agora tem um serviço de DNS dinâmico.

Ora já me registei (é à borliú) e agora vou pegar num P-III que ali tenho, enfiar-lhe o Red Hat Enterprise Linux 5, instalar-lhe um belo de um qmail, Apache, Squid, you name it e ver como a coisa se porta.

SAPO rules, o resto é treta.
tags:
publicado por gamito às 14:51
link do post | comentar | ver comentários (1)

Simuladores de voo

Eu sou um apaixonado por simuladores de voo.

Infelizmente, já há muitos anos que não encontro nenhum decente para PC, tenho comprado os vários Microsoft Flight Simulator que têm saído, mas por um lado não tenho paciência para ler duas (2) resmas de papel impressas com as instruções e por outro gosto mesmo é de simuladores de aviões de guerra.

Ontem, estive numa loja GameSpot e encontrei quatro (4) simuladores de voo de guerra e um de naves espaciais de guerra para a PlayStation Portable.

Comprei tudo, ainda me dói o cartão MultiBanco :P

Aqui vão eles:

  • Ace Combate X – Skies Of Deception

  • MACH – Modified Air Combat Heroes 

  • Aces Of War

  • HeatSeeker

  • Wipeout Pure (o das naves)

Claro que estou divertidíssimo que nem um puto.

Se alguém conhecer um bom simulador de voo de aviões de guerra para PC ou PlayStation3, agradeço a dica.
tags:
publicado por gamito às 12:25
link do post | comentar | ver comentários (5)
Segunda-feira, 16 de Julho de 2007

PSP com cache

Via Tiago Farrajota, fiquei a saber da nova PSP que vem com uma coisa que lhe faz muita falta, um mecanismo de cache.

Na verdade, às vezes é exasperante ter que esperar uma carrada de segundos que seja lido algo do UMD que já o foi pouco tempo antes.

Fico à espera...
tags:
publicado por gamito às 17:46
link do post | comentar
Domingo, 8 de Julho de 2007

De leitura obrigatória

Este artigo no blog do Mário Valente sobre o OOXML.

Mexamo-nos, porque da maneira como este Governo tem andando enrodilhado between the sheets com a Microsoft, estou mesmo a prever o desfecho da coisa.
tags:
publicado por gamito às 15:04
link do post | comentar | ver comentários (1)
Sábado, 7 de Julho de 2007

Ainda numa onda Floydiana...

... tenho trazido o Pulse – concerto dos Pink Floyd ao vivo – a rolar no carro.

Bem, o meu filho de oito anitos ficou tão siderado pelo The Great Gig In The Sky (sim, essa canção na qual uma negra faz o que uma branca não consegue fazer com a voz) que tive que comprar o DVD do concerto para ele ver.

Primeiro foram os AC/DC, agora isto.

Não há dúvidas de que o miúdo tem bom gosto :)
música: .
tags:
publicado por gamito às 13:56
link do post | comentar | ver comentários (2)

Pink Floyd

Os quatro Floyds – David Gilmour, Roger Waters, Richard Wright e Nick Mason – receberam a milionária oferta de 250 milhões de dólares líquidos para fazerem o que falta na música:

uma digressão dos Pink Floyd com os quatro

Graças a Deus recusaram, há coisas que é melhor que fiquem na nossa memória.

PS: Deve ter sido o ranhoso do Roger Waters que roeu a corda.
tags:
publicado por gamito às 13:42
link do post | comentar
Quinta-feira, 5 de Julho de 2007

House M. D. :: Série III em DVD

Já está na Amazon americana para venda a partir de 21 de Agosto, o que quer dizer que lá para Setembro/Outubro deve chegar cá :)

Link directo para a Amazon Americana.

tags:
publicado por gamito às 16:23
link do post | comentar | ver comentários (2)
Sábado, 30 de Junho de 2007

Mini-mini jantarada do Planet Geek em Palmela



clockwise:
Carlos Afonso, Marco Lopes, Paulo Barata, Myself, Bruno Amaral
publicado por gamito às 00:38
link do post | comentar | ver comentários (5)
Quinta-feira, 28 de Junho de 2007

Férias com o meu filho :: Évora

Évora, cidade da minha Alma, onde eu me reecontro sempre que a ti volto (porque não tens tu mar ?)

Évora, és memória do primeiro dia da nossa Lua-de-Mel há treze anos atrás, onde tudo foram trocas de promessas de Amor eterno, de beijos, de cumplicidades, de corpos empapados pelo suor, nus, enroscados e de uma velhice à lareira rodeados pelos filhos e netos que havíamos de ter.

Tudo isso ruiu há três anos com a nossa separação, mas ficou o nosso bem mais precioso, o nosso único filho, Gonçalo. Sim Paula, é nosso, fruto do nosso Amor.

Estas viagens têm servido para mostrar ao meu filho um país que ele desconhecia (embora já o tivesse atravessado), mas está a ser também um reviver de muitas coisas do meu passado.

Há tempos asssim...


Claro que em Évora, não podíamos deixar de ter ido ver o Templo de Diana, etc. e claro, a Capela dos Ossos.

Correm os mais variados disparates acerca da origem das ossadas que forram completamente a Capela.

Mas a verdade, é que no final do Séc. XVI, princípio do Séc. XVII, os monges resolveram abrir todas as sepulturas do cemitério da Cidade e construíram a Capela nessa altura com o interior forrado pelas ossadas desenterradas.
O objectivo principal era meditar sobre a morte e nela rezavam.

A Capela tem cerca de 5000 crâneos.

Quanto aos dois únicos esqueletos completos no interior da Capela, diz a lenda que são de um pai e de um filho encontrados no Séc. XVIII com os corpos intactos.
O filho batia na mãe e o pai não se opunha.
A mãe, amargurada no seu leito de morte, rogou-lhes então uma praga, "Quando morrerdes, que a terra das vossas sepulturas não vos desfaça".

Quanto a quem é quem que forra a Capela, ninguém sabe.

tags:
publicado por gamito às 14:30
link do post | comentar | ver comentários (4)
Quarta-feira, 27 de Junho de 2007

Férias com o meu filho :: Alcácer do Sal

Memórias, sobretudo memórias, da infância e da adolescência.
Tão distantes e tão presentes.

As férias em casa dos meus avós, grande para que coubesse a família toda.
A praia na Comporta com os meus pais, tios e primos, o mar quente de Sul com ondas revoltosas de Norte, o calor metálico do dia e asfixiante da noite, o Tabard nos bracitos e nas pernitas de calções feitas, os matraquilhos à noite na leitaria da Sra. Maria.

Os primeiros exploratórios beijos com muita saliva que provocavam erecções dolorosas, a cabo-verdiana lindíssma, os primeiros (e únicos) charros de haxe, as guitarradas, o deambular pela vila debitando parvoíces, os milhentos primos em quinquagésimo grau.

Os Natais, todos passados à volta da lareira na sala de cima, as prendas (a mais esperada sempre a do meu avô, vinha num envelope e era sempre generosa), os comes e bebes, o meu avô que com um copito a mais, desatava desafinadamente a cantar cantigas alentejanas.

E a memória desse mesmo avô, Zé Gamito, "O Velho Setenta", que nos deixou há treze anos levado por um filho de uma puta de um cancro.
Acho que o meu avô gostava mais dos seus seis netos do que da própria mulher e dos dois filhos.
Era um amor à sua maneira claro, de Alentejo escaldante tricotado, mas era um amor infinito.
Cancro cabrão, que me levaste o meu avô.
 
As minhas memórias ficam para sempre na minha cabeça e o meu avô Zé no meu coração.

Foi tudo isto que eu mostrei e contei hoje ao meu filho.




 
tags:
publicado por gamito às 13:35
link do post | comentar
Terça-feira, 26 de Junho de 2007

Férias com o meu filho :: Portinho da Arrábida

tags:
publicado por gamito às 16:13
link do post | comentar | ver comentários (9)
Sexta-feira, 22 de Junho de 2007

Roubo de carteira :: PSP

Depois de ter cancelado os cartões, quis ligar para a PSP de Aveiro para saber se era possível fazer a participação do roubo a essa hora.

Vou à lista telefónica – nova, chegou há três semanas – e vejo dois números (da Cabovisão).
Ligo para um e para outro, nada.

Marco o 118 e peço o número. Desta vez dão-me um da PT.
Ligo e recebo como resposta que o número não está atribuído.

Em último recurso, liguei para o 112 de onde me disseram imediatamente que esses números não estão correctos e deram-me o que realmente funciona. Outro da PT. Funcionou.

Fui fazer a participação e no final fui falar com o Oficial de Dia acerca dos telefones.

"Não temos culpa, a Cabovisão não remove da lista os números descontinuados e quanto à PT, cabe-lhes a eles efectuarem a alteração".

Perguntei-lhe se não achava grave que o número de telefone da Polícia de uma cidade estivesse errado nos sítios possíveis de procurar pelos cidadãos e se não podiam eles tomar a iniciativa de corrigir o problema a bem da população, não seria nada de mais. Aliás, a sua obrigação é servir. É para isso que lhes pagam.

"Não, isso é com a PT".

Parem o comboio deste país, nem sequer espero pelo próximo apeadeiro.
tags:
publicado por gamito às 01:43
link do post | comentar
Quarta-feira, 20 de Junho de 2007

Ganda Bomba

Fiat Punto Sport

O carro dos meus sonhos

É meu, só meu :)

tags:
publicado por gamito às 21:23
link do post | comentar | ver comentários (3)
Quarta-feira, 13 de Junho de 2007

Tim-Berners Lee recebe Order of Merit

O criador da Web, Sir Tim Berners-Lee que já era Sir foi agora galardoado pela Raínha de Inglaterra com a Order of Merit, uma das mais prestigiadas condecorações Britânicas.

Faz agora parte de um grupo de 24 pessoas vivas com o direito a usar as iniciais OM no seu nome.

"Sir Tim Berners-Lee joins an elite group who have received the honour from the Queen for exceptional contributions in arts, sciences and other areas.

(...)

Previously, he was named Greatest Briton at a ceremony in 2004.

(...)

The Order of Merit is in the Queen's personal gift, meaning that ministerial advice is not needed.

It is restricted to 24 living members, who are entitled to use the initials OM after their name.

Past recipients have included Florence Nightingale, Sir Winston Churchill, Bertrand Russell, Graham Greene, Sir Edward Elgar, Mother Teresa and Baroness Thatcher."

Este homem merece toda a nossa admiração. Revolucionou o mundo.

Notícia completa aqui no site da BBC.

tags:
publicado por gamito às 21:36
link do post | comentar
Os comentários são da exclusiva resonsabilidade dos seus autores.
Mário Gamito, 2004 - 2007
Todos os direitos reservados.

Mais sobre mim

pesquisar

Janeiro 2008

Dom
Seg
Ter
Qua
Qui
Sex
Sab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Posts recentes

Portagens

Há 20 anos atrás... *sigh...

Vou criar a minha própria...

Finalmente

SAPO codebits

Sporting

Caixa Mágica e Mandriva

A1 Aveiro - Lisboa

Browser mamão

gFTP

PlayStation 3 e Sony

Mas quem é o gajo ?

Negócios do Open Source

Não estão fartos disto ?

Naughty, naughty

PHP chrooted

Joomla

Novo Projecto

MySQL :: It's the ctl, st...

MySQL :: Just a little ti...

MySQL chrooted

BASH, stdout e stderr

4 kb stack ou 8kb stack

A funny guy...

Truques, Minas e Alçapões...

Truques, Minas e Alçapões...

Logs do mrtg

Salmos, 23

Servidor caseiro - XXVII

Servidor caseiro - XXVI

Servidor caseiro - XXV

Números de telemóvel aban...

Servidor caseiro - XXIV

Humm...

Servidor caseiro - XXIII

Servidor caseiro - XXII

Servidor caseiro - XXI

Servidor caseiro - XX

Servidor caseiro - XIX

Ubuntu : O Enigma

Leixões 1 - Benfica 1

Servidor caseiro - XVIII

Servidor caseiro - XVII

Servidor caseiro - XVI

Servidor caseiro - XV

Servidor caseiro - XIV

Servidor caseiro - XIII

Servidor caseiro - XII

Servidor caseiro - XI

Servidor caseiro - X

Arquivos

Contacto

gamito@gmail.com

No Planeta Geek

tags

todas as tags

subscrever feeds