Emulador de terminal no navegador

Um interessante emulador de terminal Linux pode ser encontrado na internet,
ele foi totalmente implementado em java:

http://bellard.org/jslinux/

Publicado em Dicas, Uncategorized | Deixe um comentário

Utilizando o pendrive como token de login

Achei muito interessante mais essa opção do Linux, utilizar o pendrive para se logar no sistema. O sistema é de fácil implementação porem cada tipo de login deve ser configurado separadamente. Vou mostrar como configurar o login no modo texto e o login no modo gráfico utilizando o gdm como gestor de login. Então vamos à configuração:
# apt-get update
# apt-get install libpam-usb pamusb-tools
Primeiro, vamos criar um link para o arquivo de configuração instalado pelo debian.
# ln -s /etc/pamusb.conf /etc/security/pamusb.conf
Adicionar um pendrive:
# pamusb-conf –add-device=pendrive
Confirme para salvar as configurações mostradas no arquivo: /etc/pamusb.conf.
Agora vamos criar os usuários que irão utilizar o token:
# pamusb-conf –add-user=pedro
Confirme para salvar as configurações no arquivo: /etc/pamusb.conf
Agora poderemos verificar se tudo está devidamente configurado:
# pamusb-check –dump pedro
Verificar se o usuário pode se logar:
# pamusb-check pedro
É possível configurar vários usuários num mesmo pendrive.
Agora devemos configurar o serviço PAM para utilizar o pendrive no login.
# vi /etc/pam.d/login
auth     optional   pam_faildelay.so  delay=3000000
auth     [success=ok ignore=ignore user_unknown=ignore default=die]  pam_securetty.so
auth     requisite  pam_nologin.so
auth     sufficient pam_usb.so use_first_pass
session  required   pam_env.so readenv=1
session  required   pam_env.so readenv=1 envfile=/etc/default/locale
@include common-auth
auth     optional   pam_group.so
session  required   pam_limits.so
session  optional   pam_lastlog.so
session  optional   pam_motd.so
session  optional   pam_mail.so standard
@include common-account
@include common-session
@include common-password
A linha adicionada encontra-se em negrito, colocamos a opção como sufficient para que tenha prioridade sobre as demais, ou seja, se o token estiver colocado o login será automático, caso não esteja, o login seguirá o procedimento normal.
Já podemos testar o login no modo texto.
Já podemos configurar o gdm para o login gráfico:
# vi /etc/pam.d/gdm
auth     requisite       pam_nologin.so
auth     required        pam_env.so readenv=1
auth     required        pam_env.so readenv=1 envfile=/etc/default/locale
auth     sufficient      pam_usb.so use_first_pass
@include common-auth
auth     optional        pam_gnome_keyring.so
@include common-account
session  required        pam_limits.so
@include common-session
session  optional        pam_gnome_keyring.so auto_start
@include common-password
Pronto, agora já podemos nos logar em modo gráfico.
Existem várias outras opções que postarei brevemente, por enquanto divirtam-se.

Publicado em Uncategorized | Deixe um comentário

Balanceamento de carga ethernet

Neste post vou mostrar o balanceamento de carga do Linux, também conhecido como Trunking (Sun), Etherchannel (Cisco) ou Bonding (Linux). Isto nada mais é do que acessar várias placas de rede físicas através de uma placa virtual. Vou tentar ser o mais objetivo possível. Para saber se o nosso sistema esta preparado para o balanceamento de carga devemos executar:

# modprobe -l -t net | grep bonding

Ele deverá retornar algo como:

/lib/modules/2.6.31-22/kernel/drivers/net/bonding/bonding.ko

No mundo real será muito difícil que não esteja configurado no kernel. Agora vamos instalar a ferramenta para configurar o balanceamento de carga;

# apt-get install ifenslave

A seguir vamos configurar as placas de rede:

# vi /etc/network/interfaces
#######
auto lo
iface lo inet loopback
#######
auto bond0
iface bond0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 eth1

Todas as interfaces físicas (eth0, eth1, eth2, etc…) que fizerem parte da interface bond NÂO serão configuradas, pois já estão definidas dentro do bond.

A seguir será configurada a forma de funcionamento deste balanceamento de carga. Aqui é que a coisa fica um pouco complicada, pois existem várias opções disponíveis, como pode ser visto na tabela a seguir que mostra os modos de configuração:

0 => balance-rr
Os pacotes são transmitidos em uma forma de rodízio entre as
interfaces de rede, fornecendo tolerância a falhas e balanceamento de carga.
1 => active-backup
Somente uma interface está ativa, se houver algum problema com ela será
substituída por outra que assume o seu MAC. Só fornece tolerância a falhas.
2 => balance-xor
Transmissões são distribuídas entre as interfaces, balanceamento de carga por
(MAC address origem) x (MAC address destino), sempre a mesma placa manda
para um mesmo destino. Fornece balanceamento de carga e tolerância a falhas.
3 => broadcast
Transmite utilizando todas as placas independente de destinos, fornece
tolerância a falhas.
4 => 802.3ad
Modo clássico de “Dynamic link aggregation”, requer apoio de um switch com
802.3ad, e suporte por driver para recuperar a velocidade e duplex de cada
escravo (NIC)
5 => balance-tlb
“Adaptive Transmit Load Balancing”, O tráfego de entrada é recebida somente
no slave (NIC) ativo, o tráfego de saída é distribuído de acordo com a corrente
de carga em cada escravo (NIC). Não requer apoio especial do switch.
6 => balance-alb (charp)
“Adaptive Load Balancing”, Fornece tanto balanceamento de carga na transmissão,
como balanceamento de carga no recebimento para IPV4, através de negociação
ARP. Não requer apoio especial do switch mas requer a habilidade de mudar o
endereço MAC de um dispositivo (NIC) enquanto ele estiver em utilização.

