Páginas

Mostrando postagens com marcador Ubuntu. Mostrar todas as postagens
Mostrando postagens com marcador Ubuntu. Mostrar todas as postagens

terça-feira, 3 de dezembro de 2013

Rsyslog - Gravando os logs do syslog em um banco de dados

Os montes de informações gerados pelos bons serviços de log sobrecarregam o armazenamento e o grep. Será que acoplar o syslog a um banco de dados ajuda? 

Introdução

Há algum tempo implementei um servidor de logs baseado em Debian no meu local de trabalho (até publiquei na comunidade o artigo), o que nos resolveu muitos problemas, especialmente de espaço em disco nos demais servidores e de centralização das informações de log do datacenter. 

Contudo, essa implementação nos trouxe um novo problema: depois de alguns meses, nosso servidor de log não estava comportando mais arquivos de log. Só nossos filtros de spam chegaram a registrar logfiles de mais de 1 GB por dia! 

Um outro problema detectado é a demora do grep para procurar uma informação em arquivos grandes, o que por vezes acabava fazendo com que o trabalho de obter estatísticas sobre nossos servidores se tornasse uma tarefa homérica e, por várias vezes, inviável, em decorrência do tempo demandado para a pesquisa e o tempo disponível para a apresentação dos resultados. 

Existe uma solução relativamente simples de implementar e bastante eficiente pra resolver os problemas de armazenamento e, especialmente, de pesquisa aos logs gerados pelo syslog. Chama-se Rsyslog.

O Rsyslog insere os logs diretamente num banco de dados MySQL ou PostgreSQL, o que significa que é possível substituir os comandos do grep por rápidos comandos SQL. O Rsyslog está disponível em várias distros e é o syslog padrão do Fedora 8, por exemplo. 

Implementando

Eu usei meu desktop como laboratório para a implementação do Rsyslog, um Ubuntu 8.10. Ele utiliza o sysklogd, o que facilita a migração para o Rsyslog. Inicialmente é possível até mesmo manter o arquivo syslog.conf. Em sua maioria, o arquivo de configuração do Rsyslog tem o mesmo formato que o sistema legado, embora suporte algumas opções a mais para conexão a banco de dados. 

Primeiramente é necessário instalar o pacote do Rsyslog. ele está disponível nos repositórios do Ubuntu e Debian, podendo ser instalado bastando executar o comando: 

$ sudo apt-get install rsyslog rsyslog-mysql (para uso com MySQL) 
ou
$ sudo apt-get install rsyslog rsyslog-pgsql (para uso com PostgreSQL) 

Caso não encontre os pacotes do Rsyslog nos repositórios de sua distribuição, ou sua distribuição não utilize pacotes, você pode baixar o Rsyslog no site oficial do projeto (www.rsyslog.com). Daí, é só descompactar e compilá-lo. 

Configurando o banco de dados

Depois de instalado o rsyslog, vamos configurar o banco de dados para que possa receber os logs do syslogd. 

É necessário que um dos bancos de dados (MySQL ou PostgreSQL) estejam previamente instalados na máquina. Não vou me delongar aqui sobre a instalação e configuração de banco de dados, por não ser o foco do artigo e existirem diversos artigos sobre o assunto já escritos. 

Para isso, pode-se utilizar o assistente que é executado na instalação do rsyslog, ou executar o script "createDB.sql", que é fornecido junto com o pacote Rsyslog. 

Em ambos os casos, um banco de dados chamado Syslog será criado, assim como todas as tabelas necessárias. 

Em seguida, no prompt do MySQL (ou PostgreSQL), deve-se criar um usuário e e atribuir-lhe os privilégios: 

mysql> grant ALL ON Syslog.* to rsyslog@localhost identified by 'secret';
mysql> flush privileges; 

Depois é muito fácil ordenar o Rsyslog pra que use o banco de dados - bastam duas linhas no arquivo /etc/rsyslog.d/mysql.conf (ou pgsql.conf, para o PostgreSQL): 

#Carrega o módulo para acesso ao banco de dados MySQL
$ModLoad MySQL

# Define o recurso de log que contém as entradas que o Rsyslog deve inserir no banco de dados, seguido pelos parâmetros de acesso ao BD.
# Nome_da_Máquina.Nome_do_Banco_de_Dados.Usuário_MySQL.Senha
# No caso abaixo, apenas os logs do recurso de e-mail serão gravados no banco de dados.

