Dificuldades em montar seu primeiro servidor Linux.

Dicas, Artigos e Melhores práticas para utilização do Arch Linux

Moderador: leoarcher

Dificuldades em montar seu primeiro servidor Linux.

Mensagempor leoarcher em Seg Jun 25, 2007 10:44 am

Dificuldades em Montar seu primeiro servidor Linux, um pequeno estudo de caso.

Muitos dos usuários Linux um dia pensa em montar um servidor e não foi diferente comigo.

Umas das grandes "dificuldades" para um iniciante é achar uma distribuição adequada, para sua aprendizagem, pois uns só querem conhecer o sistema e outros são mais "loucos" querem ir mais a fundo no sistema. Desses 2 anos de GNU/Linux que tenho, passei por algumas distribuições (a maioria "MAJOR" dentro das existentes) como: Red Hat 9, Gentoo, Slackware, Debian, Arch, Kurumin, Ubuntu, Crux e tentei até NetBSD e FreeBSD (BSD não é linux, é um "UNIX-like" assim como GNU/Linux). Dentre todas que vejo por ai, se você realmente quer aprender recomendo as seguintes (de acordo com minha preferência, pois com o tempo você vai achar uma que se adeque a seu perfil):

    Arch
    Crux
    Gentoo
    FreeBSD
    Slackware

Qualquer uma dessas você vai ganhar muito conhecimento, desde a compilação de um pacote até conhecer seu sistema a fundo, como: inits, system call, etc...

"Mas onde, vai entrar a história do servidor?"

Calma amiguinho, estou falando isso pois a escolha para uma distribuição para se colocar no servidor é muito importante. Se você chegar e perguntar a uma pessoa experiente sobre qual distribuição usar eles vão responder: "Use Slackware ou Debian, pois são estáveis, tem o FreeBSD e o OpenBSD que são bem seguros e estáveis."

Certo, são excelentes escolhas. Porém temos que ver outras coisas como familiaridade com o sistema, nivel de conhecimento e tempo para montar o servidor.

Como sempre tirando minhas dúvidas no IRC e no google, cheguei a conclusão que iria usar Arch Linux para montar meu primeiro servidor. Muitos podem falar: "ah ele é louco por usar Arch Linux". Mas conhece o sistema, uso a mais de 1 ano e sei como funciona. Por ouvir isso, fui perguntar a algumas pessoas sobre a minha escolha.

Vocês vão ver que um mau uso e o não conhecimento perante uma distribuição acaba prejudicando-a. Em alguns momentos ele entra em contradição ao falar que Arch não é boa para servidor, pois ele diz que faz algumas coisas em servidores e por que não fazer no Arch também ?????

Outra coisa é você usar a distribuição no desktop e outra é em servidor, o Arch visa muito a estabilidade do SISTEMA E NÃO DO DESKTOP. Espero que isso esclareça algumas coisas, quem usa e acompanha as atulizações do Arch sabe muito bem que 80% das atualizações são para pacotes de desktop, uns 10% para atualização da base do sistema e os outros 10% são para pacotes com bugs e questão de releases do Arch. O ponto principal de montar um servidor é saber o que você vai fazer e como fazer, com isso usar uma distribuição que você conhece é muito importante, pois facilitará seu trabalho.

Uma coisa que aprendi foi: Se você aprendeu a compilar um pacote, aprendeu a criar um pacote para sua distribuição favorita, aprendeu a configurar tudo na linha de comando. Então aprendeu a usar GNU/Linux, lógico que existe algumas particularedades entre distros, mas isso você tira de letra.

Ainda afirmo, a melhor distribuição é aquela que te dar PODER DE CONFIGURAÇÃO TOTAL NA LINHA DE COMANDO. Tenho tudo isso no Arch, então vou usa-lá, essa foi a minha decisão.

Feito isso vamos para a parte de elaboração do que vai ser colocado no servidor.

    1- Firewall;
    2- Proxy;
    3- Outros, vão sendo implementados conforme as necessidades.

