Usando YUM após fim do ciclo de atualizações do sistema operacional

Hoje eu estava fazendo a instalação de um servidor CentOS 5 e precisei adicionar alguns novos pacotes à instalação realizada. Então me deparei com erros do tipo:

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/

O ciclo de vida de atualizações do produto chegou ao fim, impedindo novas atualizações (o que pra mim não era problema!) e instalações de novos pacotes (este sim era problema!).

Talvez você se pergunte: Mas por que ainda usar uma versão tão antiga? Por que não atualizar para uma versão recente? Respondo: as vezes, por questões de compatibilidade e homologação de softwares, preciso manter versões antigas de linux!

Pesquisando um pouco descobri que a própria distribuição mantém uma base de repositórios antigos na estrutura do YUM, o que eu não sabia!

Talvez a maneira mais elegante ou indicada seria adicionar um apontamento para a versão 5.11 no arquivo /etc/yum.repos.d/CentOS-Vault.repo e fazer referência à este repositório na chamada do YUM. Mas isto tornaria a chamada do YUM menos prática! Então optei por realizar os passos indicados no fórum do CentOS, neste tópico [1]. Abaixo faço um resumo dos tópicos para futuras consultas.

  1. editar o arquivo /etc/yum.repos.d/CentOS-Base.repo
    1. em [base]
      1. comentar “mirrorlist=…”
      2. “baseurl=” já estava comentada pra mim
      3. adicionar nova entrada “baseurl=http://vault.centos.org/5.11/os/$basearch/”
    2. em [updates]
      1. adicionar “enabled=0”
    3. em [extras]
      1. igual a passos 1 e 2 de [base]
      2. adicionar nova entrada “baseurl=http://vault.centos.org/5.11/extras/$basearch/”

Com estas modificações, pude fazer uso do YUM sem maiores dificuldades!

 

Referências:

[1] yum fails – https://www.centos.org/forums/viewtopic.php?t=62106

Anúncios

[CC] Testando proxy em linha de comando

Faço muito atendimento remoto, via linha de comando.

Uma das maravilhas do Linux, pois não preciso de uma interface gráfica para resolver a maior parte dos meus problemas!

As vezes são necessárias mudanças no servidor proxy e nem sempre conseguimos testar no mesmo servidor e verificar o problema que está ocorrendo (por exemplo, quando o DNS não atende corretamente e o proxy está funcionando 100%!)

Para resolver esta questão, basta usar a variável de ambiente e o lynx! Veja:

$ env http_proxy=http://IP_DO_PROXY:PORTA_PROXY lynx ENDEREÇO_A_SER_TESTADO

Espero que tenha ajudado os fãs de linha de comando, assim como eu!

Monitorando CIFS com Zabbix

Tenho usado o Zabbix como ferramenta de monitoramento a bastante tempo. Além da excelência da própria ferramenta, o que sempre me surpreende positivamente é o suporte da comunidade e a diversidade de soluções encontradas. Não foi diferente desta vez!

Precisei fazer o monitoramento de pontos de montagem CIFS de um cliente (na real achei que eram NFS!). Comecei a pesquisar por soluções que detectasse os pontos de montagem para que eu não precisasse adicioná-los.

Neste artigo [1] do blog Infradev – DevOps & Monitoring encontrei uma excelente solução para o meu problema, no entanto, era para NFS (usarei para necessidades futuras!). Com algumas pequenas adaptações, trouxe a solução para a minha necessidade (CIFS).

A seguir descrevo as modificações, bem como o template que eu criei, baseado na solução original [1].

Read more »

[CC] Habilitando impressoras CUPS via linha de comando

Quando adicionamos um impressora em rede (em geral ligado numa estação de trabalho) no CUPS, é comum que a impressora fique desabilitada, por falta de comunicação, por exemplo.

