Mostrar mensagens com a etiqueta ubuntu. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta ubuntu. Mostrar todas as mensagens

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

domingo, 22 de janeiro de 2012

Segurança básica de um webserver

Algumas configurações simples e rápidas para tornar um servidor web um pouco mais seguro e resistente a ataques.
Assume-se que o servidor é Ubuntu 10.04 (lucid lynx) Server, mas a maior parte das definições funciona sem alterações na maior parte de outras distribuições linux.
Estas definições não asseguram a total segurança do servidor, pois o único computador seguro é o que está desligado (e mesmo assim...) mas aumentam a resistência da máquina a potenciais ataques.
Nenhuma das configurações aqui indicadas deve ser seguida 'cegamente', pois têm influência no funcionamento da máquina. Por isso cada definição é seguida de uma breve (brevíssima) descrição para ajudar na decisão de aplicar ou não essa definição. Para mais informação, o Google é teu amigo.

SSH

Editar o ficheiro de configuração em /etc/ssh/sshd_config e alterar as seguintes definições:
Port 2222
Esta definição muda o porto usado pelo SSH do 22 (padrão) para o 2222. É uma alteração simples, mas exige que nos lembremos de indicar manualmente o porto 2222 quando queremos fazer uma ligação. É também preciso abrir o porto 2222 na firewall e é conveniente fechar o 22.
Protocol 2
Indica que o SSH só aceite ligações com a versão 2 do protocolo, mais segura (é a definição padrão e não se deve alterar).
PermitRootLogin = no
Não permitir ue o utilizador root faça login diretamente.
AllowUsers = user1 user2
Só permite que o user1 e user2 façam login através de SSH. Usar com cuidado, podemos trancar-nos a nós próprios fora do servidor ou causar problemas aos utilizadores (podem por exemplo deixar de poder usar o SFTP).
Reiniciar o serviço com /etc/init.d/ssh restart para tornar as definições ativas.

MySQL

A forma mais eficaz de manter o MySQL seguro é bloquear o acesso ao porto 3306 a partir do exterior.

Bind

A forma 'tradicional' de tornar o bind mais seguro é colocá-lo a correr dentro de uma jail, que o isola do resto do sistema, mas no Ubuntu 10.04 este método NÃO é aconselhado, pois o AppArmor já fornece segurança ao bind e seriam necessárias alterações de configuração para que o bind funcionasse dentro de uma jail com o AppArmor, por isso o melhor é 'não mexer' e deixar o AppArmor tratar do bind.

Apache

Editar o /etc/apache2/apache2.conf:
ServerTokens ProductOnly
ServerSigature off
Estas duas linhas impedem que o Apache forneça informação sobre a versão, que poderia ser usada em ataques dirigidos.
TraceEnable off
O TraceEnable é um método usado para determinar se o Apache está a funcionar. Normalmente não é necessário, por isso deve ser desligado.

PHP

Editar /etc/php5/apache2/php.ini
safe_mode=off
safe_mode_gid=off
Contrariamente ao que parece ter estas duas diretivas ligadas não torna o servidor mais seguro e podem introduzir efeitos indesejados em muitas aplicações, por isso convém colocá-las em off.
display_errors=off
display_startup_errors=off
Estas duas linhas evitam que o PHP mostre mensagens de erro que poderiam revelar informação para ser usada num ataque.
register_globals=off
Evita que se usem variáveis fora do script onde foram definidas.
session.use_cookies=1
session.use_only_cookies=1
session.cookie_http_only=1
Usar cookies para armazenar as variáveis de sessão.
disable_functions=phpinfo, system, proc_open, proc_close, popen, passthru, shell_exec, dl, show_source, highlight_file, pcntl_exec
Desliga estas funções do PHP, que são potencialmete inseguras. Algumas (poucas) aplicações podem deixar de funcionar com algumas destas funções desabilitadas.
error_reporting=E_ALL & ~E_NOTICE
log_errors=on
log_errors_max_len=1024
error_log=/var/log/php5.log
Definições sobre o logs do PHP. Não são exatamente definições de segurança, mas são úteis.
magic_quotes_gpc=off
magic_quotes_runtime=off
magic_quotes_sybase=off
As magic quotes foram uma tentativa de tornar mais seguro o acesso a dados de um formulário, mas trouxeram mais problemas que benefícios. Convém desligar.
expose_php=off
Não informa sobre a versão de PHP.
file_uploads=on
Permitir que os utilizadores enviem ficheiros é um problema de segurança, mas se não permitirmos que os utilizadores enviem ficheiros o servidor será relativamente inútil...
post_max_size=32M
upload_max_filesize=32M
Estas duas definições controlam o tamanho máximo dos ficheiros que os utilizadores podem enviar. Podem ser alteradas para outros valores, mas devem ser iguais.
Reiniciar apache com /etc/init.d/apache2 restart

