Modelos - como criar e manipular.

Atualizado em: 23/07/2006



Sobre este documento

Algumas dicas relacionadas ao uso de modelos de configuração, como criar. copiar e manipular.

Os comandos e dicas podem não atender as suas necessidades ou não ser compatível com sua instalação, tente adaptar ao seu ambiente.

Os modelos disponiveis neste diretório são copias de configurações elaboradas conforme tutoriais e disponiveis para copia ou comparação, para facilitar a organização estão neste diretório, não consta a referencia de quem chama mas o acesso a eles estão indicados em tutoriais que estão em outros diretórios como samba, squid, email, firewall e etc..., Acesso a todos os modelos neste diretório:
http://www.zago.eti.br/modelos/

Configurações, onde ficam, formato e como alterar

As configurações ficam em arquivos no formato texto puro, tem localização bem definida, a maioria dos pacotes tem seu próprio diretório dos arquivos de configuração, alguns tem suas ferramentas e scripts que permitem refinar a configuração, siga a documentação do pacote, nada impede que altere o local, procure evitar, seguindo o padrão do pacote fica mais fácil integrar com outros serviços, fazer a manutenção via ferramentas apropriadas em ambiente gráfico ou editadas diretamente com seu editor de texto preferido.

Independende da distro ou ferramenta que utilize na configuração, o resultado fica no mesmo arquivo em formato texto e portanto pode ser acessado também com seu editor de texto preferido alterando diretamente no arquivo de configuração, a escolha é sua, editar um arquivo de configuração requer mais conhecimento de cada parametro e diretiva, sempre é mais rápido e prático mas pode parecer mais dificeis para quem não está acostumado, trabalhando com ferramentas em ambiente gráfico, pode parecer mais fácil, geralmente são ferramentas mais amigáveis, o resultado é o mesmo e vai para o mesmo local, procure na sua distro quais ferramentas estão disponiveis, depende muito da distro e do ambiente gráfico em uso, como as configuações ficam em arquivos no formato texto, pode iniciar a configuração em ambiente gráfico e depois refinar o ajuste em modo texto ou vice-versa ou alternar entre as ferramentas e modo de configuração. explore o ambiente gráfico em uso, veja as ferramentas e recursos disponiveis pra personalizar e configurar sua instalação.

Algumas distro tem ferramentas em ambiente texto para manipular estes arquivos, no Conectiva vem um configurador Linuxconf e muitos outros pacotes com finalidade de configurar serviços especificos, kudzu para detectar novo hardware, mesmo em ambiente texto tem bom visual e interação com o usuário, procure na sua distro quais as ferramentas disponiveis pra auxiliar na configuração.

Scripts de configuração, alguns pacotes tem script próprio pra fazer o serviço, isto é muito peculiar ao pacote e a distro, tem pouca ou nenhuma interação com o usuário, geralmente vem com uma configuração pronta para substituir a original ou fazer alterações especificas, procure fazer testes e entende-los, precisa analizar o próprio script ou documentação no site onde estão disponibilizados, alguns facilitam muito e outros tornam as coisas mais dificeis, de qualquer forma tem que conhecer algo sobre o serviço que está configurando, precisa ler sobre o assunto, seguir a documentação e de preferencia tentar primeiro em ambiente de testes.

Sites que geram arquivos de configuração, existem sites para criar regras de firewall e outras configurações, pelo navegador preenche ou marca as opções desejadas na configuração do serviço, outros com com modelos prontos para copiar e colar, tem até alguns utilitarios para uso local, tem varios tipos, alguns geram o arquivo de configuração para copiar, outros alteram diretamente no arquivo do sistema, na medida do possível estou incluindo estes endereços no inicio dos arquivos do FAQ.

Ferramentas em ambiente gráfico

Webmin - Ferramentas em ambiente gráfico, configura diversos serviços sem necessidade de editar arquivos, são mais de 300 modulos, acesso via brownser, utilize seu navegador preferido, com acesso na maquina local ou a partir de estação remota rodando Linux ou Windows, indicado para quem tem medo da tela preta e prefere o mouse para configurar ao estilo navegar pelas opções, marcar, selecionar, habilitar. Tem seu proprio servidor web e portanto não precisa do Apache, ideal para uso em servidores sem ambiente gráfico, tem opção para editar documento em formato texto como arquivos de configuração e scripts, veja dicas e FAQ sobre Webmin em;
http://www.zago.eti.br/webmin.txt

