Configurando rede no GNU/Linux

29 03 2008
Carlos E. Morimoto
28/03/2008
Mesmo a configuração de rede no Windows, que é aparentemente simples, esconde vários segredos, como vimos no tutorial sobre redes Windows:

server

Configurando a rede no Windows
A configuração de rede no Windows é um assunto bastante conhecido, pois a configuração é bastante similar entre as diferentes versões do Windows e a configuração gráfica torna tudo mais simples. Entretanto, é justamente a aparente simplicidade que faz com que muitos recursos passem despercebidos. Este é um tutorial “mais que completo” sobre a configuração de rede no Windows, incluindo tópicos avançados, configuração de redes wireless e a configuração no Vista.

Vamos agora estudar sobre a configuração de rede no Linux, que apesar de aparentemente complicada, não é tão exótica quanto pode parecer à primeira vista.

A primeira coisa a ter em mente com relação à configuração de rede no Linux é que, como quase tudo no sistema, a configuração pode ser feita tanto usando utilitários gráficos quanto diretamente, através de comandos e da edição dos arquivos de configuração. Existe uma grande variação com relação aos utilitários de configuração, já que cada distribuição adota um utilitário diferente, mas os passos da configuração manual são quase sempre os mesmos, com poucas variações.

Vamos então estudar as duas formas, começando com os utilitários e em seguida nos aprofundando na configuração manual do sistema.

Ubuntu

O Ubuntu, usa o networkmanager como utilitário de configuração da rede. Ele fica ativo ao lado do relógio e é carregado automaticamente durante o boot do sistema.

Ele tem a função de detectar as redes wireless disponíveis, mostrando uma lista que facilita a conexão e também de detectar a inserção do cabo de rede. A partir do momento em que o cabo de rede está conectado, ele tenta configurar a rede via DHCP. É por isso que em muitos casos o sistema configura a rede “sozinho”, sem que você precise fazer nada.

Clicando sobre o ícone ao lado do relógio, você pode alternar entre as redes disponíveis, incluindo tanto a rede cabeada quanto as redes wireless disponíveis. Usando a opção “Configuração manual” você tem acesso à configuração manual dos endereços para cada interface:

 

 

 


index_html_1bd64d2e

 index_html_50c1c712

Você pode notar que está disponível também a opção de configurar um modem discado, mas as opções são rudimentares; se você usa acesso discado, recomendo utilizar o gnome-ppp ou o kppp, que podem ser instalados através do gerenciador de pacotes.

Como de praxe, o utilitário de configuração é aberto com permissões administrativas. Mas, ao contrário de outras distribuições, onde seria solicitada a senha de root, o Ubuntu apenas confirma sua própria senha de usuário e abre o utilitário usando o sudo.

Dentro das propriedades da interface de rede, você vai notar a opção “Habilitar o modo de roaming”, que é justamente o recurso responsável pela conexão automática às redes disponíveis. Desativando a opção, você tem acesso à configuração manual da rede e pode definir endereços estáticos ou ativar o uso do DHCP:

index_html_12cbefc2

 index_html_6823ee3a

No Ubuntu 7.10 existe um bug que faz com que as alterações não sejam aplicadas depois de salvas. Você pode contornar isso forçando uma atualização manual, reiniciando o serviço responsável pela configuração da rede:

$ sudo /etc/init.d/networking restart

De volta à tela principal, você pode ajustar o nome da máquina na aba “geral” e ajustar os endereços dos servidores DNS na aba “DNS”. Ao contrário do Windows, onde você pode definir endereços de DNS específicos para cada interface, os endereços definidos no networkmanager valem para todas as interfaces de rede.

Na aba “Máquinas” você pode definir “apelidos” para as outras máquinas da rede, relacionando seus nomes a endereços IP. Criando um apelido, em vez de digitar “ssh 192.168.1.254″ ao acessar o servidor da rede via SSH (por exemplo), você pode usar apenas “ssh servidor”. Esta opção equivale à edição do arquivo “/etc/hosts”, que você encontra em qualquer distribuição.

index_html_m3c291d59

 index_html_83f9609

Se você carrega o notebook de baixo do braço para cima e para baixo e precisa acessar diversas redes diferentes ao longo do dia, cada uma com uma grade de configuração diferente, pode usar o recurso de profiles, de forma a salvar as configurações e alternar entre elas.

Para salvar um profile, conecte-se à rede e use o botão com o disquete (dentro do “Configurações de rede”) para salvar a configuração, dando um nome a ela. O profile contém a grade completa da configuração, incluindo quais interfaces estão ativas e toda a grade de endereços usados. Os profiles salvos aparecem no campo “local”, permitindo que você alterne entre eles rapidamente:

index_html_6d60ed58

O networkmanager tem um irmão, o knetworkmanager, que é usado no Kubuntu. Os dois oferecem basicamente as mesmas opções, a diferença é que o knetworkmanager é baseado nas bibliotecas do KDE, enquanto o networkmanager é baseado nas bibliotecas do Gnome.

Ambos ficam ativos continuamente, como um serviço de sistema, que você não consegue desativar através do ambiente gráfico. Se você quiser configurar a rede manualmente, como veremos a seguir, precisa primeiro desativá-los, usando os comandos abaixo:

$ sudo /etc/dbus-1/event.d/??NetworkManagerDispatcher stop
$ sudo /etc/dbus-1/event.d/??NetworkManager stop

Em seguida, abra o arquivo “/etc/rc.local” (como root) e adicione os dois comandos, retirando o “sudo”, para que eles passem a ser executados automaticamente durante o boot. No caso do Kubuntu, é necessário também desativar o knetworkmanager dentro do ambiente gráfico, desmarcando o início automático nas configurações do programa.

Fedora

O Fedora utiliza o system-config-network, disponível no “Sistema > Administração > Rede”. Ele é um dos utilitários gráficos mais antigos para configuração da rede, usado desde as primeiras versões do Red Hat Desktop, antecessor do Fedora. Você vai perceber que a interface lembra um pouco a do networkmanager, já que os dois utilitários tem uma origem comum.

 

Na tela principal, clique sobre a interface a configurar e clique no botão “Editar” para ter acesso à janela de configuração. Além das opções de configurar a rede via DHCP ou usando um endereço fixo, você tem a opção de ativar o uso do protocolo IPV6, permitir que outros usuários da máquina possam ativar e desativar a interface (útil caso o micro seja compartilhado entre várias pessoas, ou no caso de um servidor) e também definir o MTU usado pela placa:

index_html_6ff74382

 index_html_m7d3c94ff

O MTU permite definir o tamanho máximo dos pacotes que são transmitidos através da rede. Usar pacotes menores pode melhorar sutilmente o desempenho em conexões via modem ou em redes baseadas em hubs burros, onde exista um grande volume de colisões. Mas, em situações normais, reduzir o MTU só atrapalha, pois reduz o percentual de bytes úteis dentro de cada frame, em relação ao overhead.

A tendência atual é justamente o contrário, ou seja, aumentar o tamanho dos frames, de forma a melhorar o aproveitamento do link e reduzir o volume de frames necessários para transmitir um determinado volume de dados, reduzindo assim o volume de processamento necessário. Este recurso é chamado de “jumbo frames” e permite o uso de frames com até 9000 bytes.

Continuando, a aba “Rota” permite definir rotas alternativas para determinados PCs da rede ou da Internet, o que é útil em redes com mais de um gateway. Você pode então usar o servidor A como gateway padrão, mas fazer com que acessos a uma determinada faixa de endereços sejam feitos através do servidor B.

De volta à tela principal, você pode definir os endereços dos servidores DNS na aba “DNS” e definir apelidos para os endereços na aba “Servidores” (da mesma forma que na aba “máquinas” do networkmanager):

index_html_m3da54e68

 index_html_174f4199

A aba “IPsec” permite criar VPNs. Existem duas modalidades: Host a Host (onde é criado um túnel entre dois micros) e Rede a Rede, onde é criada uma VPN entre duas redes, permitindo que os micros de uma enxerguem os da outra, como se ambas formassem uma rede só.

Para criar a VPN, é necessário que o servidor do outro lado da conexão esteja acessível via Internet (ou seja, utilize um IP fixo ou um domínio virtual) e esteja com o IPsec ativo. O IPsec é um software padrão, que pode ser usado em qualquer distribuição, por isso não é necessário que a outra máquina também esteja rodando o Fedora, mas apenas que o daemon do IPsec esteja disponível.

Assim como no networkmanager, você pode criar profiles com diferentes grades de configuração para a rede, alternando rapidamente entre elas conforme necessário:

index_html_m408921e9

 index_html_m760d6878

Além do system-config-network, o Fedora inclui também uma versão em modo texto, o “system-config-network-tui”, que é útil em situações onde o modo gráfico não estiver configurado, ou ao configurar servidores sem o ambiente gráfico instalado.

Você encontra também uma versão ligeiramente modificada do system-config-network na forma do “network-admin“, um utilitário disponível no Debian e em outras distribuições baseadas nele. Ele pode ser instalado através do pacote “gnome-system-tools”:

index_html_51eb91bd

 index_html_6e13d9ea

Clicando nas propriedades de cada interface, dentro do network-admin, você cai no menu de configuração, onde pode definir os endereços ou ativar a configuração via DHCP. No caso de um micro com duas ou mais placas, como no caso de um notebook com uma placa cabeada e uma placa wireless, ou no caso de um servidor compartilhando a conexão, você precisa definir qual delas é a interface onde está a conexão com a Internet, através da opção “Dispositivo padrão de gateway”.

Mandriva

No Mandriva, as ferramentas de configuração estão agrupadas dentro do Mandriva Control Center, na seção “Rede e Internet”. Como você pode ver no screenshot a seguir, estão disponíveis opções para compartilhar a conexão (no caso de um PC com duas ou mais interfaces de rede), configurar uma VPN, utilizar um servidor proxy ou criar diferentes perfis de configuração. Temos também a opção “Definição de hosts”, que permite criar apelidos, assim como vimos nas outras ferramentas:

index_html_m66238c0

A opção “Configurar uma nova interface de rede” inclui um wizard para configurar diversos tipos de conexão, incluindo conexões discadas, conexões via celular (veja a seguir), ISDN e outras. Mas, para configurar uma rede local você pode ir direto na opção “Centro de Rede”, que permite configurar as interfaces disponíveis sem rodeios:

index_html_7308ea16

Clicando na opção “Configurar” você tem acesso à configuração da rede, como de praxe. Uma dica é que, ao configurar a rede via DHCP, você pode definir um timeout para o servidor DHCP dentro das opções avançadas. Isso evita que o sistema fique aguardando a resposta do servidor DHCP quando o cabo de rede estiver desconectado, o que retarda o boot. Em situações normais, a resposta do servidor DHCP demora poucos milessegundos, de forma que um timeout de 2 segundos é mais do que suficiente:

index_html_m351fdce1

A configuração de endereço IP, máscara, gateway e DNS vale tanto para redes cabeadas quanto para redes wireless. A diferença é que as redes wireless possuem alguns parâmetros adicionais, que são necessários para estabelecer a conexão com o ponto de acesso. Só depois que a conexão é estabelecida, passamos para a configuração dos endereços.

Acesso a redes Windows

Graças ao cliente Samba, é possível acessar compartilhamentos de rede em máquinas Windows também a partir das máquinas Linux da rede. É possível também compartilhar arquivos e impressoras (que ficam disponíveis tanto para as máquinas Windows, como também para outras máquinas Linux da rede) usando o servidor Samba.

No Ubuntu, você pode usar o módulo de acesso a compartilhamentos do Nautilus, disponível no menu “Locais > Rede” (no menu do topo da tela). Ao ser aberto, ele mostra os servidores e compartilhamentos disponíveis dentro do ícone “Rede Windows”:

 

 

 

 

 

index_html_30638314

Você pode também especificar compartilhamentos manualmente usando a opção “Locais > Conectar ao Servidor”. No menu seguinte, especifique o IP ou o nome do servidor, seguido do nome do compartilhamento que será acessado. A opção “Pasta” fica vazia e o login de acesso é especificado na opção “Nome do Usuário”. A opção “Nome do Domínio” é usada apenas caso o servidor a ser acessado tenha sido configurado para fazer parte de um domínio Windows, ou caso a rede utilize o Active Directory:

index_html_mdee98f5

Isso cria um ícone no desktop, que dá acesso aos arquivos do compartilhamento. Se o usuário e senha usados para acesso ao compartilhamento forem os mesmos que você usa para fazer login localmente, os arquivos são acessados diretamente, caso contrário é solicitada a senha.

index_html_m1e55a87c

Estas são na verdade funções do Nautilus (o gerenciador de arquivos do Gnome), que estão disponíveis também em outras distribuições, embora o acesso a elas possa ser feito de formas diferentes.

Outro programa muito usado é o “Smb4k“, que vem instalado por padrão em diversas distribuições baseadas no KDE. Ao ser aberto, ele mostra os grupos de trabalho disponíveis na rede e, dentro de cada um, os servidores e compartilhamentos. Ao clicar sobre um compartilhamento que exige autenticação, ele abre um prompt de login; e os compartilhamentos acessados aparecem no menu da direita. Clicando sobre eles você abre uma tela do gerenciador de arquivos:

index_html_7b0035a7

Os compartilhamentos acessados através do Smb4k são, na verdade, montados dentro da pasta “smb4k”, dentro do seu diretório home. Eles são organizados em uma estrutura de pastas, onde temos uma pasta separada para os compartilhamentos de cada servidor. Note que quando falo em “servidor” me refiro a qualquer máquina da rede que esteja compartilhando arquivos.

index_html_65e781ed

Em casos onde o Smb4k não consiga mostrar corretamente os compartilhamentos, ou a navegação fique instável, você pode indicar manualmente o endereço IP de uma máquina Windows, ou servidor Samba de onde ele obterá a lista dos compartilhamentos. Acesse o “Configurações > Configurar Smb4k > Rede” e indique o servidor na opção “Query a master browser to retrieve the browse list”.

Na opção “Compartilhamentos”, você pode marcar a opção “Remount recently used shares on program start”, que faz com que ele “lembre” dos compartilhamentos acessados e restaure o acesso a eles ao ativar o programa, mesmo depois de reiniciar a máquina.

index_html_m229768fb

Outra opção para acessar os compartilhamentos é usar o módulo “smb:/” do Konqueror. Abra uma janela do gerenciador de arquivos e digite “smb://servidor” (onde o “servidor” pode ser o endereço IP, ou o nome do servidor Windows ou Samba dentro da rede) para ver os compartilhamentos disponíveis. Você pode digitar também “smb://grupo” (onde “grupo” é o nome do grupo de trabalho) ou mesmo apenas “smb:/” (neste caso com uma única barra) para que ele tente mostrar toda a rede:

index_html_m28f9da76

Configurando a rede manualmente

Como vimos, existem diversas ferramentas gráficas de configuração da rede, que você pode usar de acordo com a distribuição. Mesmo assim, nenhuma ferramenta é à prova de falhas. Erros diversos podem ocorrer, lhe obrigando a corrigir o problema manualmente.

 

Além de ser um trunfo na hora de solucionar problemas, entender a configuração manual do sistema lhe dá uma flexibilidade muito maior na hora de criar configurações personalizadas ou pouco comuns, ou ainda na hora de configurar servidores dedicados, sem ambiente gráfico.

O utilitário básico para configurar a rede é o ifconfig. Ele suporta um grande número de opções, mas o comando básico para ativar a rede é:

# ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up

Este comando configura o endereço IP e a máscara de sub-rede para a interface especificada (a “eth0″ no exemplo) e o “up” serve para ativar a interface, caso ela esteja inativa.

No Linux, as placas Ethernet cabeadas recebem nomes como “eth0″ (primeira placa), “eth1″ (segunda placa), “eth2″ (terceira placa) e assim por diante. No caso das placas wireless, o nome muda de acordo com o modelo e com o driver usado. Placas configuradas através do ndiswrapper são identificadas como “wlan0″, placas com chipset Ralink como “ra0″ e placas com chipset Intel como “eth1″, da mesma forma que uma placa cabeada. Em caso de dúvida, você pode verificar como as placas de rede foram detectadas pelo sistema usando os comandos:

# cat /proc/net/dev


(mostra todas as interfaces)

# cat /proc/net/wireless


(mostra apenas as placas wireless)

Além das interfaces de rede, o comando “cat /proc/net/dev” mostra também interfaces virtuais, como a lo (a interface de loopback) e a sit0, que é uma interface virtual, usada pelo protocolo IPV6 para encapsular pacotes IPV4 quando necessário. Se você usa o VMware, a lista incluirá também a interface vmnet8, que é usada para permitir que as máquinas virtuais acessem a rede. Veja um exemplo da saída dos dois comandos:

index_html_5d7b017c

 

index_html_dac0079

Através do “cat /proc/net/dev”, posso ver que o PC usado nos screenshots possui três interfaces de rede (eth0, eth1 e a ppp0) e, através do “cat /proc/net/wireless” vejo que a interface eth1 é uma placa wireless. Não seria difícil deduzir então que a placa eth0 é a placa cabeada, a eth1 é a placa wireless e a ppp0 é um modem discado, ou uma conexão via celular.

Depois de identificadas as interfaces, o passo seguinte é definir a rota padrão, ou seja, o gateway da rede e a interface que será usada para contatá-lo. Por segurança, rodamos primeiro o comando “route del default”, que desativa qualquer configuração anterior:

# route del default
# route add default gw 192.168.1.1 dev eth0

… onde o “192.168.0.1″ é o gateway da rede e a “eth0″ é a placa conectada a ele. Estes mesmos dois comandos resolvem casos em que o micro tem duas placas de rede (ou uma placa de rede e um modem) e o sistema tenta acessar a Internet usando a interface errada.

Em caso de redes com mais de um gateway (caso você tenha uma conexão via ADSL e também uma conexão via cabo, por exemplo), estes mesmos comandos podem ser usados para mudar a conexão que está sendo usada. Se o segundo gateway da rede é o “192.168.1.254″, por exemplo, você poderia mudar a configuração para que ele seja utilizado no lugar no “192.168.1.1″ usando os comandos:

# route del default
# route add default gw 192.168.1.254 dev eth0

É possível também fazer com que o segundo roteador seja usado apenas para um endereço específico, o que é útil na hora de fazer grandes downloads. Você pode usar a segunda conexão para baixar o arquivo, deixando a conexão principal livre. Para isso, copie o endereço do arquivo e selecione apenas o endereço ou domínio do servidor, como em “linorg.usp.br”, ignorando a estrutura de pastas até o arquivo.

Use em seguida o comando “route add host”, especificando o servidor, o gateway e a interface de rede que serão usadas para acessá-lo, como em:

# route add -host linorg.usp.br gw 192.168.1.1 dev eth0

