terça-feira, outubro 03, 2006

Sincronizando servidores com rsync

Precisa sincronizar um servidor com velocidade, e precisão?
Use o rsync! Ele se utiliza de um algoritmo que sincroniza apenas as diferenças dos arquivos. Com isso o ganho de velocidade é tremendo.
E o uso deste comando é facílimo. A sintaxe é assim:

rsync -av --rsh="ssh -l user" user@endereço_ip:/backup /home/local/
Onde:
  • user - usuário utilizado para conectar o ssh
  • endereço_ip - o ip do servidor para conectar
  • /backup - pasta a ser sincronizado
  • /home/local - pasta que receberá os arquivos
O comando em sua sintaxe normal ficaria assim:

#para mandar arquivos para um servidor remoto
rsync -av --rsh="ssh -l jose" /home/jose jose@192.168.0.1:/backup

#para recuperar arquivos de um servidor remoto
rsync -av --rsh="ssh -l jose" jose@192.168.0.1:/backup /home/jose
Para mais informações podem checar estes sites:




sábado, setembro 16, 2006

IE + Flash no Linux

Este é para novatos em Linux que tem dificuldade em usar a internet de forma segura e rápida, via Firefox. Estes infelizes podem tentar este script que instala o IE6 + o Flash 9 no Linux. Eu sinceramente não vejo vantagens, mais para quem quer... ai vai: IEs4Linux.

quarta-feira, setembro 06, 2006

Acelerando a inicialização do seu Linux via BIOS

Veja o artigo completo em:

Mais sobre o assunto em:

CDs Linux Grátis

Quer um CD do Linux, entregue na faixa, visite The Free Linux Disk Project. Este pessoal tem uma organização que se compromete a mandar CDs de Linux na faixa para quem pede. mas atenção. Eles processam um monte de requisições por dia, e como sobrevivem de patrocinadores e doaços, nem sempre o Cd que você quer pode estar disponível naquela hora.
E se você gostar ajude-os. Isto só fará com que o nossos sistema operacional favorito seja ainda mais disseminado.

Artigo sobre Linux

A Forbes fez um artigo bem interessante sobre o Linux no momento atual. Vejam em Forbes.

segunda-feira, agosto 28, 2006

Flash 9 no Linux

Enquanto não lançam o prometido Adobe Flash Player 9 para Linux, eu encontrei no digg um link para uma "malandragem" na versão 7. Não serve para todos os sites, mas o autor do artigo diz que funciona para o myspace, por exemplo.

Vejam como fazer:

  • Faça uma cópia de segurança do arquivo~/.mozilla/firefox/pluginreg.dat:

    cp ~/.mozilla/firefox/pluginreg.dat ~/.mozilla/firefox/pluginreg.dat.bak

  • Edit that file:

    nano ~/.mozilla/firefox/pluginreg.dat

  • Replace the lines that say Shockwave Flash 7.0 r63:$ para Shockwave Flash 9.0 r63:$

O original fica em Xubuntu mas ele dá o crédito para forrestcupp.

Existe também um howto que ensina a instalar o flash 9 usando o wine.

Linux Cristão

Lançado um Linux "Cristão", chamado Ichthux. Diversos utilitários para consulta apologética, a Bíblia em 10 línguas incluindo o hebreu. O Ichthux conta ainda com filtro de conteúdo web para evitar sites impróprios, além de ícones e temas baseados na cultura cristã e até emoticons personalizados para programas de chat.

Ela é baseada no Kubuntu "Dapper Drake".

Links para maiores informações:

quinta-feira, agosto 24, 2006

Para quem usa o Windows XP e já está cansado daquele visual azul horrível, pode usar o Windows Vista Transformation Pack v5! Não chega a ser elegante como o MacOSX, nem funcional e bonito como XGL no Linux.


Notícia extraída de jcxp.

quarta-feira, agosto 23, 2006

10 progs legais para o seu Ubuntu