Pure-ftp

O servidor de FTP pure-ftp é um dos servidores ftp mais usados e mais seguro, mas o protocolo FTP em si é bastante inseguro. O melhor mesmo é NÃO usar o FTP e usar o SFTP com a shell rssh.

Prevenção de intrusões - fail2ban

O fail2ban analisa os registo de login do ssh, apache e outros e se deteta que um determinado IP tentou fazer vários logins com a password errada num curto espaço de tempo, bloqueia esse IP durante alguns minutos. É um método de proteção simples e eficaz. O maior risco que corremos é ser colocados durante alguns minutos em 'quarentena' se nos esquecermos da nossa password.
Para o instalar basta fazer:
apt-get install fail2ban
O serviço fica imediatamente ativo para SSH. Para mudar a configuração é preciso editar /etc/fail2ban/jail.conf.

Anti-rootkit -  rkhunter

Os rootkits são conjuntos de ferramentas usadas pelos hackers para ganhar privilégios de root num sistema. A presença de um rootkit indica que o sistema está comprometido e normalmente a única medida a tomar é formatar o disco. O rkhunter analisa o sistema à procura dos rootkits mais conhecidos. Atenção, não protege contra nem elimina rootkits, apenas deteta alguns rootkits.
Para instalar fazemos:
apt-get install rkhunter.
Antes de usar convém atualizar as definições com:
rkhunter --update
Para analisar o sistema fazemos:
rkhunter --checkall
Convém que ocasionalmente se corra o rkhunter, manualmente.

Auditoria - nikto

O nikto é uma ferramenta de auditoria a servidores web. Funciona melhor se for corrido a partir de outra máquina que não o servidor, para simular um 'ataque externo'.
Instala-se com:
apt-get install nikto
Para o executar fazemos:
nikto -h MAQUINA
Em que MAQUINA é o IP ou hostname da máquina a analisar.

domingo, 18 de dezembro de 2011

Asterisk em Ubuntu 10.04 (lucid)
Instalar e configurar um servidor Asterisk numa máquina a correr Ubuntu 10.04 server (lucid lynx)

1. Instalar o Ubuntu
Fazer uma instalação básica do Ubuntu server, atualizar e reiniciar

2. Instalar o Asterisk


sudo apt-get install asterisk

Instala uma lista relativamente longa de pacotes.

3. Configurar o Asterisk
Editar /etc/asterisk/sip.conf e descomentar a linha:


videosupport = yes


Acrescentar no fim (para 4 utilizadores):


[user1]
type=friend
secret=password ;password
qualify=yes
nat=no
host=dynamic
context=internal ; nome do domínio



[user2]
type=friend
secret=password ;password
qualify=yes
nat=no
host=dynamic
context=internal ; nome do domínio


[user3]
type=friend
secret=password ;password
qualify=yes
nat=no
host=dynamic
context=internal ; nome do domínio


[user4]
type=friend
secret=password ;password
qualify=yes
nat=no
host=dynamic
context=internal ; nome do domínio



Editar /etc/astrisk/extensions.conf e acrescentar no fim:


[internal]
exten => user1,1,Dial(SIP/user1)
exten => user2,1,Dial(SIP/user2)

exten => user3,1,Dial(SIP/user3)
exten => user4,1,Dial(SIP/user4)

3.1. Configurar extensões

Para associar a extensão 101 ao user1 e a 102 ao user2, etc, editar o ficheiro /etc/asterisk/extensions.conf e acrescentar no final:


exten => 101,1,Dial(SIP/user1)
exten => 102,1,Dial(SIP/user2)
exten => 103,1,Dial(SIP/user3)
exten => 104,1,Dial(SIP/user4)

Para que se a extensão 101 rejeitar ou não atender uma chamada, essa chamada seja transferida para o user 2 acrescentar:


exten => 101,2,Dial(SIP/user2)


Reiniciar Asterisk

3.2. Configurar music on hold
Esta configuração foi tirada do livro "Asterisk: The future of telephony".
Obter uma música, por exemplo:

wget http://upload.wikimedia.org/wikipedia/commons/6/62/Pachelbel%27s_Canon.ogg

Converter para Wave, 8kHz, mono

sox Pachelbel\'s_Canon.ogg -r 8000 -c 1 moh1.wav

Criar a diretoria para armazenar os ficheiros e mover para lá a música:

mkdir /var/lib/asterisk/mohwav
mv moh1.wav /var/lib/asterisk/mohwav

Editar /etc/asterisk/musiconhold.conf e alterar as seguintes linhas:

[default]
mode=files
directory=/var/lib/asterisk/mohwav
random=yes

O random=yes é redundante com um único ficheiro, mas se adicionarmos mais ficheiros à diretoria já está configurado o random.

3.3. Configurar um servidor VoIP externo
Para associar uma extensão a um servidor VoIP externo, neste caso o Voipcheap, é preciso editar os ficheiros sip.conf e extensinos.conf.
No sip.conf criar as seguintes linhas:

[voipcheap]
type=peer
host=sip.voipcheap.com
username=nome_de_utilizador
fromuser=nome_de_utilizador
secret=password_do_utilizador
context=incoming_calls
dtmfmode=rfc2833
disallow=all
allow=gsm
allow=ulaw
insecure=invite

No extensions.conf, para associar a extensão 123 ao número de telefone 987654321 acrescentar:

exten => 123,1,Dial(SIP/987654321@voipcheap)

segunda-feira, 10 de outubro de 2011

Tweaks para usar Ubuntu com um SSD

  1. Montar volumes usando o noatime e usar o TRIM
  2. Montar o /tmp em RAM
  3. Mudar o scheduler de disco
  4. Diminuir o swappiness
  5. Mudar a cache do FireFox para /tmp

1. Usar noatime e TRIM
Por defeito os sistemas de ficheiros em linux guardam a data/hora em que o ficheiro foi pela última vez acedido. Isto pode causar muitas operações de escrita, o que é mau num SSD.
Adicionalmente, o comando TRIM é específico do SSD. Marca uma célua ou bloco de célula como "não usadas", poupando operações de escrita para apagar os dados.
Para usar o noatime e o TRIM acrescentar as opções noatime e discard às opções do sistema de ficheiros no ficheiro /etc/fstab
2. Montar /tmp em RAM
Com o sacrifício de alguns MiB de RAM ganha-se em desempenho e poupa-se o SSD.
Acrescentar (ou editar) esta linha a /etc/fstab
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
3. Mudar scheduler de disco
O scheduler por default não é o mais eficaz com SSD, está otimizado para discos rígidos.
Para mudar para o scheduler noop, acrescentar (ou editar) esta linha:
block/sda/queue/scheduler = noop
ao ficheiro /etc/sysfs.conf
Atenção, o sda identifica a drive de SSD, se estiver em /dev/sdb, por exemplo, deve usar-se sdb.
(não verificado, não tenho a certeza se funciona)
4. Diminuir swapiness
Para diminuir a utilização do ficheiro de swap.
Acrescentar (ou editar) a linha:
vm.swapiness=1
no ficheiro /etc/sysctl.conf
Não é conveniente definir o swapiness como 0.
5. Mudar cache do FireFox para /tmp
Abrir o about:config, procurar o parâmetro browser.cache.disk.parent_directory e mudar o valor para /tmp
Referências
http://tombuntu.com/index.php/2008/09/04/four-tweaks-for-using-linux-with-solid-state-drives/
http://www.zdnet.com/blog/perlow/geek-sheet-a-tweakers-guide-to-solid-state-drives-ssds-and-linux/9190
http://www.teamjuchems.com/?p=1103
http://blog.mypapit.net/2011/01/how-to-change-linux-io-scheduler-during-runtime.html

