29/09/2010

WordCamp Curitiba - Inscrições

Estão abertas as inscrições para o WordCamp Curitiba. Para se inscrever, basta acessar o formulário [http://curitiba.wordcamp.com.br/faca-sua-inscricao/] e fazer o preenchimento dos seus dados. O preço da inscrição é de R$ 20,00 (vinte reais), via PagSeguro, valor que será revertido em uma camiseta do evento.

Lembramos que as inscrições são limitadas e que a data limite para preenchimento do formulário é dia 20 de Outubro.

Para mais informações, visite o site do evento.
http://curitiba.wordcamp.com.br/

28/09/2010

Envio anexo por linha de comando

Mais uma daquelas postagens que parece que eu defendo programas orientados à linha de comando. Se é isso que parece, então assumo que é isso mesmo. Estes realmente são programas pontuais, que só usam quem sabe o que está fazendo.  

O caso aqui é o mpack que pode ser instalado pelo comando :
#aptitude install mpack 

Assim, resolvi um grande problema de envio de dados, que antes utilizava duas rotinas, uma de geração dos dados, e outra o envio por um Software de terceiro, que não compactava os dados e vez ou outra dava erro (leia-se dava pau) sem contar que os usuários também esqueciam de uma parte do processo.

Com o mpack o envio de dados via linha de comando fica assim:

mpack -s Envio -d ../atualizacao.txt  -a Vendedor.zip vendedor1@e-maildestino.com.br

Onde temos que:
-s cabeçalho_do_email
-d um arquivo contendo uma mensagem
-a seta a disposição dos anexos ao e-mail
Vendedor.zip ou outro arquivo
destinatário(s) da mensagem

O pulo do gato aqui é a opção -a. Sem esta chave, o sistema receptor pode não conseguir separar os dados anexados, embaralhando os camos mime do seu e-mail. Sim, demorei umas 8 horas pra perceber isso. Como qualquer outra aplicação cl (command line), pode ser adaptada para qualquer necessidade e transformada em um script shell muito inteligente. No caso acima, coloquei a rotina diretamente no sistema que faz todo o trabalho limpo.

Referências:
man mpack

27/09/2010

Spreadsheet Calculator - suas planilhas em texto plano


Para aquelas pessoas que conheceram as planilhas de cálculo ao estilo hot-calc (msx) ou as primeiras versões do Lotus 123, onde todos os dados eram lançados indicando coluna e posição, existe para Linux uma planilha para ambiente shell muito robusta para solução de problemas pontuais. A Spreadsheet Calculator pode ser instalada em Debian pelo #aptitude install sc. 
À primeira vista realmente parece muito tosca, mas pessoas apaixonadas pelo vi (vim) e que necessitam de coisas leves vão gostar de poder abrir mais uma aba no seu screen e poder rodar sua planilha sc mesmo em links de baixa velocidade, podendo assim "detachar" ou "reatachar" de qualquer terminal, em qualquer lugar.

Após instalado, é possível ver um tutorial e em menos de 5 minutos começar a lançar dados reais na sua planilha. Inicie o tutorial com o comando:
$ sc /usr/share/doc/sc/tutorial.sc


comandos mais usados
q = exit
^Z = suspende
^G = interrompe um comando
^n, j e move para baixo
^p, k e move para cima
^b, h e move para a esquerda
^f, l e move para a direita
Para ir à uma célula específica, basta pressionar g e o nome da célula:
'g c10 ' move para a célula 10
'g page2' move para a página 2

Funções com as células:
'>text' entra com um texto alinhado à direita
'\' entra com um texto centralizado
 'W '
 'P ' grava o arquivo .sc
 'G' carrega um arquivo .sc
 'Zr, Zc ' esconde linha ou coluna
 'sr, sc' mostra linha ou coluna
 '@' força recálculo
 'e' edita um valor numérico
 'E' edita um valor tipo string
 '=number' entra um número
 '=formula' entra uma fórmula
 'x' apaga os valores de uma célula
 'hjkl' movimentos iguais ao vi (vim)
 'ir, ic ' insere linha, insere colunas
 'Ctrl-f, Crtl-b' pagina acima ou pagima abaixo
 'dr, yr, pr' deleta linha, cola linha
 'dc, yc, pc' deleta coluna, cola,
 'dd, yd, pd' deleta, cola, cola célula

De formas gerais, administradores de sistemas (sysadmins) gostam do ambiente shell devido sua simplicidade e alta produtividade. Tudo isto, aliado à segurança encontrada nos acessos via ssh. Ainda, com a Spreadsheet Calculator, é possível importar arquivos .csv mantendo portanto portabilidade com os documentos. Confira:
Spreadsheet Calculator

26/09/2010

Configurando Debian com DynDNS.com



Existem muitas razões para usar um serviço de DNS Dinâmico para sua rede doméstica. Umas delas é a possibilidade de aumentar a segurança de sua máquina/rede, por exemplo, usando OpenDns para proteger adolescentes de conteúdos impróprios e outras pragas virtuais. Para que o OpenDns faça este controle de conteúdo, é preciso usar um cliente de Dns Dinâmico que atualize sua rede sempre que seu modem aDSL reinicie ou seu ip mude. No Debian (e derivados), é possível fazer isso através do ddclient, instalando e configurando da seguinte forma:





# aptitude install ddclient 

Forneça os dados da sua rede respondendo o configurador. Ao final da configuração, você terá um arquivo de configuração em /etc/ddclient.conf :
# Configuration file for ddclient generated by debconf
# /etc/ddclient.conf
pid=/var/run/ddclient.pid
protocol=dyndns2
use=if, if=eth0
server=members.dyndns.org
login=seulogin
password='password'
suarede.dyndns.org

Lembre-se sempre que precisar, utilize o dpkg-reconfigure para ajustar as configurações:
#dpkg-reconfigure ddclient

Referências:
man ddclient

18/09/2010

/etc/securetty

Afinal o que é o arquivo securetty, qual sua função? 

Este é mais um modo de proteger o root (ou superusuário) indicando em quais tty's ele pode fazer login. Administradores cuidadosos criam um ambiente onde o root, não faça login de qualquer maneira, evitando assim problemas sérios de segurança. Ao ser removido as entradas deste arquivo, o root não fará login em qualquer tipo de terminal, obrigando assim o uso do su ou sudo.

ref.:
man securetty

13/09/2010

WordCamp Curitiba 22 e 23 de Outubro de 2010

A comunidade WordPress-BR está organizando o WordCamp Curitiba, que ocorrerá nos dias 22 e 23 de outubro na FESP, localizada no centro da cidade. Esta, que será a segunda edição do WordCamp no Brasil se diferencia do evento do ano passado, que tinha como objetivo ser um encontro nacional e mais abrangente. Desta vez, seguindo os caminhos do WordCamp Central a ideia é criar um encontro local e descentralizado e que, como a comunidade espera, seja o primeiro de muitos por todo o país.
O WordCamp é um tipo de conferência originada nos Estados Unidos que trata sobre todos os assuntos relacionados ao WordPress, a plataforma de código aberto de publicação de conteúdo. Os eventos são organizados pelas próprias comunidades de usuários da ferramenta. Neles, desenvolvedores, designers, blogueiros e usuários casuais podem assistir a palestras e apresentações, trocar ideias e se conhecer num ambiente informal.
Inscrições, palestras, grade de atividades e outras informações logo estarão disponíveis no site do evento. 

Dia da Liberdade do Software 2010

No próximo sábado 18/09/2010, iremos comemorar mais uma edição do softwarefreedomday que tem como objetivo central comemorar a liberdade do software e das pessoas em torno dela[1]. Uma oportunidade impar em poder rever amigos e fazer novos, ver palestras relacionadas ao Software Livre e aprender coisas novas.

Agende-se
Data e horário

  • 18 de setembro de 2010
  • 13h00min às 18h00
Local

  • FESP - Faculdade de Educação Superior do Paraná
  • Rua Dr. Faivre, 141, Centro - Curitiba/PR
  • Telefone (41) 3028-6500
  • Como chegar: Veja o mapa do local
Ajude na divulgação obtendo o pdf aqui



09/09/2010

SSH - aspectos técnicos


Administradores de redes devem dominar o shell e conhecer profundamente as ferramentas de acesso remoto. No Linux/Unix, temo o ssh (Secure Shell) que permite acesso remoto a máquinas rodando estes SO e permite uma gama infinita de utilização, desde manipulação de arquivos, até mesmo acesso baseado em terminal X (Ambiente Gráfico).


A grande vantagem do SSH sobre outras ferramentas de acesso remoto é a grande ênfase na segurança. Um servidor SSH bem configurado é virtualmente impenetrável e você pode acessá-lo de forma segura, mesmo que a sua rede local esteja comprometida. Ele utiliza um conjunto de técnicas de criptografia para assegurar que apenas as pessoas autorizadas tenham acesso ao servidor, que todos os dados transmitidos sejam impossíveis de decifrar e que a integridade da conexão seja mantida.
São previstas respostas para diversos tipos de ataques conhecidos. O SSH detecta casos em que o servidor tenha sido substituído por outra máquina, situações nas quais se tenta injetar dados na conexão (ou seja, tirar proveito de uma conexão aberta para incluir pacotes com comandos adicionais) e inclui até mesmo técnicas de "despiste", que tornam muito mais complicado descobrir em qual pacote encriptado foi transmitida a senha de acesso, por exemplo, dificultando a vida de quem pretende descobrir a senha usando um ataque de força bruta.
A idéia central é que, mesmo em situações onde seja fácil interceptar a transmissão (como no caso de uma rede wireless pública), seja impossível descobrir o conteúdo dos pacotes, devido à encriptação. É possível ainda, utilizar um par de chaves em vez de uma senha como forma de autenticação. Nesse caso, além de possuir a chave privada (um arquivo que pode ser salvo no HD, em um pendrive ou mesmo em um smartcard), é preciso saber a passphrase, que pode ser uma senha especialmente longa e difícil de adivinhar.
Você poderia argumentar que qualquer algoritmo de encriptação pode ser quebrado via força bruta (onde simplesmente são testadas todas as possibilidades possíveis, até encontrar a combinação correta), de forma que nenhum sistema de encriptação é inteiramente seguro. Entretanto, ataques de força bruta só são realmente viáveis contra chaves de 40 ou 64 bits; acima disso é inviável, pois a cada bit adicionado, o processo torna-se exponencialmente mais demorado.(GDH)
Um exemplo de protocolo pouco seguro é o WEP de 64 bits (que na verdade utiliza uma chave de 40 bits), usado em redes wireless pouco protegidas. Ele pode ser quebrado em pouco tempo, caso você consiga capturar um volume considerável de transmissões usando um sniffer (um programa que captura a transmissão da rede, como o Kismet). O DES, um dos algoritmos mais tradicionais, que usa chaves de 64 bits (reais), pode ser quebrado em menos de um dia, caso você tenha acesso a um cluster de 100 máquinas com processadores Xeon ou Opteron quad-core.
Uma chave de 64 bits é cerca de 16 milhões de vezes mais difícil de quebrar via força bruta do que uma de 40 bits, como as que eram utilizadas no SSL dos navegadores a até poucos anos. Uma chave de 128 bits por sua vez, é (arredondando) 18.447.000.000.000.000.000 vezes mais demorada de quebrar que uma de 64 bits, de forma que, uma chave de 64 bits pode ser quebrada caso você tenha o tempo e os recursos necessários à disposição, mas uma de 128 (sem brechas conhecidas) é impossível de quebrar com tecnologia atual.
O perigo no caso dos algoritmos de encriptação não são propriamente os ataques de força bruta (que exigem muito tempo e recursos), mas sim falhas que permitam descobrir a chave usada em menos tempo. As versões originais do WEP (o sistema de encriptação para redes wireless anterior ao WPA), por exemplo, podiam ser quebradas rapidamente devido a um conjunto de falhas no algoritmo usado, o que levou os fabricantes a atualizarem rapidamente todos os seus produtos. Outro exemplo é o sistema usado na encriptação dos DVDs, que é quebrado em poucos segundos por uma máquina atual, utilizando um algoritmo de poucas linhas.
Felizmente, este não é o caso dos algoritmos usados no SSH. Por serem abertos, qualquer falha similar que pudesse eventualmente existir já teria sido descoberta e corrigida. O SSH é usado em tantos servidores importantes que uma brecha grave poderia (literalmente) parar o mundo. Por isso, todo o código é exaustivamente auditado por uma variedade de empresas e órgãos governamentais.
O SSH utiliza chaves assimétricas para fazer a autenticação. As chaves assimétricas são um sistema muito interessante, onde temos um par de chaves em vez de uma única chave simétrica. Uma (a chave pública), permite apenas encriptar dados, enquanto a segunda (a chave privada) permite desencriptar as informações embaralhadas pela primeira. O grande segredo é que qualquer informação embaralhada usando a chave pública pode ser recuperada apenas usando a chave privada correspondente. Como o nome sugere, a chave pública pode ser distribuída livremente, pois serve apenas para gerar as mensagens encriptadas, sem permitir lê-las posteriormente.
Quando você se conecta a um servidor SSH, seu micro e o servidor trocam suas respectivas chaves públicas, permitindo que um envie informações para o outro de forma segura. Através deste canal inicial é feita a autenticação, seja utilizando login e senha, seja utilizando chave e passphrase (como veremos a seguir).
Até aqui, tudo é feito utilizando chaves de 512 bits ou mais (de acordo com a configuração). O problema é que, embora virtualmente impossível de quebrar, este nível de encriptação demanda um volume muito grande de processamento. Se todas as informações fossem transmitidas desta forma, o SSH seria muito lento.
Para solucionar este problema, depois de fazer a autenticação, o SSH passa a utilizar um algoritmo mais simples (que demanda muito menos processamento) para transmitir os dados. Por padrão é utilizado o 3DES (triple-DES), que utiliza uma combinação de três chaves DES, de 64 bits cada. As chaves são trocadas periodicamente durante a conexão, o que torna o sistema quase impossível de quebrar. Na configuração do servidor e/ou cliente, é possível especificar outro algoritmo, como o Blowfish. Isso garante uma boa relação entre segurança e desempenho.
Instalação:
A instalação do ssh no Debian é muito facilitada e neste ponto, o objetivo é conhecer a ferramenta, instalar e aprender  a usar a mesma.
Este serviço é dividido em client e server.

Como root, fazer a instalação com o comando: 
aptitude install openssh-client openssh-server

o arquivo de configuração fica em:

/etc/ssh/sshd.config

Sempre no primeiro acesso ao host, o ssh apresenta a mensagem como abaixo, indicando que a autenticidade do destino não pode ser verificada até que você aceite (yes) a chave RSA. A partir deste ponto, sua conexão é então criptografada e protegida pelo ssh.


The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is 0d:5c:b7:6e:7c:d3:09:2f:0a:6b:8a:99:88:e4:2d:af.
Are you sure you want to continue connecting (yes/no)?
Note que  a chave acima só precisa ser aceita na primeira vez. Após isso, o arquivo com o host ficará gravado em /home/usuario/.ssh/know_hosts e fará alerta quando eventualmente a configuração do host for alterada, como por exemplo, mudança da chave ou uma simples troca de placa de rede. Portanto, é imprescidível que ao utilizar o ssh e sempre que houver uma indicação de alteração, que se verifique os motivos para tal, impedindo assim de acessar um servidor cuja segurança esteja de fato comprometida.


Outras dicas e truques do ssh(/etc/ssh/sshd.config):
 
Altere a porta padrão do ssh. Assim sistemas de invasores automatizados terão menas chances contra seu servidor. Scanners de rede normalmente não procuram por portas altas, uma sugestão seria colocar este serviço em uma porta 2222 por exemplo:


Port 2222


Use somente o Protocol versão 2. A versão 1 é mais susceptível à problemas de segurança:
Protocol 2


Permita login via ssh somente para alguns usuários e nunca para o root. Acreditar que seu ssh nunca será explorado é o mesmo que ter segurança por obscuridade (isto nunca vai acontecer, ou, isto nunca aconteceu comigo, ainda, não tem nada para ser roubado aqui).


PermitRootLogin no
AllowUsers  fafanet
denyUsers ALL



Você pode usar o TCP WRAPPERS para colocar uma camada a mais de segurança, por exemplo liberando somente alguns hosts para fazer o acesso. Perceba que esta pode não ser uma boa solução se estes hosts usarem ip's dinãmicos.
No arquivo de configuração do tcp wrappers /etc/hosts.allow insira ou altere o serviço ssh para liberar aos ips desejados :
sshd:

A exemplo da regra acima, pode ser utilizado o seu firewall para permitir conexões somente de determinados hosts. Veja como é seu firewall e insira as regras pertinentes. Pelo iptables ficaria assim:

Liberando o acesso :
# iptables -A INPUT -p tcp -m state --state NEW --source 200.220.222.222--dport 22 -j ACCEPT
Bloqueando para os demais: 
# iptables -A INPUT -p tcp --dport 22 -j DROP 



Dicas de uso do ssh:


Indicando o usuário para o acesso:
ssh -l user hostname   ou ssh user@hostname


Indicando a porta para o acesso:

ssh -p 2222 user@hostname


O ssh também permite a execução de comandos remotamente:
ssh user@hostname "ls -C /etc"



Note que se você deseja editar o arquivo remotamente, precisará especificar a flag -t para que o ssh aloque um pseudo terminal, desta forma:

ssh -t user@hostname "vi /etc/inetd.conf


Você pode executar o comando remotamente e obter o resultado na sua máquina local como neste exemplo:

ssh user@hostname "ls /bin" | grep -i rm > arq



Referências:
man ssh
http://www.dicas-l.com.br/arquivo/dicas_avancadas_de_seguranca_para_ssh.php
http://www.guiadohardware.net/tutoriais/dominando-ssh/pagina2.html
Related Posts with Thumbnails

CC

Licença Creative Commons
This obra by blog.silva.eti.br is licensed under a Creative Commons Atribuição-Uso Não-Comercial-Compatilhamento pela mesma licença License.