Para que ela volte a funcionar, é necessário habilitá-la. Para isto, em geral, se faz via uma interface (seja o administrativo do próprio CUPS via interface web, ou seja em uma interface gráfica instalada em sua distribuição Linux.

Agora quando o serviço do CUPS está instalado em um servidor sem interface gráfica, servindo à um sistema local e você tem apenas acesso remoto, via SSH, como fazer?

Tradicionalmente o comando seria este (vem desde o tempo dos “Unix’s”):

$ enable nome-da-impressora

No entanto, no sistema que eu estava administrando (e acredito que seja verdade para um grande número de Linux atualmente), o comando “enable” faz parte do shell [1], assim, não funciona para o propósito que eu precisava (o de habilitar a impressora!).

Pesquisando um pouco [2], descobri que existe uma alternativa do CUPS, que coloco abaixo:

$ cupsenable nome-da-impressora

Simples e direto assim! Espero que seja útil a mais alguém!

 

Referências:

[1] https://pt.wikipedia.org/wiki/Shell_(computação)

[2] http://www.linuxquestions.org/questions/linux-newbie-8/help-how-to-enable-printer-in-cups-using-command-line-839898/

[CC] Validador PAC

Durante algum tempo procurei um validador de arquivos de proxy (proxy.pac ou wpad.dat).

Não tinha encontrado nada até a data de hoje (se existiam, eu não soube procurar!).

Obrigado Jan Henning Thorsen por compartilhar conosco este função muito útil!

Segue o endereço do PAC file tester: http://home.thorsen.pm/proxyforurl

Conectando OpenVPN com WatchGuard Firebox

Recentemente um cliente optou por trocar sua estrutura de segurança baseada em software livre por um produto “caixa preta” chamado WatchGuard Firebox (ou algo do tipo).

Como interajo apenas com servidores da rede interna, não conheço muito bem a estrutura de borda.

Até então utilizava-se um servidor OpenVPN e minha conexão era feita através de um cliente do OpenVPN.

Como temos um serviço de monitoramento através deste túnel, fiquei preocupado, pois o cliente apontou apenas um software para Windows como conexão. Posteriormente descobrimos que além de Windows, existe cliente para Mac e também para softwares com suporte a arquivos .ovpn!

Apenas fiz alguns ajustes no arquivo de configuração (para passar pela autenticação de usuários automaticamente), conforme sugestão apontada aqui [1] e a conexão via cliente OpenVPN foi estabelecida sem maiores dificuldades!

 

Referências:

[1] Connecting Linux to WatchGuard Firebox SSL (OpenVPN client) – http://jochen.kirstaetter.name/blog/linux/connecting-linux-to-watchguard-firebox-ssl.html

[CC] Como extrair texto de um arquivo de dados (binário) em Windows

Para um usuário acostumado com o mundo *nix, extrair textos (strings) de arquivos binários é trivial. Basta utilizar o comando “strings”. Mas em um Windows Server, como faço isto? É mais simples que eu poderia imaginar! Existe o comando “findstr”. MUITO útil e BASTANTE funcional!!!

Exemplo de uso:

findstr "meu nome" arquivo.dat

 

Referências:

[1] Findstr – Search for stringshttp://ss64.com/nt/findstr.html
[2] Findstrhttps://technet.microsoft.com/en-us/library/bb490907.aspx
[3] Findstrhttp://en.wikipedia.org/wiki/Findstr

[CC] git com proxy

Recentemente um cliente pediu-me auxílio em uma rede onde a navegação direta é restrita, forçando o uso de proxy. Com isto, o atualizador do sistema deixou de funcionar, pois a nova versão do mesmo adotou o git como parte de seu ferramental.

Tive então que pesquisar como forçar o uso do proxy através do git. Descobri [1] que é bastante simples, bastando adicionar as linhas abaixo (com a referência correta de seu endereço de proxy) antes de executar a chamada do git:

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:3128
git config --global https.proxy https://proxyuser:proxypwd@proxy.server.com:3128

 

Referências:

[1] Getting git to work with a proxy serverhttp://stackoverflow.com/questions/783811/getting-git-to-work-with-a-proxy-server

[CC] Ajustando encondig para pg_dumpall

Hoje um cliente me relatou que o backup lógico do seu banco PostgreSQL havia parado com a seguinte mensagem:

pg_dump: Error message from server: ERROR:  character 0xe28093 of
encoding "UTF8" has no equivalent in "LATIN1"

Descobri [1] que seria necessário ajustar a configuração de enconding do client do PostgreSQL. Descobri também que o comando “pg_dump” oferece uma opção para definir o conjunto de caracteres correto (“–encoding=UTF8”, no caso em específico).

No entanto, como eu utilizo um backup completo do banco, esta opção não me servia, já que o comando “pg_dumpall” não oferece suporte para este parâmetro. E foi no manual do “pg_dump” que encontrei minha solução: antes de exportar o banco, basta configurar a variável PGCLIENTENCODING! Segue o exemplo:

export PGCLIENTENCODING=UTF8
pg_dumpall ...

Referências:

[1] http://stackoverflow.com/questions/14525505/postgres-issue-encoding-utf8-has-no-equivalent-in-encoding-latin1

Samba 4 e compartilhamento público (“security=share”)

Venho relatando aqui no blog os ajustes de serviços e configurações necessários em função da nova versão 7 do RedHat (e similares). Mais detalhes podem ser encontrados na parte 1 e parte 2.

Um dos serviços que precisei configurar e que também sofreu alteração, foi o compartilhamento de arquivos via protocolo SMB, feito com o nosso amigo Samba. Embora a nova configuração que precisei fazer tenha sido em função da versão 7, esta mudança ocorreu com a versão 4 do Samba, estando assim disponível em outras distribuições atuais.

Precisei fazer um compartilhamento de arquivos público, sem restrições de acessos nem autenticação de usuários. Em versões anteriores do Samba, isto era feito através da seguinte configuração (no smb.conf):

security = share

Usei a mesma diretiva, ajustei as demais configurações que eu precisava e fui rodar um testparm (para verificar se estava tudo correto). Para minha surpresa o teste acusou:

WARNING: The security=share option is deprecated

Fui então pesquisar o que poderia estar errado, pois meu compartilhamento não estava funcional. Em [1] encontrei a nova versão de  configuração para esta versão do Samba.

Mesmo na versão 3.6 do Samba que está em meu computador pessoal, este aviso já aparece. Não consegui identificar a partir de qual versão ocorreu esta mudança.

Em suma, as configurações ficam assim:

[global]
# (...)
security = user
map to guest = Bad User
guest ok = yes

Referências:

[1] Set up Samba without using Deprecated “share” Security Setting – https://vicidi.wordpress.com/2012/01/23/set-up-samba-without-using-deprecated-share-security-setting/