Saiu uma lista legal de programas para serem usados com o Ubuntu Linux, no site lifehacker. Eu selecionei alguns deles.

  1. Automatix - além de instalar todos os codecs necessários para ter o seu Ubuntu ocando arquivos de mídia variado, ele instalra um bocado de programas úteis, como Google Earth e Picasa.
  2. Beagle - tem a função do locate, mas é um pouco mais abrangente. É o Spoligth do Linux. Para instalar use:
    apt-get install beagle

  3. Google Deskbar Apps - uma forma fácil de usar o beagle e outros search engines.
    apt-get install deskbar-applet
  4. VLC - um player de mídia leve e com plugin para o Mozilla.
    apt-get install vlc
    Instalando o VLC-plugin para Firefox
  5. Check Gmail - é uma versão Linux do Gmail Notifier
    apt-get install checkgmail
  6. Escrita NTFS - para quem não vive sem o WindowsXP, seja para uso, seja para jogar
Uma lista de softwares essenciais bem bacana também é a do Mark Pilgrim, ex-usuário Apple. Você pode ver esta lista aqui.

sexta-feira, agosto 11, 2006

Lidando com pacotes rpm

Algo que todo administrado linux/unix tem que fazer é lidar com pacotes. Dependendo de qual distribuição pode ser: deb, rpm, tgz...
Isto leva a duas questões:

  1. como lidar com o pacote.?
  2. como trabalhar com a ferramenta de instalação?
Aqui abordarei um pouco sobre os pacotes rpm. São usados nas distros que tem a raiz no Linux RedHat. Em primeiro lugar, vamos falar para lidar com os pacotes diretamente, via ferramentas rpm.
Quando você tem um pacote src.rpm, é necessário (re)compilar o pacote. O comando ficaria assim:
rpmbuild --rebuild --with fdr50 pacote_rpm-versao.src.rpm
Veja um exemplo, se quisermos instalar o qmail-toaster (instalação facilitada do qmail criado pelo pessoal que mantem os pacotes toaster) no fedora core 5:
rpmbuild --rebuild --with fdr50 daemontools-toaster-0.76-1.3.1.src.rpm
Este comando criaria um pacote daemontools-toaster-0.76-1.3.1.i386.rpm, no seguinte folder: /usr/src/redhat/RPMS/i386.
Outra questão que temos, é como instalar, desistalar e consultar pacotes rpm. aqui vai uma colinha dos comandos:












rpm -ivh pacote.rpmInstala pacote rpm
rpm -Uvh pacote.rpmAtualiza pacote rpm (não sobrescreve, ou deixa um bkp dos arquivos conf)
rpm -e pacote.rpmDesinstala pacote rpm
rpm -qa pacote.rpmLista pacotes instalados
rpm -qi pacote.rpmInformações sobre o pacote
rpm -ql pacote.rpmLista os arquivos do pacote
especiais
rpm -ivh --replacefiles pacote.rpmRe-instala pacote rpm, sobrescrevendo os arquivos
rpm -Uvh --oldpackages pacote.rpmAtualiza por um pacote mais antigo
rpm -Vf /caminho/arquivoVerifica a qual pacote pertence o arquivo
rpm -ivh --test pacote.rpmTesta a instalação, para ver se não tem problema de dependência

Outra forma que temos para lidar com instalação de programas nos forks do RedHat é lidando com o yum (instalado por padrão). A grande vantagem, que você não precisa ficar pensando em questões de dependência de pacotes. A sintaxe dele é:

yum install programa
As opções mais usadas para o yum são: install, search, remove, list, check-update, update, provide, resolvedep.

Fonte de consulta:
Trabalhando com RPM - por Eduardo Vieira Mendes
Pacotes RPM (Infowester) - Emerson Alecrim

quinta-feira, agosto 03, 2006

Código JavaScript pode driblar segurança de firewall

São Paulo, 03 de agosto de 2006 – Pesquisadores da empresa SPI
Dynamics, nos Estados Unidos, descobriram que determinado código em
JavaScript, quando inserido em um site, pode “driblar” firewalls,
programa que filtra mensagens suspeitas que circulam pela Web. A
informação é do site Cnet. 