Com isso, os downloads feitos a partir do servidor especificado serão feitos usando o gateway “192.168.1.1″ e todos os demais acessos continuarão sendo feitos através do “192.168.1.254″. Com o preço dos planos de acesso caindo como estão, pode valer à pena ter uma segunda conexão para baixar arquivos e usar como backup.

Para checar as rotas definidas, use o comando “netstat -rn” e, para remover uma rota definida manualmente (de forma que o servidor volte a ser acessado usando a rota padrão), use o comando “route del -host”, seguido pelo endereço, como em:

# route del -host linorg.usp.br

Depois de definir o IP, máscara e o gateway, falta também indicar os servidores de DNS, o que é feito no arquivo “/etc/resolv.conf“. Nele você indica os servidores DNS que serão usados, um por linha, como em:

nameserver 208.67.222.222
nameserver 208.67.220.220

A falta dos endereços no “/etc/resolv.conf” é, provavelmente, a causa mais comum de problemas com a navegação. Na dúvida, você pode utilizar qualquer servidor de DNS público, como os endereços do opendns.com que usei no exemplo anterior.

Para checar a configuração rapidamente em caso de problemas e assim verificar o que está errado, você pode usar os comandos:

# ifconfig
# route
# cat /etc/resolv.conf

Outro arquivo que vale à pena citar é o “/etc/hosts“, onde você pode definir apelidos para hosts que deseja acessar. Os apelidos podem ser usados para agilizar o acesso a micros que você acessa com frequência, ou serem usados para atribuir nomes aos micros da rede local, sem para isso precisar configurar um servidor DNS.

Originalmente ele contém uma declaração para a interface de loopback, que relaciona o endereço “127.0.0.1″ com os nomes “localhost” e com o nome da máquina:

127.0.0.1 lenny localhost

Imagine, por exemplo, que você administra o “servidor.minhaempresa.com”. Sempre que precisa acessá-lo você precisa digitar “ssh servidor.minhaempresa.com”, o que é tedioso. Você poderia simplificar as coisas adicionando uma entrada como esta no /etc/hosts:

servidor.minhaempresa.com servidor

A partir daí, você poderia acessá-lo apenas digitando “ssh servidor”. Também funciona ao especificar o endereço IP diretamente, como em:

200.234.32.21 servidor

Para dar nomes aos micros da rede local, você criaria uma lista, como em:

192.168.1.1 gateway
192.168.1.40 etch
192.168.1.31 sarge
192.168.1.30 woody

O grande problema em usar o /etc/hosts para dar nomes aos micros da rede local, no lugar de um servidor DNS, é que você precisa replicar a lista (e mantê-la atualizada) em todos os micros. Funciona em redes pequenas, com 3 ou 5 micros, mas para redes maiores um servidor DNS local acaba sendo uma opção muito mais saudável.

Além de ser declarado no arquivo /etc/hosts, o nome da máquina é configurado no arquivo “/etc/hostname“. Este arquivo contém uma única linha, contendo o nome da máquina, como em:

 

lenny

Este arquivo é lido durante o boot pelo script “/etc/init.d/hostname.sh”, que se encarrega de atribuir o nome especificado no arquivo.

Configurando via DHCP

Configurar a rede via DHCP é bastante simples. Desde que exista um servidor DHCP na rede, a estação recebe os endereços automaticamente e você não precisa esquentar a cabeça.

No Linux, existem dois clientes dhcp. O mais usado é o “dhclient“, disponível na maioria das distribuições. O comando para configurar uma placa via DHCP manualmente através dele é:

# dhclient eth0

(onde o eth0 é a interface a ser configurada)

Ao usá-lo via terminal, ele mostra todos os passos da negociação, incluindo o endereço do servidor DHCP da rede e o IP recebido, como em:

Listening on LPF/eth0/00:0f:b0:55:df:17
Sending on LPF/eth0/00:0f:b0:55:df:17
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPOFFER from 10.67.3.2
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 10.67.3.2
bound to 201.56.188.45 — renewal in 5585 seconds.

Existe ainda o “pump“, um cliente mais simples, que ainda pode ser encontrado em algumas instalações. Para configurar a rede através dele, use o comando:

# pump -i eth0

Ao contrário do dhclient, ele não exibe a negociação, limitando-se a exibir uma mensagem de erro em caso de problemas.

Ao acessar via cabo, a configuração da rede é obtida automaticamente via DHCP, com o cable-modem cuidando de toda a modulação do sinal. Ao contrário do ADSL, não é usada autenticação, mas em compensação sua conta é relacionada ao endereço MAC da placa de rede do micro onde foi configurado o acesso. Se você tentar acessar a partir de outro micro, ou trocar de placa de rede, não conseguirá acessar, a menos que ligue para a central e peça que alterem o endereço cadastrado.

Uma solução mais rápida é simplesmente trocar o endereço MAC da nova placa de rede, de forma que ela utilize o endereço cadastrado. Isso pode ser feito de forma muito simples utilizando o comando ifconfig.

Comece desativando a placa de rede, como em:

# ifconfig eth0 down

Use em seguida os parâmetros “hw ether”, seguidos pelo endereço MAC desejado, para trocar o endereço físico da placa:

# ifconfig eth0 hw ether 00:0F:B2:52:45:E3

Execute novamente o “dhclient eth0″ e você verá que o micro volta a receber a resposta do servidor DHCP, mesmo com a placa diferente :) . Esta dica pode ser usada também em casos onde você quer acessar acessar (em horários alternados) a partir de dois micros, desde que não ao mesmo tempo.

Outra peculiaridade do acesso via cabo é que você não consegue obter uma nova resposta do servidor DHCP até que a primeira conexão seja encerrada (o timeout varia de 90 a 180 minutos, de acordo com a operadora). Isto causa problemas quando você tem Linux e Windows em dual-boot, pois é preciso esperar até três horas ao trocar de sistema, até que vença o leasing do endereço no servidor DHCP e você possa obter outro IP.

A solução neste caso é liberar o IP antes de reiniciar, usando o parâmetro “-r” disponível tanto no dhclient, quanto no pump. Ele avisa ao servidor DHCP que a conexão está sendo encerrada, permitindo que você consiga configurar a rede novamente depois de reiniciar no Windows. Para isso use:

# dhclient -r eth0


ou:

# pump -r

(nesse caso sem especificar a interface)

Arquivos de configuração

Uma forma simples de salvar a configuração da rede seria criar um mini-script com os comandos usados e adicioná-lo no arquivo “/etc/rc.local” ou outro arquivo de configuração, como em:

ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
route del default
route add default gw 192.168.1.1 dev eth0
echo ‘nameserver 208.67.222.222
nameserver 208.67.220.220′ > /etc/resolv.conf

Como o arquivo “/etc/rc.local” é processado no final do boot, depois dos serviços que carregam a configuração da rede, sua configuração seria usada mesmo que a rede tivesse sido configurada usando outro utilitário. Mas, naturalmente, esta não seria a forma mais elegante de salvar a configuração da rede.

Assim como outras configurações do sistema, a configuração da rede é salva em arquivos de configuração, que são lidos pelos serviços responsáveis por ativar a rede. A maioria dos utilitários de configuração nada mais são do que interfaces para a edição desses arquivos.

Nas distribuições derivadas do Debian, incluindo o Ubuntu e o Kubuntu, a configuração da rede é salva no arquivo “/etc/network/interfaces“. Um exemplo de arquivo configurado é:

# /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

O arquivo é dividido em duas partes. A linha “auto …” lista as interfaces que devem ser ativadas automaticamente e as demais contém a configuração de cada uma. Para configurar uma nova placa de rede, você adicionaria a configuração relacionada a ela no final do arquivo e a adicionaria na linha “auto”, como em “auto lo eth0 eth1″. Se, por outro lado, você quiser desativar uma interface, precisa apenas removê-la da linha auto, não é preciso remover as demais linhas.

A interface “lo” é a interface de loopback, usada para a comunicação local entre diversos aplicativos e componentes do sistema, por isso nunca deve ser desativada. Embora o uso da interface de loopback pareça ser uma exclusividade do Linux, ela é usada também no Windows; a única diferença é que no Windows ela não aparece na configuração.

Em seguida temos a configuração de cada interface, que vai em uma seção separada. No caso da interface lo é usada uma única linha, “iface lo inet loopback”, usada em qualquer instalação, seguida pelas demais interfaces.

Como você pode ver, as últimas 5 linhas na configuração da placa eth0 especificam o IP utilizado pelo PC e o restante da configuração da rede, com exceção dos endereços dos servidores DNS, que vão no arquivo “/etc/resolv.conf”.

Se você quisesse que a interface fosse configurada via DHCP, poderia substituir as 6 linhas referentes a ela por:

iface eth0 inet dhcp

Ao configurar um servidor com duas placas de rede, onde a eth0 está ligada à rede local e a eth1 ao cable modem (obtendo o endereço via DHCP), por exemplo, o arquivo ficaria:

# /etc/network/interfaces
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
iface eth1 inet dhcp

Veja que nesse caso a configuração da interface eth0 não inclui o gateway, pois é a eth1 que será usada para acessar a web.

Depois de editar o arquivo, você pode aplicar as alterações reiniciando o serviço relacionado a ele:

# /etc/init.d/networking restart

Um problema comum que afeta versões do Debian, Ubuntu e distribuições baseadas neles é as interfaces mudarem de endereço a cada reset em micros com duas ou mais interfaces de rede. A placa eth0 passa então a ser a ath1 e assim por diante, o pode ser uma grande dor de cabeça ao configurar um servidor para compartilhar a conexão, já que se as duas interfaces mudam de posição, nada funciona.

A solução para o problema é um pequeno utilitário chamado “ifrename”, que permite fixar os devices utilizados para as placas. Utilizá-lo é bem simples. Comece instalando o pacote via apt-get:

# apt-get install ifrename

Crie o arquivo “/etc/iftab” e, dentro dele, relacione o device de cada interface com o endereço MAC correspondente, seguindo o modelo abaixo:

 

#/etc/iftab
eth0 mac 00:11:D8:76:59:2E
eth1 mac 00:E0:7D:9B:F8:01

Em caso de dúvida, use o comando “ifconfig -a” para ver a configuração atual das placas e o endereço MAC de cada uma. Uma vez criado, o arquivo é verificado a cada boot e a configuração se torna persistente, resolvendo o problema. Este bug das interfaces itinerantes afeta apenas algumas distribuições, por isso você não precisa se preocupar com ele até que perceba que está usando uma das afetadas.

No Fedora e outras distribuições derivadas do Red Hat, a configuração de rede é dividida em uma série de arquivos, localizados na pasta “/etc/sysconfig/network/network-scripts/“. Dentro da pasta, você encontrará um arquivo separado para a configuração de cada interface disponível. A configuração da placa eth0 é armazenada no arquivo “ifcfg-eth0“, o da eth1 no “ifcfg-eth1” e assim por diante.

Um exemplo de configuração para uso de IP fixo é:

 

#/etc/sysconfig/network/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=192.168.1.43
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BOOTPROTO=static
ONBOOT=yes

A opção “ONBOOT” indica se a placa deve ser ativada automaticamente durante o boot. Ao desativar essa opção, a interface fica desativada por padrão, até ser carregada manualmente. Continuando, aqui vai um exemplo de configuração para DHCP:

 

#/etc/sysconfig/network/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

Lembre-se que cada arquivo armazena a configuração de uma interface específica (a configuração da interface de loopback, por exemplo, vai no arquivo ifcfg-lo), diferente do Debian, onde é usado um único arquivo com uma seção separada para cada interface. Temos também o arquivo “/etc/sysconfig/network“, que armazena o nome da máquina.

Para que as alterações entrem em vigor, é necessário reiniciar o serviço responsável pela configuração da rede, o que no Fedora é feito usando o comando:

# /etc/rc.d/init.d/network restart

Concluindo, tanto no Fedora quanto no Debian, Ubuntu e outros, você pode desativar temporariamente uma interface configurada usando o comando “ifdown”, como em:

# ifdown eth0

Para reativá-la posteriormente, use o comando ifup:

# ifup eth0

Assim como no caso das alterações feitas através do ifconfig, desativar a interface usando o ifdown não é permanente: a interface volta a ser ativada ao reiniciar o micro. Se você quiser desativar a interface de forma definitiva, precisa fazer a alteração diretamente no arquivo de configuração.

Usando um DNS local

A Internet como a conhecemos funciona em grande parte graças aos servidores DNS, que convertem nomes de domínio nos endereços IP correspondentes. Sem eles, a web seria muito menos amigável, já que você teria que manter longas listas com os endereços IP dos sites e servidores que precisa acessar. Sem o DNS, a web talvez nem tivesse se popularizado tão rápido em primeiro lugar.

Toda esta dependência traz um inconveniente, que é o fato de que você fica virtualmente desconectado quando os servidores DNS do provedor saem fora do ar. Obviamente, você ainda continua conectado e pode acessar qualquer servidor através do endereço IP, mas você por acaso sabe algum de cor?

Infelizmente os problemas relacionados aos servidores DNS dos provedores de acesso são extremamente comuns. Muitas vezes mudam os endereços sem aviso, em outras o servidor DHCP (do provedor) é configurado incorretamente e fornece endereços errados quando você se conecta, sem falar nos casos em que os servidores simplesmente ficam inacessíveis, sem motivo aparente.

Diz o bom senso que o provedor deveria manter dois servidores DNS em redes separadas, para manter a redundância, mas o fato é que, em muitos provedores, é usado um único servidor, com um simples alias para a placa de rede, que “simula” a existência de um segundo servidor DNS. Desta forma, temos uma única máquina, de forma que quando o servidor cai, você perde simultaneamente tanto o DNS primário quanto o secundário.

Para fugir desta calamidade, você pode passar a usar um servidor DNS local. No Linux você precisa apenas instalar o pacote “bind” ou “named”, usando o gerenciador de pacotes da sua distribuição. Nas derivadas do Debian, você pode usar o apt-get, como em

# apt-get install bind

O Bind pode ser bastante indigesto de configurar, mas no nosso caso não é necessário alterar a configuração padrão, já que queremos apenas acessar a web e não configurá-lo para responder por nenhum domínio registrado; basta manter o serviço ativo.

É recomendável que você mantenha a porta 53 (tanto TCP quanto UDP) bloqueada no firewall, de forma que não consigam usar seu DNS de fora. Deixar o DNS disponível para o mundo não chega a ser uma brecha terrivelmente grave, mas existe a possibilidade de alguém mal intencionado utilizar seu servidor para enviar um grande número de requisições para outra máquina, como parte de um ataque DoS.

Finalizando, abra agora o arquivo “/etc/resolv.conf” e inclua a linha “nameserver 127.0.0.1” antes das outras entradas, como em:

nameserver 127.0.0.1
nameserver 208.67.222.222
nameserver 208.67.220.220

Isto faz com que o sistema passe a usar seu servidor DNS local ao invés dos endereços DNS do provedor.

Uma segunda opção é usar o Dnsmasq, um servidor DNS minimalista, que simplesmente cria um cache dos endereços já acessados, evitando usar o DNS do provedor a cada acesso. Ele é uma opção em casos onde os servidores DNS do provedor são estáveis, mas a velocidade do acesso não é das melhores. Um DNS lento faz com que você perca vários segundos no “procurando pelo servidor” ao acessar cada site.

Instalar o Dnsmasq é igualmente simples, basta procurar pelo pacote no gerenciador da distribuição usada. Ao instalar via apt-get, use:

# apt-get install dnsmasq

A principal observação é que você não pode usar o Dnsmasq junto com o Bind, já que ambos escutam na mesma porta. Antes de instalar o Dnsmasq você deve desativar e remover o Bind e vice-versa.

Depois de instalar, adicione a linha abaixo no final do arquivo “/etc/dnsmasq.conf“:

 

listen-address=127.0.0.1

Ela faz com que o Dnsmasq responda apenas a requisições da sua própria máquina, ignorando requisições externas, provenientes de outros micros da rede ou da Internet.

Mantenha o arquivo “/etc/resolv.conf” configurado como vimos a pouco, contendo a linha “nameserver 127.0.0.1″ (seguida pelos endereços DNS do provedor), o que faz com que o sistema utilize o Dnsmasq como servidor preferencial.

Tente acessar um site qualquer. Você perceberá que o primeiro acesso continuará demorando o tempo normal, mas a partir do segundo o endereço estará no cache do Dnsmasq e a resolução será instantânea.

Se o seu micro usa DHCP para obter a configuração da rede, o arquivo “/etc/resolv.conf” será modificado a cada acesso, voltando à configuração original, fornecida pelo servidor. Ao invés de ter que modificar o arquivo novamente, a cada acesso, adicione a linha abaixo no começo (começo, não final) do arquivo “/etc/dhcp3/dhclient.conf“, onde vai a configuração do cliente DHCP:

prepend domain-name-servers 127.0.0.1;

Esta linha faz com que ele sempre adicione a linha “nameserver 127.0.0.1″ no início do arquivo “/etc/resolv.conf”, substituindo a edição manual.

 Fonte

 

 

 

 

 

 





Saiba mas sobre APT

29 03 2008

Introdução

Essa fantástica ferramenta, o APT – Advanced Packaging Tool, é uma maravilha proveniente da distro DEBIAN, mas que já foi portada para outras, tamanho o seu sucesso.

Realmente seu uso é tão simples que muitos usuários não fazem idéia de como ela funciona, ou das características ‘alternativas’ que o APT possui. Neste artigo iremos fazer uma espécie de ‘tradução livre’ dos próprios manuais do Debian e trazer, de maneira tanto acessível como aprofundada, seu uso e grande utilidade.

Configuração

Vamos começar nosso estudo deve começar com a configuração do APT. Existe um arquivo texto que o APT usa como sua fonte (você ouvirá falar muito sobre os ’sources’). É nesse arquivo que se encontram os endereços para buscar os pacotes. Estamos falando do arquivo /etc/apt/sources.list.

De forma geral, as linhas que contém os endereços possuem o formato abaixo:

deb http://endereço/debian distribuição parte_1 parte_2
deb-src http://endereço/debian distribuição parte_1 parte_2

No acima, o primeiro termo informa o tipo de arquivo desse repositório: .deb fornece arquivos binários e .deb-src fornece os arquivos fonte.

Com bastante cuidado, abra seu sources.list com um editor de texto, e observe sua estrutura. De início, pode parecer confuso, mas a lógica é muito simples. Algumas linha são necessárias mesmo para uma instalação Debian padrão. Além disso, note que o APT sabe lidar com configurações diversas (http, ftp etc).

Se, por qualquer motivo, você alterar a lista de repositório de seu arquivo sources.list, deve digitar no terminal:

# apt-get update

Isso fará que o APT acesse os repositórios indicados no sources.list e atualize a lista de pacotes disponíveis.

Escolhendo espelhos

