segunda-feira, 27 de fevereiro de 2012

XDMCP

O XDMCP (X Display Manager Control(?) Protocol(?)) permite fazer o login remoto numa máquina linux, como o telnet, mas em modo gráfico. Digo como o telnet e não 'como o ssh' porque o XDMCP é inerentemente inseguro. Uma forma de o tornar seguro é usar um túnel ssh para fazer a ligação. O XDMCP usa o porto UDP 177.
Para funcionar é preciso um gestor de login (login manager) que suporte XDMCP. Apenas o XDM e o KDM suportam XDMCP (que eu tenha descoberto). O GDM removeu o suporte para XDMCP.
Para usar o XDMCP com KDM é preciso:
1. Primeiro que tudo, instalar o KDM e torná-lo o gestor de login pré-definido
Em Ubuntu:
sudo apt-get install kdm
E para redefinir o KDM como gestor por defeito:
sudo dpkg-reconfigure kdm
2. Editar o kdmrc e acrescentar as linhas:
[xdmcp]
Enable=true

3. Editar o Xaccess e descomentar a linha (basta apagar o primeiro '#')
# * # any host can get a login window
Não é a configuração mais segura, mas funciona.
4. Reiniciar o kdm (ou o computador).

sábado, 25 de fevereiro de 2012

Amenizando o Debian

Um conjunto de scripts e dicas para amenizar um pouco o Debian.
Devivo à estrita aderência ao ideal open source o Debian está privado da utilização de algum software, mas como utilizador individual posso instalar o que quiser no Debian...

O equivalente Debian ao ubuntu-restricted-extras

Ligar o contrib e o non-free no sources.list
Adicionar ao sources.list:

deb http://deb-multimedia.org squeeze main non-free

Adicionar a chave do debian-multimedia


wget http://deb-multimedia.org/gpgkey.pub -O - | apt-key add - && apt-get install deb-multimedia-keyring

Adicionar os pacotes de interesse:


apt-get install acroread ffmpeg flashplugin-nonfree libcurl3 flashplugin-nonfree-extrasound freepats gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly sun-java6-jre sun-java6-plugin sun-java6-fonts libaccess-bridge-java libavcodec52 libavformat52 libcdaudio1 libdc1394-22 libdvdnav4 libdvdread4 libfftw3-3 libgif4 libid3tag0 libiptcdata0 libmjpegtools-1.9 libmms0 libmp4v2-0 libmpeg2-4 libmusicbrainz4c2a libneon27-gnutls libofa0 libopenspc0 libpostproc51 libsidplay1 libsndfile1 libsoundtouch1c2 libswscale0 libwildmidi1 openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib rhino ttf-arphic-uming ttf-baekmuk ttf-bengali-fonts ttf-devanagari-fonts ttf-gujarati-fonts ttf-indic-fonts ttf-kannada-fonts ttf-kochi-gothic ttf-liberation ttf-malayalam-fonts ttf-mscorefonts-installer ttf-oriya-fonts ttf-punjabi-fonts ttf-sazanami-mincho ttf-tamil-fonts ttf-telugu-fonts tzdata-java unrar

À medida que sairem novas versões destes pacotes será necessário corrigir a numeração de alguns pacotes.

Referências
http://ubuntuforums.org/showthread.php?p=6019449
http://forums.debian.net/viewtopic.php?f=20&t=67013

terça-feira, 21 de fevereiro de 2012

Emagrecer o Ubuntu

Para emagrecer o Ubuntu (ou qualquer outra distribuição baseada em Debian) podemos usar algumas aplicações simples: localepurge, deborphan, bleachbit.
O localepurge retira os locales (traduções de pacotes para várias línguas) não escolhidos pelo utilizador. Quando é instalado o localepurge pede ao utilizador quais os locales que pretende MANTER. Todos os que não forem selecionados serão eliminados.
O deborphan identifica pacotes não utilizados pelo sistema e que podem ser desinstalados.
O bleachbit tem uma interface gráfica e uma interface em CLI. Permite fazer vários tipos de limpeza ao sistema. Apagar cache, ficheiros temporários, cookies, passwords, etc.
Para os instalar:
sudo apt-get install localepurge deborphan bleachbit
Para executar o localepurge basta fazer:
sudo localepurge
Sempre que for instalado um novo pacote o localpurge é automaticamente chamado, por isso é uma situação de 'instala e esquece'.
O deborphan pode ser executado com:
sudo deborphan
Mas apenas apresenta uma lista dos pacotes que podem ser removidos. Para os remover efetivamete podemos fazer:
sudo deborphan | xargs sud apt-get remove --purge
O bleachbit pode ser executado em interface gráfica com bleachbit ou em CLI com bleachbit_cli. Para ver uma lista das opções de limpeza que aceita fazer:
bleachbit_cli -l