Segundo os especialistas, quando o
internauta visita uma página na Internet, tal código primeiramente
analisa a rede local (doméstica ou corporativa) onde a máquina está
conectada, bem como outros equipamentos plugados nesta mesma rede.
Feito isso, ele passa a enviar comandos para travar ou controlar esses
dispositivos.

De acordo com a SPI Dynamics, esse código em
JavaScript pode, teoricamente, ser também inserido em um site de
terceiros, em uma mensagem de um fórum de discussões, por exemplo. Tal
recurso leva o nome de “cross-site scripting” e pode até mesmo atingir
internautas que naveguem por páginas confiáveis.

“Anteriormente,
tal técnica era considerada de baixo nível de risco. Mas, quando essa
modalidade de ataque em JavaScript se uniu com o ‘cross-site
scripting’, ambas mostraram um potencial devastador”, declarou Billy
Hoffman, engenheiro da SPI Dynamics. “Não é mais possível deixar essas
vulnerabilidades ‘na fila’, esperando uma futura análise”.

O
especialista em segurança Fyodor Vaskovich declarou que o uso dessa
técnica criou um dilema para os desenvolvedores de páginas. “Eles podem
optar por bloquear as funcionalidades em JavaScript para o navegador.
No entanto, isso desabilitaria um número considerável de sites”.

Os pesquisadores da SPI Dynamics contruíram ainda um uma página para demonstração da técnica. Ela pode rastrear uma rede local por meio de servidores
de Internet que estejam rodando nos PCs conectados a elas. O site
permite que seus visitantes visualizem os endereços dos computadores
que rodam em tais servidores, mas, evidentemente, impedem a execução de
algum código malicioso.

Originalmente publicado por WNews

sexta-feira, julho 28, 2006

Renomeando arquivos no console

Estou atualizando a galeria de fotos do site e me deparei com um problema. Várias fotos do Windows acabando vindo com espaços e caracteres inválidos. Também queria uma forma de deixar todos os caracteres minúsculos.
Acabei encontando as seguintes dicas:

for foo in *; do mv $foo `echo $foo | tr /[A-Z]/ /[a-z]/` ; done

fonte: www.vivaolinux.com.br

Eu acabei adaptando para poder criar um script que faz tudo de uma vez só no diretório em que é rodado.


#!/bin/bash
for foo in *; do mv $foo `echo $foo | tr /[A-Z]/ /[a-z]/` ; done
for foo in *; do mv $foo `echo $foo | tr " " "_"` ; done

Múltiplos usos do Comando Find

Quem nunca precisou editar algo em particular, em vários arquivos de uma só vez. O Nagios por exemplo, se for mudado o nome de um host no arquivos hosts.cfg, este nome deve ser mudado também no hostroups.cfg e no services.cfg. Ou então qer trocar uma váriavel em vários arquivos de um mesmo programa.


Para isto temos o comando find. A melhor utilização para mim descobri já fazem uns dois anos do site Dicas-L, do pessoal envolvido com a Unicamp.


O comando para isto é:



find ./ -maxdepth 1 -name '*.php' | xargs perl -i.bkp -p -e 's/isso/aquilo/ig;'


O isso você troca pela variável que você quer trocar, e o aquilo pelo valor a ser escrito. A opção -maxdepth 1 faz com que a substituição aconteca somente no diretório onde o comando foi executado. Se quiser que ele rode recursivamente, basta tirar esta parte do comando. Após o comando perl, a opção -i.bkp cria um backup de todo arquivo modificado.



Se você quiser mais explicações sobre este uso do find consulte no site do Dicas-L (find).



Outro uso excelente que podemos fazer é para achar aquivos “sem dono“.


find / -nouser -print


E se você quiser apagar estes arquivos pode usar o comando assim:


find / -nouser -print | xargs rm

Mais uma do comando Find

Que procurar um texto entre vários arquivos de um diretório? use este comando:


find . -type f -exec grep "antes" {} \; -print


Fonte: Dicas-L

Precisa ativar o snmp do seu Linux?

Novamente estava precisando ativar o snmp dos meus boxs Linux, pois meu chefe vive fuçando e acabando com o meu serviço, dai resolvi deixar este post para facilitar a minha vida e de quem precisar ativar o snmp no Linux.