O arquivo de configuração utilizado será:

#  vi /etc/modprobe.d/arch/i386
Adicione estas linhas no fim do arquivo:
alias bond0 bonding
options bonding mode=1 miimon=100 downdelay=200 updelay=200

Neste caso o bond foi configurado para modo=1 ou seja “active-backup”. Se uma das placas falhar será substituída pela outra.

Agora é só desabilitar as placas eth0 e eth1:

# /etc/init.d/networking stop
# ifconfig eth0 down
# ifconfig eth1 down

E reiniciar o serviço;

# /etc/init.d/networking start

Se tudo correr bem, irá aparecer a interface bond1 depois do comando:

# ifconfig -a

Publicado em Console, Dicas, Hardware, Kernel, Redes, Todos | 2 Comentários

Otimizando a instalação de programas no Debian/Ubuntu.

O download dos programas pode ser otimizado através da utilização da ferramenta “axel” cujo objetivo é baixar várias partes do arquivo em sites diferentes para acelerar a instalação. Por padrão ele baixa o arquivo em quatro partes, mas é possível configura-lo para mais pedaços, se houver banda disponível. É aqui que entra a ferramenta “apt-fast” cujo objetivo é acelerar a instalação dos programas, ela substitui completamente a ferramenta apt-get, e podemos inclusive optar entre elas, já que o apt-get não é alterado pela instalação do apt-fast. Caso ocorra algum problema na instalação dos pacotes podemos optar pela utilização do apt-get que é mais conservador.
Vamos então ao procedimento de instalação para o Ubuntu:

# add-apt-repository ppa:tldm217/tahutek.net
#
apt-get update
# apt-get install apt-fast

A partir deste momento já poderemos utilizar o comando para a instalação dos programas. Segundo o site oficial do projeto poderemos conseguir até 26x mais velocidade utilizando o axel. Na verdade não espero tanto, o dobro a meu ver, já é muito bom.

# apt-fast update
# apt-fast upgrade
# apt-fast install xgalaga
# apt-fast dist-upgrade

E assim por diante, repare que agora os pacotes são baixados “4x” mais rápido em teoria.

Publicado em Console, Dicas | Deixe um comentário

Controlando as memórias RAM/SWAP

Basicamente o que pretendemos aqui é configurar o balanceamento de carga entre a memória RAM e o SWAP. Lembrando que é sempre mais rápida a utilização da memória RAM. Nós podemos configurar o sistema para que privilegie uma das opções.
Arquivo de configuração:  /etc/sysctl.conf
Opção do arquivo: vm.swappiness (Se não existir adicione a opção)
Valores possíveis: 0-100
0- Utilizar o máximo possível de RAM (Programas funcionam mais rápido)
100-  Utilizar o máximo possível de SWAP (Programas iniciam mais rápido)
O melhor equilibro é determinado pela nossa necessidade, para determina-la nada melhor do que a boa e velha “tentativa e erro”.
Para encontrar o valor atual, digite:
# sysctl vm.swappiness
Para alterar esse valor:
# sysctl -w vm.swappiness=80
Para fixar esse valor nas próximas inicializações:
# vi /etc/sysctl.conf
vm.swappiness = 80
Para assumir o(s) valor(es) configurado(s) em /etc/sysctl.conf:
# sysctl -p
Para ver todos os valores configurados atualmente;
# sysctl -a

Publicado em Console, Dicas, Hardware, Todos | Deixe um comentário

Comandos Interesantes

lscpu
Mostra informações sobre a CPU, também pode ser substituida pelo comando “cat /proc/cpuinfo”

lspci
Mostra informações sobre o hardware PCI do sistema.

lshw
Mostra uma relação do hardware instalado

lshal
Lista os dispositivos registrados no HAL, que é a camada de abstracção de hardware (ou CAH em português) é a camada entre o hardware físico de um computadore o software que corre nesse computador. A sua função é ocultar diferenças em hardware e, consequentemente, disponibilizar uma plataforma consistente para correr aplicações. O melhor exemplo de uma CAH pode ser encontrado na arquitectura AS/400. A implementação do LIC ou Licensed Internal Code foi tão bem sucedida que software escrito no seu predecessor, o S/38, corria sem modificações num AS/400. O hardware subjacente mudou drasticamente; já foram usados pelo menos 3 tipos diferentes de processador. Sistemas operativos baseados em BSD, Linux e o Windows NT possuem uma CAH. Estes sistemas operativos possuem subsistemas diferentes para funções específicas, tais como som e gráficos.