Impressoras, configurar e compartilhar - CUPS - com acesso via navegador, muito útil e prático para compartilhar impressoras e configurar remotamente, tem varios recursos para gerenciar fila de impressão, logs e etc.., veja mais dicas em;
http://www.zago.eti.br/cups.txt
Acesso remoto via ssh, ambiente gráfico como KDE tem ferramentas de configuração como kcontrol e outros, algumas distribuições tem ferramentas de configuração, como exemplo, no Mandriva "drakconf", SUSE "Yast", procure descobrir qual a ferramenta da sua distro, estas ferramentas podem ser acessadas remotamente via conexão ssh, muito simples e prático, a partir do ambiente gráfico de uma estação qualquer, abra um konsole e faça a conexão via ssh com a diretiva "-X", completada a conexão, na linha de comando do konsole remoto, execute o aplicativo desejado, drakconf, yast, konqueror, kcontrol, ou outro qualquer disponivel na sua distro, sobre configurações e uso do ssh veja em;
http://www.zago.eti.br/ssh/ssh.html

Ferramentas em ambiente texto

Muitos serviços em ambiente gráfico não passam de uma interface para uso do serviço em ambiente texto, tem que prefere o ambiente gráfico por achar mais bonitinho ou amigável, geralmente se obtem resultados mais rapidamente em linha de comando no ambiente texto, computadores não precisam do ambiente gráfico que consomem mais recursos da maquina, humanos preferem a interface gráfica porque requer aparentemente menos esforço, voce decide!

Alguns pacotes tem seu próprio script de configuração, basta executar o script para executar a instalação e configuração padrão, procure na documentação do pacote, na página do mantenedor de onde fizer o download, no diretório onde descompactar e onde mais a documentação indicar, este script fica (geralmente) no diretório onde descompactou o pacote, tem nomes associados a configure, intall.

mc = Midnight Commander - muito prático e fácil de usar, funciona em modo texto, tanto na maquina local como remtamente via conexão ssh, tem excelente visualização e navegação entre os diretórios e arquivos, ideal para editar arquivos de configuração, as teclas de função (F1 a F10) funcionam como menu de opções pra copiar, mover arquivos, apagar, editar, salvar e etc.. Setas de direção do teclado e enter navega pelos diretórios.
http://www.zago.eti.br/mc.txt
Editor "vi" - algumas dicas, comandos basicos, FAQ sobre o editor de texto "vi" editor em modo texto com muitos recursos, presente na maioria das distros, inclusive em instalações com perfil minimo.
http://www.zago.eti.br/vi.txt

Salvar copias de configurações

Arquivos de configuração podem ser copiados de uma instalação para outra, geralmente requer algum ajuste mas é muito mais simples fazer estas correções do que refazer toda a configuração.

Sempre que concluir uma instalação, faça copia dos arquivos de configuração, seja um firewall ou configuração de um proxy com ACL contendo grandes listas de palavras ou qualquer outra configuação que requer horas de trabalho para refazer, salvando esta configuração em outra maquina, pode ser usada em nova instalação.

Procure salvar os comandos utilizados na configuração, pode abrir outro console e nele abrir seu editor de texto para colar os comandos, comentarios, endereços e observações que julgar relevantes, pode acessar o ~/.bash_history e o do root ou até salvar copia deles, vai ajudar muito quando repetir o mesmo processo depois de alguns meses, já passei por isto, depois de alguns meses quando precisei refazer instalações, tive o mesmo trabalho para descobrir quais os comandos, ordem e outros detalhes, quando se tem a cópia dos comandos, pode até copiar e colar, isto facilita muito e evita erros de digitação, principalmente longas ou varias linhas de comando, procure guardar também copia dos comandos executados, na mesma ordem e se possível também os resultados para comparação futura, no console basta passar o mouse sobre a area que deseja copiar, mantenha o botão acionador pressionado para selecionar, para colar basta alternar para o editor e pressionar CTRL+C ou botão auxiliar.

Sempre que terminar uma configuração, salve uma copia da configuração em outra maquina, pode fazer via ferramentas fáceis como ssh, ou outro meio disponível na sua instalação, ftp, mount, cp, salvar em dico, CD ou outro meio, enviar por e-mail e etc....

Configurações mais complexas que envolve muitos arquivos, o tar pode ajudar muito para manter a estrutura de diretórios e permissões.

Estas copias pode conter informações sigilosas como senhas, dados da empresa, regras que não devem ser de conhecimento publico, portanto requer proteção e segurança também.