Como saber qual espelho usar no sources.list? Claro que vai querer o mais rápido. Então faça:

# apt-get install netselect

Isso instalará um software que ‘mede’ a velocidade do servidor que está servindo como espelho, e fornece como saída o endereço do espelho mais ‘rápido’. Então use esse espelho em seu sources.list.

Na instalação do pacote netselect, você verá a tela abaixo:

Pressione <ENTER>, e o netselect estará instalado. Para seu uso, nada mais simples:

# netselect

Escolhendo um CD-ROM

É óbvio que você também pode usar um CD/DVD com os pacotes, principalmente os CDs/DVDs oficiais da sua distro. Nada mais simples. Veja:

# apt-cdrom add

Simples? Realmente. E lembre que, quando da instalação de pacotes, o APT tentará buscar primeiro em seus CDs/DVDs, pois é a opção de ‘download’ mais rápida.

E os pacotes?

E os pacotes? Como instalar, desinstalar etc? Como sempre, o APT torna tudo mais fácil. Primeiro, lembre de atualizar a lista de pacotes regularmente. Isso funciona da seguinte forma: o APT tem uma espécie de lista com as informações dos pacotes, tanto disponíveis para instalação como dos já instalados, incluindo suas versões e tudo o mais. Quando nós pedimos alguma ação do APT, ele confere nessa lista o que for necessário. Faça dessa forma:

# apt-get update

Instalar

Para instalar, o clássico de sempre:

# apt-get install <pacote>

Por exemplo, veja a saída em meu computador da linha de comando “apt-get install python”:

# apt-get install python
Lendo lista de pacotes… Pronto
Construindo árvore de dependências… Pronto
python já é a versão mais nova.
0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 62 não atualizados.
1 pacotes não totalmente instalados ou removidos.
É preciso fazer o download de 0B de arquivos.
Depois de desempacotar, 0B adicionais de espaço em disco serão usados.

Ele não instalou nada, pois já tinha o python instalado em minha máquina.

Se por algum motivo você quiser fazer apenas o download dos pacotes, use a opção ‘-d’; dessa forma apenas o download será feito, sem instalação.

Também podemos atualizar um programa usando a opção –reinstall. Veja:

# apt-get –reinstall install python

Remover

Para remover pacotes, nada mais simples:

# apt-get remove <pacote>

Note que, com essa ação, se o pacote que estamos removendo for dependência de outro, este também será removido. É uma idéia simples, pois remover um pacote que é dependência de outro fará com que o último não mais funcione. Portanto, o APT parte do princípio que você está fazendo algo consistente.

Atualizando tudo

O APT consegue fazer coisas incríveis, inclusive atualizar TUDO em uma distro by Debian, de uma só vez. Por exemplo, se você está com a versão 14.0.r4 (de fantasia, óbvio) e conseguiu um CD com a versão 14.1.r6, basta usar isso:

# apt-get upgrade

Mantendo uma versão antiga de um pacote

Às vezes, pelos motivos mais diversos, queremos manter um pacote em sua versão antiga, sem as atualizações. Eu, por exemplo, uso o xmgrace, um programa que lida com gráficos para ciência, na versão anterior, pois acho mais cômodo. Neste caso, as mudanças radicais não me trouxeram ganho de rendimento. O que fazer? Mantenha o pacote antigo. Mas como? Por marcar o pacote. Como assim, ‘marcar’? Faça o seguinte:

#Pacote: <NOMEDOPACOTE>
#Pin: <DEFINA_O_PIN>
#Pin-Priority 999

No espaço <NOMEDOPACOTE> coloque, óbvio, o nome do pacote para ‘marcar’ e reservar a versão. Em <DEFINA_O_PIN> coloque a versão que deve permanecer em uso. A última linha apenas garante que o pacote não sofrerá alteração.

Vamos em frente?

Mais além do básico

Procurando um pacote

Às vezes queremos algo, mas não sabemos exatamente o quê. Por exemplo, procuramos por um software chamado kile, mas não temos certeza do nome do pacote.

Use o seguinte:

$ apt-cache search kile

A saída será algo como:

kile – KDE Integrated LaTeX Environment
kile-i18n – translations for Kile, the KDE Integrated LaTeX Environment

Pronto! Já sabemos o nome do pacote: kile

A sintaxe é clara: “apt-cache search <nome>”

Usando o apt com pacotes em seu próprio HD

E se você tiver um verdadeiro depósito de pacotes Debian (é o meu caso :>), pode usá-los com o APT? É claro! O primeiro passo é criar um diretório para guardar esses arquivos. Veja um exemplo:

# mkdir /root/pacotes_deb

Dentro do diretório /root, digite:

# dpkg-scanpackages debs /dev/null | gzip > debs/pacotes.gz

A linha de comando acima gera um arquivo ‘pacotes.gz’ com informações com respeito aos pacotes, e será usado pelo APT. Por último, adicione em seu sources.list a linha:

deb file:/root pacotes_deb/

Pronto! Use o APT normalmente, e aproveite seus pacotes.

Conclusão

O APT é uma ferramenta fantástica. Como tudo na vida, não é perfeito, mas pode ser usado de forma a facilitar grandemente nossa vida.

Fonte 





Configurando ADSL e discadão no Fedora 8

26 03 2008

Júlio César Bessa Monqueiro
25/03/2008

Configurar a Internet é algo essencial, pois a maioria dos serviços hoje só está disponível via Web. O Fedora é um excelente distribuição Linux que dispensa comentários, e cada dia tem aumentado o número de usuários brasileiros dessa distro, e a maioria de tais pessoas normalmente se conectam via ADSL ou modem.

O ADSL é um dos tipos de conexão mais usados no Brasil, para quem optou pela banda larga. Em Sâo Paulo, destaca-se o antigo Speedy, da Telefonica, por exemplo. Veja um breve trecho da descrição do termo “ADSL” por Carlos E. Morimoto (http://www.guiadohardware.net/termos/adsl):

    ADSL: Assimetric Digital Subscriber Line, tecnologia de acesso rápido que usa as linhas telefônicas oferecida em várias cidades. As velocidades variam em geral de 256 kbits a 2 mbps, dependendo do plano de acesso escolhido. Para isso, é instalado um modem ADSL na casa do assinante e outro na central telefônica. Os dois modems estabelecem uma comunicação contínua, usando frequências mais altas que as utilizadas nas comunicações de voz, o que permite falar no telefone e usar o ADSL ao mesmo tempo. (http://www.guiadohardware.net/termos/adsl)


E, como parte da migração dos usuários que decidem utilizar o Fedora Linux no seu computador, usar a Internet é algo fundamental. Então, se meu modem não é roteado, como configurar uma conexão ADSL no meu Fedora 8? A resposta é simples, e mais: é gráfica. Vamos lá!

Começe indo em Sistema -> Adminsitração -> Rede:

img-68c9523c
Faça a autenticação informando a sua senha de root. Depois, na tela inicial, clique em Novo:

img-a72a4de0
Na tela onde se seleciona o protocolo, clique em “xDSL”, e depois em “Avançar”:

img-4ebd40f6
Esta é uma das telas mais importantes da configuração: onde você coloca o usuário e a senha :-P . Em “Nome do provedor”, coloque, por exemplo, “Speedy”, “Terra”, “UOL”, enfim, o que você quiser. Em “Tipo de conta”, deixe como “Normal”. Complete depois com usuário e senha, avançando em seguida:

img-fa1f8461
Abaixo, a tela de finalização:

img-d1601e50
Após todos os procedimentos corretos, vamos ainda efetuar algumas configurações mais avançadas. Note que a conexão aparece depois na janela principal:

img-46f0ad1c
Feito isso, selecione-a e clique em “Editar”:

img-6b454f1e
Coloque, em “Apelido” o nome que o sistema dará á conexão, normalmente, o nome do provedor mesmo. Duas coisas importantes a lembrar aqui são as opções “Ativar dispositivo ao iniciar o computador”, para que a conexão já seja dada na hora do boot, e “Permitir a todos os usuários ativar e desativar o dispositivo”, este assim liberando os usuários a conectarem ou desconectarem a hora que quiserem.

Outras duas observações são as opções “Obter IP automaticamente com: dhcp” – não se esqueça disso, para que a conexão ocorra com sucesso. Abaixo, marque “Obter informações de DNS automaticamente do provedor”, a não ser que use DNS de terceiros, como o OpenDNS. De resto, deixe como está.

Caso você queira alterar as informações de usuário, vá para a aba “Provedor”:

img-d86adfa5
Nas outras abas deixe tudo por padrão, caso também queira, você pode alterar a placa de rede que fará a conexão entre o modem e seu computador por meio da aba “Dispositivo de Hardware”.

Lembre-se de ter já efetuado e instalado as configurações da placa de rede, normalmente você não precisa se preocupar com isso no Fedora, pois o mesmo já identifica a placa automaticamente e define as configurações básicas. Para conectar ou desconectar futuramente, basta, na tela principal, clicar em “Ativar” ou “Desativar”.

Se você não utiliza conexão banda larga via ADSL, e sim discada, o caminho é relativamente o mesmo. Primeiro, certifique-se que o módulo para o seu softmodem está devidamente instalado e configurado. Caso não saiba como fazer isso, leia “Como configurar seu softmodem no Linux” (http://www.guiadohardware.net/tutoriais/como-configurar-seu-softmodem-linux/), de Carlos E. Morimoto.

Após isso, clique em “Novo”, no gerenciador de rede, selecione “Conexão por modem”, e avance:

img-213bc5ab
Após a detecção do modem, as opções que aparecem disponíveis são para seleção de dispositivo, taxa de comunicação, controle de fluxo, volume e discagem. Deixe tudo como padrão, a menos que você queira ouvir seu modem (altere o volume), e sua linha seja analógica (desmarque a caixa de discagem por tom).

img-9bf3bcce
Avaçando, temos a configuração de seu provedor. De posse do número do mesmo, informe em “Número do telefone”, o código de área não é necessário, já que no Brasi a grande maioria dos provedores possuem números locais. Logo abaixo, digite o nome do provedor, o usuário (com o @provedor.com.br) e a senha:

img-6ed24750
Depois, temos algumas configurações de configuração de DNS e endereços IP. Deixe como está, pois desta forma o DNS e o IP serão configurados automaticamente a cada conexão. Após esta tela, ocorre a finalização:

img-35299339

img-00e7f853
Para que toda vez, ao discar, você não tenha que ficar abrindo as conexões de rede e ativar a conta, basta adicionar um mini-aplicativo ao seu GNOME. Clique com o botão direito na barra, depois “Adicionar ao Painel” e selecione “Modem Lights”:

img-99499b33

img-6595c50c
E aparecerá este programinha no seu painel do GNOME:

img-c2ec5ab9
Ele mostra todas as estatísticas da conexão; nenhuma configuração precisa ser alterada nele, é só pegar e usar. Para conectar ou desconectar, clique no primeiro botãozinho. Aparecerá a pergunta:

img-1309eee5
Lembre-se que, embora desta forma seja mais prático, você pode instalar o Gnome-PPP para se conectar via softmodem.

Caso queira usar um mini-aplicativo diferente para ativar/desativar estas conexões, você pode utilizar o NetWork Monitor, um outro mini-aplicativo para o painel do GNOME. Faça o mesmo processo do descrito acima, contudo, selecione “Monitor de rede”:

img-f50bb6c9
Após isso, um pequeno ícone aparecerá no painel:

img-958b846f
Clicando com o botão direito no ícone e depois em “Propriedades”, vemos a seguinte tela, onde podemos selecionar a interface padrão (ppp0) e verificar seu estado e estatísticas:

img-ae155d06
E, caso queira ativar/desativar ou editar alguma conexão, basta clicar em “Configurar”:

img-9c020f10
Tenha uma ótima navegação, e boa diversão!

Fonte





Moden ADSL – Configuração

18 03 2008

Carlos E. Morimoto
12/03/2008


Os primeiros modems ADSL ofereciam apenas a função básica, que é modular o sinal, permitindo que um PC ligado a ele possa acessar a web. Com o passar do tempo, a popularização da tecnologia e o barateamento dos componentes possibilitaram o lançamento de modems com cada vez mais recursos, incluindo funções de roteador, firewall, suporte a QoS e outros recursos, que hoje em dia são padrão mesmo nos modelos mais baratos.

 index_html_7f4168be

Não seria viável ter que instalar um teclado, mouse e monitor no modem ADSL para ter acesso à interface de configuração. Em vez disso, o modem inclui um mini-servidor web, que disponibiliza um conjunto de páginas web com as opções disponíveis.

Como não existe uma interface de configuração padrão para modems ADSL, cada fabricante apresenta as funções de um jeito diferente, o que, combinado com a fraca documentação e o fraco suporte prestado pelas operadoras e pelos provedores de acesso, faz com que a configuração dos modems ADSL pareça mais complicada do que realmente é.

Vamos então a um resumo das opções disponíveis e alguns exemplos de configuração:

O básico

O modem ADSL pode ser configurado através de uma interface de configuração, que fica acessível por padrão apenas a partir da rede local. Em primeiro lugar, crie a comunicação física entre o PC e o modem, ligando-os através de um cabo cross-over ou um hub/switch.

O modem vem de fábrica com um endereço IP padrão, como, por exemplo, 10.0.0.138 ou 192.168.1.1 e uma senha de acesso simples, como “1234″ ou “admin”. Muitas vezes, as operadoras alteram as senhas dos modems, para impedir que o usuário o reconfigure para trabalhar como roteador. Nesse caso, você vai ter o trabalho de pesquisar na web quais as senhas usadas pela operadora e testar uma a uma até achar a usada no seu modem, uma dor de cabeça a mais. Felizmente essa prática vem se tornando menos comum.

A configuração padrão varia de modem para modem, por isso é importante ter em mãos o manual do seu. Se o modem utilizar uma faixa de endereços diferente da utilizada na rede, basta alterar a configuração de rede do micro, para que ele utilize um endereço dentro da mesma faixa utilizada pelo modem. A partir daí você pode acessá-lo usando o navegador.

A configuração do modem é dividida em duas seções principais: LAN e WAN. Imagine que o modem ADSL é na verdade um mini-roteador, que possui duas interfaces de rede: a interface ADSL (WAN), onde vai o cabo telefônico e uma interface de rede local (LAN), que é ligada ao switch da rede.

Na seção LAN vai a configuração da rede local, incluindo o endereço IP e a máscara de sub-rede, através da qual o modem fica acessível dentro da rede local. Ao acessar pela primeira vez, não se esqueça de alterar a configuração, para que o modem passe a utilizar um endereço dentro da faixa usada na rede.

Além de permitir acessar a interface de configuração, o endereço definido na configuração do modem passa a ser o gateway padrão da rede ao configurá-lo como roteador. Normalmente utilizamos o primeiro ou o último endereço da rede para o gateway, como em “192.168.1.1″ ou “192.168.1.254″, mas isso é apenas uma convenção, não uma regra.

index_html_m70e7f972

Quase sempre, está disponível também um servidor DHCP, que deve ser configurado com uma faixa de endereços livres na sua rede. Na configuração, você indica um endereço de início e fim para a faixa usada pelo servidor DHCP, como de 192.168.1.2 a 192.168.1.100 e os demais endereços ficam livres para PCs configurados com IP fixo. É importante enfatizar que você deve ter apenas um servidor DHCP no mesmo segmento de rede, de forma que se você já tem um servidor DHCP ativo na rede, o servidor DHCP do modem deve ser desativado. Aqui temos um exemplo, dentro da configuração do mesmo D-Link 500G do screenshot anterior:

index_html_m7356141a

A opção “Lease Time” dentro da configuração indica o tempo que os endereços serão “emprestados” para as estações. Após esse período, a estação deve renovar o endereço ou deixar de usá-lo. Isso evita que endereços fiquem eternamente reservados a micros que não fazem mais parte da rede.

Em seguida temos a configuração dos endereços DNS que serão fornecidos aos clientes. Aqui temos um segundo exemplo, na configuração de um modem Kayomi LP-AL2011P (que é, na verdade, um Conexant Hasbani), onde a configuração dos endereços de rede e do servidor DHCP são unificadas em uma única seção:

index_html_m65df7bd6

Nos modems atuais, a interface de configuração é sempre acessada usando o navegador, mas em alguns modelos antigos (como no Parks Prestige) era usada uma interface em modo texto, acessada via telnet, usando o terminal (no Linux) ou o prompt do MS-DOS (no Windows), como em:

$ telnet 192.168.1.1

Trying 192.168.1.1…
Connected to 192.168.1.1.
Escape character is ‘^]’.
Password: [SSL not available] ********

À primeira vista, uma interface em modo texto não parece muito amigável, mas em essência é o mesmo bolo, apenas com uma cobertura diferente. No caso da Interface do Parks Prestige, a configuração da rede e do servidor DHCP vai no menu “3. Ethernet Setup > 2. TCP/IP and DHCP Setup”:

index_html_m41ecd231

 index_html_m3afb1fed

Dentro da configuração do DHCP, a opção “Client IP Pool Starting Address=” indica o primeiro endereço IP que será atribuído (os números abaixo deste ficam reservados para micros com IP fixo) e o número máximo de clientes que receberão endereços IP (Size of Client IP Pool). Usando um pool de 6 endereços, com início no 192.168.1.33, por exemplo, a faixa iria até o 192.168.1.38, suficiente para uma rede com apenas dois ou três micros.

Depois de terminar, não esqueça de alterar também a senha de acesso, já que as senhas padrões dos modems são bem conhecidas. Embora a interface de configuração não fique disponível para a web (em muitos modems você pode ativar o acesso, mas via de regra ele fica desativado), nada impede que algum usuário da rede, ou algum vizinho que consiga acesso à sua rede wireless resolva pregar peças alterando a configuração do modem.

index_html_75be3a88

Parâmetros da conexão

Em seguida temos a configuração do link ADSL propriamente dito, que vai na seção WAN, que é composta por basicamente duas informações: os códigos VPI e VCI e o sistema de encapsulamento usado pela operadora.

VPI é abreviação de “Virtual Path Identifier” e VCI de “Virtual Circuit Identifier”. Juntos, os dois endereços indicam o caminho que o modem ADSL deve usar dentro da rede de telefonia para chegar até o roteador que oferece acesso à web. Você pode imaginar os dois valores como um número de telefone ou como um endereço de rede. Sem indicar os endereços corretamente na configuração do modem, a conexão simplesmente não é estabelecida.

Os valores VPI/VCI usados atualmente no Brasil são:

    Telefonica: VPI 8, VCI 35
    Telemar: VPI 0, VCI 33
    CTBC: VPI 0, VCI 35
    Brasil Telecom: VPI 0, VCI 35
    Brasil Telecom (no RS): VPI 1, VCI 32
    GVT: VPI 0, VCI 35

Você pode confirmar esses valores ligando para o suporte técnico, ou pesquisando na web. É fácil obter estas informações.

Outra informação importante é o tipo de encapsulamento usado, ou seja, o tipo de protocolo que é simulado através do link ADSL. No Brasil é usado quase que exclusivamente o PPPoE encapsulado via LLC, de forma que é esta a configuração que você deve utilizar a menos que seja orientado pela operadora ou o provedor a fazer diferente. Apesar disso, os modems ADSL oferecem diversas outras possibilidades. Vamos entender o que elas significam:

PPPoE: Neste modo o link ADSL se comporta como um link Ethernet, usando o mesmo formato de frame e o mesmo sistema de endereçamento. Sobre este link Ethernet é criada uma conexão ponto a ponto (PPP), que liga seu PC, ou seu modem ADSL ao servidor de acesso remoto, passando pelo DSLAN instalado na central, daí o termo “PPPoE”, que significa “PPP over Ethernet”.

A conexão PPP simula uma conexão discada. Ao configurar o modem como bridge a “discagem” é feita pelo seu PC, de forma que você precisa ativar e desativar a conexão quando desejado, enquanto que ao configurar o modem como roteador o próprio modem efetua a conexão e roteia os pacotes ao PC, que passa a enxergar uma conexão de rede. O uso do link PPP adiciona uma camada extra de segurança na conexão, permitindo o uso de encriptação e autenticação.

PPPoA: Neste modo o link ADSL se comporta como um link ATM, que é o sistema tradicionalmente usado no sistema telefônico. O protocolo ATM oferece um overhead um pouco menor que o PPPoE, o que aumenta sutilmente o volume de dados “úteis” transportados através do link. Assim como no caso do PPPoE, o link ATM é usado para criar uma conexão PPP, com suporte a autenticação e tudo mais.

O problema é que os equipamentos compatíveis com o ATM são mais caros, de forma que as operadoras preferem utilizar o PPPoE. Outro fator é que no PPPoA o modem ADSL precisa obrigatoriamente ser configurado como roteador, não como bridge. Isso acontece porque no PPPoA o link precisa ser terminado em uma interface ATM. Como usamos placas de rede Ethernet e não ATM, é necessário que o próprio modem atue como terminador e roteie os pacotes para o PC.

Existem diversos mitos com relação ao PPPoA, entre eles que o PPPoA é usado apenas em planos empresariais, ou que ele é usado em conexões com IP fixo, mas na verdade ele indica apenas o tipo de modulação escolhido pela operadora. Tanto o PPPoE quanto o PPPoA suportam autenticação e ambos podem ser utilizados tanto em conexões com IP fixo quanto em conexões com IP dinâmico.

Durante algum tempo, era comum que as operadoras disponibilizassem os dois sistemas, de forma que você podia usar qualquer um na configuração do modem, mas lentamente o suporte ao PPPoA foi retirado, deixando apenas o PPPoE.

Outros sistemas de encapsulamento suportados por alguns modems, mas raramente usados são o MER (MAC Encapsulated Routing) e o IPoA (IP over ATM). Eles podem ser ignorados, pois não são usados por nenhuma operadora nacional.

LLC e VC-Mux: O PPPoE ou o PPPoA são complementados por um segundo sistema de encapsulamento, que indica o protocolo usado. O LLC é o sistema mais comum, pois permite que sejam usados diversos protocolos de rede diferentes (mesmo que simultaneamente) em um único circuito. Em troca, ele adiciona um campo extra de identificação em cada pacote, o que aumenta o overhead da rede.

O segundo sistema é o VC-Mux (também chamado de VC), que oferece um overhead um pouco menor, mas em troca demanda o uso de um circuito separado para cada protocolo, o que aumenta os custos para a operadora. O VC-Mux é usado em alguns países da Europa, mas é extremamente incomum aqui no Brasil.

Aqui temos um exemplo de configuração, na interface do D-Link 500G:

index_html_m72b8a71f

Você pode notar que estão presentes também as opções PVC, Authentication e MTU, que não citei anteriormente.

PVC é abreviação de “Private Virtual Circuit”. Normalmente, é usado um único PVC, responsável pelo link com a web, de forma que você simplesmente escolhe “PVC0″ na configuração e especifica as demais informações referentes à conexão. É possível para as operadoras incluir mais circuitos virtuais na mesma conexão, usando um segundo circuito para VoIP, por exemplo, mas isso não é comum.

A opção Authentication aceita os valores “PAP e “CHAP”, que são os dois protocolos de autenticação usados em conjunto com o PPP. Normalmente, os provedores suportam ambos os protocolos, de forma que tanto faz qual dos dois é escolhido.

A opção MTU permite definir o tamanho dos pacotes enviados através do link ppp, que podem conter até 1492 bytes no PPPoE e até 1500 bytes no PPPoA. Usar um tamanho de pacote menor pode ajudar em links ruins, mas normalmente só serve para reduzir a velocidade da conexão. A menos que tenha um bom motivo, simplesmente use o valor máximo.

Aqui temos um segundo exemplo, com a configuração no Kayomi LP-AL2011P. Veja que ele oferece também a opção de definir um IP estático (que seria usada apenas caso você utilizasse um plano empresarial, com IP fixo). A opção “Mac Spoofing” permite forjar o endereço MAC da interface WAN, como às vezes é necessário para conectar a partir de outro micro nos planos de acesso via cabo:

index_html_m3ee9681c

Se você está curioso sobre a configuração na interface de modo texto do Parks, aqui vai mais um exemplo. Note que ele oferece a opção “IP Address Assignment”, que indica se a conexão utiliza IP fixo ou dinâmico. As opções “ISP’s Name” e “Service Name” são apenas para dar nome à conexão, sem efeito sobre a configuração:

index_html_m3acf7fdc

 Fonte

 





Kernel Linux com suporte a .exe e .class

11 03 2008

Introdução

Não é novidade para ninguém que, com o uso do wine, e as configurações corretas, e possível executar muitos binários windows (.exe) no Linux. Quanto a executar um compilado java (.class), também não é em nada diferente de qualquer outra plataforma com suporte a java, ou seja, basta passar o nome da classe como argumento para o interpretador java.

Agora, o que acharia se eu dissesse que é possível configurar o kernel de tal forma que, para executar qualquer um desses formatos, bastaria digitar na linha de comando algo como:

/mnt/fat/windows/notepad.exe

ou

.
/alomundo.class

Interessante não? E não somente interessante, mas perfeitamente possível através de uma configuração que permite ao próprio kernel chamar um interpretador adequado para certos gêneros de arquivo. Ou seja, a dependência do wine e do interpretador java continuarão existindo,mas a diferença é que você não vai mais precisar se preocupar com eles, chamando diretamente o nome do binário. Para tanto você vai precisar de certo conhecimento na compilação do kernel (dependendo se sua distro já vem com a característica que descreverei a seguir compilada no kernel ou não), além de já ter configurados o ambiente java e/ou o wine na sua máquina (nada impede que você use este roteiro para configurar o suporte a apenas um dos tipos descritos).

Onde o kernel guarda o segredo

Após baixar os fontes do kernel, dependendo se está usando o kernel 2.4 ou 2.6, procure pelos seguintes menus:

  • kernel 2.4 > General Setup -> Kernel support for MISC binaries
  • kernel 2.6 > Executable file formats -> Kernel support for MISC binaries

Habilitar este item e recompilar o kernel é o primeiro passo para tornar isto possível. Esse item pode ser compilado direto no kernel ou como módulo, caso em que você terá que carregar o módulo com modprobe. Todos os testes que eu fiz foi com esse recurso já compilado dentro do próprio kernel, e este roteiro vai se ater a essa situação. As configurações mostradas foram testadas utilizando uma máquina Slackware 10, rodando ora kernel 2.4.26 ora kernel 2.6.12, que eram as versões mais recentes disponíveis para download em www.kernel.org no momento da finalização deste documento. Entretanto, se voce preferiria pular a etapa de recompilar o kernel caso sua distribuição ja tivesse esse recurso, e deseja fazer um teste para determinar isso, execute o comando mount da proxima sessão. Se ele executar sem erros, então você provávelmente pode pular esta etapa e ir direto para a parte fácil.

Conversando com o kernel

Decerto muitos já sabem que o diretório /proc é uma interface com o kernel, já que a maioria já deu cat em “arquivos” ali como cpuinfo,meminfo, e outros conhecidos. O que talvez vá ser novidade para alguns é que é possível também executar algo como:

echo parametro > /proc/alguma_coisa

De forma realmente configurar um parâmetro do kernel. Sim, o kernel também e configurável enquanto está executando, modificações não estão limitadas ao momento da compilação do mesmo. E é justamente através deste recurso que se pode informar o kernel de outros formatos binários suportados pela instalação do linux e onde está o interpretador para o mesmo. Primeiro, antes de executar um comando como o acima, e preciso montar a parte do /proc onde se irá atuar e, para tanto, execute o comando:

mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc

Se este comando retornar sem erros, você terá a partir daí dentro do diretório:

/proc/sys/fs/binfmt_misc

as entradas: register e status.

Se você executar um cat em /proc/sys/fs/binfmt_misc/status, receberá apenas o texto “enabled” como resposta, dizendo que o suporte a binfmt_mis está habilitado. Mas é register que nos interessa mais agora, pois será ele que usaremos para notificar o kernel de novos formatos binários. Mas antes uma última coisa sobre este mount: e possivel fazer com que ele seja executado automaticamente no boot apenas adicionando a seguinte linha ao /etc/fstab:

none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0

Seja lá qual tenha sido o método usado, uma vez montado esse diretório, o próximo comando será o “echo” falado hà pouco:

echo REGISTRO > /proc/sys/fs/binfmt_misc/register

Sendo que REGISTRO será um conjunto de campos separados pelo caracter ‘:’ no seguinte formato:

:NOME:TIPO:OFFSET:PADRAO:MASCARA:INTERPRETADOR:

Desses 6 registros, apenas 4 são realmente necessários, mas segue uma breve explicação de cada um:

  • NOME = (necessário) Um identificador para este registro, escolha um nome que lembre o tipo de executável que você estará configurando como JAVA_CLASSE ou WINDOWSEXE. Surgirá um novo arquivo no mesmo diretório onde estão o status e register, com o mesmo nome deste identificador.
  • TIPO = (necessário) Diz ao kernel que mecanismo será utilizado para reconhecer o arquivo como deste tipo binário. Este campo só tem uma letra, sendo E ou M. Se for E, o kernel discernirá o binário por sua extensão, tal como .exe ou .class. Se for M, o kernel olhará dentro do arquivo procurando por uma determinada sequência de bits para reconhecer o formato. Por ser relativamente mais complexo, este último caso não será abordado aqui, e todas as configurações serão feitas de forma que o kernel reconheça o arquivo por sua extensão.
  • OFFSET = (opcional) Este campo só faria sentido se o anterior fosse M, pois trata-se da distância a partir do início do arquivo onde começar a olhar para procurar pelo padrão binário.
  • PADRAO = (necessário) Se TIPO for E, como será em todas as configurações que faremos, este campo deve conter a extensão sem o ponto. Ou seja, exe ou EXE para executáveis windows, class para java. Se TIPO fosse M, aqui seria colocada a sequência de bytes a ser procurada no arquivo.
  • MÁSCARA = (opcional) Também somente faria sentido se TIPO fosse M, pois este campo permite desabilitar (mascarar) alguns bits da sequência a ser procurada.
  • INTERPRETADOR = (necessário) trata-se do nome e caminho completo do interpretador para esse tipo de arquivo, tal como, por exemplo, /usr/lib/java/bin/java. Por fim, repare bem que o registro começa e termina com o caracter ‘:’. Uma vez dado o comando echo para salvar esse registro em /proc/sys/fs/binfmt_misc/register, aparecerá um novo arquivo em /proc/sys/fs/binfmt_misc com o mesmo nome do campo NOME no registro. Se não aparecer, veja se foi feita alguma incorreção na hora de formar o registro. Conceitos assimilados, está na hora de por isto na prática…

Fazendo o kernel “executar” o Windows

Os executáveis do windows na verdade :) . No meu ambiente, eu instalei o wine baixando os fontes e executando wineinstall. O wine foi configurado para usar uma partição do Windows 98(R) como diretório do windows, que no meu linux ficou montado em /mnt/fat com direitos de acesso para leitura e escrita por usuários comuns. Segue a linha do meu fstab referente a essa partição:

/dev/hda1 /mnt/fat vfat user,umask=000,exec,dev,suid 1 0

Assim, o próximo passo foi executar:

$ echo :WINDOWS_EXE:E::exe::/usr/local/bin/wine: > /proc/sys/fs/binfmt_misc/register

E, como primeiro teste para ver se deu certo, executar:

$ cat /proc/sys/fs/binfmt_misc/WINDOWS_EXE
enabled
interpreter /usr/local/bin/wine
extension .exe

Até aqui tudo bem, então o teste final foi:

$/mnt/fat/windows/notepad.exe

E voilá, o notepad apareceu bem diante dos meus olhos :)