lsof
Mostra uma relação dos arquivos abertos.

lspcmcia
Mostra uma relação dos dispositivos pcmcia disponiveis no sistema.
PC Card é um barramento destinado aos computadores portáteis (notebooks e laptops), desenvolvido pela PCMCIA (Personal Computer Memory Card International Association), com um conjunto de mais de 300 fabricantes, onde se estabeleceu os padrões para os cartões adaptadores e de expansão para notebooks e laptops.

lsusb
Lista os dispositivos USB disponíveis no sistema. O padrão USB foi desenvolvido por um consórcio de empresas, entre as quais destacam-se: Microsoft, Apple, Hewlett-Packard, NEC, Intel e Agere. Foi muito difícil para estas empresas encontrar um consenso sobre a abordagem do controlador. Dividiram-se então as opiniões, formando dois grupos distintos: UHCI, Universal Host Controller Interface, apoiado majoritariamente pela Intel, que transferia parte do processamento do protocolo para o software (driver), simplificando o controlador eletrônico; OHCI, Open Host Controller Interface, apoiado pela Compaq, Microsoft e National Semiconductor, que transferia a maior parte do esforço para o controlador eletrônico, simplificando o controlador lógico (driver).

routel
Lista as rotas em utilização no sistema.

Publicado em Uncategorized | Deixe um comentário

Como adicionar o modo gráfico a um servidor Ubuntu

Para usuários iniciantes é decepcionante perceber que o servidor Ubuntu não vem com serviços gráficos (X11). Não vamos neste post entrar nos “porques” desta medida e vamos direto para a “solucionatica” da questão;

Para uma instalação mínima do sistema de janelas;
Cliente:
# apt-get install xauth
Servidor:
# apt-get install xserver-xorg xserver-xorg-core
Window Manager:
# apt-get install openbox

Você pode substituir o openbox por outros “window managers” como por exemplo;
Blackbox, Window Maker, LXDE, Fluxbox, entre outros, que são sistemas de janela mais leves, para instalar sistemas de janelas mais sofisticados (pesados) temos por exemplo o Gnome e o KDE.

Como continuamos inicializando em modo texto para chamar o ambiente gráfico digitamos num terminal:
# startx
Para termos um login gráfico teremos que instalar ainda;
# apt-get install gdm
Este gestor de login poderá ser substituído por outros como o kdm ou o xdm dentre outros.

Para uma instalação mais completa e rápida basta digitar, por exemplo;
# apt-get install gnome-desktop-environment
para a instalação completa de um ambiente gnome.

Publicado em Uncategorized | Deixe um comentário

Adicionando Serviços em sistemas Debian/Ubuntu

Para usuários iniciantes alguns serviços podem ser de difícil instalação, para facilitar essa tarefa em sistemas sem ambiente gráfico (o que é normal em servidores Debian/Ubuntu) vamos instalar uma aplicação cujo objetivo é facilitar essa tarefa.

# apt-get install                    \
tasksel                  \
tasksel-data         \
education-tasks  \
junior-tasks         \
science-tasks       \
med-tasks

O pacote básico (tasksel-data) contem a instalação dos serviços de rede, o education prove os pacotes para educação, o junior prove os jogos, o med as aplicações medicas e science as aplicações científicas.

Além de todas essas opções ainda temos disponível uma opção para selecionar os pacotes dentro de cada uma das seções.

Para executar o programa basta digitar o comando a seguir num terminal.

# tasksel

Publicado em Console, Dicas, Programas, Todos, Uncategorized | Deixe um comentário

Como enviar email’s com anexos na linha de comando.

Existem várias formas de resolução para este problema, talvez a mais simples seja;

$ mpack -s “Assunto do email” -d mensagem.txt  arquivo.pdf  pedro@mail.com

Para recuperar o arquivo:
Normalmente o sistema entrega o email no arquivo mbox no home do usuário. Para extrair o arquivo utilize o comando;

$ munpack mbox

Publicado em Console, Dicas, Programação, Todos | Deixe um comentário

Montando comportilhamentos com ssh

Uma nova forma de montagem de diretórios remotos com túnel criptográfico. É muito mais fácil que todas as outras formas de montagem. Primeiro vamos à maquina que irá compartilhar os diretórios.

# apt-get install ssh

Agora vamos ao cliente que ira montar os diretórios;

# apt-get install sshfs

Agora vamos montar o diretório; para tal usaremos o comando;
sshfs usuario@ip-remoto:/Diretorio-remoto   /diretorio-local
Que ficará assim;

# sshfs pedro@192.168.1.23:/home/pedro  /mnt

Pedro deve existir na máquina remota, e deve ter direitos de acesso aos diretórios compartilhados. A montagem local pode ser feita em qualquer diretório, para o qual o pedro tenha direitos de acesso. Para automatizar o processo podemos adicionar uma alinha no arquivo /etc/fstab, que ficaria como mostrado a seguir;

vi /etc/fstab

Publicado em Console, Dicas, Redes, Sistema de arquivos, Todos | Deixe um comentário