Pode se criar um usuário para acesso via ssh, diretório apache protegído por senha, criptograr o arquivo com chaves gpg e outras proteções.

Considere contribuir com a comunidade, disponibilize sua experiencia, considere publicar estas anotações, altere os dados que possa identificar a empresa, usuários e senhas, como estarão disponiveis na net, pode lhe ajudar no futuro.

Considere fazer também a copia completa da instalação, veja dicas no FAQ;
http://www.zago.eti.br/hdclone.txt

Copiar configurações de outra instalação

Tem diversas maneiras de fazer esta cópia, neste tópico vou citar algumas, somente as que mais utilizo.

Sempre faça copia antes de qualquer procedimento que altere arquivos, diretórios ou permissões, use cp -ax ou mv, com a copia salva com outro nome ou outro local, sempre será possível retornar a configuração.

Pode salvar a copia no próprio diretório ou enviar para home do root, em meus tutoriais utilizo o /tmp para simplificar e facilitar os comandos, mas tenha cuidado, este diretório é acessado por todos usuários da maquina e pode comprometer a segurança de alguma informação.

Alguns exemplos para copiar ou renomear o arquivo /etc/squid/squid.conf ou o diretório /etc/squid, procure ver qual melhor lhe atende, cuidado que a repetição do comando sobrescreve a copia anterior, caso precisa repetir, altere o nome destino, acrescente algo como copia2, copia3 ....

  cp -ax /etc/squid/squid.conf /etc/squid/original-squid.conf
  
  mv /etc/squid/squid.conf /etc/squid/original1-squid.conf
  
  cp /etc/squid/squid.conf /tmp/original-squid.conf
  
  cp -ax /etc/squid /tmp/
  
  cp -ax /etc/squid /root/
  
  mv /etc/squid/squid.conf /tmp/original1-squid.conf

Existem diversas maneiras e ferramentas, voce escolhe, sistemas GNU/LINUX lhe dá esta liberdade, este é um bom motivo para manter um repositorio local com teus arquivos de configuração, scripts e linhas de comando.

Use o comando tar para empacotar arquivos e diretórios, evita corrupção de arquivos, preserva as permissões e evita quebra de linhas, principalmente quando vai trasportar via e-mail ou salvar em instalações windows.

Via ssh, enviar (upload), buscar (download)

A - SSH - Mantenho copias em uma maquina de cara para internet, nesta maquina tem um usuário especifico e dentro do seu home tem as copias de diversas instalações que utilizo, estão em diversos formatos, .tar.gz, gpg e copia simples via ssh, quando quero salvar alguma informação, simplesmente envio via ssh, segue um exemplo para enviar copia via ssh para uma maquina remota que pode estar na rede local ou com acesso via internet, dados da maquina remota, usuário = zzcopia, IP ficticio = 200.200.200.200, para enviar copia do diretório local (/etc/squid) da empresa xx a linha de comando fica assim;

scp -r /etc/squid zzcopia@200.200.200.200:~/squidxx

Quando preciso desta copia de volta, pode ser na mesma ou em outra maquina qualquer, para baixar todo o diretório squidxx para o diretório atual, basta executar esta linha de comando,

scp -r zzcopia@200.200.200.200:~/squidxx .

Não entendeu, então veja mais sobre ssh no diretório ssh deste site.

Servidor web - local ou internet

Configurações disponíveis na web pode acessar via navegador (browser) selecionar a parte que deseja copiar e alternar para seu editor local para colar, linhas de comando ou arquivos pequenos até funciona muito bem, grandes ou varios arquivos pode ser simplificado com uso do wget, como exemplo, baixar o fonte deste documento que está formatado para txt2tags, faça um teste, copie e cole no console esta linha de comando para baixar para o diretório local o modelo abaixo (diretamente da minha maquina);

wget 200.204.198.164/zago/modelos/A-menu-modelos.t2t

ou para baixar o html diretamente do site, do mesmo local que está lendo agora;

wget http://www.zago.eti.br/modelos/A-menu-modelos.html

Editor "vi" importar arquivos diretamente, local ou da web

Editar diretamente o arquivo de configuração, este é meu metodo preferido, não se assuste com aquela tela preta nem com digitação, continue trabalhando em abiente gráfico, abra um terminal (console) para colar os comandos, a copia pode ser de outro terminal, editor de texto ou página da web, para colar no terminal, tente botão auxiliar, botão do meio, teclas SHIFT+INSERT, faça testes com seus backup de comandos, ou modelos no FAQ. Explore também a tecla tab pra completar comandos, historio de comandos, scripts e outras ferramentas.

