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
Sempre tive desde pequenino o sonho de não ter um blogue. Espero que este blogue me ajude a alcançar esse sonho.
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
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.
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)
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)
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)
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)
Local:
Castelo Branco, Portugal
segunda-feira, 10 de outubro de 2011
Tweaks para usar Ubuntu com um SSD
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
- Montar volumes usando o noatime e usar o TRIM
- Montar o /tmp em RAM
- Mudar o scheduler de disco
- Diminuir o swappiness
- 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
Local:
Castelo Branco, Portugal
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
É 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:
./wpa-connect.sh
Referências
http://blog.tplus1.com/index.php/2008/06/13/how-to-connect-to-a-wireless-network-from-the-ubuntu-command-line/
Referências
http://blog.tplus1.com/index.php/2008/06/13/how-to-connect-to-a-wireless-network-from-the-ubuntu-command-line/
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
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.
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:
- Gerar autoridade de certificação
- Instalar a autoridade de certificação
- no cliente
- no servidor
- Criar um certificado para o servidor
- 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
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.
Etiquetas:
apache,
certificados,
linux,
ssl,
ubuntu,
virtualhost
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.
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.
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.
Etiquetas:
informática,
linux,
ubuntu,
virtual,
virtualbox,
windows
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.
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.
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.
Etiquetas:
informática,
server,
ubuntu,
virtual,
virtualbox
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
Escolher um entre Transmission (gráfico) e rtorrent (consola).
3A. Transmission
rpc-whitelist deve ter o ip que pode aceder à interface web, ou a rede, por exemplo 192.168.1.*
rpc-password definir a password
1. Instalar Ubuntu server
Criar uma partição espaçosa e monta-la em /media/disk1
- sudo apt-get install openssh-server htop powertop molly-guard nload fail2ban logwatch rkhunter zip
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
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
:4080
Executar:
O swat precisa de ser executado como root, por isso precisamos de dar uma password ao root
: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
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.
Referências:
http://www.bytetouch.com/blog/linux/how-to-rtorrent-with-screen-on-debian/
http://code.google.com/p/rtgui/wiki/ubuntu_rtgui
http://forums.rutorrent.org/index.php?topic=95.0
http://www.bytetouch.com/blog/linux/how-to-rtorrent-with-screen-on-debian/
http://code.google.com/p/rtgui/wiki/ubuntu_rtgui
http://forums.rutorrent.org/index.php?topic=95.0
- 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:
4. MLDonkey- 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:
Editar as seguintes definições:
Reiniciar o Apache.
- 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 < endereço_do_servidor >/rtgui
- sudo apt-get install mldonkey-server
- sudo /etc/init.d/mldonkey-server stop
- sudo nano /var/lib/mldonkey/downloads.ini
- sudo /etc/init.d/mldonkey-server start
- sudo apt-get install swat xinetd
- sudo nano /etc/xinetd.d/swat
- # 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
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 --config vps.basic
vzctl set --netif_add eth0 --nameserver --hostname --save
vzctl set --ipadd --save
vzctl exec passwd
vzctl set --netif eth0 --gateway --save
vzctl start
Dentro da VE (máquina virtua) fazer:
/etc/init.d/portmap start
Há uma incompatibilidade do kernel openvz com NFS.
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
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
vzctl set
vzctl set
vzctl exec
vzctl set
vzctl start
Dentro da VE (máquina virtua) fazer:
/etc/init.d/portmap start
Há uma incompatibilidade do kernel openvz com NFS.
Etiquetas:
informática,
linux,
openvz,
ubuntu,
virtual
quarta-feira, 1 de julho de 2009
Jaunty LTSP Server
Server
LDM_AUTOLOGIN = True
[12:34:56:00:11:22]
LDM_USERNAME = user1
LDM_PASSWORD = password1
[12:34:56:00:11:33]
LDM_USERNAME = user2
LDM_PASSWORD = password2
Cliente
boot=/dev/hda
map = /mnt/hda1/.map
install = /mnt/hda1/boot-menu.b
image = /mnt/hda1/etherboot.zlilo
label=LTSP
Webgrafia
https://help.ubuntu.com/community/UbuntuLTSP
https://help.ubuntu.com/community/UbuntuLTSP/AutoLoginFeatures
http://brainstorms.in/?p=438
http://wiki.ltsp.org/twiki/bin/view/Ltsp/BootingFromHarddrive
- Instalar Jaunty (2 placas de rede)
- Definir IP estático na placa de rede inside 192.168.0.1/24
- sudo apt-get install ltsp-server-standalone openssh-server
- sudo ltsp-build-client
- Editar o ficheiro lts.conf e colocar um conteúdo semelhante a:
LDM_AUTOLOGIN = True
[12:34:56:00:11:22]
LDM_USERNAME = user1
LDM_PASSWORD = password1
[12:34:56:00:11:33]
LDM_USERNAME = user2
LDM_PASSWORD = password2
Cliente
- Se tem PXE/LAN BOOT na BIOS:ligar PXE/LAN BOOT na BIOS
- Se não tem:
- Arrancar por livecd
- verificar o PCI ID da placa de rede
- ir a http://www.rom-o-matic.net e fazer o download do ficheiro zlilo para a placa de rede
- criar uma partição hda1 com uns megas (poucos)
- aproveitar para fazer uma partição de swap
- formatar hda1 com ext2 e montar em /mnt/hda1
- criar um ficheiro lilo.conf na raiz com:
boot=/dev/hda
map = /mnt/hda1/.map
install = /mnt/hda1/boot-menu.b
image = /mnt/hda1/etherboot.zlilo
label=LTSP
- executar: lilo -v -C /mnt/hda1/lilo.conf -s /mnt/hda1/backup
Webgrafia
https://help.ubuntu.com/community/UbuntuLTSP
https://help.ubuntu.com/community/UbuntuLTSP/AutoLoginFeatures
http://brainstorms.in/?p=438
http://wiki.ltsp.org/twiki/bin/view/Ltsp/BootingFromHarddrive
domingo, 24 de maio de 2009
Fog como máquina virtual VirtualBox
É necessário:
Editar o ficheiro /etc/apt/sources.list e ligar o repositório partner.
Responder às questões...
Aceder a http://(ip-do-servidor)/fog
- uma máquina Ubuntu com o VirtualBox 2.1 ou superior
- que o ficheiro do JeOS esteja em /opt/iso/jeos.iso
VBoxManage createvm "fog".....Ligar por VDRP e efectuar a instalação
VBoxManage modifyvm "fog" -dvd /srv/iso/jeos.iso"
VBoxManage modifyvm "fog" -boot1 dvd
VBoxHeadless -startvm "fog"
Editar o ficheiro /etc/apt/sources.list e ligar o repositório partner.
apt-get updateConvem definir um IP fixo ANTES de iniciar a instalação do fog.
apt-get dist-upgrade
cd /opt
wget ......fog.....
sudo tar xvzf fog....
cd fog_0.26/bin
sudo ./installfog.sh
Responder às questões...
- Distribuição: Ubuntu
- IP: (o ip fixo do servidor)
- DHCP router: (nada)
- DHCP DNS: (nada)
- Interface: eth0
- DHCP: não
- Password de root MySQL: (password)
Aceder a http://
- Username: fog
- Password: password
Etiquetas:
fog,
informática,
jeos,
ubuntu,
virtualbox
domingo, 10 de maio de 2009
Ubuntu ultraleve
Há uma grande quantidade (provavelmente demasiadas) distribuições de Linux baseadas em Ubuntu, incluindo várias que utilizam menos recursos, específicas para hardware mais antigo.
Aqui fica mais uma maneira de obter um mini-Ubuntu usando apenas o Ubuntu original.
Usar o CD de arranque da versão "mini" (procurar no site do Ubuntu) ou então um CD da versão servidor e efectuar uma instalação mínima, apenas a linha de comandos.
Depois de arrancar na máquina já instalada fazer o:
Agora há várias opções:
1. Minimalista
2. Menos minimalista A
4. Os Ubuntus normais
4.1. Xubuntu
Aqui fica mais uma maneira de obter um mini-Ubuntu usando apenas o Ubuntu original.
Usar o CD de arranque da versão "mini" (procurar no site do Ubuntu) ou então um CD da versão servidor e efectuar uma instalação mínima, apenas a linha de comandos.
Depois de arrancar na máquina já instalada fazer o:
$sudo apt-get updatePara actualizar o sistema.
$sudo apt-get dist-upgrade
Agora há várias opções:
1. Minimalista
$sudo apt-get install xorg xterm wdm dillo
$sudo apt-get install icewm menu lxpanel lxlauncher lxpanel-netstat-plugin
$sudo /etc/init.d/wdm start
2. Menos minimalista A
$sudo apt-get install xorg xterm gdm gksu dillo2. Menos minimalista B
$sudo apt-get install icewm menu rox-filer slim thunar
$mkdir ~/.icewm
$cp /etc/X11/icewm/* ~/.icewm/
$echo "rox --pinboard=yourusername &">~/.icewm/startup
$chmod u+x ~/.icewm/startup
$sudo /etc/init.d/gdm start
$sudo apt-get install lxde3. Menos minimalista com FireFox
$sudo apt-get install xorg xterm gdm gksu firefox synaptic
$sudo apt-get install icewm menu rox-filer slim thunar
$mkdir ~/.icewm
$cp /etc/X11/icewm/* ~/.icewm/
$echo "rox --pinboard=yourusername &">~/.icewm/startup
$chmod u+x ~/.icewm/startup
$sudo /etc/init.d/gdm start
4. Os Ubuntus normais
4.1. Xubuntu
$sudo apt-get install xubuntu-desktop4.2. Ubuntu
$sudo apt-get install ubuntu-desktop4.3. Kubuntu
$sudo apt-get install kubuntu-desktop
Etiquetas:
informática,
light,
linux,
ubuntu
Subscrever:
Mensagens (Atom)