A instalação em si é muito simples, o complicado é o snmp.conf.
Para instalar em máquinas que utilizem o apt, admitindo que o seus sources.conf está OK, o comando é:


sudo apt-get install snmp snmpd (Ubuntu)


ou


sudo apt-get install net-snmp net-snmp-utils (Mandriva, Conectiva)


Se você tem alguma dúvida do nome do pacote utiliza este comando para achar o nome correto:


apt-cache search snmp

Este comando serve para procurar qualquer pacote do qual você não lembra o nome.


No Fedora Core 5, que por default utiliza o yum o comandofica assim:


yum search snmp (para procurar o pacote)
yum install net-snmp net-snmp-utils

Obs.: O apt-get tem uma performance muito maior que o yum, não se preocupem com a demora do yum, é assim mesmo.

Após a instalação, é só configurar o snmp.conf, como no exemplo abaixo:



#Definição da community e das rede que poderão acessar estas informações
## sec.name source community
## ======== ====== =========
com2sec local localhost geekguy
com2sec network_1 192.168.0.0/24 geekguy
com2sec network_2 192.168.1.0/24 geekguy
#Quem pode acessar e versão do snmp utilizada
## Access.group.name sec.model sec.name
## ================= ========= ========
group MyROGroup v2c local
group MyROGroup v2c network_1
group MyROGroup v2c network_2
#MIBs Disponíveis
## MIB.view.name incl/excl MIB.subtree mask
## ============== ========= =========== ====
view all-mibs included .1 80
# Define política de segurança
## MIB
## group.name context sec.model sec.level prefix read write notif
## ========== ======= ========= ========= ====== ==== ===== =====
access MyROGroup “” v2c noauth exact all-mibs none none

syslocation onde_esta_o_BOX # Se você quiser
syscontact Luciano Santos - john@doe.com # O seu email, tb se vc quiser

proc httpd 200 1 #verificar o processo, com o limite em 200, por exemplo
disk / 10000 #verificar o HD, com um mínimo de 10MB
load 12 14 14 #carga da CPU

#exec .1.3.6.1.4.1.2021.50 /bin/bash /usr/bin/sensors
#exec .1.3.6.1.4.1.2021.51 ps /bin/ps
#exec .1.3.6.1.4.1.2021.52 top /usr/local/bin/top
#exec .1.3.6.1.4.1.2021.53 mailq /usr/bin/mailq



Eu sugiro definir uma regrinha no iptables para permitir o acesso a porta 161 a somente as redes descritas acima no snmp.conf.

Bem é isso! Até mais pessoal.

Comando sudo

Um dos comandos mais úteis do Linux é o comando sudo.

Com ele é possível rodar programas como root sem comprometer a segurança do sistema. Assim, é possível, por exemplo, que um administrador do sistema não precisar ficar logando como root toda hora para alterar coisas importantes do sistemas. Outra aplicação é permitir que usuários sem privilégios rodem scripts, sem precisar ficar alterando estes scripts para permissão a todos os usuários.

Um exemplo de aplicação, no meu caso é rodar um script php que cadastra, remove e consulta meus usuários de email. Assim, o script php fica associado ao apache, que roda o web server, mas o comando roda um shell script que está associado ao vpopmail. Assim a segurança do servidor permanece, pois o apache só pode roda o script do vpopmail, via localhost, e somente este comando como root, mais nenhum.

Para o sudo funcionar se faz necessário editar o arquivo sudoers. Isto pode ser feito com o comando visudo. Este comando deve ser rodado como root. Após isto, abre um arquivo conf como este:



# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# Runas alias specification
# User privilege specification
root ALL=(ALL) ALL # Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL # Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL # Samples
# johndoe ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
# %users localhost = NOPASSWD: /sbin/shutdown -h now


Como podemos ver, você pode definir o usuário (johndoe), ou um grupo (adicionando %, como em %users), o IP acompanhado pelo sinal de = e podendo ser com senha (do usuário) ou não, para a excecução do comando. Em outro momento vou passar uma explicação mais profunda do comando e os operados envolvidos no arquivo.

