terça-feira, 26 de fevereiro de 2013

Centos - Instalação e configuração


Guia de Instalação do Básica do CentOS Destinada a Servidores

Iniciando a Instalação

Para fazer a instalação do CentOS tenha em mãos os CDs ou DVD de instalação da versão mais apropriada a seu ambiente (32 ou 64 bits), em nosso caso estamos utilizando um DVD da versão 5.3 64 bits.
Com o CD/DVD em mãos, certifique-se que seu hardware está configurado para dar boot a partir da unidade de CD/DVD (através da bios) e então ligue a maquina com o CD/DVD já na unidade.
Uma vez iniciada, na tela poderá ser vista uma imagem como a que segue abaixo:
Neste ponto para iniciar a instalação você tem duas opções, pressionar ENTER para que a instalação inicie com um ambiente gráfico ou digitar “linux text” e pressionar ENTER para iniciar a instalação com um interface em modo texto ao melhor estilo dialog de ser, em nosso exemplo será feita a instalação em modo gráfico.
OBS: nesta mesma tela inicial aparecem mais opções que não serão abordadas como por exemplo o F5 para iniciar o modo de recuperação do sistema por exemplo.
Logo no inicio da instalação há uma opção para verificar se o CD/DVD está integro, como esse processo demora um certo tempo, e você terá em mãos um CD/DVD recém gravado e livre de falhas =) iremos ignorar essa verificação escolhendo a opção SKIP, caso tenha um CD/DVD duvidoso escolha a opção OK, dessa forma a mídia será verificada e qualquer erro ou falha logo será informado.
Após fazer (ou não) a verificação da mídia, ira aparecer uma tela de boas vindas assim como segue abaixo clique então em NEXT.
Procure e selecione a melhor linguagem para a sua instalação e então clique em NEXT, logo em seguida selecione o layout do teclado e NEXT novamente

Particionando o Disco

Neste ponto da instalação serão solicitadas as informações referentes ao particionamento do disco, a tela inicial deste processo aparece abaixo:
Por padrão, o CentOS propõe apagar todas as partições e criar o layout padrão (ele mesmo irá calcular o tamanho das partições e swap), mas, como esta é uma instalação destinada a Servidores, selecione a opção “Criar layout personalizado” e clique em Próximo, dessa forma você mesmo poderá definir as suas partições de maneira a otimizar o seu servidor.
Bem, na tela que segue, selecione o disco no qual deseja criar a partição, clique em Novo e então selecione o sistema de arquivo e também o tamanho, após isso confirme a criação da partição clicando em OK.
Eu particularmente gosto de criar inicialmente a partição de swap, via de regra, geralmente a swap é criada com o dobro do tamanho da memória RAM do servidor, mas, com frequência esse padrão não é seguido pois atualmente a maioria das maquinas já vem com 4GB de RAM ou mais (pensa no tamanho da SWAP hehe 8-o), nesses casos dimensione de acordo com a aplicação, geralmente colocamos 1GB ou 2GB de swap, em casos onde o servidor conta com uma quantia considerável de memória RAM.
Aqui fica uma dica:
Se seu sistema começar a utilizar muita swap por um período prolongado, das duas uma, ou o seu hardware já não suporta mais a aplicação que esta sendo executada, ou há algo mal configurado consumindo muita memória… Pense nisto!
Em nosso exemplo, logo após criar a partição da swap, será criada uma única partição para o ”/” (barra) onde foi será marcada a opção de utilizar o máximo espaço permitido, ou seja, todo o restante do disco, mas, vale lembrar que aqui estamos exemplificando, dependendo da aplicação, mais de um disco, e partições montadas em pontos diferentes podem auxiliar e muito na administração do sistema e também no desempenho do mesmo, abaixo seguem alguns pontos de montagem que considero importantes estarem em outras partições ou discos caso seja possível:
  • /boot – necessário em poucos casos onde o hardware necessita que o setor de boot esteja entes do cilindro 1024 do disco, geralmente é uma partição bem pequena algo em torno de 100 MB ou 200 MB;
  • /home – separar as “homes” dos usuários em uma outra partição é muito bom, ainda mais em casos onde se vá utilizar Samba(compartilhamento de arquivos) por exemplo;
  • /var – diretório onde se encontram os diretórios de logs, email e bancos de dados por exemplo, dados que costumam crescer bastante e que estão em constante alteração, colocá-lo em um disco com um bom desempenho é uma ótima idéia;
  • /usr/bin e /use/sbin – diretórios onde se encontram a maioria dos executáveis dos serviços (como MySQL, PostgreSQL e Postfix por exemplo), em alguns casos é interessante colocar estes diretórios em partições que tenham um bom desempenho.
Abaixo a criação da Swap:
Criação da partição onde será o ”/” (barra) usando a opção que utiliza todo o espaço restante do disco:


Abaixo segue uma contribuição do Gustavo Henrique Soares dos Santos, mebro da comunidade CentOS BR sobre a questão do particionamento:
“A permissão do /tmp é 777, neste caso, se o mesmo estiver junto com o / qualquer usuário pode chegar lá e lotar o tmp, resultado, todos os serviços vão parar e o servidor cai, também é recomendado usar o /var separado pois o mesmo é um sistema de arquivos para dados variáveis, como log, email, sites e etc. O /usr com 8 GB esta ótimo como um / com 8 GB também, neste caso uso os pontos de montagens:
  • /
  • /tmp
  • /var
  • /usr
  • /boot
  • /home
Isso ainda sendo particionado sobre LVM, onde posso adicionar mais espaço no sistema de arquivo, reduzir o tamanho e tratar mais de um volume físico como apenas um volume lógico.”
Valeu pela dica Gustavo!


Ao final do processo de particionamento pode ser observado como ficaram dispostas as partições criadas no(s) disco(s), confira os dados e estando tudo ok, clique em Próximo, será exibida uma mensagem informando que os dados serão perdidos e também quais as partições a serem formatadas, confirme e aguarde a formatação.

Grub, Hostname, Fuso Horárioe Senha do Root

Na sequência do particionamento, na tela abaixo, geralmente nunca se modifica nada, a não ser que você tenha mais de um sistema instalado no mesmo disco e queira alterar a ordem do Boot.
Não costumo utilizar senha no Grub, já pensou, estamos bem tranquilos em casa, configuramos nosso Servidor para que em caso de uma pane elétrica ele se ligue novamente e então, ele fica la esperando que alguém coloque a senha… daí, seu telefone vai tocar… :-( e você vai ter que sair da cama para ai até lá colocar a senha… hehe, deixando de brincadeira, só configure uma senha no Grub se isso realmente for necessário, após isso clique em Próximo.
Na tela abaixo, configure o hostname do Servidor, geralmenet usamos nomes FQDN, caso queira setar um IP fixo, selecione a placa de rede e clique em Editar, após isso clique em Próximo.
Neste ponto, selecione o melhor fuso horário para a sua região e clique em Próximo, aconselho o uso da opção do relógio UTC, isso evita problemas com os horários.
Agora defina a senha do usuário ROOT, não coloque uma senha muito fácil, isso constitui uma grave falha de segurança no seu Servidor, uma senha considerável é constituída de caracteres, números e carácteres especiais, essa senha deve ser armazenada com muito cuidado, pois o ROOT é o usuário administrador do sistema, ou seja, ele pode fazer de tudo e mais um pouco…. hehe! Após definir a senha clique em Próximo.

Seleção de Pacotes

Agora iremos entrar em um ponto muito importante da instalação de nosso Servidor, a Seleção de Pacotes, bem, inicialmente o CentOS marca como padrão a instalação do ambiente gráfico Gnome, mas, como queremos um Linux com um ótimo desempenho, a primeira coisa que fazemos e desmarcar a instalação do Desktop Gnome, só ai já diminuímos pela metade o número de pacotes que serão instalados… o próximo passo é marcar a opção Personalizar agora clicar em Próximo, com essa opção marcada poderemos fazer uma configuração mais fina de quais pacotes instalar ou não.


Obs.: em alguns casos como por exemplo instalação de um servidor CentOS para trabalhar com banco de dados Oracle, é necessário instalar o ambiente gráfico de qualquer forma (até hoje não sei o porque, mas, é exigido por eles no Red Hat e isso se faz necessário no CentOS também), nesses casos, após colocar o servidor em produção considere desabilitar a inicialização do ambiente gráfico editando o arquivo de configuração em /etc/inittab:
vi /etc/inittab

Procure por uma linha contendo o seguinte: “id:5:initdefault:”

Altere a mesma para o seguinte “id:3:initdefault:”
Com a alteração acima no próximo boot o Servidor irá iniciar somente em modo texto, ganhando assim bastante em desempenho.
O initdefault no arquivo de configuração inittab estabelece em qual modo o servidor irá ser inciado, no caso acima em relação ao CentOS (de uma distro para outra isso pode mudar), 5 é multiusuário com ambiente gráfico e 3 é multiusuário sem ambiente gráfico.


Após marcar a opção Personalizar na tela anterior você será direcionado para a tela abaixo, aqui você pode navegar pelos diversos níveis de aplicação selecionando ou não quais grupos deseja ou não instalar, uma vez selecionado o grupo clicando em Pacotes opcionais, ainda podem ser marcados ou desmarcados os pacotes específicos para serem instalados ou não, no exemplo abaixo, no nível de “Aplicações” desmarcamos o grupo “Internet em Modo Texto” recomendo ainda desmarcarem o grupo “Suporte a Rede Dialup” no nível do “Sistema Básico”. Este já é um exemplo de configuração fina básica, após adquirir um bom conhecimento sobre o sistema, você pode por exemplo desmarcar vários pacotes do grupo “Base” do “Sistema Básico” , lá não desmarco todo o grupo pois pacotes importantes estão ali, mas, desmarco por exemplo os pacotes do “NetworkManager” que costuma ser grande, não é utilizado e nos updates sempre come um pouco de banda, isso tudo é opcional e varia de uma instalação para a outra, costumo fazer isso sempre, pois busco o melhor desempenho possível para os Servidores. Bem, após marcar os grupos que deseja ou não instalar, e também os pacotes de deseja ou não instalar basta clicar em Próximo.
Na tela que virá após essa, somente clique em Próximo para iniciar a instalação (acredita que me esqueci de dar o print… hehe), feito isso, aguarde a instalação do sistema e a tão esperada tela que segue abaixo:
Opá, instalação concluída, agora clique em Reinicializar e retire o CD/DVD do drive e aguarde a primeira inicialização do seu CentOS.

Primeira Inicialização

Na primeira vez que o CentOS é inicializado ele executa o agente de configuração, vou confessar que nunca o utilizei, costumo fazer as configurações “na mão”, como é isso que desejo ensinar, selecione Sair e pressione ENTER.

Configurações do CentOS

Instalação de dependências iniciais

Vamos instalar algumas dependências para que logo mais possamos remover alguns pacotes, iremos instalar o postfix para substituir o já antigo sendmail, e também iremos instalar o vim-enhanced, cá pra nós, o VI é muito bom, mas o VIM com as suas malandragens com a sintaxe da maioria dos arquivos de configuração é muito bom também… execute o seguinte comando:
# yum install -y postfix vim-enhanced

Removendo pacotes "desnecessários"

Agora vamos remover alguns pacotes que são “desnecessários” na execução de um Servidor com o CentOS, abaixo os pacotes que iremos remover:
  • NetworkManager e NetworkManager-glib pois não o utilizamos, para configurar a rede, utilizamos o comando system-config-network e o “daemon” network presente em /etc/init.d/network;
  • firstboot-tui é um programinha iniciado na primeira execução do CentOS, depois nunca mais, mas, ele fica na inicialização e acaba atrasando ela um pouquinho, sem falar que ele recebe atualizações que nunca vamos utilizar;
  • iptables iptables-ipv6 system-config-securitylevel-tui iptstate ignore isso caso esteja configurando um servidor de Firewall, mas, caso não esteja remova estes pacotes pois eles dizem respeito a configuração/manutenção do Firewall iptables que não iremos utilizar na maioria das vezes;
  • sendmail costumo substituir o sendmail pelo postfix (instalado anteriormente) mais pelo fato do postfix ser um programa mais atualizado e robusto, não que a gente vá utilizar um servidor de emails, mas, caso vá, já esta ai o cara mais competente.
Para remover os pacotes acima mencionados, execute o seguinte comando:
# rpm -e NetworkManager NetworkManager-glib firstboot-tui iptables iptables-ipv6 system-config-securitylevel-tui iptstate sendmail
ATENÇÃO Dependendo da situação, principalmente em casos de se instalar o CentOS 64 bits, um mesmo pacote pode estar instalado em mais de uma versão (32 e 64 bits), dessa forma para poder verificar os pacotes instalados no sistema você pode executar dois comandos:
# rpm -qa
# rpm -qa |grep -i pacote
O primeiro comando lista todos os pacotes, já o segundo, lista somente os pacotes que contenham “pacote” no seu nome (funciona como um filtro).

Desabilitando o SELinux

Em um servidor o SELinux habilitado, pode causar muitas dores de cabeça, por conta disso, iremos desativá-lo, confesso que não conheço muito esse serviço, sei que ele é uma aplicação mais utilizada em Desktops para criar uma espécie de Firewall de aplicação, por favor, me corrijam caso eu esteja errado.
Para desabilitar o SELinux execute o seguinte comando:
# vim /etc/selinux/config
Dentro deste arquivo procure pela linha que diz “SELINUX=enforcing” provavelmente será a linha 6, e a substitua por “SELINUX=disabled ”, após isso salve o arquivo, eu não conheço outra forma de realmente desabilitar o SELinux após configurá-lo que não seja reinicializando a maquina, mas, não vamos reiniciar agora pois logo iremos fazer os updates e com certeza teremos updates de kernel que para entrar em funcionamento exigem que a maquina seja reiniciada, caso não vá fazer os updates, reinicialize a maquina com o comando:
# init 6


Mais uma dica do Gustavo:
“O comando setenforce 0, muda o modo do selinux para permissivo, assim você não precisa reiniciar pois o mesmo não vai mais bloquear, vai apenas logar.”


Executando os Updates

Sempre mantenha o seu servidor atualizado, isso evita problemas e aumente o seu nível de segurança, por conta disso atualize o seu CentOS com o comando abaixo:
# yum -y update; yum -y upgrade
Execute o comando acima no minimo semanalmente par garantir sempre que o seu CentOS encontra-se na versão mais atualizada (exceto em casos onde um determinado programa não pode ser atualizado por um motivo ou outro).

Desabilitando alguns serviços

Abaixo iremos desabilitar alguns serviços buscando cada vez mais o melhor desempenho, apenas não desabilite os serviços do atd e lvm2-monitor caso utilize o comando at para agendar tarefas ou LVMs no seu particionamento.
programa que verifica atualizações do SO
# chkconfig yum-updatesd off

programa que monitora as LVMs
# chkconfig lvm2-monitor off

programa para conexões bluetooth
# chkconfig bluetooth off

programa para tarefas agendados via at
# chkconfig atd off

Programa para trabalhar com smart cards
# chkconfig pcscd off

sistema que permite encontrar máquinas e serviços em uma rede local
# chkconfig avahi-daemon off

servidor de impressão
# chkconfig cups off

servidor de emails ativo no lugar do sendmail para envio de notificações e etc
# chkconfig postfix on

Protegendo o core do CentOS

Neste passo iremos garantir que nenhum pacote (dos repositórios que ainda iremos adicionar) sobrescreva os pacotes da base e updates do CentOS, garantindo assim a estabilidade Full do sistema, para instalar esse “serviço”, execute o comando abaixo:
# yum install -y yum-protectbase
Bom, para que o protectbase possa ser utilizado, é necessário adicionar a linha “protect=1” ou “protect=0” na configuração de cada um dos repositórios incluídos no diretório ”/etc/yum.repos.d”. Os repositórios com o “protect=1” serão protegidos pelo protectbase, evitando que os seus pacotes sejam substituídos por pacotes de versões mais recentes incluídos nos repositórios adicionais. Com isso, os repositórios adicionais passam a realmente ser usados apenas para instalar pacotes que não fazem parte dos repositórios oficiais do CentOS, reduzindo assim bastante a possibilidade de problemas ao usar repositórios não-oficiais.
É extremamente importante proteger no minimo os repositórios “base” e “updates”, dentro do arquivo ”/etc/yum.repos.d/CentOS-Base.repo”, esse arquivo deve ficar parecido com o que segue abaixo:
...
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
...
Os demais repositórios devem receber a opção “protect=0”, como por exemplo:
[rpmforge]
name = Red Hat Enterprise $releasever - RPMforge.net - dag
#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
protect = 0

Repositórios extras

Bem, a configuração de repositórios extras nos disponibiliza uma gama muito grande de programas muito uteis e dos mais variados tipos como por exemplo o OpenVPN (que não esta dispobível em versões mais antigas do CentOS), vamos habilitar alguns repositórios extras, para isso execute os comandos abaixo:
# cd /root
# mkdir repositorios
# cd repositorios
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
$ rpm -ivh *.rpm

Repositórios adicionados

Repositório EPEL - provê muitos pacotes não considerados estáveis pela Red Hat, mas, que são compilados pela equipe do Fedora o que garante uma compatibilidade binaria de praticamente 100%. Repositório RPMFORGE - Provê muitos, muitos pacotes legais, desenvolvidos pela comunidade e por projetos bacanas como o SARG por exemplo, é muito estável e confiável.

Utilizando os repositórios extras

Aqui mais é um exemplo de alguns programinhas legais que não estão nos repositórios oficiais do CentOS, mas, que nos são disponibilizados pelos repositórios extras que configuramos, para instalá-los execute o seguinte comando:
# yum install htop openvpn
As atualizações do sistema podem ser feitas normalmente com o yum update e yum upgrade sem nenhuma preocupação pois nenhum pacote do Core do CentOS será substituído.

Observações importantes

Em algum momento extremo, você irá tentar instalar algum pacote de um repositório extra utilizando o yum e ele poderá reclamar que depende de um certo pacote mais atualizado, que já esta instalado, mas que existe em uma versão mais atualizada em algum repositório extra, como prezamos a estabilidade acima de tudo, o mesmo não será instalado pois o core do sistema esta protegido, nestes casos, e somente nestes, análise a situação e com muito cuidado (para não fazer um update de tudo por exemplo) você pode utilizar o seguinte comando:
# yum install -y --noplugins programa_com_problemas_nas_dependencias
Dessa forma o protectbase não será inicializado e um ou mais pacotes do core podem ser atualizados.

Final



Reações:

0 comentários: