Mostrando postagens com marcador tutorial. Mostrar todas as postagens

07 maio 2010 ~ 4 Comentários

Executando comandos via SSH no Linux pelo Putty no Windows

Durante esta semana me deparei com a seguinte situação ao visitar um cliente.
A aplicação web dele implementada em um servidor linux, exige que de tempos em tempos: Tenha o seu cache zerado, a manipulação de dados no Banco seja modificada, as pastas temporárias sejam deletadas, os dados de registro sejam copiados, e um email com o que foi feito seja enviado.

Seguindo as orientações dele, criei um shell script e coloquei no crontab para ser executado durante a madrugada. Pronto trabalho encerrado. \0> !!!

Entretanto o direto responsável por analisar os relatórios da aplicação não quer que ele seja executado periodicamente e sim quando ele pré-determinar.
Beleza? Seria muito tranquilo se ele soubesse alguma coisa de linux, mas ele não entende nada já que a aplicação foi desenvolvida por outra empresa e ele só gerencia.

Então pensei o seguinte: Vou ensinar ele a usar o putty, criar um usuário com privilégios restritos para executar o script e criar um passo-a-passo de como ele tem que fazer dentro do linux.
Só que pensei mais um pouco e chegue a seguinte conclusão: isso não vai dar certo, é muita coisa para um cara que não entende nada e que não quer ter trabalho. Ele quer só um botão para clicar e executar o script.

Daí pensei, será que o putty faz isso.
E faz.(com um pouco de jeitinho como veremos a seguir)

Então segue ai o que eu fiz no notebook do cliente para ele executar o backup. (Este exemplo tem caracter ilustrativo)

FASE 1 (PUTTY)

1º - Fiz o download do Putty em http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

2º - Para que ele possa executar o script de qualquer lugar que ele estiver, no servidor linux dele instalei o "ddclient" e associei a um dns dinâmico no dyndns.org. Exemplo: hbuster.homelinux.org.

OBS: Criar conta no dyndns é de graça e você pode associar até 5 dns diferentes.

3º - Abri o Putty e configurei uma sessão para acesso remoto da seguinte forma: "client@hbuster.homelinuxorg porta 6666" e Salvei esta sessão com o nome "hbuster".




4º - Pegue o executável do Putty e salvei no diretório C:\Windows\System32


FASE 2 (Criar script no Windows)

1º - Abri o notepad e adicionei a seguinte linha:

start putty -m C:\Windows\System32\Script_Server.txt -load "hbuster" -pw senha

Explicando:

start: chama o programa que será executado;
putty: programa que será executado;
-m: informa qual o caminho do arquivo que contem o comando linux;
-load: informa qual a sessão que será usada para conexão;
-pw: indica que será informada a senha;
senha: senha do usuário que está acessando o sistema.


2º - Salvei o arquivo com o nome "Script.bat" em C:\Windows\System32

3º - Dentro do arquivo C:\Windows\System32\Script_Server.txt está o seguinte comando:

/home/hbuster/public_html/script.sh


4º - Criei um atalho de C:\Windows\System32\Script.bat na área de trabalho do cliente com o nome "Flux Control Server" e alterei o icone para um icone mais amigável.

Sendo assim, todas as vezes que o cliente deseja executar o scipt no servidor, basta ele dar um duplo clik no atalho. :) !!!

Victor Santos

13 julho 2009 ~ 0 Comentários

Gerenciando logs com o RSyslog

Neste final de semana me deparei com uma bela surpresa, no Debian 5 o pacote RSyslog passou a ser o deamon predefinido para gerenciamento de logs do sistema, substituindo Syslogd e Klogd.

Rsyslog é um Syslogd com foco na segurança e confiabilidade. Entre outros, ele oferece suporte para "bufferização" sob-demanda, syslog confiável para TCP, SSL, TLS e RELP, grava em bancos de dados (MySQL, PostgreSQL, Oracle, e muitos mais), e-mail de alerta, formatos de saída totalmente configuráveis (incluindo timestamps de alta precisão), é possível filtrar qualquer parte da mensagem, compressão de mensagem, converção de arquivos texto para o syslog.

Suas funções avançadas o tornam adequado para ambientes corporativos, proteção por criptografia e configuração simples para usuários novatos. Interface web opcional - phpLogCon - pode ser usada para visualizar todas as informações on-line.

O arquivo de configuração do rsyslogd é "/etc/rsyslog.conf". O rsyslogd suporta o formato de configuração do syslog, entretanto para utilizar as configurações específicas do rsyslog, é necessário incluir configurações estendidas (que começam com o carácter $).

Segue um exemplo de configuração:


# /etc/rsyslog.conf
#Configuration file for rsyslog v3.

#### Módulos ####

$ModLoad imuxsock # fornece suporte para o log local do sistema
$ModLoad imklog # fornece suporte para o log do kernel
#$ModLoad immark # fornece suporte para marcar as mensagens

# Fornece suporte de recepção do syslog UDP
#$ModLoad imudp
#$UDPServerRun 514

# Fornce suporte de recepção do syslog TCP
#$ModLoad imtcp
#$InputTCPServerRun 514

#### Diretivas Globais ####

# utiliza o formato padrão de timestamp
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Define as permissões dos arquivos de log
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

# Regras (Mesmo formato explicado para o syslog)
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log


O rsyslog também trabalha muito bem com infraestrutura de logs centralizado, implementando criptografia no tráfego, verificação na perda de dados e gerenciamento em banco de dados.

Para configurar um cliente de logs utilizando o rsyslog, adicione no final do arquivo de configuração as seguintes linhas:

*.* @IP_do_Servidor
$ModLoad omrelp
*.* :omrelp:IP_do_Servidor:4567;


obs: No exemplo acima, realizei uma configuração de infraestrutura cliente/servidor simples. As mensagens são enviadas para o servidor na porta 4567. Devido à natureza do protocolo UDP, de não ser orientado a conexão, poderiamos perder alguns logs enviados ao servidor. Para evitar esta perda de mensagens eu utilizo o módulo omrelp, que é um módulo de output confiável que evita a perda de dados.

Por fim reinicie o rsyslog.

No servidor, adicione as seguintes linhas no arquivo de configuração:

$ModLoad imudp
$UDPServerRun 514

$ModLoad imrelp
$InputRELPServerRun 4567 # colocaando a porta para 4567

$template DynKern, "/var/log/%HOSTNAME%/kernel"
$template DynMsg, "/var/log/%HOSTNAME%/messages"
$template DynAuth, "/var/log/%HOSTNAME%/secure"
$template DynMail, "/var/log/%HOSTNAME%/mail"

kern.* ?DynKern
*.info;mail.none;news.none;authpriv.none ?DynMsg
authpriv.* ?DynAuth
mail.* ?DynMail


Com isso você estará aceitando conexões UDP com verificação de perda de pacote na porta 4567. Além disso, estará criando um template para separar os logs locais dos logs de clientes, facilitando assim o processo de auditoria.

Antes de reiniciar o syslog, edite o arquivo de incialização do mesmo em "/etc/init.d/rsyslog" e altera as opções de inicialização para:

RSYSLOGD_OPTIONS="-r -c2"



Pronto, agora o seu rsyslog estará pronto para receber os logs de seus clientes.

Durante esta semana irei testar o armazenamento de arquivos de log no banco de dados e criar um tunel criptografado para envios de log com TLS/SSL.

Writing syslog messages to MySQL:
http://www.rsyslog.com/doc-rsyslog_mysql.html

Encrypting Syslog Traffic with TLS (SSL):
http://www.rsyslog.com/doc-rsyslog_secure_tls.html

O site oficcial do rsyslog é o : http://www.rsyslog.com/