Uma coisa que eu aprendi vendo a galera no IRC, foi: "Antes de colocar logo como servidor, coloque a máquina em rede e vá configurando até substituir o servidor atual."

Foi o que eu fiz e surgiu meu primeiro problema, botar o Arch em rede. Editei no rc.conf pra setar o ip para entrar em rede, setei com ifconfig fiz várias coisas para verificar o problema até route -n usei para verificar se a rota tá correta, para no final ver que não tinha editado o /etc/resolv.conf

Ip: 192.168.1.11
Gateway: 192.168.1.254
DNS: 192.168.1.254


Código: Selecionar tudo
#
# /etc/resolv.conf
#
nameserver 192.168.1.254


Todo o meu problema foi esse ai, mesmo sabendo o que era preciso para botar em rede não prestei atenção no /etc/resolv.conf. O primeiro problema foi resolvido.

Atualizei o Arch Linux 0.8 (VooDoo) que saiu no final de Março e foram apenas 53 mb de atualização, pois as releases foram modificadas. Isso mostra para mostrar o nivel de atualização do arch é baixo para a base do sistema, onde se quer mais estabilidade, pois é aqui que muitos vão trabalhar para "construir/moldar" seu sistema, tanto para servidor (como é o meu caso) e para desktop (como tenho em casa).

Atualização pronta, vamos instalar os pacotes necessários e começar a configurar (não vou cobrir a utilização e configuração do pacman ou do abs. Apenas uma dica, na utilização como servidor fique atento nos repositórios para não usar repositórios desnecessários).

Código: Selecionar tudo
# pacman -Sy iptables


Agora começa a minha briga, pesquisa no wiki, google, pdfs e outros, para aprender iptables acabou gerando algumas dificuldades: elaborar regras, saber quais módulos necessários e como configurar no Arch (se fosse qualquer outra distribuição eu não saberia configurar).

Solução:

Pegar regras "prontas" e analisar, na minha opinião saiu melhor assim do que pegar só a teoria. Você analisando as regras "prontas" fica melhor de se adequar as necessidades e conforme for passando o tempo vai ganhando mais experiência com iptables, mas sempre estudando o mesmo.


Depois de ter achado uma solução ter tirado algumas dúvidas, o que era preciso de urgência?
Compartilhar a internet, para o pessoal começar a trabalhar pois o servidor (um computador antigo rodando coyote) que estava realizando essa função resolveu deixar de funcionar.

Veio outro problema, conexão adsl não funcionava, configuração de tudo que é jeito e reinstala os pacotes. Quando o real problema que tinha era na linha do telefone. Passei 1 dia nisso tentando resolver esse probleminha, vamos para o compartilhamento.


Iptables no Arch funciona de forma semelhante ao Gentoo, iptables.rules. Como funciona isso?

Primeiro vamos ver os arquivos principais:

iptables /etc/conf.d/iptables
iptables /etc/iptables/empty.rules
iptables /etc/iptables/simple_firewall.rules
iptables /etc/rc.d/ip6tables
iptables /etc/rc.d/iptables


Iptables.rules funciona da seguinte maneira, primeiro você na linha de comando digita as regras:

Código: Selecionar tudo
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# /etc/rc.d/iptables save
# /etc/rc.d/iptables start


iptables save ele salvará as regras e irá gerar o /etc/iptables/iptables.rules. Mas e o echo 1 > /proc/sys/net/ipv4/ip_forward ? Não se preoculpe ele já vem por padrão no /etc/rc.d/iptables. Por questão de deixar algo universal e por querer aprender shell script, resolve criar um /etc/rc.d/firewall onde criei um shell script básico contendo as regras e deixando ele no padrão de inicialização do Arch, veja abaixo:

Código: Selecionar tudo
#!/bin/bash
#
#

# Habilitando IpForward
echo 1 > /proc/sys/net/ipv4/ip_forward

# Compartilhando
iptables -t -A POSTROUTING -o ppp0 -j MASQUERADE


