Instalando servidores Debian e Ubuntu 5

Ubuntu é uma
distribuição derivada do Debian

A utilização do Ubuntu tem crescido bastante nos servidores. Embora ele
ainda seja considerado menos estável que o Debian, a diferença vem
diminuindo a cada nova versão. Para início de conversa, o Ubuntu é uma
distribuição derivada do Debian,

que preserva a maior parte de suas características. Os repositórios do Ubuntu são construídos a partir do repositório unstable do Debian. Os pacotes recebem correções diversas e são recompilados, gerando o repositório “universe” do Ubuntu.

Instalando o Ubuntu
A utilização do Ubuntu tem crescido bastante nos servidores. Embora ele ainda seja considerado menos estável que o Debian, a diferença vem diminuindo a cada nova versão.

Para início de conversa, o Ubuntu é uma distribuição derivada do Debian, que preserva a maior parte de suas características. Os repositórios do Ubuntu são construídos a partir do repositório unstable do Debian. Os pacotes recebem correções diversas e são recompilados, gerando o repositório “universe” do Ubuntu.

O Ubuntu segue um cronograma muito mais apertado que o do Debian, com novas versões sendo laçadas a cada 6 meses. O mais parecido com as versões estáveis do Debian, são as versões LTS (long term support), como o Ubuntu 8.04. Originalmente, as versões LTS receberiam 18 meses de atualizações de segurança, mas a partir do 8.04 a Canonical aumentou a oferta para nada menos do que 5 anos de atualizações, um período intencionalmente maior do que o oferecido pela equipe do Debian.

Além da versão “desktop” do Ubuntu, está disponível também uma versão específica para servidores, que utilizaremos aqui. Ambas são baseados nos mesmos repositórios, a diferença é que a versão desktop instala o Gnome e outros aplicativos gráficos e não inclui os pacotes destinados a servidores, enquanto a versão server é justamente o oposto: instala um sistema enxuto, sem o ambiente gráfico e inclui um conjunto bem completo de pacotes destinados a servidores na imagem.

Ambas as versões podem ser baixadas no http://www.ubuntu.com/getubuntu/downloadmirrors. A versão server é um pouco menor, com cerca de 500 MB.

O instalador do Ubuntu é muito similar ao instalador do Debian, incluindo pequenas modificações em módulos específicos. Como disse, o Ubuntu é baseado nos repositórios do Debian; a maior parte das modificações são feitas nos pacotes relacionados ao ambiente gráfico, de forma que os pacotes relacionados a servidores são muito similares. A maior diferença é que o Ubuntu é montado com base nos pacotes do Debian Unstable, por isso, ao comparar a última versão estável do Debian, com a última versão do Ubuntu, você encontrará algumas diferenças relacionadas às versões dos pacotes usados. Apesar disso, a localização e as opções usadas nos arquivos de configuração e outras ferramentas disponíveis são praticamente os mesmos

A primeira diferença na instalação está na tela de boot. O Ubuntu utiliza o egrub como gerenciador de boot para o CD, o que permite o uso de menus com opções adicionais. Você pode definir a linguagem e o layout do teclado antes mesmo de iniciar a instalação, pressionando a tecla F2 e depois a F3.

Para incluir opções de boot, como a “install noapic nolapic” usada para solucionar problemas de compatibilidade com alguns micros, você pressionaria a tecla F6 para mostrar a linha de boot e adicionaria os parâmetros (sem o “install”) no final:

Assim como no Debian, a instalação começa com a seleção da linguagem e do layout do teclado. Você pode ganhar tempo definindo estas opções diretamente na tela de boot, pressionando F2 e depois F3.