Editor "vi" - Importar arquivo - de um diretório local, de outra maquina da rede ou da web.

Em muitos modelos do FAQ vai encontrar no inicio do arquivo ou nos tutoriais, linha semelhante a esta;

:r !lynx -dump http://www.zago.eti.br/modelos/ppp0-compartilhar

Explicando; quando encontrar esta observação, ela é uma linha pronta para copiar e colar no editor "vi", serve para importar para dentro do editor "vi" o conteúdo do endereço indicado, com o editor "vi" em modo comando, digite ou cole a linha acima para transferir para o editor o conteúdo que está na web.

:r comando para importar arquivo, !lynx -dump, comando para chamar o navegador lynx e passar o texto sem formação HTML, http://www.zago.eti.br/modelos/ppp0-compartilhar, endereço do arquivo que pode ser no formato de uma URL ou simplesmente o IP do servidor web na rede interna.

Sempre requer alguma alteração no arquivo de configuração, o meio mais prático é renomear o arquivo original da instalação, abrir o "vi", importar o modelo, fazer as alterações e salvar, prontinho....

No exemplo acima pode colocar a URL indicada no seu navegador, acessar copiar para depois colar em seu editor, fazer download com wget e editar o arquivo loal, basta substituir ":r !lynx -dump" por wget, ou por lynx para navegar em modo texto, exemplo;

wget http://www.zago.eti.br/modelos/ppp0-compartilhar

lynx http://www.zago.eti.br/modelos/ppp0-compartilhar

Outros exemplos de comando;

:r !lynx -dump http://www.zago.eti.br/cp.txt

Copiar de servidor web local, substitua pelo IP no exemplo abaixo, indicar o IP, diretório e nome do arquivo que deseja abrir, por exemplo:

:r !lynx -dump http://200.204.198.164/zago/cp.txt

Importar arquivo disponível na própria maquina, comando no formato: :r /caminho/do/arquivo/nomedoarquivo, exemplo:

:r /home/zago/guiaz/cp.txt

Observe que o editor tem que estar em modo de comando, pressione a tecla escape pra entrar em modo comando, digite a linha de comando acima, os dados digitados ou colados vão aparecer no final na tela, depois de digitar ou colar, basta um enter para importar o arquivo a partir do local do texto onde estava o cursor antes de pressionar a tecla ESCAPE, após importar o texto para voltar ao modo de edição pressione a tecla INSERT.

Os comandos acima importar um arquivo no editor "vi", arquivo disponivel na web requer o lynx para acessa-lo, e claro, disponiveis em servidores apache para acesso via navegador, lynx é um navegador em modo texto, nestes comandos tem a tarefa de buscar o arquivo e retirar a codificação HTML para entregar o texto limpo no editor "vi", faça as alterações e salve o arquivo.

Aviso - cuidado com copias...

Sempre use uma instalação de testes, somente depois de avaliar e aprovar os resultados aplique os mesmos procedimentos em instalações definitivas.
Exemplos ou modelos de configuração de outras instalações pode não atender suas necessidades, o ambiente ou propositos podem ser diferentes, sempre requer alguma adaptação no device de rede, classe de rede, nome de maquina, dominio usuarios e etc.. Tutoriais, modelos e exemplos servem como referencia e consulta, procure entender o que está fazendo, evite fazer às cegas para não ficar batendo cabeça, faça testes e mais testes.... principalmente antes de aplicar em instalações criticas, com poderes de root, um erro no comando ou script pode causar serios danos na instalação ou até perder dados, portanto, use por sua conta e risco.

Dica - não use DOS/WIN na edição de configurações

Na copia de script, linhas de comando ou arquivos de configuração, fique atento a possiveis quebra de linha inserida indevidamente pelo cliente de e-mail, browser ou editor de texto.

O padrão de configuração em sistemas GNU/LINUX são arquivos no formato texto puro do Linux, nunca edite ou manipule arquivos de configuração ou scripts no DOS ou Windows, não tem sentido, não sei porque, tem pessoas que ainda fazem isto, querem usar windows para configurar Linux. Pode até usar windows para conectar na maquina Linux, seja pelo I.E pra acessar webmin ou putty para abrir um terminal ssh, mas não manipule os arquivos do Linux em programas for DOS/WIN.