Conexão ADSL funcionando legal, chegou a hora de testar as regras feitas. Testei das 2 formas como foi falado a cima e nada de funcionar, ou seja, máquinas clientes rodando windows não conseguiam acesso a internet, pedindo auxilio a alguns amigos tive o mesmo problema de DNS, só que dessa vez nos clientes windows, onde a configuração correta era:

Ip: 192.168.1.11
Gateway: 192.168.1.254
DNS1 VELOX
DNS2: VELOX


Onde o gateway seria o Arch e os DNS seriam os da Velox. Depois que isso foi resolvido, testei as 2 formas de criação de regras e ambas funcionarão. Observem que um grande problema, na hora de configurar é a falta de atenção, tomem muito cuidado com isso. Outras regras de iptables forão adicionas e ambas as formas de eleboração e estão funcionando, porém só utilizo o /etc/rc.d/firewall para melhor compreensão e aprendizagem.

Um problema que tive na primeira semana de estágio foi tempo para testar o que estou fazendo, pois fico só configurando e só posso testar no final do primeido período de trabalho. Depois que coloquei o Arch em rede, configurei e botei para servidor esse problema acabou.

Iptables funcionando de forma adequada, Arch rodando perfeitamente como servidor e se saindo muito bem, a sensação de trabalho bem feito e bem elaborado (apesar de ser a primeira vez que faço isso, tento sempre elaborar um roteiro bem estruturado e sempre comentando o que faço, anotando erros e soluções adotadas), aparece e seu trabalho é feito sem problemas.

Outra coisa é não apressar-se, pois a maioria dos problemas que tive foi, tentar fazer as coisas rápido. Fiquem atentos a isso.

Dicas:

man iptables

http://www.netfilter.org
http://www.eriberto.pro.br/iptables
http://focalinux.cipsga.org.br/guia/ava ... tables.htm
http://www.netfilter.org/documentation/ ... HOWTO.html
http://iptables-tutorial.frozentux.net/ ... index.html
http://iptables-tutorial.frozentux.net/scripts/
http://www.slackware-rn.com.br/~leoarcher/

Dicas 2:

# Como compartilhar a internet um bom artigo que achei por ai.
http://br-linux.org/tutoriais/000685.html

Após a configuração completa e bem sucedida da conexão adsl e do iptables, chegando no outro dia tive um grande problema com o noip, ele não queria "resolver" o nome na conta criada no site. Foi preciso apagar o endereço lá existente e criar outro. Para instalar e configurar não tem mistério, usando o pacman ou ABS a instalação é tranquila.

Precisando apenas descomentar o repositório community tanto no pacman.conf como no abs.conf, depois de usar é só comentar novamente para não ter problemas com esse repositório mais na frente. SEMPRE TENHA CUIDADO A USAR QUALQUER, EU DISSE QUALQUER GERENCIADOR DE PACOTES, POIS SE VOCÊ NÃO CONHECE-LO BEM PODE ACABAR PREJUDICANDO O SERVIDOR.

Depois dos repositórios descomentados faça:

Código: Selecionar tudo
# pacman -Sy noip


ou

Código: Selecionar tudo
# abs
# cd /var/abs/community/network/noip
# pwd
/var/abs/community/network/noip
# makepkg
# pacman -A noip-2.1.4-1-i686.pkg.tar.gz


No abs, ele irá dar um "erro" por que na hora da criação do pkgbuild não foi adicionado a opção arch=(i686).

Código: Selecionar tudo
[root@archlinux noip]# makepkg
==> ERROR: noip is not available for the 'i686' architecture.
Note that many packages may need a line added to their PKGBUILD
such as arch=('i686').


Com a instalação e configuração do noip completa foi preciso editar o meu /etc/rc.d/firewall e botar algumas regras de redirecionamento de portas, tudo tranquilo e rodando perfeitamente.