sexta-feira, 15 de julho de 2011

Ligar a uma rede wifi com WPA-PSK a partir da consola

Como ligar a uma rede wireless com segurança WPA-PSK usando apenas a consola de comandos em linux.
É preciso além do ifconfig e iwconfig o pacote wpa_supplicant.
Primeiro criamos um ficheiro de configuração do wpa, chamado por exemplo wireless-wpa.conf, com o seguinte conteúdo:

ctrl_interface=/var/run/wpa_supplicant
network={
  ssid="nome-da-rede"
  scan_ssid=1
  key_mgmt=WPA-PSK
  psk="chave de rede"
}

Para facilitar, vamos colocar os comandos num pequeno script bash, que chamaremos wpa-connect.sh, com o seguinte conteúdo:

#!/bin/sh
iface=wlan0
conffile=wireless-wpa.conf



sudo ifconfig $iface down
sudo iwconfig $iface mode Managed
sudo ifconfig $iface up
sudo killall wpa_supplicant
sudo wpa_supplicant -B -Dwext -i $iface -c $conffile -dd
sudo dhclient $iface

Agora basta tornar o script executável com:

chmod u+x wpa-connect.sh

e executá-lo com:

quarta-feira, 25 de maio de 2011

CA e Apache com SSL

Configuração de um servidor como CA e web SSL
Pretende-se com este trabalho configurar um servidor como Autoridade de Certificação (CA) e como servidor web com SSL.
O servidor usado é o ubuntu 10.04 (Lucid Lynx) server. O cliente pode ser qualquer um que permita a utlização de um browser com suporte para SSL. Neste trabalho foi usado o Mozilla Firefox a correr em ubuntu 11.04 (Natty Narwhal).
O servidor precisa que estejam instalados os pacotes openssl e apache2.
Vamos assumir que o servidor funciona no endereço www.redes.pt.
Para este trabalho foi criada uma entrada no ficheiro hosts tanto do servidor como do cliente, para que o endereço www.redes.pt apontasse para o ip do servidor.
Depois de cumpridos estes requisitos é necessário:

  1. Gerar autoridade de certificação
  2. Instalar a autoridade de certificação
    1. no cliente
    2. no servidor
  3. Criar um certificado para o servidor
  4. Configurar o site seguro usando o certificado gerado.

1. Gerar autoridade de certificação
Primeiro é necessário criar um par de chaves de encriptação. Vamos usar o algoritmo 3DES com 4096 bits.
openssl genrsa -des3 -out ca.key 4096
As chaves ficam armazenadas no ficheiro ca.key.
De seguida vamos usar essa chave para criar um certificado autoassinado, isto é, a própria entidade que requere o certificada é a entidade que o assina. O certificadao é do tipo X.509 com uma validade de 365 dias.
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
O certificado fica em ca.crt.
2. Instalar a autoridade de certificação
2.1. Cliente
É necessário enviar o ficheiro ca.crt (através de pen, e-mail, etc) para o cliente.
No Firefox ir a Editar » Preferências » Avançado » Ver certificados » Importar, e importar o certificado.
2.2. Servidor
Copiar o ficheiro ca.crt para /etc/ssl/certs e ca.key para /etc/ssl/private
3. Criar um certificado para o servidor
Primeiro é preciso criar um par de chaves para o servidor web. Vamos criar chaves 3DES com 2048 bits.
openssl genrsa -des3 -out www.redes.pt.key 2048
O nome do servidor foi usado como nome do ficheiro, mas tal não é obrigatório.
Vamos agora fazer um pedido para que a CA assine digitalmente a chave de encriptação.
openssl req -new -key www.redes.pt.key -out www.redes.pt.csr
O requerimento fica em www.redes.pt.csr
Agora a CA vai assinar o pedido, criando o certificado:
openssl x509 -req -days 365 -in www.redes.pt.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out www.redes.pt.crt
O certificado fica em www.redes.pt.crt.
O Common Name (CN) do certificado do servidor TEM de ser www.redes.pt.
Copiamos agora o ficheiro www.redes.pt.crt para /etc/ssl/certs e o ficheiro www.redes.pt.key para /etc/ssl/private
4. Configurar o site seguro usando o certificado
É preciso activar o módulo SSL no Apache, copiando os ficheiros ssl.conf e ssl.load de /etc/apache2/mods-available para /etc/apache2/mods-enabled.
Editamos o ficheiro /etc/apache2/mods-enabled/ssl.conf e criamos um virtualhost, dentro da secção IfModule.../IfModule.
Vamos criar o site www.redes.pt, alojado em /var/www/seguro.
O virtualhost deve conter pelo menos, as seguintes directivas:
VirtualHost exemplo.dominio.topo:443