Domando o Java

Bom, agora talvez alguém pensasse que nem é preciso explicar o java, pois o procedimento seria análogo ao usado com o wine, correto? Incorreto! Simplesmente registrar o caminho para o interpretador java seguindo a receita mostrada e tentar executar o arquivo class desta vez não vai dar certo. E não vai dar certo por um motivo simples: quando o kernel reconhece um tipo que deve ser tratado por um interpretador especificado deste modo, ele simplesmente executa o interpretador passando para o mesmo o nome e caminho para o arquivo. Agora eu pergunto aos ententidos de java de plantão, se eu executar algo como:

java /home/germano/minhaclasse.class

Isso vai funcionar? Não vai porque para o interpretador java não deve ser passado o nome do arquivo da classe, mas o nome da classe em si e apenas, sem diretórios. E o diretório onde está o arquivo .class deve estar configurado numa variável de ambiente chamada CLASSPATH. Bem, infelizmente ensinar java prolongaria demais este roteiro, de forma que me limitarei apenas a dizer que, no meu ambiente de teste, o interpretador está em /usr/lib/java/bin/java e minha variável de ambiente CLASSPATH está configurada como segue:

$echo $CLASSPATH
/usr/lib/java/lib:./

Para resolver esse tipo de situação a saída é escrever um wrapper, que nada mais é que um script que chama o interpretador com o argumento correto, e registrar esse wrapper no kernel como sendo o interpretador. No caso do java, eu escrevi o seguinte script e salvei em /usr/local/bin/javawrapper.sh

#!/bin/bash
NOMECLASSE=`echo $1 | tr / . | awk -F. '{print $(NF-1)}'`
/usr/lib/java/bin/java $NOMECLASSE

Este script é que será chamado pelo kernel e receberá como argumento o nome e caminho para o arquivo .class. As duas linhas de código cortam a extensão e o caminho do argumento recebido deixando apenas o nome da classe, e usa esse valor como argumento para o interpretador java.Contornada essa peculiaridade do java, bastou registrar o wrapper como teria feito com o próprio interpretador:

echo :JAVACLASS:E::class::/usr/local/bin/javawrapper.sh: >/proc/sys/fs/binfmt_misc/register

Depois disso compilei o seguinte programa java estilo alo mundo:

public class binfmt{
public static void main(String args[]){
System.out.println("O Linux e muito esperto
");
}
}

E por fim foi só chamar diretamente o arquivo .class para testar:

$ /home/germano/binfmt.class
    O Linux e muito esperto
 $ ./binfmt.class