Realmente aprender a montar um servidor não é dificil e também o ganho que conhecimento fazendo isso é muito grande. Depois do firewall e noip, o mais trabalhoso foi o squid, vejamos o por quê.

Primeiro vamos instalar o squid:

Código: Selecionar tudo
# pacman -Sy squid


Squid instalado, vamos configurar...

OBS.: Por padrão todo e qualquer pacote relativo ao sistema (sistema modo texto e servidor), EU DISSE "SISTEMA" e não pacotes relativos a Desktop, devem ter seu arquivos de configuração no /etc.

Código: Selecionar tudo
# cd /etc/squid
# mv squid.conf squid.conf.old
# grep -iv ^# squid.conf.old squid.conf (Isso irá tirar os comentários deixando só as configurações padrões)
# vi squid.conf


A configuração não é dificil e nem complexa, pois existem materiais muito bons por ai (vide squid.ninja). Porém algumas configurações não são equivalente pois a versão no Arch Linux é a 2.6.STABLE13. Essa foi a minha primeira dificuldade, pois precisa de proxy transparente.

Mas a maior dificuldade não foi essa, foi conseguir assimilar as ordem das acls depois disso foi tudo mais fácil.

Link:
http://www.linuxman.pro.br/squid/


Cheguei ao final desse pequeno estudo de caso, aconteceu comigo e acho que aconteceu com várias pessoas na sua primeira vez também.

Mas você pode se perguntar, "Não entendi a finalidade desse artigo."

A finalidade do artigo foi mostrar alguns pontos:

    1- Arch Linux é estável para ser usado como servidor;
    2- Mostrar que a distribuição que você mais curte/adora/mais sabe mexer/que tem mais afinidade é a mais indicada a usar, pois assim você tem mais possibilidades de aprender;
    3- As distrbuições totalmente baseadas em linha de comando e edição de arquivos (veja o inicio do artigo) são mais gratificantes em relação a nivel de conhecimento;
    4- Conhecer profundamente a distribuição que se está usando é muito importante para fazer um bom trabalho, se você pegar uma distribuição baseada na linha de comando tudo fica mais fácil mesmo não sendo bem conhecida bastando só se adapta-se a mesmo, o que leva um tempo.
Era isso, espero ter ajudado.

Agradecimentos:
    Vuln pelo indicação do sites e por liberar o espaço em: http://www.slackware-rn.com.br/~leoarcher/
    NoComments por algumas dicas e tirar algumas dúvidas.
    Hlegius pela ajuda no entendimento de algumas coisas com iptables.
    Underguiz no auxilio sobre o lance do DNS.
    ratifers pela ajuda no entendimento das acls no squid.



Arch Linux FOREVER...
leoarcher
 
Mensagens: 6
Data de registro: Seg Jun 25, 2007 10:11 am

Re: Dificuldades em montar seu primeiro servidor Linux.

Mensagempor robson jose em Seg Nov 03, 2008 10:27 pm

oi sou iniciante nA REDE LINUX GOSTARIA DE SABER PRIMEIRO PASSO PARA FAZER UM REDE BASICA COM 04 PC
COMO ESTALA O LINUX DE FORMA BASICA
robson jose
 
Mensagens: 2
Data de registro: Seg Nov 03, 2008 10:03 pm

Re: Dificuldades em montar seu primeiro servidor Linux.

Mensagempor robson jose em Seg Nov 03, 2008 10:38 pm

COMO DESCREVER UM PONTO DE MONTAGEM/
qual as 4 carateristica do linux?
qual as 10 distribucao do linux/
O QUE E DISTRIBUICAO DO LINUS?
DESCREVER SOBRE SOBRE SOFTWARE LIVRE O EXEMPOLOS
QUAIS AS FORMA DE ESTALACAODO S.O.LINUX?
O QUE E MBR?
robson jose
 
Mensagens: 2
Data de registro: Seg Nov 03, 2008 10:03 pm


Retornar para Arch Linux

Quem está online

Usuários neste fórum: Nenhum usuário registrado on-line e 1 visitante