DocumentRoot “/var/www/seguro”
ServerName www.redes.pt:443
ServerAdmin root@redes.pt
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
SSLEngine on
SSLCipherSuite
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl/certs/www.redes.pt.crt
SSLCertificateKeyFile /etc/ssl/private/www.redes.pt.key
/VirtualHost
Nota: faltam os sinais "maior" e "menor" nas tags VirtualHost, porque o Blogspot as retira automaticamente.
Outros comandos de interesse

openssl rsa -noout -text -in server.key
Mostra o conteúdo da chave server.key


openssl req -noout -text -in server.csr
Mostra o conteúdo do pedido de certificado server.csr


openssl x509 -noout -text -in ca.crt
Mostra o conteúdo do certificado ca.crt


openssl rsa -in server.key -out server-nopass.key
Retira a password da chave.

domingo, 13 de março de 2011

Painel de controlo para webserver

Acabo de experimentar alguns painéis de controlo para servidores web, OpenPanel, ispCP Omega, EHCP.
Para os experimentar instalei-os em máquinas virtuais do VirtualBox. Todos tiveram como base o Ubuntu 10.04 (Lucid Lynx) Server.
Já há alguns anos que uso o (excelente) ISPConfig 2 e recentemente passei a usar o ISPConfig 3, mas queria dar uma vista de olhos em outras ofertas open source para webpanels.
ISPConfig 2
Já é antigo, mas continua bastante bom. Aproveitando a licença open source, as instalações que uso do ISPConfig 2 estão "personalizadas" e vão exactamente de encontro ao que precisava na altura em que os instalei. A navegação não é das mais fáceis, mas é bastante eficaz. A interface de administração vem com https de instalação.
ISPConfig 3
Mais moderno e melhor interface, mas o painel de administração não usa https, embora seja possível acrescentar.
OpenPanel
Muito bom aspecto, baseado na interface do MacOS e fácil de instalar e configurar. Foi o que se instalou mais rapidamente e ocupou menos espaço em disco, o que é sinal que não tem todas as funcionalidades dos outros...
É fácil e rápido para criar coisas como por exemplo redirects, mas faltam-lhe algumas características dos outros painéis.
ispCP Omega
Muito completo. É um fork do VHCS (do qual dizem muito bem, mas nunca experimentei). O desenvolvimento do VHCS tem estado parado.
A instalação foi demorada e (aparentemente) bastante completa.
A interface é agradável e fácil de utilizar (usável). Faz distinção entre administradores, revendedores e utilizadores (como o ISPConfig) e tem suporte para emissão de facturas e criação de templates de alojamento.
EHCP
A instalação foi demorada. A interface ainda não está completa... Tem muita potencialidade, mas ainda não está pronto para ser usado num ambiente mais exigente.
Conclusão
Quando se está com pressa e não se precisa de muita complexidade: OpenPanel
Para um serviço com aspecto mais profissional: ispCP Omega
Daqui por uns tempos voltar a visitar o EHCP
ISPConfig 3 continua a ser uma boa opção.

sexta-feira, 30 de outubro de 2009

Windows 7 como cliente do Virtualbox

O objectivo é colocar o Windows 7 a correr decentemente como máquina virtual no VirtualBox, que por sua vez está a correr em Ubuntu, claro (9.04 - Jaunty Jackalope).
1. Criar uma máquina virtual para o Windows 7
Usei estas definições:
Disco: 20 GB
Unidade óptica: Drive DVD física com passthrough (instalação através de CD físico)
Memória do sistema: 512 MiB
Memória da placa gráfica: 16 MiB
ACPI: ligado
IO APIC: desligado
AMD-V/VT-x: ligado
Nested paging: ligado
PAE: desligado
3D: ligado
Audio: ligado (ICH-7)
Rede: Intel Pro1000/MT Desktop
2. Instalar o Windows 7 a partir de CD/DVD
Criar um uitlizador. A máquina (virtual) é reiniciada várias vezes durante a instalação.
3. Instalar as adições de convidado
Seleccionar a opção de instalar as adições de convidado. O VirtualBox faz o download do ISO com as adições se não estiver presente no sistema. É necessário reiniciar para tornar as adições activas.
4. Instalar o WineD3D
O WineD3D permite a utilização de aceleração 3D por hardware dentro do Windows. Para isso é necessário substituir alguns ficheiros de sistema (d3d8.dll e d3d9.dll, pelo menos) pelo que primeiro é necessário desprotegê-los.
4.1. Instalar um "hack" que permite tomar propriedade dos ficheiros
Usar o ficheiro em http://www.bioteck.net/2009/04/27/how-to-take-ownership-of-files-in-vista/ para instalar o hack do registry, que adiciona uma entrada "Take ownership" ao menu de contexto dos ficheiros.
Depois de instalado o hack, tomar propriedade dos ficheiros d3d8.dll e d3d9.dll (e caso se queira do d3d7.dll e d3d10.dll) na pasta c:\windows\system32.
4.2. Reiniciar em modo de segurança
Executar o msconfig e ligar a opção "safemode" na tabulação de "Arranque". Reiniciar a máquina quando for pedido. O reinício deve demorar algum tempo, por causa da emulação do modo texto ser bastante lenta.
4.3. Instalar o WineD3D
No menu Dispositivos escolher a opção de instalar o WineD3D. Se não estiver presente no sistema, o VirtualBox faz o download do ISO com o programa e monta-o como um CD na máquina virtual. O programa substitui os ficheiros originais, mas cria uma cópia de segurança (na própria pasta c:\windows\system32)

P.S.: Não funcionou. Ao iniciar uma aplicação que necessite de 3D (o Solitário, por exemplo), uma zona do ecrã fica corrompida e não aparece nenhuma janela nova.

segunda-feira, 26 de outubro de 2009

Utilizador sem password no Ubuntu

Para criar uma conta de utilizador que possa ser usada sem necessidade de escrever uma password.

1. Criar um utilizador em Sistema » Administração » Utilizadores e grupos.
É necessário definir uma password com pelo menos 6 caracteres, depois iremos eliminá-la. Seleccionar perfil "desktop user". Imaginemos que a conta criada tem o nome de utilizador "convidado".

2. Remover a password do "convidado"
Abrir um terminal e executar:

sudo passwd -d convidado

3. Configurar o GDM para permitir login sem password.
É preciso editar o ficheiro de configuração /etc/gdm/gdm.conf e colocar a directiva PasswordRequired com o valor false, ou mais simplesmente executar:

sudo sed -i 's/#PasswordRequired=false/PasswordRequired=false/' /etc/gdm/gdm.conf

4. Autorizar login sem password no PAM
Edita-se o ficheiro /etc/pam.d/common-auth e altera-se o parâmetro nullok_secure para nullok, ou executa-se o seguinte código:


sudo sed -i 's/nullok_secure/nullok/' /etc/pam.d/common-auth

5. Convém utilizar uma interface de login que liste os nomes de utilizador, configurável em Sistema » Administração » Janela de início de sessão.


Bibliografia

http://onlyubuntu.blogspot.com/2008/06/howto-enable-empty-password-login-in.html

terça-feira, 15 de setembro de 2009

Servidor virtual com Ubuntu e VirtualBox

O objectivo é criar um servidor simples, com interface gráfica, de máquinas virtuais usando Ubuntu server como host e VirtualBox (OSE) como sistema de virtualização, criando um sistema 100% Open Source, em pouco mais de meia hora.

1. Instalar o Ubuntu Server (9.04 ou superior) não escolhendo nenhum papel
2. Fazer o:
sudo apt-get update && sudo apt-get dist-upgrade
3. Instalar uns pacotes jeitosos:
3.1. O mínimo indispensável (~440 MiB):
sudo apt-get install virtualbox xorg lxde
3.2. Algumas ferramentas úteis, mas não directamente essenciais:
sudo apt-get install openssh-server rsync rssh rdesktop powertop htop iftop nload nmap zip unzip bzip2
3.3. Algumas ferramentas de segurança (precisam de configuração extra individual):
sudo apt-get install fail2ban molly-guard logwatch rkhunter
4. Caso haja uma UPS (o que é uma boa ideia) será conveniente instalar um gestor da UPS, por exmplo o nut, mas é necessário configurar para poder funcionar.

sexta-feira, 4 de setembro de 2009

Ubuntu seedbox + eDonkey

O projecto é pegar num PC mais ou menos velhote e transformá-lo numa máquina de armazenamento e partilha de ficheiros multimédia através de redes peer2peer bittorrent e edonkey. Tudo, é claro, usando Ubuntu.
1. Instalar Ubuntu server
Criar uma partição espaçosa e monta-la em /media/disk1
2. Actualizar e instalar os pacotes do costume

  • sudo apt-get install openssh-server htop powertop molly-guard nload fail2ban logwatch rkhunter zip

3. Instalar o gestor de torrents
Escolher um entre Transmission (gráfico) e rtorrent (consola).
3A. Transmission

  • sudo apt-get install transmission-daemon
  • sudo /etc/init.d/transmission-daemon stop
  • sudo nano /etc/transmission-daemon/settings.json
Editar a gosto, prestar atenção ao parametro download-dir, que deve apontar para algures em /media/disk1/downloads, por exemplo.
rpc-whitelist deve ter o ip que pode aceder à interface web, ou a rede, por exemplo 192.168.1.*
rpc-password definir a password
  • sudo mkdir /media/media/torrents
  • sudo chown debian-transmission:debian-transmission /media/disk1/torrents
  • sudo /etc/init.d/transmission-daemon start

Acessível em localhost:9091
3B. rTorrent + rtGui
Como o rtorrent é um cliente de consola que ocupa o ecrã, é preciso executá-lo dentro do screen (ou equivalente) para que funcione como um daemon. o rtGui é uma interface web para controlar o rtorrent.
  • sudo apt-get install rtorrent screen psmisc
  • sudo useradd rtorrent
  • sudo passwd rtorrent
  • sudo mkdir /etc/rtorrent
  • sudo chown rtorrent:rtorrent /etc/rtorrent
  • sudo usermod --home /etc/rtorrent rtorrent
  • sudo mkdir /media/disk1/torrents
  • sudo chown rtorrent:rtorrent /media/disk1/torrents
  • sudo nano /etc/init.d/rtorrentd
Colocar o seguinte conteúdo:
  • #! /bin/sh
  • # rTorrent init script
  • #

  • case "$1" in
  •   start)
  • echo "Starting rtorrent..."
  •     su rtorrent -c 'screen -dmS rtorrent rtorrent'
  •     ;;
  •   stop)
  • echo "Stopping rtorrent..."
  • killall -s 2 rtorrent
  •     ;;
  •   *)
  •     echo "Usage: $0 {start|stop}"
  •     exit 1
  •     ;;
  • esac

  • exit 0
Mudar as permissões e instalar como daemon:
  • sudo chmod 755 /etc/init.d/rtorrentd
  • sudo update-rc.d rtorrentd defaults
  • sudo /etc/init.d/rtorrentd start
Ffazer login como utilizador rtorrent e executar
  • cp /usr/share/doc/rtorrent/examples/rtorrent.rc ~/.rtorrent.rc
  • mkdir -p /media/disk1/torrents/watch/
  • mkdir -p /media/disk1/torrents/download/
  • mkdir -p /media/disk1/torrents/session/
  • mkdir -p /media/disk1/torrents/complete/
  • chown -R rtorrent:rtorrent /media/disk1/torrents/
  • chmod -R 775 /media/disk1/torrents/
  • nano ~/.rtorrent.rc

Editar o ficheiro para apresentar o seguinte conteúdo (os valores apresentados são de exemplo, prestar atenção aos comentários):

  • directory = /media/disk1/torrents/download/
  • session = /media/disk1/torrents/session/
  • schedule = watch_directory,5,5,load_start=/media/disk1/torrents/watch/*.torrent
  • schedule = untied_directory,5,5,remove_untied=
  • on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,/media/disk1/torrents/complete/ ;d.set_directory=/media/disk1/torrents/complete/"
  • port_range = 49200-49200
  • # Stop torrents when reaching upload ratio in percent,
  • # when also reaching total upload in bytes, or when
  • # reaching final upload ratio in percent.
  • # example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
  • schedule = ratio,60,60,stop_on_ratio=200,200M,2000
  • #Limit upload/download rate, so torrents won’t kill your internet connection 
  • #Values are in KiB.
  • upload_rate = 200
  • download_rate = 1000
  • #For better performance, you can limit number of peers:
  • max_peers = 50
  • max_peers_seed = 20
  • #To change umask (file mode creation mask) for rtorrent process, change this parameter:
  • umask = 0002
  • scgi_port = 127.0.0.1:5000
Regressar ao utilizador administrador e executar:

  • sudo /etc/init.d/rtorrentd stop
  • sudo /etc/init.d/rtorrentd start
  • sudo apt-get install rtgui
Editar a configuração do Apache:
  • sudo gedit /etc/apache2/sites-enabled/000-default
Adicionar as duas linhas seguintes antes do último "< /Virtualhost >"
  • LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
  • SCGIMount /RPC2 127.0.0.1:5000
Editar a configuração do rtgui:

  • sudo gedit /var/www/rtgui/config.php

Editar as seguintes definições:

  • $watchdir="/media/disk1/torrents/watch";
  • $downloaddir="/media/disk1/torrents/download";

Reiniciar o Apache.
  • sudo apache2ctl restart
Fica disponível em &lt; endereço_do_servidor &gt;/rtgui

4. MLDonkey
  • sudo apt-get install mldonkey-server
  • sudo /etc/init.d/mldonkey-server stop
  • sudo nano /var/lib/mldonkey/downloads.ini
Editar a gosto, ver o allowed_ips
  • sudo /etc/init.d/mldonkey-server start
Acessível em localhost:4080
5. SAMBA
  • sudo apt-get install swat xinetd
  • sudo nano /etc/xinetd.d/swat
Editar o conteúdo para apresentar o seguinte:

  • # default: off
  • # description: SWAT is the Samba Web Admin Tool. Use swat \
  • # to configure your Samba server. To use SWAT, \
  • # connect to port 901 with your favorite web browser.
  • service swat
  • {
  • port = 901
  • socket_type = stream
  • wait = no
  • # Use only_from if you want to restrict access
  • # only_from = localhost
  • user = root
  • server = /usr/sbin/swat
  • log_on_failure += USERID
  • disable = no
  • }

Executar:

  • sudo /etc/init.d/xinetd restart

O swat precisa de ser executado como root, por isso precisamos de dar uma password ao root
  • sudo passwd root
Acessível em localhost:901
Primeiro criar utilizadores e depois shares

6. Subsonic
Fazer o download do subsonic, suponhamos que fica no ficheiro subsonic-4.5.deb.
Instalar o java e o subsonic:
sudo apt-get install openjdk-6-jre
sudo dpkg -i subsonic-4.5.deb
Fica acessível em < endereço_do_servidor >:4040

quarta-feira, 15 de julho de 2009

OpenVZ no Ubuntu

Instalar um kernel com openvz.
Configurar a rede
Ligar o IP forwarding, editando o ficheiro /etc/sysctl.conf. Deve conter as seguintes linhas:
net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1
Para activar:
sysctl -p
E configurar o iptables:
iptables -t nat -A POSTROUTING -s -o eth0 -j SNAT --to
Adicionar uma bridge no ficheiro /etc/network/interfaces
...
# bridge
brctl addbr br0
auto br0
iface br0 inet dhcp
bridge_ports eth0
Criar uma máquina com OpenVZ
Os templates das máquinas virtuais devem estar em /var/lib/vz/template/cache
vzctl create --ostemplate