mail.* > localhost.Syslog.rsyslog.secret

Após implementado, verifiquei meu banco de dados e vi que ele já estava gravando os logs no MySQL, como demonstra a figura abaixo:

Não é a solução definitiva do problema, principalmente quanto ao armazenamento, mas facilita e muito a procura por algum log específico dentro do servidor de logs. 

Fonte: Linux Magazine: n° 43 - junho/08, pg 10 

sexta-feira, 1 de novembro de 2013

Como traduzir Libre Office/ Open Office para o português. (Ubuntu e derivados)

Quem já precisou instalar e desinstalar a suíte office do Linux já percebeu que na maioria das vezes ela volta funcionando, tudo certo....menos a linguagem da interface.
Pois bem, um método simples para corrigir esse problema.

$ sudo apt-get install openoffice.org-help-pt-br openoffice.org-l10n-pt-br -y
 Em caso de ser o libreoffice, faça o passo abaixo:
$ sudo apt-get install libreoffice-l10n-pt-br

quinta-feira, 26 de setembro de 2013

Ubuntu - AptGet

Gerenciamento de pacotes com o APT

Comandos

A maioria destes comandos requer sudo!
Substitua "nome_pacote" ou "termo" pelo programa que você quer instalar ou procurar.
  • apt-get update - Execute este comando se você mudou o /etc/apt/sources.list ou /etc/apt/preferences. Também execute-o periodicamente para ter a certeza que sua lista de fontes fique sempre atualizada.
  • apt-get install nome_pacote - instala um novo pacote (veja também aptitude, abaixo)
  • apt-get remove nome_pacote - remove um pacote (os arquivos de configuração não são excluídos)
  • apt-get --purge remove nome_pacote - remove um pacote (os arquivo de configuração também sçao excluídos)
  • apt-get upgrade - atualiza todos os pacotes instalados
  • apt-get dist-upgrade - atualiza o sistema todo para uma nova versão
  • apt-cache search termo - procura por "termo" na lista de pacotes disponíveis
  • dpkg -l nome_pacote - lista os pacotes instalados que casam com "nome_pacote". Na prática use '*nome_pacote*', a não ser que você saiba o nome completo do pacote.
  • aptitude - O Aptitude é uma interface em modo texto para o sistema de pacotes Debian GNU/Linux e derivados. Assim como o apt-get, permite ver a lista de pacotes e realizar operações como instalação, atualização e remoção de pacotes, porém parece tratar um tanto quanto melhor a questão das dependências.
  • apt-cache showpkg pacotes - mostra informações sobre os pacotes
  • apt-cache dumpavail - mostra uma lista de pacotes disponíveis.
  • apt-cache show pacotes - mostra registros dos pacotes, igual a dpkg --print-avail.
  • apt-cache pkgnames - rápida listagem de todos os pacotes instalados no sistema.
  • dpkg -S nome_arquivo - qual foi o pacote que instalou este arquivo?
  • dpkg -L pacote - Mostra os arquivos instalados pelo pacote.
  • apt-file search NomeArquivo - Este comando procura por um pacote, não necessariamente precisa estar instalado, que inclua o arquivo passado junto a linha de comando (NomeArquivo. Ou seja, muito útil para localizar facilmente arquivos individuais dentro de pacotes que ainda nem se encontram instalados no seu sistema.
  • apt-get autoclean - Execute este comando periodicamente para excluir os arquivos .deb que não estão mais instalados no seu sistema. Pode-se ganhar uma grande quantidade de espaço em disco fazendo isso. Se você está desesperado por espaço em disco, apt-get clean é mais radical, e removerá todos os arquivos .deb, mesmo de pacotes instalados. Como na maioria dos casos você não precisa destes arquivos .deb, não hesite em usar este comando quando precisar de uns megas extras.
  • apt-cdrom add - Comando utilizado para adicionar um CD ao arquivo /etc/apt/sources.list do APT, fazendo assim com que o apt-get procure também neste CD por pacotes.

Usos típicos

Eu quero sentir o vento no meu cabelo, quero a adrenalina da velocidade. Então vamos instalar um jogo de corrida. Mas quais jogos de corrida estão disponíveis para mim?
apt-cache search racing game
Ele me dá um monte de respostas. Vejo um jogo chamado "torcs". Quero mais informações sobre este jogo.
apt-cache show torcs
Hummm, parece interessante. Mas será que este jogo já está instalado no meu computador? E qual é a versão disponível? Está no repositório main ou universe?
apt-cache policy torcs
Tá bem, vamos instalá-lo!
apt-get install torcs
Qual é o comando que eu devo digitar no terminal para iniciar este jogo? Neste exemplo, parece óbvio o nome do comando ("torcs"), mas nem sempre é assim, fácil descobrir. Uma forma de achar o comando que deve ser executado é olhando quais arquivos este pacote instalou em "/usr/bin". Jogos ficam em "/usr/games". Programas administrativos ficam em "/usr/sbin".
dpkg -L torcs|grep /usr/games/
A primeira parte deste comando mostra todos os arquivos instalados pelo pacote "torcs" (experimente). Na segunda parte, nós dizemos que só quero que ele mostre os arquivos dentro de "/usr/games/".
Uau, esse jogo é legal. Será que existem outras pistas/caminhos pra ele?
apt-cache search torcs
But I'm running out of space. I will delete the apt cache!
apt-get clean
Oh não, minha mãe mandou eu remover todos os jogos deste computador. Mas eu quero manter os arquivos de configuração para o caso de uma futura reinstalação.
apt-get remove torcs
Se eu quisesse remover tudo, inclusive os arquivos de configuração:
apt-get remove --purge torcs

Pacotes adicionais

deborphan e debfoster são ótimos para encontrar pacotes órfãos e não necessários que podem ser removidos.

Configurando o apt-get para funcionar através de proxy

Existem três métodos para usar o apt-get através de proxy.
Método 1.
Este é um método temporário que você pode usar manualmente cada vez que precisar usar o apt-get através de um proxy. Use este método para situações temporárias.
Digite esta linha em um terminal imediatamente antes de usar o apt-get (substitua servidor_proxy e porta_proxy pelos dados reais).
export http_proxy=http://servidor_proxy:porta_proxy
Método 2.
Este método usa o arquivo apt.conf, encontrado no diretório /etc/apt. Use-o se você quer que somente o apt-get (e não outras aplicações) use um proxy HTTP permanentemente.
Nota: Em algumas instalações pode ser que não exista ainda do arquivo apt.conf. Se for este o caso, você deve cria-lo.
sudo gedit /etc/apt/apt.conf
Adicione esta linha ao seu arquivo apt.conf, substituindo obviamente o servidor_proxy e porta_proxy pelos dados necessários:
Acquire::http::Proxy "http://servidor_proxy:porta_proxy";
DICA: Caso o servidor proxy necessite de autenticação, substitua a linha do exemplo acima pela abaixo demonstrada, trocando obviamente o usuário e senha, além do servidor_proxy e porta_proxy pelos dados reais necessários.
Acquire::http::Proxy "http://usuario:senha@servidor_proxy:porta_proxy";
Salve o arquivo. Para maiores detalhes sobre as configurações do apt.conf consulte seu manual com o comando abaixo.
man apt.conf
Método 3.
Este método adiciona duas linhas no seu arquivo .bashrc, no seu diretório $HOME. Ele é útil se você quer que o apt-get e outras aplicações (por exemplo: wget) usem um proxy http.
gedit ~/.bashrc
adicione estas linhas no final do seu arquivo .bashrc (substitua servidor_proxy e porta_proxy pelos dados reais):
http_proxy=http://servidor_proxy:porta_proxy
export http_proxy
Salve o arquivo. Feche o terminal e abra outro.
Teste o funcionamento do proxy com sudo apt-get update ou com qualquer outro programa que desejar.
se você cometeu algum erro e alterou o arquivo novamente, lembre-se de fechar o terminal e abri-lo novamente. As alterações não entrarão em vigor até que você faça isso.

Resolvendo problemas

O apt-get é uma ferramenta desenvolvida para ser usada em servidores e outras aplicações importantes. Isto significa que ele foi desenvolvido para ser o mais confiável possível e nunca realizar nenhuma modificação potencialmente perigosa para o sistema, a menos que autorizado por você. Quando qualquer coisa inesperada acontece, ele para e fica esperando sua confirmação antes de fazer qualquer outra coisa.
O problema desta abordagem é que às vezes um defeito em algum pacote ou um download corrompido pode fazer com que o APT fique "travado", sem concluir a instalação de um determinado pacote por causa de um erro qualquer e sem aceitar instalar outros antes que o problema inicial seja resolvido.
Basicamente, quando encontrar este tipo de problema, você deve:
  1. Rodar o apt-get update para ter certeza de que a lista de pacotes do APT se encontra atualizada.
  2. Execute o comando apt-get -f install para usar o sistema de resolução de problemas do APT.
  3. Caso ele não resolva, experimente usar o dpkg -i --force-all para forçar a instalação do pacote com problemas, ou use o dpkg -r nome_do_pacotecaso prefira desistir da instalação.
  4. Execute o comando dpkg --configure -a, para verificar todas pendências na configuração dos pacotes.
  5. Rode novamente o apt-get -f install. Caso ele não resolva, experimente o apt-get -f remove, que tem uma função similar à do "-f install", mas dá preferência a remover os pacotes com problemas, ao invés de tentar corrigir a instalação.

Dicas e Truques

1. Definindo prioridade entre os repositórios
Por vezes se faz necessário definirmos determinadas prioridades entre os repositórios para que o APT possa sempre baixar algum pacote de determinado repositório desejado. Para conseguirmos esta condição devemos editar o arquivo /etc/apt/preferences de modo a incluir no mesmo o pacote desejado, a fonte do repositório e o número que irá definir o grau de prioridade respeitando a sintaxe do exemplo abaixo.
Icones/erro.png
ATENÇÃO: Por padrão este arquivo não existe inicialmente no Ubuntu, portanto não se assuste caso não conseguir encontra-lo, bastando apenas cria-lo e editar conforme especificado.
Vejamos um exemplo:
Package: nome_pacote
Pin: origin http://www.debian-multimedia.org
Pin-Priority: 620

Package: nome_pacote
Pin: origin http://www.ibiblio.org
Pin-Priority: 610

Package: nome_pacote
Pin: origin http://www.argon.org
Pin-Priority: 600
Desta forma o pacote (nome_pacote) será atualizado pelo repositório que tiver maior prioridade, mesmo que um repositório de menor prioridade tenha uma versão mais recente do mesmo, no caso, será atualizado a partir dos repositórios em http://www.debian-multimedia.org.
2. Prender versão do pacote
Em determinadas ocasiões pode se fazer necessário prender algum pacote em uma versão especifica, impedindo que o mesmo seja atualizado em seu sistema mesmo que o tenha sido em algum repositório que tenhamos configurado.
Vamos imaginar a seguinte situação, temos um determinado programa que funciona muitíssimo bem e o mesmo é atualizado nos repositórios. Porém sabemos que esta nova versão não funciona corretamente em nosso sistema, então como proceder para mantermos a versão funcional do pacote sem sermos importunados pelo update-notifier com a nova versão disponível.
Como na dica anterior basta editarmos o arquivo /etc/apt/preferences de modo a informar no mesmo qual versão queremos manter para determinado pacote. A sintaxe é semelhante a da dica anterior, porém se fazendo respeitar o exemplo abaixo.
Package: nome_pacote
Pin: version 0.5.3*
Pin-Priority: 600
Desta forma o pacote nome_pacote cuja versão desejada é a 0.5.3* não será atualizado e nem notificado para atualização, independente de uma nova versão estar disponível em seus repositórios. Notar que podemos incluir vários pacotes desejados neste arquivo, bastando apenas disponibiliza-los um-a-um abaixo do outro parecido com o que fizemos no exemplo da dica anterior.
DICA: Podemos facilmente fazer isso também usando a interface gráfica do Synaptic. Basta com o mesmo aberto, selecionar o pacote desejado e clicar na opção de menu Pacote > Prender Versão.

Créditos

Wikifiers: Time de Documentação do Ubuntu Brasil
Data: 15/08/2007
Mantenedor: arlei

segunda-feira, 9 de setembro de 2013

Instalar Servidor de FTP "ProFtp" Básico em Linux UBUNTU

O que é Proftpd

Proftpd é um servidor FTP mais usado no Linux, tanto que vem distribuido em quase todas as distribuições.

Instalando e configurando

No terminal digite:
#apt-get install proftpd
Agora abra o arquivo /etc/proftpd/proftpd.conf para configurar o Proftpd
#vim /etc/proftpd/proftpd.conf
A primeira opção do arquivo a mudar éo "ServerName", coloque o nome do servidor que desejar como exemplo "Debian".
Agora escolha o modo que ele fica ativo em "ServerType", escolha entre standalone ou inet, o primeiro é mais seguro e mais rápido e fica ativo apenas quando acessado e é o recomendado.
Esolha a porta em "Port", por padrão vem configurado a 21. Pode ser alterado para outra como 2100 e os usuário ao acessarem terão que colocar a porta manualmente no cliente ftp, como exemplo: ftp://dominio:2100.
Em "MaxClients", limitamos o número de conexões simultâneas ao servidor.
O "DefaultRoot" com o sinal "~" limita o usuário em seu diretório Home.
Agora salva e fecha o arquivo e reinicie o Proftpd com o comando:
#/etc/ini.d/proftpd restart

Criando usuários e diretórios de acesso FTP

Primeiro criamos o diretório do usuário:
#mkdir /home/rodrigo
Agora criar usuário "rodrigo" com segurança (sem acesso ao terminal, só vai poder mexer em seu diretório:
#adduser --home /home/ftp/rodrigo --shell /bin/false --no-create-home rodrigo
Dar permissões para este diretório:
#chown -R rodrigo:rodrigo /home/ftp/rodrigo
Pronto agora só basta acessar do cliente FTP.

Observação


Para ter acesso externo terás que redirecionar no modem para a porta 21 nos protocolos TCP e UDP e também redirecionar a porta 20.

sexta-feira, 23 de agosto de 2013

20 truques de segurança para Apache

Deve-se ter em conta que algumas destas recomendações podem diminuir o rendimento de seu servidor dependendo de sua configuração e das especificações do sistema. 

Primeiro, certifique-se de ter instalado os últimos parches de segurança 

Não faz sentido colocar uma fechadura mais resistente na sua porta se você deixa uma janela aberta. Da mesma forma se você não tem os últimos parches de segurança instalado não teria sentido continuar com a otimização de segurança. 

sexta-feira, 21 de junho de 2013

Atualizando o kernel do Ubuntu para uma nova versão – 3.9.5 e 3.9.6

Neste tutorial, vamos ver como instalar o Linux Kernel 3.9.5 e 3.9.6 no Ubuntu. Você pode verificar as changelogs para ambos os kernels aqui e aqui.

Instalação do Linux Kernel 3.9.5

Para atualizar seu kernel para a versão 3.9.5, faça o seguinte

Passo 1. Abra um terminal (Usando o Dash ou pressionando as teclas CTRL+ALT+T);

Passo 2. Vá para a pasta tmp com o comando:

cd /tmp

Passo 3. Baixe o script de instalação com o seguinte comando:

wget https://dl.dropboxusercontent.com/u/47950494/upubuntu/kernel-3.9.5 -O kernel-3.9.5

Passo 4. Dê permissões de execução para o script:

chmod +x kernel-3.9.5

Passo 5. Agora execute o script:

sudo sh kernel-3.9.5

Passo 6. Reinicie o sistema com o comando abaixo:

sudo reboot

Passo 7. Se quiser remover o kernel, digite o seguinte comando:

sudo apt-get purge linux-image-3.9.5*

Instalação do Linux Kernel 3.9.6

Para atualizar seu kernel para a versão 3.9.6, faça o seguinte

Passo 1. Abra um terminal (Usando o Dash ou pressionando as teclas CTRL+ALT+T);

Passo 2. Vá para a pasta tmp com o comando:

cd /tmp

Passo 3. Baixe o script de instalação com o seguinte comando:

wget https://dl.dropboxusercontent.com/u/47950494/upubuntu/kernel-3.9.6 -O kernel-3.9.6

Passo 4. Dê permissões de execução para o script:

chmod +x kernel-3.9.6

Passo 5. Agora execute o script:

sudo sh kernel-3.9.6

Passo 6. Reinicie o sistema com o comando abaixo:

sudo reboot

Passo 7. Se quiser remover o kernel, digite o seguinte comando:

sudo apt-get purge linux-image-3.9.6*

Pronto. Você já está com o mais novo kernel em seu Ubuntu.