    O Linux e muito esperto   Fonte




Sua declaração de imposto de renda com Linux

6 03 2008

Apresentação

Hoje em dia o Linux é uma realidade no mundo e no Brasil. Teve um crescimento enorme devido aos incentivos do Governo Federal e apoio de grandes empresas como IBM ao uso do Linux e Software Livre. A Receita Federal disponibiliza os programas para declaração do imposto de renda em versões tanto para Windows quanto para Linux. O Mac e OpenSolaris estão contemplados. Então, vamos aprender como instalar os programas da receita no Linux.

O que é necessário?

1. Sua distribuição preferida.

2. Uma máquina virtual Javaa. A máquina virtual java (JVM), versão 1.4.1 ou superior, deve estar instalada, pois programa desenvolvido em Java não pode ser executado sem a JVM.

3. Downloads dos programas Imposto de Renda Pessoa Física e Receita Net Javaa. Programa do Imposto de Renda Pessoa Física 2008 – Nova versão utilizada para preenchimento da declaração, para microcomputador com máquina virtual Java instalada

b. Receitanet Java 2008.01 – Download Programa utilizado para envio da declaração via Internet

Download do programa da Receita Federal

Ao fazer o download, favor colocar no diretório para /usr/local.É necessário realizar os downloads dos softwares necessários. Então, vamos a prática:

1. Acesse o site 2. Faça o download do Java e da versão para Linux. Veja ilustração:

Veja a ilustração do download do programa da Receita Federal:

Download o Java

1. Acesse o site2. Faça o download da versão Linux (arquivo de extração automática).

Download do Receita NET

Programa utilizado para envio da declaração via Internet.1. Acesse o link

2. Faça o download do ReceitanetJava2008_01linux.bin.

Obs: a intenção deste artigo é apenas ensinar como instalar os programas da Receita Federal. Os detalhes técnicos devem ser consultados no site da própria Receita Federal.

Instalando o Java

1. cd /usr/local

2. chmod +x jre-6u5-linux-i586.bin3. ./jre-6u5-linux-i586.bin

Será exibida a Licença4. Pressione a barra de espaço até chegar ao botão de Yes ou no. Veja:

5. Do you agree to the above license terms? [yes or no]. Digite y no teclado e tecle Enter. Agora é aguardar a conclusão da instalação.

Criando variáveis no Linux

Será necessário criar as variáveis de ambiente para o Java.

Vamos editar o arquivo /etc/profile. Este é o arquivo onde definimos as variáveis globais do ambiente shell. As variáveis definidas no /etc/profile é válida para todos os usuários do sistema. Vamos a prática:1. Acesse uma console Linux com direitos administrativos.

2. vi /etc/profile.3. No início do arquivo, logo após os comentários, digite estas informações:

JAVA_HOME= /usr/local/jre1.6.0_05; export JAVA_HOMEPATH=$PATH:$JAVA_HOME/bin

export PATHObs.: Observe que está sendo informada a versão do java e o caminho na linha JAVA_HOME. Então, fique atento para informar a versão correta.

Apenas no Mandriva, edite o arquivo:01. vi /root/.bashrc

02. comente a linha #PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbinTestando o JAVA

1. Faça um logout e se efetue um novo login. Isto é para que as novas variáveis estejam definidas.2. Digite java -version. Veja o resultado:

Instalando o Programa do Imposto de Renda Pessoa Física 2008

Agora que temos o Java instalado, vamos instalar o programa IRPF.

1. Acesse com direitos administrativos o diretório onde foi feito o download.2. Digite chmod +x IRPF2008linuxv1.0.bin.

Neste momento é necessário está no Modo Gráfico do seu Linux.3. ./IRPF2008linuxv1.0.bin

Será exibida a tela de boas-vindas.

4. Clique no botão Avançar.5. Informe o diretório ou aceite o sugerido. Configurei o diretório /usr/local/ProgramasRFB/IRPF2008. Veja:

6. Clique no botão Avançar.

7. Mantenha o diretório padrão e clique no botão Avançar.8. Clique no botão Avançar.

9. Confirme a criação do ícone e clique no botão Avançar.Agora aguarde enquanto o programa é instalado.

10. Clique em Avançar para continuar.Pronto. Instalação concluída.

Acessando o programa

1. Clique no ícone criado na área de trabalho ou acesse o diretório /usr/local/ProgramasRFB/IRPF2008 e execute o programa irpf2008 desta forma ./ irpf2008.

Veja a ilustração:

Boa-sorte com a sua declaração.

Instalando o ReceitanetJava2008_01linux.bin

O processo é quase igual ao processo anterior.

1. Acesse o diretório onde está o arquivo ReceitanetJava2008_01linux.binObs: é necessário o Modo Gráfico do seu Linux.

2. ./ReceitanetJava2008_01linux.bin

3. Clique no botão Avançar.4. Configure o diretório padrão para /usr/local/ProgramasRFB/Receitanet Java e clique no botão Avançar.

5. Mantenha o botão Sim e clique no botão Avançar.6. Leia as informações e clique no botão Avançar.

Agora, aguarde a conclusão da instalação.7. Ao final clique no botão Concluir.

8. Acesse através do ícone criado na área de trabalho ou execute o arquivo digitando /usr/local/ProgramasRFB/Receitanet Java/receitanet.bin

Conclusão

Aprendemos de forma prática como instalar os softwares necessário para a declaração e envio do Imposto de Renda Pessoa Física 2008. Boa-sorte da restituição.

Fonte





Microsoft Virtual PC

5 03 2008

Se você não sabe o que é virtualização de PCs, ou nem tem idéia dos inúmeros benefícios trazidos por essa técnica, recomendo ler esta introdução feita pelo Carlos E. Morimoto:

O Virtual PC é um sistema virtualizador de PCs, produzido pela Microsoft. Tem uma versão gratuita voltada a desktops e usuários comuns, o popular Microsoft Virtual PC 2007. Nem sempre foi gratuito, a gratuidade começou em julho de 2006, quando o Virtual PC 2004 SP1 virou freeware. Na versão 2007, o programa ficou mais maduro, rápido e estável, além de passar a suportar oficialmente o Windows Vista.

Ele concorre com soluções como VMware e VirtualBox, além dos mais lerdos QEMU e Bochs (entre outros). Para rodar Windows na máquina virtual, sob um sistema Windows também, pode ser uma boa usar o Virtual PC. É bom para quem tem Windows, e precisa rodar outra versão de Windows casualmente – ou mesmo diariamente, se tiver bastante memória RAM. Usuários comuns podem rodar softwares incompatíveis com seu sistema atual, empresas idem. Já desenvolvedores de software podem testar suas aplicações em diversas versões de Windows, sem precisar manter máquinas reais separadas para cada uma delas. As possibilidades vão das suas necessidades e interesses.

Para rodar Linux, já é uma outra coisa. Apesar de a Microsoft ter lançado alguns drivers para Linux (Virtual Machine Additions for Linux, para o MS Virtual Server 2005), o desempenho ainda não é lá tão satisfatório – como muitos dizem, pelo menos. E no caso do Virtual PC 2007, nem há a opção “Linux” na hora de escolher o melhor sistema para a máquina virtual. Se você pretende rodar Linux virtualizado, recomendo altamente o uso de outras soluções, como o VMware Server ou o Virtual Box, ambos gratuitos. Destaco que o desempenho do Virtual PC para rodar Windows me pareceu ser um pouco melhor do que o do VMware, no dia-a-dia.

Ao longo do texto serão muito usados os termos “guest” e “host”. O sistema host é o que você está usando, onde está instalado o virtualizador. O sistema guest, visitante, é o que roda dentro da máquina virtual.

O Virtual PC 2007 pode ser baixado gratuitamente em:

http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx

Ele salva as configurações da máquina virtual num arquivo de extensão “.vmc”, por padrão na pasta “My Virtual Machines”, dentro da sua pasta de documentos, além de manter uma subpasta para cada vm (vm = “virtual machine”, máquina virtual). O HD virtual do Virtual PC tem a extensão “.vhd” (virtual hard disk).

O uso consiste basicamente na mesma coisa dos outros virtualizadores: criar uma máquina virtual, escolhendo as características dela. Depois, você instala um sistema operacional nela, como faria num PC real. Instala os drivers para o sistema (dos dispositivos virtuais), e enfim tem a máquina pronta para uso, sempre que quiser. Para fazer backup, basta copiar a pasta dela, ou então apagá-la quando bem entender.

Para criar a primeira VM, clique no botão “New…” (Novo…) do console do Virtual PC. Será aberto o assistente de nova máquina virtual; clique em “Next” (Avançar).
index_html_m67731047

Deixe marcada a opção “Create a virtual machine” (Criar uma máquina virtual) e dê “Next” de novo. As outras opções são para criar uma nova máquina virtual com as opções padrões (rápido, sem alterá-las no momento), e adicionar uma máquina virtual existente (um arquivo “.vmc”) ao console de gerenciamento do Virtual PC.
index_html_25a3bfbf

Na próxima etapa, você deve definir o nome e local da máquina virtual. Você pode digitar um nome apenas, para que ela seja criada na pasta padrão, ou clicar em “Browse” (procurar) e localizar uma pasta diferente.
index_html_m2c9a6cda

Lembre-se de que a localização do arquivo “.vmc” pode ser diferente da localização do HD virtual, e é o HD virtual que ocupará muito espaço – correspondente ao que for gravado nele.

Avançando, escolha o sistema que será instalado na máquina virtual. Você pode escolher qualquer um e instalar outro, mas assim como a maioria dos outros virtualizadores, o Virtual PC aplicará otimizações específicas para o sistema escolhido – melhorando bastante o desempenho.
index_html_e553795

Ele sugere uma quantidade de memória mínima para o sistema escolhido, e um tamanho de HD também. Você poderá alterar essa configuração logo mais.

Avançando, você pode alterar a quantidade de memória RAM destinada à máquina virtual. A escolha dependerá da quantidade de memória do seu sistema físico. Pode ser que ele não deixe escolher mais do que um certo limite para evitar que tanto o sistema host como o guest sofram com o péssimo desempenho, devido o uso de swap (arquivo de paginação, no Windows, uma extensão da memória feita no HD, também chamada de memória virtual). Para alterar o valor, clique em “Adjusting the RAM”, e escolha a quantidade de memória desejada:
index_html_m438a19eb

Vai depender do que você precisa. Para o Windows XP, você pode deixar 256 MB, mas para o Vista o mínimo é 512 MB.

Na próxima tela, você deverá escolher o HD a ser usado pela máquina virtual. Pode ser um HD virtual existente, do Virtual PC (para continuar com um backup que você tenha feito, por exemplo); ou então, crie um novo disco. Como estamos criando a máquina virtual pela primeira vez, marque a opção “A new virtual hard disk” (Um novo disco rígido virtual) e clique em “Next”:
index_html_79198cd7

Agora você deve definir o local e o tamanho desejado para o HD virtual, dentro do tamanho máximo exibido pelo Virtual PC para as configurações escolhidas. O tamanho deve ser informado em megabytes, sendo 1024 MB correspondentes a 1 GB. Para definir um HD de 40 GB, por exemplo, digite o resultado de 40 vezes 1024, que vem a ser 40960:
index_html_63ade61b

A imagem de disco do Virtual PC segue o estilo da maioria dos virtualizadores por padrão: o tamanho informado aqui será só um limite, mas o arquivo do HD virtual vai ocupar um espaço insignificante quando vazio. Conforme o sistema operacional for instalado na máquina virtual, além dos arquivos que você venha a gravar, ele vai ocupando o espaço correspondente “de verdade”. Não será possível expandi-lo depois, mas você poderá adicionar novos HDs virtuais, como se você adicionasse mais HDs físicos às outras portas IDE da máquina.

Concluindo, chegamos no final:
index_html_7cdbf160

A máquina virtual criada será adicionada ao console, no meu caso existem algumas outras já:
index_html_m26d4b882

A partir daí, para iniciá-la basta dar um duplo clique no item correspondente, ou então selecioná-la e clicar em “Start” (Iniciar).

A instalação do sistema poderá ser feita via CD/DVD ou disquete, ou ainda via imagem de disco (ISO). É possível dar boot também via rede, se houver um “servidor de boot” disponível na rede em uso, ao qual o Virtual PC tenha acesso.

Uma vez iniciado, ele dará boot pelo disquete, ou então CD/DVD, se encontrado. Se você tem mais de uma unidade óptica, ou se quiser usar uma imagem ISO, poderá alterar isso nas configurações da máquina virtual, ou então pelo menu depois que a mesma for inicializada (clicando no menu “CD”, da janela da máquina virtual):
index_html_m521e7f37

Instalar o sistema é normal, como você faria num computador real. Ao clicar dentro da janela da VM, o mouse fica “preso”, e todos os comandos teclados são redirecionados diretamente à máquina virtual. Para “soltar” o mouse e voltar ao controle do sistema host, tecle uma vez a tecla Alt da direita (Alt Gr). Falando nisso, ao teclar CTRL+ALT+DEL, o sistema host (o “seu” Windows) responde, abrindo o gerenciador de tarefas ou a tela de segurança do Windows. Para evitar isso, os virtualizadores enviam CTRL+ALT+DEL para a máquina virtual com alguma outra combinação também. No Virtual PC, basta Alt direita junto com Del. A telca Alt, para sair da máquina virtual, pode ser trocada por alguma outra nas opções do Virtual PC (menu “File > Options”).

Depois da instalação, você precisa instalar os drivers dos dispositivos virtuais. Quase tudo funciona sem eles, mas tem a questão do desempenho. No Virtual PC, o pacote com os drivers é o Virtual Machine Additions. Ao instalá-lo, um dos principais destaques que você notará é o driver de mouse virtual, para que você possa mover o mouse mais naturalmente, e passar a comandar a máquina virtual sem precisar ficar “preso” dentro dela – dispensando o uso da tecla Alt para sair.

Para instalá-lo, tenha o sistema operacional já iniciado, e clique então em “Install or Update Virtual Machine Additions”:
index_html_773dfd10

Esse pacote será instalado da forma “tradicional”, digamos assim. É simulada a inserção de um CD com os drivers, e um instalador. Se a reprodução automática do Windows não abrir o programa (auto run), vá ao “Meu computador” da máquina virtual e inicie-o a partir dali.

Depois de instalado, ele pede para reiniciar o sistema guest (dentro da vm), e ao iniciar de volta, a máquina estará pronta para uso.

A placa de vídeo virtual será vista como uma S3 Trio 32/64 com 8 MB de memória RAM, e a placa de som será simulada como uma Creative Labs Sound Blaster 16 ISA Plug and Play, independentemente de quais sejam as suas placas reais. A resolução da tela não precisa corresponder aos padrões 3:4 ou mesmo aos formatos widescreen. Você pode redimensionar a janela do Virtual PC, que a resolução será ajustada automaticamente (com o devido driver de vídeo instalado, é claro):
index_html_m18ceda4a

Dica: para exibir a tela da máquina virtual em tela cheia, tecle Alt direita junto com Enter.

Para alterar opções da máquina virtual, você pode clicar no menu “Edit > Settings” (Editar > Configurações), com ela em execução; ou então selecioná-la e clicar no botão “Settings”, no console do Virtual PC. Algumas opções só podem ser ajustadas com a máquina virtual desligada.
index_html_m6f66473b

Entre as opções, você pode alterar ou adicionar HDs (até um total de 3), escolher a unidade de CD/DVD que usará (ou definir uma imagem ISO para uso como CD/DVD), além de desativar alguns dispositivos que não venha a usar.

A rede na máquina virtual pode ser usada no modo de compartilhamento NAT. Geralmente é o ideal para usuários “comuns” que queiram usar a Internet na máquina virtual. Para isso, na seção “Networking” das propriedades da máquina virtual, escolha o modo de compartilhamento NAT, para um dos adaptadores:
index_html_m2e4f90b

Assim você pode usar a conexão com a Internet na máquina virtual sem se preocupar com ajustes adicionais.

Você pode configurar o compartilhamento de arquivos no sistema da vm para que possa trocar arquivos com o sistema real, mas há algumas formas “mais práticas”, ou alternativas. Para começar, basta arrastar arquivos ou pastas, de e para a máquina virtual :)

Selecione arquivos e pastas pelo Windows Explorer, arraste até o botão do Virtual PC na barra de tarefas, e sem soltar, aguarde até que a janela seja trazida para frente. Feito isso, leve a seleção até uma pasta ou para um local livre na área de trabalho do Windows na máquina virtual, e solte. Para o processo inverso, é a mesma coisa.

Se você precisar freqüentemente acessar arquivos diretamente do sistema host, pode então usar as pastas compartilhadas (“Shared Folders”). Nas propriedades da máquina virtual, vá para a seção “Shared Folders”, clique no botão “Share folder”, e escolha uma pasta do sistema host:
index_html_m68d9a769

Escolha uma letra para a pasta compartilhada, e então ela poderá ser acessada nessa letra de unidade, que passará a aparecer no “Meu computador” do Windows na máquina virtual. Se quiser que o mapeamento seja “permanente”, marque o item “Share every time” (Sempre compartilhar), caso contrário será válido apenas até que você encerre a sessão do Virtual PC. O acesso provido será de escrita e leitura, portanto, cuidado para não rodar besteiras na máquina virtual, que possam comprometer a segurança dos arquivos na pasta compartilhada.

Ao desligar a máquina virtual clicando no botão “X” da janela do Virtual PC, você pode optar por desligar a máquina virtual ou salvar o estado dela:
index_html_m17781acf

Para um desligamento, prefira usar o “Iniciar > Desligar > Desativar” do Windows, para que ele seja desligado de forma “correta”, sem possíveis problemas de perda de arquivos no ambiente virtualizado – ao concluir o desligamento, o Virtual PC fecha a janela. O salvamento do estado pode ser visto como uma “hibernação” independente do sistema guest, onde o conteúdo da memória é salvo e pronto para ser fechado. Na próxima vez que você abrir essa máquina virtual, ela será restaurada exatamente do mesmo jeito que estava quando você deixou. Pode ser útil em algumas situações, como na instalação do próprio sistema operacional na vm, se você não puder concluir de uma só vez. Só não faça isso durante transferências de arquivos via rede ou Internet.

Pelo menu “Action” da janela da máquina virtual, você também pode pausá-la (pausando o processamento, caso você queira fazer alguma coisa pesada no sistema host sem desligar a vm). Use o “Action > Reset” para reiniciar a máquina virtual, assim como você reiniciaria um PC no botão – útil caso o sistema guest trave.

Enfim, eis o Virtual PC para usuários “comuns”, não para uso em servidores ou aplicações mais avançadas. Em algumas características, ele se torna mais limitado do que o VMware Server (a versão gratuita do VMware), mas mesmo assim dá conta muito bem do recado na situação de rodar um Windows dentro de outro. Ainda tem a vantagem de ser produzido pela mesma produtora do Windows, o que garante um ótimo desempenho.

Fonte GDH





Configurando um servidor Linux doméstico, fácil

4 03 2008

Configurar um servidor Linux pode ser complicado, ou surpreendentemente simples. Este tutorial é uma “receita rápida” de como configurar um servidor Linux doméstico, incluindo compartilhamento da conexão, instalação de um servidor proxy transparente, bloqueio de sites e configuração do servidor DHCP. Diferente dos tutoriais anteriores, onde entro em detalhes mais técnicos sobre a configuração de cada serviço, este tutorial ensina a configurar o servidor da forma mais rápida e simples possível.

Carlos E. Morimoto
03/03/2008

Quando as conexões de banda larga começaram a se tornar populares, por volta de 2000, compartilhar a conexão se tornou uma dúvida comum, já que compartilhar uma conexão ininterrupta faz muito mais sentido do que compartilhar a conexão via modem. No começo, era muito comum serem usados PCs com o Windows 98 ou 2000, compartilhando a conexão através do ICS, ou micros antigos rodando mini-distribuições Linux especializadas na tarefa, como o antigo Coyote.

Hoje em dia, compartilhar a conexão deixou de ser um problema, já que praticamente qualquer modem ADSL pode ser configurado como roteador, sem falar dos pontos de acesso com funções de roteador e da enorme variedade de servidores domésticos que temos no mercado.

Vamos então a um tutorial rápido de como compartilhar a conexão no Linux, usando um PC com duas placas de rede, aproveitando para incluir também alguns recursos adicionais no servidor, instalando também um proxy transparente e um servidor DHCP. Este mesmo servidor pode ser configurado também como um servidor de arquivos e impressoras para a rede, assumindo também o papel de NAS.

Os passos a seguir podem ser usados em praticamente qualquer distribuição, de forma que você pode usar a que tiver mais familiaridade. Também não é necessário reservar um PC só para compartilhar a conexão: você pode perfeitamente usar seu próprio micro, ou outro que fique ligado continuamente.

Se você não se importar em fazer a configuração via linha de comando, você pode utilizar um PC antigo, instalando a versão server do Ubuntu. Ela está disponível no http://www.ubuntu.com/getubuntu/downloadmirrors, juntamente com a versão principal, mas é um pouco menor, com cerca de 500 MB.

Ao contrário da versão desktop, que carrega o ambiente gráfico por padrão e precisa de um PC com pelo menos 256 MB de memória RAM para rodar, a versão server usa um instalador simples, em modo texto (o mesmo usado nas primeiras versões), e pode ser instalada mesmo em micros com apenas 32 MB de memória RAM:

Esta versão instala apenas os pacotes básicos, sem o ambiente gráfico, por isso o boot depois da instalação é feito em modo texto. Logue-se usando a conta criada durante a instalação e use o comando “sudo passwd” para definir a senha de root. A partir daí você pode se logar diretamente como root, como em outras distribuições:

$ sudo passwd

Inicialmente, o Ubuntu server vem apenas com o vi instalado, que não é um editor de texto particularmente amigável, mas, depois de fazer a configuração inicial da rede (editando o arquivo “/etc/network/interfaces”), você pode instalar outro editor mais amigável, como o mcedit (que faz parte do pacote “mc”), o “joe” ou o “nano”. Não importa muito qual editor resolva usar, o importante é que você se sinta confortável com pelo menos um deles.