Atualização e limpeza automática
Para manter o Ubuntu limpo e atualizado uso um simples script, que chamo maintenance.sh
#!/bin/bash
sudo apt-get update
sudo apt-get dist-upgrade -y
sudo apt-get autoremove --purge -y
sudo apt-get clean
sudo deborphan|xargs sudo apt-get autoremove --purge -y
bleachbit_cli -l|grep -e .cache -e .vacuum -e .log -e .tmp|xargs bleachbit_cli -d
Este script atualiza os pacotes, limpa a cache de pacotes do APT, elimina os pacotes orfãos, limpa as cache, logs e ficheiros temporários e otimiza as bases de dados do Chrome e Firefox. Pode ser corrido manualmente ou colocado no cron.
Não esquecer de fazer um:
chmod +x maintenance.sh
para tornar o script executável.


Limpeza com o Synaptic
Usando o Synaptic é possível identificar pacotes que podem ser removidos do sistema. Executar o Synaptic (Sistema » Administração » Gestor de pacotes Synaptic, ou sudo synaptic). Escolher o filtro "Status" (Estado) e selecionar a opção "Not installed (residual config)" (Não instalado (configuração residual)). Os pacotes que aparecem à direita podem, em princípio, ser removidos.

Referências
http://www.ubuntugeek.com/cleaning-up-all-unnecessary-junk-files-in-ubuntu.html

quinta-feira, 16 de fevereiro de 2012

Árvore genealógica do linux

Uma árvore genealógica do linux

domingo, 5 de fevereiro de 2012

GMail como Smarthost do postfix

Usar uma conta de GMail para enviar e-mail a partir de uma máquina com o postfix

Muitas aplicações web dependem do serviço de e-mail para comunicar com os utilizadores (e administrador). Tipicamente um servidor web contém as aplicações necessárias para que acumule a funcionalidade de servidor de e-mail, mas a proliferação de SPAM fez com que se criassem listas de servidores de mail confiáveis e os principais servidores de e-mail (GMail, HotMail, Sapo, etc) não aceitam mensagens de qualquer servidor.
Para ultrapassar esta limitação podemos tentar que o nosso servidor de e-mail seja aceita na restrita lista de servidores confiáveis, mas há alternativas mais simples.
As próprias aplicações (como por exemplo o Moodle ou o Joomla) possuem configurações internas próprias que lhes permitem usar um servidor de e-mail externo, deixando de depender do servidor interno da máquina onde estão alojados.
Mas podemos também configurar a nossa máquina webserver para funcionar como um 'satélite' de um servidor de e-mail externo.

Vamos então configurar o postfix para funcionar como sistema satélite do GMail, usando uma conta de GMail para enviar todo o e-mail do sistema.
Convém utilizar uma conta de GMail apenas para este fim. É necessário frisar que as contas de GMail gratuitas têm um limite de 500 mensagens por dia. As contas pagas ou associadas ao serviço Google Apps for Education não têm esta limitação.

Se o postfix não estiver instalado fazer (em Debian, como root):

apt-get install postfix

Se o postfix já estiver instalado, fazer a reconfiguração com:

dpkg-reconfigure postfix

O postfix faz uma série de questões:
  1. Type of mail configuration: satellite system
  2. System mail name: Nome do domínio
  3. SMTP relay host: smtp.gmail.com
  4. Root and postmaster mail recipient: deixar em branco
  5. Other destinations: deixar em branco
  6. Synchronous updates: é indiferente, não influencia a entrega
  7. Local networks: deixar o pré-definido
  8. Mailbox size: é indiferente, não influencia a entrega
  9. Local address extension: + (é o valor pré-definido)
  10. IP to listen: normalmente basta IPv4
De seguida precisamos editar o ficheiro de configuração do postfix:

sudo nano /etc/postfix/main.cf

E acrescentar as seguintes linhas:

mydomain = exemplo.org
myhostname = server1.exemplo.org
myorigin = $myhostname
# inserir aqui os domínios para os quais vai ser
# esta máquina a gerir o mail

mydestination = localhost, nome_de_dominio

relayhost=smtp.gmail.com:587
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_auth_enable = yes

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

Agora é preciso criar o ficheiro que vai conter os dados de acesso à conta do GMail:

sudo nano /etc/postfix/sasl_passwd

E acrescentamos apenas uma linha:

smtp.gmail.com:587 USERNAME@gmail.com:PASSWORD

É claro que USERNAME e PASSWORD devem ser substituídos pelos valores reais do username e password da conta de GMail.

Este comando compila o ficheiro de texto com a password numa base de dados mais eficiente:

postmap /etc/postfix/sasl_passwd

Para assegurar que apenas o utilizador postfix tem acesso ao ficheiro com a password fazemos:

chmod 600 /etc/postfix/sasl_passwd*
chown postfix.postfix /etc/postfix/sasl_passwd*

E reiniciamos o daemon:

/etc/init.d/postfix restart

A maneira mais fácil de testar a configuração é enviar um e-mail de teste com o sendmail:

sendmail teste@exemplo.org
Mensagem de teste
.

Se tudo correr bem o e-mail é enviado imediatamente.
Se não for enviado o e-mail a análise dos ficheiros /var/log/mail.* pode dar algumas informações importantes

Os aliases definem-se em /etc/aliases
Não esquecer de correr newalias depois de mudar o ficheiro.

Referências
http://braiden.org/?p=15
https://www.zulius.com/how-to/set-up-postfix-with-a-remote-smtp-relay-host/
http://www.delouw.ch/linux/Postfix-Cyrus-Web-cyradm-HOWTO/html/test.html