O instalador prossegue, configurando a rede via DHCP (onde você pode usar a opção “cancel” para especificar a configuração manual) e passa para o particionador, que é o mesmo particionador de modo texto usado no Debian. Se você quer fazer um particionamento personalizado, tem a opção de usar a versão Desktop do Ubuntu ou outra distribuição live-CD para particionar o HD (usando o gparted ou o cfdisk), ou mesmo usar outro particionador de sua preferência para deixar o HD particionado a seu gosto e apenas indicar as partições já criadas durante a instalação. Não se esqueça de criar também a partição swap.

Ao instalar em um HD já particionado, escolha a opção “Editar manualmente a tabela de partições”. Aponte a partição onde o sistema será instalado e, na tela seguinte, onde são mostradas as propriedades da partição, indique o seguinte:

O mais importante aqui é o “Ponto de montagem”, que diz ao instalador o que fazer com a partição. Dizer que o ponto de montagem é “/” explica a ele que esta é a partição onde o sistema será instalado. Não se esqueça de ativar a opção “sim, formatar” e de indicar o sistema de arquivos no qual a partição será formatada, na opção “Usar como”. Ao terminar, selecione a opção “Finalizar a configuração da partição”. Repita o mesmo procedimento para as demais partições, especificando o ponto de montagem para cada uma e o sistema de arquivos com o qual elas serão formatadas.

Até por volta de 2004, tinha o hábito de sempre instalar meus servidores em partições ReiserFS. Ele oferece uma boa tolerância contra falhas e um bom gerenciamento de arquivos pequenos. O problema é que a versão do ReiserFS incluída por padrão no Kernel é o Reiser3, que está em fase de manutenção a muitos anos.

Durante este período, o EXT3 cresceu muito em recursos e estabilidade, passando a oferecer vantagens tanto em termos de desempenho, quanto de estabilidade. A resposta seria o Reiser4, mas por ser um sistema de arquivos muito complexo e de difícil manutenção ele ainda não foi incluído no Kernel e não existe previsão de quando isso pode vir a acontecer. Com os problemas pessoais enfrentados pelo criador e os consequentes problemas pelos quais passa a Namesys, o futuro do ReiserFS é incerto.

Devido a tudo isso, recomendo que utilize o EXT3, que é atualmente a opção default no Ubuntu, Debian e na maioria das demais distribuições. Outros sistemas, como o XFS e o JFS podem ser vantajosos em casos específicos, mas, para uso geral o EXT3 é a melhor opção.

Outra pergunta que levanta dúvidas é sobre a configuração do horário. No Linux, a hora do relógio é calculada segundo o GMT, uma espécie de horário universal, da onde o sistema subtrai o fuso horário para chegar ao horário na sua região. Quando ele pergunta se “O relógio de hardware está configurado para GMT”, ele está perguntando se o relógio do micro está mostrando a hora certa (independente do fuso horário), ou se ele está mostrando o horário GMT, da onde ele ainda vai subtrair três horas para chegar ao horário de Brasília.

Em um desktop, com o Windows ou outro sistema em dual-boot, você responderia “não”, pois o Windows não calcula o horário baseado no GMT, simplesmente mostra o horário atual do relógio. Mas, em um servidor é interessante configurar o relógio para GMT, indicando corretamente o fuso horário. Você pode configurar o sistema para acertar o relógio automaticamente, via NTP (veja mais detalhes a seguir), desta forma não precisará mais se preocupar com o relógio da placa-mãe.

Você tem também a opção de instalar categorias de pacotes adicionais, como “DNS server” (que instala o Bind) e “LAMP server” (que instala o apache, PHP e o MySQL).

Em seguida, ele pede para você escolher um nome e senha para a sua conta de usuário. Um detalhe interessante sobre o Ubuntu é que a conta de root vem por padrão desabilitada. Ele sequer pede uma senha durante a instalação.

Você se loga no sistema usando a conta administrativa criada durante a instalação e utiliza o “sudo” para abrir programas como root e executar tarefas administrativas. Para editar o “/etc/fstab” como root, usando o mcedit, por exemplo, você usaria o comando “sudo mcedit /etc/fstab”.

A senha que é solicitada no caso não é a senha de root (lembre-se, a conta de root é desativada por padrão, não existe sequer uma senha definida), mas sim a senha da sua conta de usuário. Como você pode ver, o usuário criado durante a instalação pode executar qualquer comando como root, apenas adicionando “sudo” no início do comando. O fato do sudo solicitar a senha de usuário é apenas uma precaução contra a possibilidade de alguém executar comandos na máquina aproveitando-se da sua ausência.

Para usar a conta de root, como em outras distribuições, você precisa apenas definir uma senha, o que vai automaticamente destravar a conta e permitir que você logue-se como root usando o comando “su -“. Para isso, use o comando:

$ sudo passwd

Isso roda o comando “passwd” como root, permitindo que você defina a senha. Ele vai confirmar sua senha de usuário e depois pedir a nova senha do root. Problema resolvido. Aproveite para ativar o autocompletar, descomentando as três linhas no arquivo “/etc/bash.bashrc”, assim como no Debian.

Para configurar a rede depois da instalação, você edita o arquivo “/etc/network/interfaces”, da mesma forma que no Debian e executa o comando “sudo /etc/init.d/network restart”.

Provavelmente, o servidor vai voltar a obter a configuração da rede automaticamente depois de uns 2 minutos, voltando a usar o endereço IP obtido via DHCP, mesmo depois de você ter editado o arquivo “/etc/network/interfaces” e reiniciado o serviço “network”. Você poderia achar que é um “pau do sistema”, mas isso tem uma causa muito simples. 🙂

Para obter a configuração da rede via DHCP, o sistema utiliza um daemon chamado dhclient, que fica em background renovando o endereço periodicamente e executando outras operações de rotina. Ao editar a configuração da rede e reiniciar o serviço, a rede será reconfigurada com os endereços que você especificou no arquivo “/etc/network/interfaces”.

Apesar disso, se o dhclient não for finalizado, ele vai continuar tentando configurar a rede via DHCP, fazendo com que o endereço mude depois de poucos minutos. Para que ele seja finalizado de vez, sem precisar reiniciar o micro, finalize o programa usando o killall, e reinicie novamente a rede, para restaurar a sua configuração:

$ sudo killall dhclient
$ sudo /etc/init.d/network restart

Para instalar o SSH, você você começaria atualizando a lista de pacotes do apt-get, utilizando o comando “sudo apt-get update”, seguido do “sudo apt-get install openssh-server”. Assim como nas versões recentes da versão Desktop, o arquivo “/etc/apt/sources.list” já vem com os repositórios universe e multiverse, ativados por padrão, além de já incluírem os repositórios com as atualizações de segurança.

Concluindo, muitos admisntradores preferem utilizar a versão desktop do Ubuntu em servidores de rede local, devido à maior facilidade ou familiaridade com ela. Na verdade, tanto a versão desktop quanto a versão Server são muito similares, já que são baseadas no mesmo repositório. Muda apenas a configuração default e o conjunto de pacotes instalado por padrão.

A principal observação é que na versão desktop é usado o network-manager, o utilitário de configuração de rede que fica ativo ao lado do relógio:

Ele facilita a configuração da rede, mas tem uma contra-indicação importante, que é o fato de bipassar a configuração manual feita no arquivo “/etc/network/interfaces”. Para poder configurar a rede manualmente, você deve primeiro desativá-lo, o que é feito usando (como root) os comandos:

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

Para que a configuração se torne permanente, é necessário criar os arquivos “/etc/default/NetworkManager” e “/etc/default/NetworkManagerDispatcher” contendo a palavra “exit”. Eles orientam o serviço a não mais subscrever a configuração manual durante o boot:

# echo “exit” > /etc/default/NetworkManager
# echo “exit” > /etc/default/NetworkManagerDispatcher

Texto autoria: Carlos E. Morimoto.