Um exemplo de arquivo “/etc/network/interfaces” configurado é:
# /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

O arquivo é dividido em duas partes. A linha “auto …” lista as interfaces que devem ser ativadas automaticamente e as demais contém a configuração de cada uma. Para configurar uma nova placa de rede, você adicionaria a configuração relacionada a ela no final do arquivo e a adicionaria na linha “auto”, como em “auto lo eth0 eth1″. Se, por outro lado, você quiser desativar uma interface, precisa apenas removê-la da linha auto, não é preciso remover as demais linhas.

A interface “lo” é a interface de loopback, usada para a comunicação local entre diversos aplicativos e componentes do sistema, por isso nunca deve ser desativada. Embora o uso da interface de loopback pareça ser uma exclusividade do Linux, ela é usada também no Windows; a única diferença é que no Windows ela não aparece na configuração.

Em seguida temos a configuração de cada interface, que vai em uma seção separada. No caso da interface lo é usada uma única linha, “iface lo inet loopback”, usada em qualquer instalação, seguida pelas demais interfaces.

Como você pode ver, as últimas 5 linhas na configuração da placa eth0 especificam o IP utilizado pelo PC e o restante da configuração da rede, com exceção dos endereços dos servidores DNS, que vão no arquivo “/etc/resolv.conf”.

Se você quisesse que a interface fosse configurada via DHCP, poderia substituir as 6 linhas referentes a ela por:

iface eth0 inet dhcp

Ao configurar um servidor com duas placas de rede, onde a eth0 está ligada à rede local e a eth1 ao cable modem (obtendo o endereço via DHCP), por exemplo, o arquivo ficaria:

# /etc/network/interfaces

auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

iface eth1 inet dhcp

Veja que nesse caso a configuração da interface eth0 não inclui o gateway, pois é a eth1 que será usada para acessar a web.

Depois de editar o arquivo, você pode aplicar as alterações reiniciando o serviço relacionado a ele:

# /etc/init.d/networking restart

Um problema comum que afeta versões do Debian, Ubuntu e distribuições baseadas neles é as interfaces mudarem de endereço a cada reset em micros com duas ou mais interfaces de rede. A placa eth0 passa então a ser a ath1 e assim por diante, o pode ser uma grande dor de cabeça ao configurar um servidor para compartilhar a conexão, já que se as duas interfaces mudam de posição, nada funciona.

A solução para o problema é um pequeno utilitário chamado “ifrename”, que permite fixar os devices utilizados para as placas. Utilizá-lo é bem simples. Comece instalando o pacote via apt-get:

# apt-get install ifrename

Crie o arquivo “/etc/iftab” e, dentro dele, relacione o device de cada interface com o endereço MAC correspondente, seguindo o modelo abaixo:

#/etc/iftab
eth0 mac 00:11:D8:76:59:2E
eth1 mac 00:E0:7D:9B:F8:01

Em caso de dúvida, use o comando “ifconfig -a” para ver a configuração atual das placas e o endereço MAC de cada uma. Uma vez criado, o arquivo é verificado a cada boot e a configuração se torna persistente, resolvendo o problema. Este bug das interfaces itinerantes afeta apenas algumas distribuições, por isso você não precisa se preocupar com ele até que perceba que está usando uma das afetadas.

O Ubuntu server vem com o servidor SSH instalado por padrão, de forma que depois de configurar a rede, você pode fazer todo o resto da configuração confortavelmente a partir do seu micro. Uma dica é que ao utilizar o joe, o nano ou o vi (o mcedit não suporta o uso do clipboard), você pode usar o botão central do mouse para colar texto dentro do terminal, o que é muito útil quando você tem um modelo de configuração pronto pra usar.

Compartilhando a conexão

Depois de configuradas as duas interfaces de rede, ativar o compartilhamento da conexão é bastante simples. No Linux o trabalho é feito pelo iptables, o firewall padrão do sistema, que incorpora a função de compartilhamento através do módulo “iptable_nat”. Para ativar o compartilhamento, precisamos apenas carregar o módulo, ativar o roteamento de pacotes e em seguida executar o comando que ativa o compartilhamento propriamente dito. Explicando assim pode parecer difícil, mas na prática isso é feito usando apenas 3 comandos:

# modprobe iptable_nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

O “eth0″ no terceiro comando indica a placa onde está a conexão com a Internet. Não se esqueça de indicar a interface apropriada ao executar o comando (na dúvida você pode checar a configuração da rede usando o ifconfig). Se você acessa via ADSL, usando o pppoeconf ou o adsl-setup (com o modem configurado como bridge) será criada a interface “ppp0″.

A partir daí, todas as requisições recebidas na interface de rede local serão mascaradas e roteadas usando a interface especificada e as respostas serão devolvidas aos PCs da rede local.

É possível compartilhar qualquer tipo de conexão, incluindo conexões discadas, wireless, conexões via celular e assim por diante. O servidor simplesmente passa a rotear os pacotes dos demais micros da rede, transmitindo todas as requisições através da conexão que possui. Você precisa apenas configurar os demais PCs da rede para o utilizarem como gateway.

Nem todas as distribuições instalam o executável do iptables por padrão. No Mandriva, por exemplo, ele é instalado ao marcar a categoria “firewall” durante a instalação. Para instalá-lo posteriormente, use o comando “urpmi iptables”.

Os três comandos devem ser colocados em algum dos arquivos de inicialização do sistema para que passem a ser executados automaticamente durante o boot. No caso do Ubuntu e outras distribuições derivadas do Debian, você pode utilizar o arquivo “/etc/rc.local”. No Fedora, Mandriva e outras distribuições derivadas do Red Hat, use o arquivo “/etc/rc.d/rc.local”.

Você pode aproveitar para proteger o servidor usando um firewall simples, que bloqueie as portas de entrada, deixando passar apenas pacotes de respostas e conexões em portas indicadas manualmente. Com isso, o firewall garante um bom nível de proteção, com um mínimo de efeitos colaterais.

Para isso, utilizaremos o próprio iptables, complementando os três comandos anteriores. Estes comandos podem ser incluídos no arquivo /etc/rc.local ou /etc/rc.d/rc.local, logo abaixo dos comandos para compartilhar a conexão:

iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state –state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -p tcp –syn -j DROP

O primeiro comando faz com que o seu servidor deixe de responder a pings. Muitos ataques casuais começam com uma varredura de diversas faixas de endereços de conexões domésticas, enviando um ping para todas as máquinas. Responder ao ping indica não apenas que a máquina está online, mas também que provavelmente ela está com o firewall desativado, o que estimula o atacante a continuar o ataque, lançando um portscan e iniciando o ataque propriamente dito. Deixando de responder aos pings, o volume de ataques ao servidor cai bastante.

Os dois comandos seguintes protegem contra IP spoofing (uma técnica usada em diversos tipos de ataques, onde o atacante envia pacotes usando um endereço IP falseado como remetente, tentando assim obter acesso a PCs da rede interna) e contra pacotes inválidos, que são comumente utilizados em ataques DoS e ataques de buffer overflow.

As três últimas linhas autorizam pacotes provenientes da interface de loopback (lo), juntamente com pacotes provenientes da rede local e descartam novas conexões na interface de Internet, deixando passar apenas pacotes de resposta. Não se esqueça de substituir o “eth1″ pela interface de rede local correta, caso contrário você vai acabar fazendo o oposto, ou seja, bloqueando as conexões dos PCs da rede local e deixando passar as provenientes da Internet :) .

Se você quiser abrir portas específicas adicione a regra “iptables -A INPUT -p tcp –dport 22 -j ACCEPT” (onde o “22″ é a porta e o “tcp” é o protocolo) antes da regra que bloqueia as conexões. Você pode repetir a regra caso necessário, abrindo assim todas as portas desejadas.

No final, incluindo os comandos para compartilhar a conexão e regras para abrir as portas 22 (SSH) e 6881 (bittorrent), os comandos a adicionar no script de inicialização seriam:

#!/bin/sh
# Compartilha a conexão
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Bloqueia pings e protege contra IP spoofing e pacotes inválidos
iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state –state INVALID -j DROP
# Abre para a interface de loopback e para a interface de rede local
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
# Abre para as portas especificadas
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -p tcp –dport 6881 -j ACCEPT
# Bloqueia as demais conexões, deixando passar apenas pacotes de resposta
iptables -A INPUT -p tcp –syn -j DROP

Você pode também criar um filtro simples de conteúdo indicando manualmente endereços que devem ser bloqueados, usando o comando “iptables -A FORWARD -d dominio.com -j DROP”. Isso faz com que o servidor se recurse a encaminhar pacotes destinados aos endereços citados, impedindo que eles sejam acessados a partir dos micros da rede local. Você só precisa adicionar uma regra para cada domínio a ser bloqueado no seu script de firewall, como em:

iptables -A FORWARD -d orkut.com -j DROP
iptables -A FORWARD -d msn.com -j DROP
iptables -A FORWARD -d myspace.com -j DROP

Usada dessa forma, a regra bloqueia o acesso aos domínios especificados usando qualquer protocolo. Ou seja, se você adicionar uma regra bloqueando um tracker bittorrent, por exemplo, os clientes bittorrent rodando nas máquinas da rede não conseguirão se conectar a ele para fazerem download dos arquivos. Praticamente qualquer programa que precise se conectar a um servidor central, com um endereço fixo, pode ser bloqueado usando esta regra, desde que você saiba indicar o endereço correto.

A limitação é que esta regra se aplica apenas ao servidor relacionado ao domínio, por isso ela não bloqueia subdomínios hospedados em servidores diferentes. Por exemplo, você pode bloquear o domínio “uol.com.br”, mas isso não bloqueará o “tvuol.uol.com.br”, que é hospedado em um servidor separado. Em casos como este, a única solução é bloquear ambos.

Outra dica é que, ao compartilhar uma conexão discada ou uma conexão via celular (que também é uma forma de conexão discada, já que você precisa usar o kppp ou o gnome-ppp), você pode fazer com que o sistema execute o script de compartilhamento ao efetuar a conexão usando a aba “Executar” nas propriedades da conexão.

Adapte o script de compartilhamento para compartilhar a interface ppp0 e coloque o comando que executa o script no campo “Ao conectar”:

Com isso o compartilhamento é automaticamente ativado ao conectar. A principal observação é que para usar o script de compartilhamento dessa forma você deve abrir o kppp como root, ou modificar o script de forma que ele use o sudo em todos o comandos que precisarem ser executados como root, de forma que ele possa ser executado usando seu login de usuário.

Adicionando um proxy transparente

Os servidores proxy são a forma mais antiga de compartilhar a conexão entre vários micros. Diferente de um servidor configurado para compartilhar a conexão via NAT, que simplesmente roteia pacotes da rede local para a Internet e da Internet para a rede local, mascarando os endereços, um servidor proxy oferece um acesso mais limitado, intermediando a conexão, vasculhando o conteúdo dos pacotes e permitindo apenas o acesso a portas específicas. A grande desvantagem é que todos os micros da rede precisam ser configurados manualmente para utilizarem o proxy.

Usar um servidor proxy permite logar os acessos, impor restrições diversas, baseadas em horários, endereços e outras condições, limitar o uso de banda e assim por diante, o que faz com que eles sejam bastante populares em redes empresariais, onde a redução no uso da banda e o possível aumento na produtividade compensam o trabalho necessário.

Em uma rede doméstica, você pode configurar o servidor proxy para trabalhar em modo transparente, onde ele passa a fazer seu trabalho de forma invisível, sem que você precise configurar os micros da rede para utilizarem-no. O proxy complementa então o compartilhamento via NAT, cacheando os arquivos e as páginas acessadas.

O servidor passa então a armazenar atualizações do Windows Update, downloads diversos, páginas e imagens, pacotes instalados através do apt-get e tudo mais que for acessado via http. Com isso, muita coisa passará a ser acessada a partir do cache do servidor proxy, reduzindo o uso de banda e agilizando o acesso.

A principal limitação é que o proxy transparente irá cachear apenas o tráfego http, através da porta 80. Não é possível usar um proxy transparente para FTP e SSL, a menos que você configure os programas em cada PC manualmente para utilizarem o proxy. No Firefox por exemplo, a configuração de proxy vai dentro do menu “Editar > Preferências”, em “Rede > Configurações > Configuração manual de proxy”:

Marcando a opção “Usar este proxy para todos os protocolos” você faz com que todo o tráfego passe pelo proxy e seja armazenado no cache, incluindo os arquivos baixados via FTP e https. O problema é que você precisaria fazer essa configuração em todos os micros da rede, o que anula a principal vantagem de usar um proxy transparente, que é a possibilidade de ter ganhos na velocidade de acesso sem precisar fazer modificações nos PCs da rede.

De qualquer forma, a configuração que utilizaremos atende tanto aos PCs configurados para acessar a web diretamente quanto aos PCs configurados manualmente para usar o proxy, de forma que a configuração dos clientes fica a seu critério.

O primeiro passo é configurar o servidor Linux com duas placas de rede para compartilhar a conexão, como vimos nos tópicos anteriores. O proxy transparente é apenas um add-on, que complementa o compartilhamento da conexão via NAT.

Com tudo funcionando, o próximo passo é instalar o Squid, o que é feito através da instalação do pacote “squid” usando o gerenciador de pacotes, como em:

# apt-get install squid

ou:

# yum install squid

A configuração do Squid é feita através de um único arquivo, o “/etc/squid/squid.conf”. O arquivo de exemplo, instalado junto com o pacote é assustadoramente grande, com mais de 3000 linhas, incluindo comentários sobre todas as opções disponíveis. Ele é uma boa leitura se você quiser se aprofundar na configuração do Squid, mas se você quer apenas ver seu proxy transparente funcionando, é mais fácil renomear o arquivo e começar com um arquivo de configuração vazio:

# mv /etc/squid/squid.conf /etc/squid/squid.conf.modelo
# touch /etc/squid/squid.conf

Abra o arquivo /etc/squid/squid.conf em branco que foi criado e copie o modelo de configuração abaixo. As opções em negrito são as opções que você precisa alterar:

# /etc/squid/squid.conf
http_port 3128 transparent
visible_hostname gdh
cache_mem 64 MB
maximum_object_size_in_memory 128 KB
maximum_object_size 512 MB
cache_dir ufs /var/spool/squid 4096 16 256
cache_access_log /var/log/squid/access.log
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 21 280 443 488 563 591 777 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all

A primeira linha indica a porta utilizada pelo Squid (3128) e que ele deve operar em modo transparente (transparent). A segunda indica o nome do servidor (gdh), que você deve substituir pelo nome do seu.

As quatro linhas seguintes indicam a configuração do cache. O Squid trabalha com dois caches distintos, um cache mais rápido, feito na memória RAM, e outro mais lento (porém maior) feito usando espaço do HD.

O “cache_mem 64 MB” indica o tamanho do cache na memória RAM (é recomendável que você utilize no máximo 1/3 da memória total instalada), enquanto o “4096″ na linha cache_dir ufs /var/spool/squid 4096 16 256″ indica o tamanho do cache que será feito no HD, em megabytes.

A linha “acl redelocal src 192.168.1.0/24″ indica a faixa de endereços e a máscara utilizada na sua rede local (o /24 equivale à mascara 255.255.255.0). Combinada com as regras “http_access allow redelocal” e “http_access deny all” ela faz com que apenas micros da rede local possam utilizar o proxy, afastando qualquer possibilidade de que ele fique aberto para a Internet, independentemente da configuração do firewall.

A linha maximum_object_size 512 MB indica o tamanho máximo de arquivo que será armazenado no cache (arquivos maiores do que isso serão ignorados), o que evita que arquivos muito grandes, (como imagens ISO) que você vai baixar apenas uma vez, desperdicem espaço no cache.

Depois de terminar, reinicie o Squid para que a configuração entre em vigor:

# /etc/init.d/squid restart

Com isso, a configuração do servidor proxy está pronta, mas falta um passo igualmente importante, que é ativar a regra de firewall que faz com que os acessos destinados à porta 80, provenientes da rede local sejam encaminhados para o Squid. Sem isso, as requisições continuam sendo roteadas diretamente, sem passarem pelo proxy:

# iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3128

Note que o “eth1″ no comando especifica a interface de rede local, que deve ser alterada de acordo com a sua configuração. Este comando deve ser colocado no script de inicialização (juntamente com os comandos para compartilhar a conexão) para que seja executado automaticamente durante o boot.

Depois de ativar a regra de firewall, você pode testar o proxy navegando em algum dos micros da rede local (que use o servidor como gateway) e verificar o conteúdo do arquivo “/var/log/squid/access.log” no servidor. Conforme as requisições passam pelo proxy, o arquivo é alimentado com um grande volume de informações sobre as conexões realizadas, como em:

1201780615.239 1337 192.168.1.10 TCP_MISS/302 884 GET http://192.168.112.2o7.net/b/ss/mxmacromedia/1/F.3-XELvs – DIRECT/216.52.17.136 text/plain
1201780615.753 248 192.168.1.10 TCP_MISS/200 1526 GET http://wwwimages.adobe.com/www.adobe.com/lib/com.adobe/template/gnav/google.gif – DIRECT/204.245.162.8 image/gif
1201780647.918 29013 192.168.1.10 TCP_MISS/200 3036521 GET http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_9_linux.tar.gz – DIRECT/72.246.38.70 application/x-gzip

Pela presença das entradas no arquivo você percebe que os acessos estão realmente passando pelo proxy.

Uma última observação é que esta configuração vale para as versões recentes do Squid, do 2.6 em diante. Em versões antigas do Squid eram usadas 4 linhas adicionais no final do arquivo, no lugar do parâmetro “transparent” na primeira linha:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

A menos que você esteja usando o Debian Sarge, ou outra distribuição antiga, é improvável que esteja usando uma versão do Squid anterior à 2.6. De qualquer forma, fica a observação. A maior parte dos tutoriais disponíveis na web são anteriores à mudança e por isso ensinam a usar esta configuração antiga, que não funciona mais nas versões atuais. Em caso de dúvida, você pode checar a versão do Squid instalada usando o comando “squid -v”.

Adicionando um servidor DHCP

Complementando o compartilhamento da conexão, você pode configurar também um servidor DHCP, especificando a configuração que deve ser fornecida aos PCs da rede. É importante enfatizar que você deve manter apenas um servidor DHCP ativo na rede, de forma que se você já está usando o servidor DHCP do modem ou do roteador wireless, você deve primeiro desativá-lo, antes de ativar o DHCP no servidor.

Com dois servidores DHCP na rede, ambos irão responder às requisições e as máquinas vão simplesmente usar a configuração que receberem primeiro. Mesmo que ambos os servidores DHCP estejam configurados para fornecer a configuração correta, você poderá ter problemas com máquinas recebendo endereços repetidos (um servidor DHCP não tem como saber quais foram os endereços fornecidos pelo outro) e assim por diante. Confie em mim, manter um único servidor DHCP ativo vai tornar sua vida bem mais simples. :)