Pelo simples fato de descompactar ou editar scripts ou arquivos de configuração no DOS/WIN é o suficiente para alterar o final de linha de LF pra CR+LF e depois provocar erros quando executados no Linux, para converter estes aquivos DOS/WIN pra formato Linux, execute dos2unix nome-do-arquivos.txt. O final de linha em arquivos texto puro no Linux termina com LF, em DOS/WIN termina com CR+LF, este CR que o DOS/WIN insere no final da linha é interpretado como parametro inválido provocando erros e interrompe o processo, em alguns casos até exibe na mensagem de erro um "\r", o utilitário dos2unix retira este CR. Use somente texto puro no formato do Linux, sem caracteres de controle no documento, pode ser em ambiente texto ou gráfico, sempre sem acentos e caracteres de controles de fontes, impressão e etc..,

Além das configurações em arquivos texto em algumas excessões a configuração fica no codigo fonte do programa, estas são raras, igualmente são raras as necessidades de alterar as diretivas de compilação, é bom saber que elas existem, quando inevitavel se prepare pra seguir a documentação. Prefira sempre fazer instalações com pacotes próprios da sua distro que já estão compilados pra otimizar a instalação e atender as necessidades mais comuns, já colocam os arquivos com as permissões nos lugares certos e outras cortezias que lhe poupa muito tempo, a tua parte é dar a linha de comando para instalar e depois personalizar a configuração a seu modo.

Quando for inevitável o uso de editores DOS/WIN, e-mail ou de algum processo que precise salvar o arquivo em instalações windows, procure criar um arquivo .tar, caso edite o arquivo, quando salvar de volta no Linux, use dos2unix nome-do-arquivo.txt para converter.

Script - modelos e como elaborar

Alguns exemplos de scripts, FAQ com mensagens da Linux-br e algumas indicações.
http://www.zago.eti.br/script/A-menu-scripts.html

Ambiente de testes e backup da instalação

Considere criar um ambiente de testes, não adianta reclamar que não tem "verba" ou não tem maquina, não custa nada, o pouco tempo que investir agora vai lhe poupar muito mais no futuro além de evitar muitos problemas, considere um bom investimento de tempo, pode fazer diversas instalações de testes pela rede sem problema algum.

Veja dicas de como fazer duas instalações Linux no mesmo HD, utilize estações para testes, evite em servidores embora seja possivel, passo a passo em
http://www.zago.eti.br/boot_div.txt

Dual boot Linux e windows - Aproveite e veja a dica sobre backup da instalação completa do windows na partição Linux, quando algum virus comer o windows ou precisar reinstalar, vai poupar muito tempo, basta uma simples cópia de volta para recuperar a instalação do windows, passo a passo em.
http://www.zago.eti.br/boot-dual-win-e-linux.html

Nesta estação (instalação) de testes, vai consumir somente parte do espaço do HD e nada mais, em ambiente de testes vale usar um modem discado nesta maquina, esta opção também é indicada para testar firewall, regras de squid e outros serviços de rede, pode até ser usado quando cai o link ou ADSL, embora muito mais lento permite acesso à internet enquanto o ADSL não volta..

Use esta instalação para testes de atualização, novas regras, novas configurações, agregar novos recursos e serviços, testar nova versão da distro, outras distros, outros pacotes e tudo aquilo que deseja testar para tirar dúvidas e fazer avaliações.

Neste ambiente de testes pode configurar outro proxy, servidor de e-mail interno, com modem discado serve para testar firewall e utilitários para scanear portas da outra conexão, testar regras de redirecionamento, enfim, tem um ambiente de duas redes perfeito para testar diversos serviços.

Considere manter esta instalação como backup, em casos de emergencia, nunca se sabe quando vai ocorrer acidentes, queimar a maquina, HD ou uma pane na configuração que pare tudo, nestas situações, rápidamente e com pequenas alterações pode subir o novo servidor, usuários nem ficam sabendo da troca, em menos de um minuto se faz a troca do IP e sobe o Squid ou firewall, outros servidores pode demorar mais em funçao de restaurar backup e outros procedimetos.

Use ferramentas como VNC, SSH, FreeNX, Putty e outras, não fique pulando pra lá e pra cá, indo de maquina em maquina, a partir do ambiente gráfico da maquina Linux, abra um console para acompanhar os logs e acesse o VCN da estação windows para simular o uso. A partir da estação windows faça conexão via FreeNX ou Putty para abrir o console e acompanhar os resultados do que acontece com os acessos pela estação windows.

Porque não pensei nisso antes!

Página principal deste site (FAQ)
http://www.zago.eti.br/menu.html