Alguns bons textos sobre o comando sudo:

LinuxSecurity

Courtesan example

sudo manual

Antivírus nos Sistemas *nix Like

Um leitor da Linha Defensiva fez uma pergunta interessante: “até hoje não encontrei ninguém que use antivírus em computadores com Linux. Vocês sabem dizer o porquê disso? Não é necessário realmente? E em outros sistemas operacionais, como FreeBSD, é necessário?”

A resposta mais curta é que o número de pragas existentes para esses sistemas não justificam a presença de um software antivírus no computador. Vírus, cavalos-de-tróia, adwares e spywares são, atualmente, problemas que afetam somente o Windows de forma significativa. Existem alguns motivos para isso — listamos o que acreditamos serem os três principais:

  1. O Windows é o sistema dominante e, sendo assim, o mais visado
  2. Plataformas Unix têm um sistema de permissão mais robusto que dificulta a ação de pragas digitais
  3. O usuário de Windows é, em geral, mais leigo que o usuário de Linux e portanto mais vulnerável aos ataques digitais

Ao invés de escolher apenas uma das afirmações acima, é mais correto afirmar que todos estes três pontos, de alguma forma, influenciam o atual cenário que envolve a criação de pragas digitais.

A influência do número de máquinas que rodam o sistema é às vezes contestada, mas válida na opinião de muitos. Servidores Linux são alvos mais comuns de vírus/backdoors do que desktops Linux, o oposto do que ocorre com o sistema da Microsoft. Como servidores Linux são comuns, tornam-se também alvos comuns.

A maioria dos usuários de Windows usa o sistema a partir de uma conta administrativa ao invés de uma conta limitada. O Windows XP utiliza por padrão uma conta de administrador, um erro da Microsoft que a empresa não quer repetir no Windows Vista. Programas mais antigos são dificilmente executados corretamente sem permissões administrativas, o que diminui ainda mais o incentivo do usuário em utilizar uma conta limitada e do desenvolvedor em tornar o software compatível com contas desse tipo. No Linux, é regra que os softwares devem funcionar perfeitamente em contas limitadas, que dificultam (mas não impossibilitam) a instalação de pragas digitais.

Usuários de Linux são geralmente mais experientes do que usuários de Windows, pois até mesmo fizeram uma escolha consciente sobre o seu sistema operacional. Muitos usuários de Windows sequer sabem exatamente o que é um sistema operacional. O usuário de Linux, portanto, é geralmente mais técnico do que o usuário comum do Windows e assim saberia diferenciar links maliciosos mais facilmente, o que significaria que e-mails falsos que tentam enganar usuários de Linux têm uma taxa menor de “retorno” para o criador da praga.

Vemos notícias de que alguns vírus são criados para o Linux, mas nenhum deles chega a causar qualquer estrago. É muito difícil que um “vírus de Linux” se espalhe, pois o número de máquinas rodando Linux é pequeno e isso diminui as chances de que o vírus encontre um sistema compatível.

Usuários de Linux, BSD e Mac não usam antivírus pelo simples motivo de que o problema de pragas digitais é praticamente inexistente nessas plataformas. O mesmo vale para outros sistemas menos conhecidos.

Não é possível afirmar nem negar que essa (quase) imunidade iria continuar se um dia esses sistemas obtiverem a quantidade de usuários que hoje o Windows tem, mas isso não deve ocorrer tão cedo.

Renomenando arquivos no console

Estou atualizando a galeria de fotos do site e me deparei com um problema. Várias fotos do Windows acabando vindo com espaços e caracteres inválidos. Também queria uma forma de deixar todos os caracteres minúsculos. Acabei encontando as seguintes dicas:
 for foo in *; do mv $foo `echo $foo | tr /[A-Z]/ /[a-z]/` ; done

fonte: www.vivaolinux.com.br

Eu acabei adaptando para poder criar um script que faz tudo de uma vez só no diretório em que é rodado.
#!/bin/bash
for foo in *; do mv $foo `echo $foo | tr /[A-Z]/ /[a-z]/` ; done
for foo in *; do mv $foo `echo $foo | tr " " "_"` ; done