Para instalar o servidor DHCP, instale o pacote “dhcp3-server” usando o gerenciador de pacotes, como em:

# apt-get install dhcp3-server

No Fedora o pacote se chama “dhcp” e no Mandriva se chama “dhcpd”. Você pode instalá-lo usando (respectivamente) os comandos:

# yum install dhcp
# urpmi dhcpd

Nas distribuições derivadas do Debian o arquivo de configuração é o “/etc/dhcp3/dhcpd.conf” e no Fedora e Mandriva é o “/etc/dhcpd.conf”. Apesar disso, em ambos os casos a configuração é a mesma.

Você pode usar o modelo de configuração abaixo. Assim como no caso do Squid, as opções em negrito são as que você deve alterar de acordo com a configuração da sua rede:

# dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.250;
option routers 192.168.1.1;
option domain-name-servers 208.67.222.222,208.67.220.220;
option broadcast-address 192.168.1.255;
}

A opção “default-lease-time” controla o tempo de renovação dos endereços IP. O servidor DHCP checa periodicamente se a estação ainda está ativa e, ao perceber que ela foi desligada ou desconectada da rede, libera o endereço para uso de outro micro, evitando que os endereços disponíveis se esgotem. O “default-lease-time” indica o intervalo entre as checagens e o “max-lease-time” determina o tempo máximo antes de liberar o endereço. Em condições normais, essas duas opções não são muito importantes. O que interessa mesmo é o bloco que vai abaixo, onde ficam as configurações da rede.

A opção “range” determina a faixa de endereços IP que será usada pelo servidor. No exemplo, configurei o DHCP para fornecer os endereços de 192.168.1.100 a 192.168.1.250, de forma a ficar com os demais endereços livres para o uso em estações com IP fixo, mas você poderia reservar toda a faixa de endereços da rede para o DHCP (deixando de fora apenas o endereço do gateway), como em “range 192.168.1.2 192.168.1.254;”.

Na “option routers” vai o endereço do default gateway da rede, ou seja, o endereço do servidor que está compartilhando a conexão, enquanto a opção “option domain-name-servers” contém os dois servidores DNS que serão usados pelas estações, separados por vírgula.

O endereço de broadcast é sempre o último endereço da rede, como em “192.168.1.255″ ou “10.255.255.255″. Ele simplesmente acompanha a faixa de endereços e a máscara utilizada.

Depois de terminada a configuração, reinicie o servidor DHCP para que ela entre em vigor:

# /etc/init.d/dhcp3-server restart

(no Debian e derivados) ou:

# service dhcp restart

(no Fedora e Mandriva)

Ao configurar um servidor com duas placas de rede no Ubuntu ou outra distribuição derivada do Debian, abra o arquivo “/etc/default/dhcp3-server” e indique qual é a placa da rede local, como em:

INTERFACES=”eth0″

Isso faz com que o servidor forneça endereços apenas para micros ligados à interface indicada e não mais em qualquer uma das interfaces. Isso evita que ele responda a conexões provenientes da Internet.

Se você quiser também que o servidor atue como um servidor DNS, instale também o pacote “bind”, como em:

# apt-get install bind

Ao contrário do DHCP, ele não precisa de configuração, pois vem de fábrica configurado para trabalhar como um servidor DNS de cache, que simplesmente repassa as requisições para um dos 13 root servers da Internet e faz um cache das respostas.

Como vimos no capítulo 2, um servidor DNS local será geralmente mais lento, mas é interessante ter um para testar problemas de conectividade. Afinal, se você consegue navegar usando seu DNS local, mas não navega usando o DNS do provedor, significa que a conexão está funcionando e o problema é apenas no DNS.

Retidado do GDH





VNC

29 02 2008


 Tutorial de autoria de Carlos E. Morimoto, retirado do GDH

 

O VNC é um dos aplicativos de acesso remoto mais antigos e ainda assim ainda um dos mais usados. Ele não é tão seguro quanto o SSH, nem oferece um sistema de compressão tão eficiente quanto o RDP (usado no Windows Terminal Services), mas oferece a vantagem de ser fácil de usar e de estar disponível para praticamente todas as plataformas. Ele é tão flexível que pode ser usado até mesmo a partir do navegador.

Existem versões do VNC para Linux, Windows, MacOS, Solaris, BeOS, Amiga e até mesmo para palmtops com o Windows Mobile ou com o Palm OS. Ele pode ser usado tanto para acessar PCs ligados em uma rede local, quanto via Internet.

O VNC se divide em dois módulos: o módulo servidor e o módulo cliente. O módulo servidor deve ser instalado no micro que ficará acessível, bastando usar o módulo cliente para acessá-lo de qualquer outro. O mais interessante é que os módulos são intercompatíveis, ou seja, você pode acessar uma máquina rodando Linux a partir de outra que roda Windows, ou mesmo acessar ambas a partir de um Pocket PC com rede wireless.

O programa exibe uma janela com o mesmo conteúdo da área de trabalho do micro que está sendo acessado, permitindo que você o utilize como se estivesse de frente para ele. Isso é perfeito para quem trabalha com suporte, pois basta pedir para o usuário abrir o programa, em vez de ficar perguntando pelo telefone, o que torna o atendimento bem mais rápido:

index_html_41a4dc07
Acesso a um PC com o VNC via navegador, usando o applet Java

A versão original do VNC foi desenvolvida pela AT&T e substituiu rapidamente programas de acesso remoto como o PCAnywhere e o LapLink, que eram bastante usados na década de 1990. Esta versão não é mais desenvolvida, mas a licença open-source permitiu que surgissem versões aprimoradas, que incorporam recursos adicionais.

As duas mais usadas são o TightVNC e o Real VNC (http://www.realvnc.com). Apesar de possuir mais recursos, incluindo uma funções de chat e transferência de arquivos, o Real VNC é um aplicativo comercial, que está disponível apenas para Windows. O TightVNC, por sua vez, é inteiramente aberto e gratuito e possui versões para Windows e Linux, disponíveis no http://www.tightvnc.com/.

Em relação ao VNC original, o TightVNC oferece um algoritmo de compressão mais eficiente. Ele garante tempos de atualização de tela mais baixos (às custas de um pouco mais de processamento no cliente) e também suporte à compressão via JPG, que degrada a qualidade da imagem, em troca de uma redução considerável na banda utilizada, permitindo executar o VNC de forma aceitável mesmo em uma conexão via modem.

O TightVNC também oferece algumas melhorias secundárias, como o suporte a scroll de tela usando a roda do mouse e processamento local do cursor do mouse.

Como comentei, existem também clientes VNC para palmtops e smartphones, um dos mais usados é o Mocha VNC, disponível no http://www.mochasoft.dk/.

No Windows

Assim como em outros programas de acesso remoto, o VNC é dividido em dois componentes, o TightVNC Server, que é o servidor propriamente dito e o TightVNC Viewer, que é o cliente. O viewer é um aplicativo extremamente simples, que (na versão Windows) possui apenas 240 KB.

No Windows, você pode baixar os arquivos diretamente no http://www.tightvnc.com/download.html. Além da versão “completa”, que inclui o instalador, você pode também baixar um arquivo .zip contendo apenas os executáveis, que podem ser executados diretamente, sem precisar instalar.

Embora não seja obrigatório, é recomendável instalar também o “DFMirage mirror display driver” (disponível no final da página de download) no PC com o TightVNC Server. Ele é um driver open-source que torna as atualizações de tela bem mais ágeis, evitando que o VNC precise atualizar toda a janela para detectar uma mudança em seu conteúdo.

Para ativar o compartilhamento, clique no “Launch TightVNC Server”, dentro da pasta VNC do menu iniciar. Forneça uma senha de acesso e mantenha o programa residente.

Dentro da configuração, marque a opção “Remove desktop wallpaper”. Como o VNC trabalha enviando screenshots da tela, o uso de uma imagem pesada como wallpaper reduz drasticamente o desempenho. Essa opção faz com que o wallpaper seja desativado automaticamente durante as seções do VNC:

index_html_m21a3d40c

O VNC for windows suporta o uso de uma única conexão compartilhada. Ou seja, ele simplesmente compartilha a tela local, fazendo com que você veja exatamente a mesma imagem que está sendo exibida no monitor. Se houver alguém na frente do micro enquanto você o acessa via VNC, vai ver o rastro do mouse se movendo sozinho.

Apesar de ser uma desvantagem em muitas situações (já que o mesmo PC Windows não pode ser acessado por várias pessoas simultaneamente), o fato de usar uma seção compartilhada oferece duas vantagens:

    a) Você vê exatamente a mesma tela que a pessoa na frente do PC está vendo, o que é interessante para quem presta suporte remoto.

    b) A seção não é finalizada quando você desconecta. Se você se conectar novamente em outro micro, ela vai ser aberta da mesma forma como você a deixou. Isso é interessante para quem quer ter um segundo micro com o Windows e acessá-lo via rede.

 

É possível também usar seções compartilhadas no VNC, onde a mesma tela é vista por todos. Esta opção pode ser útil para ministrar treinamentos e tirar dúvidas remotamente, já que todos os conectados verão o que você está fazendo. Para isso, ative a opção “Connection priority > Automatic shared sessions” dentro da aba “Administration” na configuração do servidor VNC:

index_html_m2a123605

A opção “Enable built-in HTTP server” dentro do mesmo menu ativa o applet Java que permite que os clientes se conectem usando o navegador. O applet usa a porta 5900 TCP, de forma que o endereço para acessar o servidor usando o navegador é “http://ip-do-servidor:5800″, como em “http://192.168.1.2:5800″.

A applet Java é uma opção prática para usar em emergências, o problema é que ele é bastante lento. No dia-a-dia você vai preferir usar o cliente nativo do VNC, que além do melhor desempenho, oferece um bom conjunto de opções. Para se conectar, use o endereço IP, nome ou domínio do servidor, seguido pelo número da tela (que no caso do VNC Windows é sempre :0), como em “192.168.1.2:0″:

index_html_eea3c8

A conexão é protegida apenas pela senha de acesso definida no servidor, por isso é importante não usar senhas óbvias. A segurança não é exatamente o forte do VNC: a senha é encriptada usando um algoritmo fraco e os dados da seção são transmitidos através da rede sem encriptação. Ao acessar através de redes inseguras, é recomendável usar uma opção de acesso mais segura, como o SSH.

O cliente VNC oferece um conjunto de opções de acesso, que permitem alterar o algoritmo de compressão usando, entre diversas outras opções, acessadas através do botão “Options…”:

index_html_m6b44399f

As opções são as seguintes:

    View only: Para se conectar a uma seção em modo de visualização, onde você pode apenas ver o que está sendo feito na tela. É útil ao usar o VNC para treinamentos, como citei anteriormente. Na configuração do servidor é possível definir uma senha separada para os clientes que irão apenas ver a tela, na opção “”View-only password”.

    Emulate 3 Buttons: Pressionar os dois botões simultaneamente equivale a pressionar o terceiro botão do mouse. Esta opção é útil para quem usa um mouse de dois botões e está acessando um servidor Linux.

    Swap mouse buttons 2 and 3: Troca os dois botões do mouse dentro da tela do VNC, para canhotos ou caso os dois micros estejam configurados de forma diferente.

    Track remote cursor localy: Processa o movimento do mouse no cliente e não no servidor. Uma novidade do Tight que faz o movimento do mouse ficar muito mais uniforme.

    Scale by xx%: No caso do servidor VNC for Windows, resolução usada na tela do VNC é a mesma usada na configuração do vídeo. Esta opção permite comprimir a imagem da tela, permitindo que você se conecte a uma máquina com uma resolução de tela maior que a da sua sem usar barras de rolagem. Aqui temos um exemplo de um cliente com vídeo a 1024×768 acessando um servidor com resolução de 1280×800, com escala de 75%:

    index_html_79669f57

    Full-screen mode: Inicia direto em tela cheia (no cliente). Para sair do modo full-screen, pressione F8 e escolha a opção “Full-Screen” no menu.

    Request shared session: Permite que dois ou mais clientes se conectem ao mesmo tempo à mesma sessão do servidor. Nesse caso, os movimentos do mouse e o input do teclado são misturados, de forma que só um pode usá-la de cada vez. Esta opção é útil para treinamentos.

    Em seguida temos as opções de compressão, que estão diretamente relacionadas ao desempenho do VNC. Você escolhe o algoritmo a utilizar ao se conectar a partir do cliente. O servidor simplesmente utiliza as configurações solicitadas por ele.

    Cada um dos algoritmos apresenta um certo balanço entre uso da banda da rede e carga de processamento, por isso, a melhor escolha varia de acordo com a situação. O Tight é o que oferece melhor compressão e por isso é o mais recomendável para uso através de conexões lentas, enquanto o CoRRE é mais adequado para uso em rede local, pois consome menos processamento. Vamos a um resumo das características de cada um:

    Tight: Este é o algoritmo usado por padrão ao usar as opções “Default connection options” ou “Low-bandwidth connection” na janela principal. Ele oferece uma dupla compressão de dados, uma semelhante ao PNG, buscando pixels repetidos e substituindo-os por um único código e uma segunda camada, baseada em um algoritmo de compressão desenvolvido pela equipe com base no zlib. Ao usar o Tight você tem acesso a duas opções adicionais, onde pode ajustar o nível de compressão (quanto maior o nível, menor é o volume de dados transferidos, mas maior é o uso de processamento) e também ativar a compressão via jpg, estipulando um nível de perda:

    index_html_583266bc

    Usar a compressão via jpg permite reduzir brutalmente o volume de dados transmitidos, mas em compensação reduz a qualidade da imagem, assim como no caso de uma foto de baixa qualidade.

    O Tight é o ideal para redes lentas, sobretudo conexões via modem, mas não é uma boa escolha para redes locais ou micros muito lentos, pois a carga extra de processamento faz com que a atualização de tela fique lenta ao usar micros antigos (dois Pentium III, por exemplo), mesmo via rede local.

    Hextile: Este algoritmo era o usado pela versão inicial do VNC (o da AT&T), mas continua sendo suportado pelas versões atuais. No Hextile a imagem da tela é dividida em áreas de 16×16 pixels e apenas as áreas atualizadas são enviadas ao cliente. Este sistema simples de compressão resulta em um grande volume de dados, mas em compensação utiliza pouco processamento. Este é o algoritmo que oferece melhores resultados via rede local, onde o uso de banda não é problema.

    RRE: É um algoritmo ainda mais simples de compressão, que se resume a substituir seqüências de pixels da mesma cor por um único valor, indicando apenas que o cliente deve repetir o pixel x vezes. É eficiente para comprimir telas com menus e textos, mas é ineficiente com relação à compressão de imagens.

    CoRRE: Esta é uma variação do RRE que limita o número de repetições de pixels a 255, permitindo enviar um único bit de dados. Usa mais processamento que o Hextile, mas em compensação usa menos banda, o que o torna uma espécie de meio termo entre ele e o Tight.

    Zlib (pure): Usa o algoritmo Zlib para compactar as imagens, sem perda de qualidade. É o segundo mais eficiente em nível de compressão, perdendo apenas para o Tight. Apesar disso, a carga de processamento no Zlib é consideravelmente maior que a do Tight, mais que o dobro, em muitas situações. O Zlib continua disponível no Tight apenas para manter compatibilidade com o VNC tradicional, que não suporta o algoritmo Tight.

    ZlibHex (mix): Combina o Zlib com o Hexlite para quebrar a tela em pequenos pedaços, mantendo a compressão com o Zlib. O uso do processador é semelhante ao Zlib pure, mas existe um ganho perceptível de velocidade quando pequenos pedaços da tela são atualizados (abertura de menus por exemplo), mas nas atualizações de tela inteira, ao abrir uma nova janela ou dar scroll em uma página aberta no browser, por exemplo, o Zlib puro se sai melhor.

    Raw: É o oposto do Tight. As imagens são enviadas via rede sem compressão alguma, minimizando a carga sobre o processador. Pode ser útil em redes de 100 megabits, mas com micros muito lentos, abaixo de 133 MHz. A quantidade de dados enviada através da rede é de 50 a 100 vezes maior que a do Tight mas, em compensação, a carga de processamento é quase nula.

    Restric pixels to 8-bit: Esta opção pode ser usada em conjunto com qualquer um dos algoritmos de compressão, forçando o uso de apenas 8 bits de profundidade de cor. Pode ser útil em conexões muito lentas, como uma medida desesperada para comprimir os dados o máximo possível, mas normalmente a redução não compensa a perda de qualidade.

No Linux

Para instalar o TightVNC no Linux, procure pelos pacotes referentes a ele no gerenciador. Nas distribuições derivadas do Debian, por exemplo, instale os pacotes tightvncserver (o servidor), xtightvncviewer (o cliente) e tightvnc-java (o applet Java para se conectar usando o navegador) via apt-get, como em:

# apt-get install tightvncserver tightvnc-java xtightvncviewer

O cliente e o servidor são independentes, de forma que você pode também instalar só o cliente ou só o servidor, de acordo com o que for utilizar. O pacote tightvnc-java é opcional, você só precisa instalá-lo se quiser acessar o servidor via navegador. Existe também um pacote rpm para o Fedora, disponível no http://www.tightvnc.com/download.html que pode ser usado em último caso.

Para ativar o servidor, use (como usuário, não como root) o comando:

$ vncviewer

ou, dependendo da distribuição:

$ xtightvncserver

Da primeira vez que é executado, ele pede para definir uma senha de acesso, que deve ser fornecida pelos clientes. Diferente do servidor VNC for Windows, a versão Linux abre uma sessão separada do servidor X, independente da tela :0 que você vê no monitor. Isso permite que outras pessoas acessem o mesmo PC ou servidor sem atrapalhar quem está trabalhando nele.

O servidor VNC abre o desktop do usuário que o chamou, com as mesmas permissões de acesso. Justamente por isso, você nunca deve abri-lo como root, salvo tarefas de manutenção em que isso seja realmente necessário. Ao dar acesso à sua máquina para outra pessoa, o ideal é criar um novo usuário e usá-lo para abrir o VNC. Assim, você não corre o risco do seu amigo sair deletando seus arquivos e alterando suas configurações.

É possível abrir várias sessões independentes executando o comando VNCserver várias vezes. As sessões do VNC são numeradas de :1 em diante (:2, :3, etc.). Cada vez que o comando VNCserver é executado, você recebe uma mensagem avisando sobre o número da sessão aberta:

New ‘X’ desktop is m5:1
Starting applications specified in /home/morimoto/.vnc/xstartup
Log file is /home/kurumin/.vnc/morimoto:1.log

Para acessar a partir de outra máquina Linux, use (de acordo com a distribuição) o comando “xtightvncviewer” ou “vncviewer”, especificando o endereço IP, nome ou domínio do servidor, seguido do número da seção, como em:

$ vncviewer 192.168.0.1:1

ou:

$ xtightvncviewer 192.168.0.1:1

… onde o “192.168.0.1″ é o IP da máquina que está sendo acessada e o “:1″ é o número da sessão.

Outra diferença com relação à versão Windows é que você pode especificar o tamanho do desktop ao ativar o servidor. Você pode abrir uma seção com resolução de 1280×800 (ou qualquer outro valor) mesmo que o PC use resolução de 1024×768, por exemplo.

O VNC pode ser aberto em qualquer resolução, não é necessário se limitar às resoluções padrão. Para isso, adicione o parâmetro “- geometry”, especificando a resolução desejada, como em:

$ vncserver -geometry 800×600

ou:

$ vncserver -depth 16 -geometry 1012×704

Em geral, o VNCserver vem configurado nas distribuições para usar o KDE ou Gnome como gerenciador de janelas padrão nas sessões abertas. Dependendo da versão do VNC, você pode alterar esta configuração dentro do arquivo “.xsession” ou “.vnc/xstartup“, dentro do diretório home. Substitua o “startkde” ou “gnome-desktop” pelo comando que inicializa o gerenciador de janelas desejado, como, por exemplo, “wmaker” ou “fluxbox”.

Uma vez abertas, as sessões do VNC ficam abertas até que o servidor seja reiniciado. Isso é bom em muitas situações, pois você pode se conectar a partir de diferentes micros da rede e sempre continuar exatamente de onde parou, sem precisar ficar abrindo e fechando a sessão. Mas, por outro lado, isso é ruim, pois sempre acabam sobrando sessões “esquecidas”. Para fechar as sessões, use a opção “-kill”, seguida pelo número da sessão, como em:

$ vncserver -kill :1

Ao se conectar ao servidor usando o navegador, a porta varia de acordo com o número da seção. A seção :1 utiliza a porta 5801, a seção :2 utiliza a porta 5802 e assim por diante. Para se conectar à seção :3 do servidor “192.168.1.10″, por exemplo, o endereço seria: http://192.168.1.10:5803.

Note que a porta usada pelo Applet Java (5800 + o número de tela) é diferente da porta usada pelo servidor VNC propriamente dito (acessado pelo cliente VNC), que precisa ser aberta no firewall do servidor. O servidor regular utiliza a porta 5900 em diante: 5901 para a sessão :1, 5902 para a sessão :2, e assim por diante.

As seções abertas no servidor Linux podem ser acessadas tanto por clientes Windows (lembre-se que é necessário especificar a porta ao conectar) quanto por clientes Linux.

No cliente Linux é preciso passar os parâmetros via linha de comando ao conectar. A sintaxe é:

$ vncviewer opções ip_do_servidor:sessão

As opções podem incluir:

    -encodings: Para especificar um dos algoritmos de compressão que vimos anteriormente. Esta opção é necessária apenas ao usar um algoritmo diferente do Tight, que é usado por default. Ex:

    vncviewer -encodings CoRRE 192.168.1.2:0

    -fullscreen: Para iniciar o VNC em modo de tela cheia (pressione F8 para abrir o menu de opções e poder voltar ao modo janela). Ex:

    vncviewer -fullscreen 192.168.0.10:3

    -compresslevel 9: Esta opção permite especificar o nível de compressão para os algoritmos Tight e Zlib (a opção não tem efeito algum com os demais), permitindo dosar o uso da rede e do processador. O número vai de 1 (pouca compressão, menos processamento) a 9 (máxima compressão). Ex:

    vncviewer -encodings Zlib -compresslevel 9 220.200.125.67:3

    -quality 2: Aqui é possível especificar o nível de compressão via jpg para o algoritmo Tight, especificando um número de 0 (péssima qualidade, menor uso da rede) a 9 (compressão sem perda, o default). Esta opção pode ser combinada com a opção -compresslevel. A opção mais rápida possível no VNC para uma conexão via modem seria:

    vncviewer -encodings Tight -compresslevel 9 -quality 0 220.200.125.23:2

    -viewOnly: Para apenas visualizar uma seção operada por outra pessoa. Ex:

    vncviewer -fullscreen -viewOnly 192.168.0.1:1

Além do cliente em modo texto, existem diversos clientes VNC gráficos, incluindo o “Conexões com ambiente de trabalho remoto” do KDE (krdc), o “Desktop remoto” do Gnome (gnome-rdp) e o xvnc4viewer, entre outros.

index_html_cfb95c

O krdc do KDE faz par com o krfb (Compartilhamento do Desktop), que permite que você se conecte à tela 0 do servidor, ou seja, o desktop que o usuário na frente da máquina está vendo, (assim como no caso do VNC for Windows), servindo como uma boa opção para quem trabalha com suporte ou em situações onde você precisa ajudar algum amigo remotamente.

O krfb trabalha dentro do conceito de “convites”. Ao criar um convite, você especifica um período de validade (uma hora, por exemplo) e ele gera uma senha aleatória que é usada para efetuar a conexão. É possível também usar uma senha de acesso, marcando as opções “Permite conexões sem convite” e “Permite conexões sem convite para controlar o ambiente de trabalho” no menu de configuração:

index_html_f08a328
index_html_m2de1ef54

Uma vez ativado o krfb, você pode se conectar ao servidor usando qualquer cliente VNC. Basta se conectar à tela 0 do servidor, como se estivesse se conectando a uma máquina Windows.

Login automático

É possível também salvar a senha de acesso do VNC em um arquivo encriptado, no cliente, de forma a automatizar o login. Com isso, você pode criar um ícone no desktop que, quando clicado, abre diretamente a seção do servidor, sem passar pela tela de autenticação.

Esta é a solução ideal se você tem um segundo micro com Windows que deseja acessar via rede através do seu micro principal. Coloque o ícone na barra de inicialização rápida e você tem acesso ao seu segundo micro com apenas um clique.

Para salvar a senha, use o comando “vncpasswd” seguido do arquivo onde a senha será salva, que deve ser executado usando seu login de usuário, como em:

$ vncpasswd ~/.vpasswd

Executado dessa forma, o comando salvará a senha no arquivo “.vnc” dentro do seu diretório home (o “~” é um atalho para ele). Depois de criado o arquivo, você pode especificá-lo ao fazer a conexão usando o parâmetro “-passwd”, como em:

$ xtightvncviewer -passwd ~/.vpasswd 192.168.1.2:0

Você perceberá que ele abre a tela diretamente, sem passar pela janela de login. Falta agora apenas criar o atalho no desktop incluindo o comando de forma a facilitar o acesso. Aproveite também para indicar o algoritmo de compressão preferencial dentro do comando. O “CoRRE” oferece melhores resultados em rede local, já que usa mais banda da rede, porém menos processamento:

xtightvncviewer -encodings CoRRE -passwd ~/.vpasswd 192.168.1.2:0

Com isso, falta apenas fazer com que o VNC senha inicializado automaticamente na máquina Windows. Para isso, ative a opção “Install VNC Service”, disponível dentro da pasta do VNC no iniciar:

index_html_m6b69feeb

Ela faz com que o VNC fique residente na forma de um serviço, e fique disponível dede as fases iniciais do carregamento do sistema. A maior vantagem é que você pode visualizar a tela de login, o que permite deixar a máquina Windows sem monitor e acessá-la unicamente via rede. Para enviar o “Ctrl+Alt+Del” na tela de login, pressione a tecla F8 e use a opção “Sent ctrl+alt+del”:

index_html_134080e6

Fonte

 

     





    Criando HDs virtuais na memória RAM

    27 02 2008

    Você deve saber que a velocidade de escrita / leitura na memória RAM é muito maior do que em dispositivos mecânicos, como o HD, ou mesmo memória flash (como a utilizada nos pen drives e discos de estado sólido – SSD). Se seu computador tem muita memória RAM, não seria interessante usar parte dessa memória como se fosse um disco, uma partição, para realizar algumas tarefas especiais?

    Pense bem. Durante a gravação de CDs, muitas vezes a lenta velocidade atingida não é apenas devido à mídia ou à gravadora – e sim a um terceiro item que pode colocar altos gargalos, o HD. Gravar dados da memória RAM para um CD ou DVD é uma tarefa muito, muito mais rápida. Os programas de gravação normalmente gravam uma imagem temporária, salva no HD. Isso facilita a gravação na mídia, pois os dados estarão contínuos, não fragmentados (a menos que o espaço livre esteja muito fragmentado no seu sistema). Mas ainda assim, o HD será acessado durante todo o tempo da gravação – o que atrapalha bastante se você usar outros programas que usam constantemente o HD, como abrir um arquivo grande enquanto grava o CD, ou deixar um programa de compartilhamento de arquivos via redes P2P aberto.

    Se essa imagem temporária fosse copiada para a memória, ou melhor, se os arquivos fossem gravados diretamente a partir da memória, o processo seria muito mais rápido, estável e transparente – você inclusive poderia desativar a “criação de imagem” que os programas de gravação oferecem, alguns chamam de “cache” (não confunda com o cache da unidade gravadora). Durante a cópia de discos então, nem se fala. Quem tem uma gravadora só, precisa criar uma imagem do disco no HD, depois gravá-la numa mídia, e finalmente apagar a imagem temporária do HD. Você pode fazer o mesmo processo, mas salvando a imagem num disco virtual na memória RAM – será bem mais rápido, e você nem precisará “gastar” o HD só para copiar imagens de disco temporárias.

    Além dessa situação, algumas outras dariam uma boa folga ao HD. Quantos arquivos você não baixa apenas para testar, por exemplo, de coisas que você mesmo fez o upload? Ou então, aqueles ZIPs enormes que você precisa extrair o conteúdo apenas para ver, mantendo o arquivo original no HD? Acabou de gravar um CD, quer testar os dados, e copia tudo para uma pasta no HD para depois apagar? Todas estas situações, entre muitas outras, se beneficiariam muito se o HD fosse tão rápido quanto a memória RAM.

    A dica é, então, criar um disco virtual na memória RAM. Ele será visto pelo sistema como se fosse uma partição ou pen drive, você poderá ler e gravar coisas – a uma velocidade assustadora. Como é na RAM, o conteúdo será volátil, sendo perdido quando o computador for reiniciado – ou se acabar a energia. Tudo bem, na maioria das situações que citei, manter os dados para sempre não seria importante. Antes de gravar um CD, por exemplo, você copiaria os dados desejados para o disco virtual na RAM, e faria a gravação a partir dali – mantendo os dados originais no HD.

    O disco virtual na RAM é chamado de ramdisk, e é comum seu uso em sistemas que rodam a partir de disquetes ou CDs, sem precisar de instalação no HD – como as várias distros de Linux que rodam como liveCD, por exemplo.

    No caso, o objetivo é criar uma ramdisk num sistema que você já tenha instalado – seja Windows ou Linux. A ramdisk pode ser temporária ou “permanente”, sendo recriada a toda inicialização do sistema. Vamos ver como fazer isso no Linux e também no Windows, porém, neste último com o auxílio de softwares proprietários.

    O recomendável antes de qualquer coisa é ter muita memória RAM, por exemplo, de 2 GB para cima, caso você pretenda usar para gravação de CDs – podendo criar uma ramdisk de uns 710 MB, por exemplo.


    No Linux


    O Linux possui mais de um recurso “nativo” para criação da ramdisk, entre eles, o poderoso e versátil comando dd, presente em praticamente qualquer distribuição, e um sistema de arquivos próprio para isso, o tempfs (também presente em praticamente toda distro).

    O tempfs já foi projetado para isso: criar um sistema de arquivos temporário na memória RAM, montando-o em uma pasta. A sintaxe é bastante curta e direta:

    # mount -t tmpfs -o size=512m tmpfs /mnt/hdram

    Como root, use o comando mount, seguido de -t que especifica o tipo de sistema de arquivos (tmpfs, aqui sem o “e” de “tempfs”). O parâmetro -o define as opções, no caso apenas foi usado o size, que indica o tamanho. Coloque um número seguido da letra k para medi-lo em kilobytes, ou m para megabytes. No exemplo, size=512m criará uma ramdisk de 512 MB. No último parâmetro, como de praxe, informe o caminho onde a ramdisk será montada – a pasta na qual você deverá salvar e acessar os arquivos. A velocidade de escrita nessa pasta será muito superior à velocidade de escrita nas outras pastas do sistema, que são montadas em partições do HD :)

    A pasta /mnt/hdram citada já deverá existir. Você pode usar qualquer pasta vazia, ou então, criar uma para isso:

    # mkdir /mnt/hdram
    # chmod -R 777 /mnt/hdram

    É bom dar chmod recursivo com o valor 777 para liberar acesso geral na ramdisk, afinal você provavelmente estará no terminal como root, mas desejará salvar dados na ramdisk com sua conta de usuário padrão :)

    Algumas distros já montam um sistema de arquivos como ramdisk, no diretório /dev/shm, configurando isso diretamente no arquivo /etc/fstab. Se você quiser, pode salvar coisas nele, e estará usando na verdade a memória RAM. O tamanho padrão, caso não informado ao usar o tempfs, é uma ramdisk com o tamanho de metade da quantidade da memória RAM instalada.

    O dd usa uma abordagem diferente: ele serve para trabalhar com imagens de disco, permitindo fazer desde backup e restauração de partições, até a criação de imagens ISO a partir de CDs ou DVDs de dados. No caso, cria-se uma imagem de disco vazia na memória RAM, depois deve-se formatá-la, assim como você faria com uma partição no HD – dando um pouco mais de trabalho e gastando mais tempo, do que seria se usado o tempfs. Pelo dd, conectado como root (por ser necessário ter acesso especial à memória RAM), bastaria isso:

    # dd if=/dev/zero of=/dev/ram0 bs=1k count=524288
    # mke2fs -v -m 0 /dev/ram0 524288
    # mkdir /mnt/hdram
    # chmod -R 777 /mnt/hdram
    # mount -t ext2 /dev/ram0 /mnt/hdram

    Basicamente cria-se a imagem de disco na RAM, um disco com dados zerados (copiados do buraco negro do Linux, rs), depois faz-se a formatação desse “disco” (usando seu programa e sistema de arquivos preferido), e por fim, monta-se a imagem numa pasta vazia qualquer, como se fosse uma partição local.

    Tudo o que for gravado neste ponto de montagem, será “gravado” na memória RAM, e perdido a cada reboot – ou queda de energia. Você precisará lembrar de copiar as coisas para uma partição física, caso deseje guardá-las seguramente.

    Comentando os comandos:

    # dd if=/dev/zero of=/dev/ram0 bs=1k count=524288

    Aqui criamos uma imagem de disco na memória RAM (/dev/ram0), com dados nulos (extraídos do /dev/zero). O parâmetro “count” informa o tamanho da imagem, no caso, o tamanho da ramdisk desejada, em kilobytes (KB), devido o parâmetro bs=1k.

    1024 equivale a 1 MB, 2048 a 2 MB, e por aí vai. No exemplo foi usado 524288 KB, que são 512 MB. Tendo o tamanho desejado em megabytes, basta multiplicar por 1024 para obter o número que você deseja em kilobytes. Por exemplo, para 1 GB seria 1024 vezes 1024 KB = 1048576 KB. E para 710 MB (uma imagem de CD, com uma pequena folga), seriam 710 vezes 1024 KB = 727040 KB. Você pode especificar o valor em megabytes, se quiser, trocando o bs=1k por bs=1M.

    # mke2fs -v -m 0 /dev/ram0 524288

    Usamos o mke2fs para criar uma partição ext2, note que informamos no final novamente o tamanho, em KB. Não é necessário usar ext3 nem reiserfs, pois a imagem está na memória RAM, e será perdida assim que o sistema for reiniciado; então nem se preocupe com integridade dos dados.

    # mkdir /mnt/hdram
    # chmod -R 777 /mnt/hdram

    Aqui criamos uma pasta para montar a nossa ramdisk. Você pode usar qualquer pasta existente, se estiver vazia, dispensando estas duas linhas de comando. Assim como no caso anterior, sugeri o chmod com valor 777 para liberar acesso para todos :) Como nada vai ficar guardado “para sempre” nesse disco virtual, não tem problema de segurança liberar acesso para todos.

    # mount -t ext2 /dev/ram0 /mnt/hdram

    Por fim, montamos a partição na pasta criada. Com ela montada, basta usar como bem quiser, curtindo a alta velocidade do seu novo “dispositivo de armazenamento” :)

    Para desmontar o disco virtual na ramdisk, use o umount seguido do ponto de montagem, como na forma tradicional:

    # umount /mnt/hdram

    Vale tanto para a criação com o tempfs como com o dd.

    Se quiser que essa ramdisk seja “permanente”, você pode editar algum arquivo de inicialização ou serviço da distro que você usa, adicionando estes comandos. Mostrei o uso do dd apenas para exemplificar, pois fazer com o tempfs é muito mais prático.


    No Windows


    O Windows não fornece um meio próprio para isso, apesar de usar ramdisk durante a instalação. Há softwares que permitem fazer isso de maneira fácil, mas a maioria são comerciais (nem tão caros, mas não são gratuitos). Você pode baixar as versões demo ou sharewares, normalmente limitadas a alguns dias de uso – e nada impede que você opte por usar algum serial ou crack encontrado por aí.

    Um bom é o Virtual Hard Drive, da Farstone. Ele pode ser encontrado em:

    Um outro, só como sugestão, é o DiskBoost, da Everstrike, disponível para demonstração em:

    Comentando sobre o primeiro. A instalação é muito fácil, o tradicional NNF (“Next > Next > Finish”). Após a instalação, é necessário reiniciar o Windows, devido a instalação de alguns drivers. Feito isso, a criação da ramdisk pode ser feita chamando o programa pelo atalho no menu Iniciar:

    index_html_md75a46d
    Não tem jeito, ele precisa ser executado como administrador (então no Windows Vista, o UAC pedirá sua confirmação, se ativo).

    É bem intuitivo, basta clicar em “Create a RAM disk”, informar o sistema de arquivos desejado, a letra da unidade no Windows, e o tamanho (em MB):

    index_html_53ce50
    Ao clicar em “Next”, a ramdisk será criada e “formatada”, e poderá ser acessada por qualquer programa na letra de unidade indicada. Ele oferece opções para salvar ou restaurar a imagem da ramdisk (com todo o seu conteúdo), para evitar que você perca algo que tenha gravado nela. Você deve recuperar os dados imediatamente antes de “desmontá-la” ou reiniciar o computador :)

    Com a velocidade da memória RAM, você pode fazer as ações comentadas aqui e muito mais, ficando satisfeito com a rapidez e, ao mesmo tempo, ajudando a aumentar a vida útil do seu HD, gravando menos dados inúteis nele.

    Fonte