Ir para o conteúdo
ou

Software livre Brasil

Tela cheia Sugerir um artigo
 Feed RSS

Blogosfera do PSL-Ba

16 de Junho de 2009, 0:00 , por Software Livre Brasil - | 2 pessoas seguindo este artigo.

O Projeto Software Livre Bahia (PSL-BA) é um movimento aberto que busca, através da força cooperativa, disseminar na esfera estadual os ideais de liberdade difundidos pela Fundação Software Livre (FSF), possibilitando assim a democratização do acesso a informação, através dos recursos oferecidos pelo Software Livre. Esta busca tem seus alicerces fundados na colaboração de todos, formando um movimento sinérgico que converge na efetivação dos ideais de Liberdade, Igualdade, Cooperação e Fraternidade.

O Projeto Software Live Bahia é formado pela articulação de indivíduos que atuam em instituições publicas e privadas, empresas, governos ou ONGs, e demais setores da sociedade. Além disso o projeto não é subordinado a qualquer entidade ou grupo social, e não estabelece nenhuma hierarquia formal na sua estrutura interna.


Lucas Almeida Rocha: London’s Best Coffees

29 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Monmouth Coffee by Erik Hartberg (CC-BY-NC-ND)

As a good Brazilian, I love good coffee. Here’s a short list of my favourite coffee shops in London. Most of them are in central London because they are close to litl’s office in Tottenham Court Road, where I worked for more than two years.

Monmouth. I usually go to their Covent Garden branch at Monmouth Street. Small, cosy, and earthy. They have two other branches. They import and provide coffee for restaurants too. For instance, my favourite pizza place in London serves Monmouth’s coffee. Perfect combination!

Milk Bar. Tiny coffee shop at Bateman street. Young and indie atmosphere. They expose art work from local artists in their shop, pretty cool.

Tapped & Packed. They are at Rathbone Place, number 26. Keep the street number in mind because the name of the shop is not shown anywhere—as far as I could see. They serve the tallest Victoria sponge I’ve ever seen!

Sacred. This is a little coffee place inside the Westfield shopping centre in Shepherds Bush. They have the creamiest flat white. Delicious!

If you have any other suggestions, please post them as comments. I’m definitely looking forward to hearing about other good coffee places in the city!



Gabriel "Pnordico" Menezes: Estamos no FISL!

29 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda


BannerFisl

Infelizmente “eu” não estou, mas o GentooBR está presente no FISL 12!

E ganhamos um banner de nossa autoria para o artwork :P (Ano que vem sai melhor!)



Leonardo Couto Conrado: Google Social Networking

28 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários aindaGoogle já iniciou o desenvolvimento do aplicativo de rede social que irá competir com o Facebook; Ele se chama: Google+. Muito desafiador... Tarefa árdua essa eim? Será possivel colocar um aplicativo para disputar com o maior serviço de rede social do mundo, o Facebook? De qualquer forma estou curioso para conhecer o Google+.





The Google+ project: real life sharing, rethought for the web.
plus.google.com




Alexandro Silva: LulzSec, Anonimous, Operação AntiSec…2011 bombando!!

21 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

LuLzSec
O Anchises postou em seu excelente blog um comentário bastante sóbrio sobre o LuLzSec. Segue um techo:

Várias empresas e profissionais de segurança de todo o mundo estão em alerta desde que os grupos hacktivistas Anonymous e LulzSec lançaram a “Operation Anti-Security” (em português, “Operação Anti-Segurança”), ou simplesmente, AntiSec.

O grupo Lulz Security (conhecido principalmente como LulzSec) surgiu recentemente, como um dissidência do Anonymous. Enquanto o Anonymous tem focado suas operações recentes principalmente em ataques e protestos com motivação política, o LulzSec tem realizado ataques com objetivo de expor a fragilidade de várias empresas, como a Sony, um de seus alvos prediletos e que deu destaque ao grupo. Após um breve rumor surgido na semana passada de que os dois grupos estariam em guerra, ambos soltaram um comunicado em conjunto neste final de semana (no dia 19/06, mais precisamente) avisando de que juntaram forças e deram início a uma nova campanha contra governos, bancos e grandes empresas de todo o mundo, chamada “Operation Anti-Security”.

Recomendo muito a leitura!

Leia mais em AnchisesLandia



JavaBahia: Mês do java

20 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda
java7.jpg

Além de uma linguagem de programação, Java é a plataforma de desenvolvimento mais utilizada em todo o mundo. Muitos softwares vem sendo criados com essa tecnologia. O Java está presente na grande maioria da vida das pessoas na forma de equipamento eletrônicos como blue-ray, televisão digital, celulares, computadores, além da internet. O mês do java é evento realizado em todos os locais do mundo pelas comunidades com o intuito de estar falando sobre a tecnologia. Neste ano estará falando sobre nova versão, o java 7, com a presença do Bruno Souza, o javaman, e Roger Brinkley, um dos lideres da comunidade Java ME no mundo.

Data: 16 de julho (sábado)
Horário: 9:00
Vagas limitadas
Local: FIB
Entrada: Gratuita

Obs: Haverá tradução no local para isso é necessário trazer o equipamento com o fone de ouvido (rádio, celular etc.).
JavaBahia  logogrupo.png




Gabriel "Pnordico" Menezes: DWA 125 – Ralink RT2870 – Linux

14 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Eis que pro meu desespero “descubro” que o driver oferecido pela DLink ( DRIVER_LINUX_DWA-125_STA_v2.1.2.0.tar.gz ) e/ou pela Ralink  ( 2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2 ) já não compilam nas versões recentes do kernel (incompatibilidades, referências a funções descontinuadas, etc).

Eis que para minha felicidade “descubro” [1] que as versões mais recentes do kernel possuem suporte nativo (ainda que experimental) que até então tem se comportado muito bem. Siga o caminho:

Device Drivers —>
Staging Drivers —>
<*> Ralink 2870/3070 wireless support

Compile e seja feliz.

É necessário possuir o firmware disponível em http://www.ralinktech.com/support.php?s=2

Mais especificamente [Firmware RT28XX/RT30XX USB series (RT2870/RT2770/RT3572/RT3070)] (Preencha qualquer nome e email)

Curioso é que o módulo do kernel buscou por rt3070.bin enquanto o arquivo fornece rt2870.bin. Um link simbólico resolveu o problema.

 

Sem mais.



Lucas Almeida Rocha: Joining Mozilla

14 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

I’m really excited to announce that I’m joining the Mozilla folks to work on Firefox Mobile! There are several reasons why I’m excited about it, here are a few of them.

Big Challenges. All major mobile platforms have their own built-in web browser. Being a third-party browser in the mobile space means that you have to offer an extremely compelling product in order to convince users to switch. And I do believe Mozilla can make it happen. Allowing users to seamlessly go from desktop to mobile without interruption is a major step on the right direction. I’m sure more compelling features will come out.

Space for innovation. The web browsing experience on mobile devices carries much less legacy than on desktop. This means there are less barriers and constraints for innovation and a lot of space for experimentation. For instance, tablets bring a whole world of possibilities in terms of new features and interaction models for larger touchscreens.

Public benefit, Open source. It feels good to work for a public benefit organization that is fully committed to improving the web. Mozilla is also a huge open source community. I’m sure it will be a great opportunity to meet new people and make new friends. As a long-time open source contributor, I’m eager to learn more about the Mozilla community and hopefully be able to contribute in a meaningful way.

My first day at Mozilla will only be in July as I want to take a well-deserved break between jobs to clear my head a bit before starting. It will be a good to spend more time with my girls, travel a bit, and maybe work on some of my pet projects.

Exciting times ahead!



Alexandro Silva: Ossec HIDS – Bloqueando o ZmEu bot e outros Web scanners

13 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

&lt;a href=&quot;http://blog.alexos.com.br/?p=2650&amp;amp;lang=pt-br&quot; title=&quot;Ossec HIDS - Bloqueando o ZmEu bot e outros Web scanners&quot;&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;http://blog.alexos.com.br/wp-content/uploads/2011/06/zmeu.jpg&quot;&gt;&lt;img class=&quot;alignleft size-thumbnail wp-image-2661&quot; title=&quot;zmeu&quot; src=&quot;http://blog.alexos.com.br/wp-content/uploads/2011/06/zmeu-150x150.jpg&quot; height=&quot;150&quot; alt=&quot;&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;A &lt;a href=&quot;http://www.pentestit.com/2010/01/15/list-free-web-application-scanners/&quot;&gt;enchurrada de Web scanners&lt;/a&gt; disponíveis na internet e o infeliz do &lt;a href=&quot;http://linux.m2osw.com/zmeu-attack&quot;&gt;ZmEu bot&lt;/a&gt; acabam tornando a vida dos nossos servidores Web um inferno.&lt;/p&gt; &lt;p&gt;Geralmente o Apache responde a estas tentativas com sucessivos error 400 ( Bad Request ). Para acabar com essa apurrinhação podemos bloqueá-las usando o &lt;a href=&quot;http://www.ossec.net/&quot;&gt;Ossec HIDS&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Exemplo de um log do ZmEu bot&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt; 82.145.xx.xx – – [13/Aug/2010:07:19:36 -0300] “GET /phpadmin/scripts/setup.php HTTP/1.1″ 404 192 “-” “ZmEu”&lt;br /&gt; 82.145.xx.xx – – [13/Aug/2010:07:19:35 -0300] “GET /typo3/phpmyadmin/scripts/setup.php HTTP/1.1″ 404 198 “-” “ZmEu”&lt;br /&gt; 82.145.xx.xx – – [13/Aug/2010:07:19:35 -0300] “GET /mysqladmin/scripts/setup.php HTTP/1.1″ 404 194 “-” “ZmEu”&lt;br /&gt; 82.145.xx.xx – – [13/Aug/2010:07:19:34 -0300] “GET /myadmin/scripts/setup.php HTTP/1.1″ 404 192 “-” “ZmEu”&lt;br /&gt; 82.145.xx.xx – – [13/Aug/2010:07:19:33 -0300] “GET /dbadmin/scripts/setup.php HTTP/1.1″ 404 191 “-” “ZmEu”&lt;br /&gt; 82.145.xx.xx – – [13/Aug/2010:07:19:33 -0300] “GET /admin/phpmyadmin/scripts/setup.php HTTP/1.1″ 404 196 “-” “ZmEu” &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Para isso adicione as linhas abaixo dentro da tag &lt;strong&gt;Active Response Config&lt;/strong&gt; localizada no arquivo &lt;em&gt;&lt;strong&gt;/var/ossec/etc/ossec.conf&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;div class=&quot;codecolorer-container xml geshi&quot; style=&quot;overflow: auto; white-space: nowrap;&quot;&gt; &lt;table&gt; &lt;tr&gt; &lt;td class=&quot;line-numbers&quot;&gt; &lt;div&gt;1&lt;br /&gt;2&lt;br /&gt;3&lt;br /&gt;4&lt;br /&gt;5&lt;br /&gt;6&lt;br /&gt;7&lt;br /&gt;8&lt;/div&gt; &lt;/td&gt; &lt;td&gt; &lt;div class=&quot;xml codecolorer&quot; style=&quot;white-space: nowrap;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;<!– Active response to block http scanning –&amp;gt;&lt;/span&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;active-response&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;         &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;command&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;route-null&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/command&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;         &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;location&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;local&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/location&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;    &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;<!– Multiple web server 400 error codes from same source IP –&amp;gt;&lt;/span&gt; &lt;br /&gt;         &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;rules_id&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;31151&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/rules_id&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;         &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;timeout&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;600&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/timeout&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;    &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/active-response&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;p&gt;A configuração acima executará o script route-null sempre que a regra 31151 em web_rules.xml for detectada bloqueando o atacante por 10 min ( 600s ), isto significa que ocorrendo vários erros 400 no log do Apache o ip de origem será bloqueado por 10 min.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Fonte:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://itscblog.tamu.edu/protecting-web-servers-with-ossec/&quot;&gt;ITSC Blog&lt;/a&gt;&lt;/p&gt; &lt;div&gt;&lt;h3&gt;See:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://blog.alexos.com.br/?p=2180&amp;amp;lang=pt-br&quot; class=&quot;crp_title&quot;&gt;Nessus Viewer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.alexos.com.br/?p=1644&amp;amp;lang=pt-br&quot; class=&quot;crp_title&quot;&gt;Beta-Testing: Ossec 2.4 Beta&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.alexos.com.br/?p=1345&amp;amp;lang=pt-br&quot; class=&quot;crp_title&quot;&gt;Habilitando o MSA ( submission ) no Postfix&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.alexos.com.br/?p=2157&amp;amp;lang=pt-br&quot; class=&quot;crp_title&quot;&gt; H3ll0 2k11&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.alexos.com.br/?p=1630&amp;amp;lang=pt-br&quot; class=&quot;crp_title&quot;&gt;Novidades FLISOL 2010 Salvador&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;



Lucas Almeida Rocha: Leaving litl

13 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

After three years at litl, it’s time for me to move on. Writing a blog post to announce that you’re leaving is always a bit tricky. In this case, it’s because the experience at litl was so rich in so many ways that to it’s hard to know where start from.

Back in the beginning of 2008, I had already decided to leave the Maemo team at Nokia and started looking for my next gig. I heard about litl for the first time from OpenedHand’s Matthew. He said Havoc was working on something pretty cool there. I had started conversations with a couple of prospective employers but I thought it would be cool to talk to Havoc and get to know a bit more about the company’s plans anyway. I honestly thought it was very unlikely that litl would be my next thing mostly because I was under the impression that they were only hiring in the US.

Fast forward several weeks, I accepted an offer and started working at litl—a few months in Helsinki waiting for my UK work permit then finally in London. And I was not alone, the whole Maemo UI framework and toolkit teams—Tommi, Xan, Johan and I—got hired at the same time! Interestingly, this was not a collective move in any way. We only found out about each other’s interest in litl once we started having our first interviews. It was funny to see the rumors that were founding a Maemo-focused company of some sort.

The first two years at litl were quite intense! Each of us would be working on something totally different each week or month—cache management, webcam, photo app, contacts app, sync protocol, web browser, core UI, plugin framework, etc. All this while we were still trying to finalize the design and interaction model for the product. We finally released the litl webbook, our cloud-based computer, in November 2009. This is, by the way, long before Google actually released Chrome OS.

litl’s team is just awesome, full of extremely talented and generous people—quite a few of them are well-known for their contributions to GNOME and other F/OSS projects. Throughout those years, the team gradually grew on all fronts with people coming from Amazon, Novell, Red Hat, OLPC, US startups, and many others.

I’d like to make a special mention of a few people with whom a worked more closely since I joined. First of all, it was a great pleasure to work with Johan B. and Tommi for almost 5 years, both at Nokia and litl. I learnt a lot with them. Secondly, working with Havoc was an awesome experience. He has this huge talent for solving complex problems besides being simply a nice guy. Last but not least, I loved working with Marco. He is, with no doubt, one of the most passionate developers I’ve ever met.

A lot has changed in the company since the release of webbook. litl is now starting to explore new areas and markets. I feel that I have now ended an important career cycle and it’s time to move on to something new. All in all, I can only thank everyone at litl for the great time I had!

What I’ll be doing next? I guess that’s a topic for my next post :-)



Rafael Gomes: Monitorando com Zabbix a impressora HP Color LaserJet CM1312 sem SNMP

13 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Após muito procurar na internet, principalmente no site da HP, por uma MIB de qualidade. Para que assim eu pudesse entender melhor os valores retornados no snmpwalk.

Sem sucesso. Perdi a paciência e fui para a ignorância! Criar um script pra obter o dado que preciso.

Essa impressora tem uma interface web, que mostra muitas informações, incluído o nível de tinta, que nesse caso é meu foco.

Mão a massa!

Estou usando o CentOS, mas os comandos não diferem muito para outras distribuições.

Primeiro vamos instalar o lynx:

# yum install lynx -y

Pronto! Agora verifique se sua pasta de scripts externos do zabbix está criada:

# ls /etc/zabbix/externalscripts

Caso não esteja, crie com esse comando:

# mkdir /etc/zabbix/externalscripts

Obs: Verifique no seu arquivo de configuração, se o caminho da pasta é esse mesmo:

# cat /etc/zabbix/zabbix_server.conf | grep "ExternalScripts="

Após criado a pasta, crie dentro dessa pasta o arquivo abaixo:

# vi obtem_nivel_tinta.sh

Com o seguinte conteúdo:

#!/bin/bash

## Removendo possível página

rm -f /tmp/pagina

## Baixando a página

/usr/bin/lynx -dump -accept_all_cookies “http://$1/hp/device/info_suppliesStatus.html?tab=Status&amp;menu=SupplyStatus” > /tmp/pagina

## Buscando informação desejada

cat /tmp/pagina | grep “Cartucho $2″ -A 1 | grep % | cut -d” ” -f10 | sed “s/\%//g”

## Removendo página

rm -f /tmp/pagina

Agora modifique a permissão do arquivo:

# chmod +x obtem_nivel_tinta.sh

Pronto, agora efetue seu login no Zabbix e crie um host com o ip da sua impressora e nele um novo item de acordo com a imagem abaixo:

Salve o item, depois efetue o clone, mude o parâmetro Preto para Ciano, depois faça o mesmo com Magenta e depois Amarelo.

Obs: Perceba que esse comando é sensível a case, não esqueça que a primeira letra do parâmetro é MAIÚSCULA.

Pronto! Perceba que com esse script é possível obter QUALQUER informação da interface web, isso com algumas modificações simples.



Rafael Gomes: Seu Zabbix poderá se recusar a iniciar

12 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Isso mesmo! Essa é uma das melhorias que virá em sua versão 1.8.6, mas não se preocupe. Isso apenas acontecerá em arquivos de configuração que tenham erro de grafia.

Agora você deve estar se perguntando: “Espera um minuto, isso já não deveria acontecer?” Até a atual versão o Zabbix ignorava os erros e utilizava os valores default para essa configuração.

Essa nova versão será um “divisor de águas” para esses erros de sintaxe.

Então, se você atualizar o Zabbix e ele não iniciar por algum motivo, verifique com cuidado suas configurações, é possível que seja essa a razão.

Fonte : Zabbix Blog



Aurelio A. Heckert: Performance goes up like a rocket with BC

11 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

I had presumed but i never had thought how much the performance can grow when giving some logic from BASH to BC. Ok... We all know, BASH is some of the slowest languages in the world, but BASH scripts that hard work with math can be as fast as other languages if we let some logic to the BC, an arbitrary precision numeric processing language.

When i started to work with the XPM Image script (my new pet project) i realized that BASH is more slow then i think, but i also realized that i can give to BC much more then only some simple math expressions to compute. In BC i can define variables, set flux control, functions... Well thats a real programming language and i'm underusing it.

In a small test i had the confirmation: BC with inside loops is much faster than BASH loops with BC inside. The question is: "How much?" ... Taking advantage i decide to test how much the verbose hinders the performance. So i did this change on the pixel matrix generator loop:

echo 'A: Loops in bash + With verbose code'
time (
  helix='|/-\'
  for y in $( seq 0 $(($h-1)) ); do
    echo -ne "Line $y   ${helix:$(($y%4)):1} \r" >&2
    echo -n '"'
    for x in $( seq 0 $(($w-1)) ); do
      echo "
        $bc_pal_func
        $bc_round_func
        define f(x,y,w,h) { $func }
        # calc the position on the pallete for the current pixel:
        p = round( 255 * f($x,$y,$w,$h) );
        num_to_pal(p)" | bc -l
    done
    echo -n '"'
    test $y -lt $(($h-1)) && echo ','
  done > /tmp/pix-matrix-1
  echo "Done.                  " >&2
)

echo 'B: Loops in bash + Without verbose code'
time (
  for y in $( seq 0 $(($h-1)) ); do
    echo -n '"'
    for x in $( seq 0 $(($w-1)) ); do
      echo "
        $bc_pal_func
        $bc_round_func
        define f(x,y,w,h) { $func }
        # calc the position on the pallete for the current pixel:
        p = round( 255 * f($x,$y,$w,$h) );
        num_to_pal(p)" | bc -l
    done
    echo -n '"'
    test $y -lt $(($h-1)) && echo ','
  done > /tmp/pix-matrix-2
)

echo 'C: Loops in bc + With verbose code'
time (
  export BC_LINE_LENGTH=$(( $w * 2 + 5 ))
  echo "
    $bc_pal_func
    $bc_round_func
    define f(x,y,w,h) { $func }
    helix_pos = 0;
    define void verbose(line) {
      print \"Line \",y,\"   \"
      if ( helix_pos == 0 ) print \"|\" \
      else if ( helix_pos == 1 ) print \"/\" \
      else if ( helix_pos == 2 ) print \"-\" \
      else {
        print \"\\\\\\\\\";
        helix_pos = -1;
      }
      helix_pos += 1;
      print \"   \\n\";
    }
    for ( y=0; y<$h; y++ ) {
      verbose(y)
      print \"\\q\"
      for ( x=0; x<$w; x++ ) {
        # calc the position on the pallete for the current pixel:
        p = round( 255 * f(x,y,$w,$h) );
        num_to_pal(p)
      }
      print \"\\q\"
      if ( y < $(($h-1)) ) print \",\"
      print \"\\n\"
    }" | bc -l |
    while read line; do
      test "${line:0:4}" = "Line" \
      && echo -en "  $line     \r" >&2 \
      || echo "$line"
    done > /tmp/pix-matrix-3
  echo "Done.                    " >&2
)

echo 'D: Loops in bc + Without verbose code'
time (
  export BC_LINE_LENGTH=$(( $w * 2 + 5 ))
  echo "
    $bc_pal_func
    $bc_round_func
    define f(x,y,w,h) { $func }
    for ( y=0; y<$h; y++ ) {
      print \"\\q\"
      for ( x=0; x<$w; x++ ) {
        # calc the position on the pallete for the current pixel:
        p = round( 255 * f(x,y,$w,$h) );
        num_to_pal(p)
      }
      print \"\\q\"
      if ( y < $(($h-1)) ) print \",\\n\"
    }" | bc -l > /tmp/pix-matrix-4
)

As you see, there is 4 matrix generators testing loops inside x outside BC, and with x without verbose code. Each block will be tested with the time command. Then i run it to generates two images one with 200x200 pixels and other with 20x20 pixels. See the results:

Sequence 1 - run ./image 200 200

A: Loops in bash + With verbose code
Done.                  

real    4m55.433s
user    4m36.953s
sys     0m59.660s

B: Loops in bash + Without verbose code

real    4m45.620s
user    4m38.969s
sys     0m57.516s

C: Loops in bc + With verbose code
Done.                    

real    0m3.571s
user    0m3.172s
sys     0m0.148s

D: Loops in bc + Without verbose code

real    0m3.241s
user    0m2.896s
sys     0m0.212s
Seq1-A 4m55.433s
Seq1-B 4m45.620s
Seq1-C 0m3.571s
Seq1-D 0m3.241s

Sequence 2 - run ./image 20 20

A: Loops in bash + With verbose code
Done.                  

real    0m3.124s
user    0m2.822s
sys     0m0.626s

B: Loops in bash + Without verbose code

real    0m2.953s
user    0m2.868s
sys     0m0.576s

C: Loops in bc + With verbose code
Done.                    

real    0m0.073s
user    0m0.044s
sys     0m0.004s

D: Loops in bc + Without verbose code

real    0m0.070s
user    0m0.032s
sys     0m0.008s
Seq2-A 0m3.124s
Seq2-B 0m2.953s
Seq2-C 0m0.073s
Seq2-D 0m0.070s

What that means?

With simple calculus we can see that:

Comparing sequence 1 (image 200 200)

Seq1-A x Seq1-B:
Loops in bash, without verbose code is 3.32% faster then with verbose code

Seq1-C x Seq1-D:
Loops in bc, without verbose code is 9.24% faster then with verbose code

Seq1-A x Seq1-C:
Loops in bc runs 82.73 times faster than in bash

Comparing sequence 2 (image 20 20)

Seq2-A x Seq2-B:
Loops in bash, without verbose code is 5.41% faster then with verbose code

Seq2-C x Seq2-D:
Loops in bc, without verbose code is 4.11% faster then with verbose code

Seq2-A x Seq2-C:
Loops in bc runs 42.79 times faster than in bash

The bigest thing is: I must give all math related logic to BC and something more when it is possible. This praxis is not only times faster it is computationally less expensive, by that the [BASH code time] / [BC code time] grows when we try to generate the bigger image

The verbosity affects the performance, that makes a 200x200 image only 330 milliseconds slow, inside the BC code. The user can't feel that. Nice! :-)

Interested? Visit the XPM Image website.



Leonardo Couto Conrado: Trocar UID proprietário de arquivos e pastas em determinados diretórios por um outro UID para ser o novo proprietário desses arquivos encontrados

10 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários aindaPessoal o script abaixo foi feito para alterar o dono de arquivos e pastas em determinados diretório, o mesmo sairá recusivamente trocando o UID dos arquivos e pastas encontrados pelo UID antigo por um outro UID para que esse seja o novo dono do arquivo ou pasta.

OBS.: UID é uma identificação exclusiva de qualquer usuário no linux, para verificar o id de algum usuário digite:

# id nomeDoUsuário
root@feigt:/# id leonardoconrado
uid=1018(leonardoconrado) gid=100(users) groups=100(users)


Exemplo 01: Mudará o dono de todos arquivos e pastas do diretório / que tenham como UID 502 e irá "setar" ou configurar um novo UID dono desses arquivos que será UID 512 e irá também gerar um arquivo de log em /root/debug.txt, para que possamos ver se aconteceu alguma falha na tentativa de troca desses UIDs nos arquivos encontrados, ele também contará quantos arquivos foram encontrados com o velho UID, abaixo script:

#!/bin/bash

# Mudar UID proprietário de arquivos e pastas
# para um novo UID ser o proprietário em determinados
# diretórios
# Por Leonardo Couto Conrado
# Em 06.10.2011 

counter=0

# Encontre em / os arquivos que tenha UID igual à 502
for i in $( find / -uid 502 2>> /dev/zero ); do
        echo $i

# Mude o dono desses arquivos para UID 512
        chown -v 512 $i >> /root/debug.txt

# Conte cada arquivo encontrado
        counter=`echo "$counter+1"|bc`
done
echo $counter

Exemplo 02: Mudará o dono de todos arquivos e pastas do diretório /oracle que tenham como UID 501 e irá "setar" ou configurar um novo UID dono desses arquivos que será UID 511 e irá também gerar um arquivo de log em /root/debug.txt, para que possamos ver se aconteceu alguma falha na tentativa de troca desses UIDs nos arquivos encontrados, ele também contará quantos arquivos foram encontrados com o velho UID, abaixo script:

#!/bin/bash

# Mudar UID proprietário de arquivos e pastas
# para um novo UID ser o proprietário em determinados
# diretórios
# Por Leonardo Couto Conrado
# Em 06.10.2011 

counter=0

# Encontre em / os arquivos que tenha UID igual à 501
for i in $( find /oracle -uid 501 2>> /dev/zero ); do
        echo $i

# Mude o dono desses arquivos para UID 511
        chown -v 511 $i >> /root/debug.txt

# Conte cada arquivo encontrado
        counter=`echo "$counter+1"|bc`
done
echo $counter




Alexandro Silva: Ossec HIDS 2.6 Beta Testing – Novas funcionalidades

9 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

O Ossec HIDS 2.6 está no forno. A versão beta desta que para mim é uma das melhores ferramentas de segurança da atualidade foi anunciada recentemente pelo Daniel Cid, criador e principal mantenedor.
Venho acompanhando a evolução desta versão através do respositório no Bitbucket.

Vejam algumas funcionalidades anunciadas:

Suporte IPv6

Novas regras para OpenBSD, Clamav, BRO-ids, active response logs,etc

Criação e configuração automatizada das chaves dos agentes através do os-authd

Melhorias nos relatórios de alteração dos arquivos

Bloqueio contra tentativas de intrusão repetitivas

Algumas destas novas funcionalidades estão sendo bastante úteis no meu dia a dia.


Relatórios de alteração dos arquivos

A checagem de integridade faz parte do Ossec desde de sua criação. Este versão diponibiliza uma relatório mais apurado dos arquivos alterados. Um exemplo interessante é o monitoramento das alterações dentro do diretório /var/www. Para isso adicione uma tag directories dentro do arquivo /var/ossec/etc/ossec.conf com as seguintes opções:

realtime=”yes”
report_changes=”yes”


Info:

realtime – Fará o monitoramento em tempo real do diretório
report_changes – Informará o que foi alterado em um arquivo

OBS: Outras opções podem ser encontradas no Manual do Ossec HIDS

Segue o exemplo de um simples relatório gerado após está alteração:

zcat /var/ossec/logs/alerts/2011/May/*.gz | /var/ossec/bin/ossec-reportd

Top entries for ‘Filenames’:
————————————————
/etc/apache2/sites-available/XXX.. |3 |
/etc/apache2/sites-enabled/XXX |3 |
/etc/ld.so.cache |2 |
/etc/ossec-init.conf |2 |
/etc/alternatives/www-browser |1 |
/etc/alternatives/www-browser.1.gz |1 |
/etc/apache2/sites-available/XXX |1 |
/etc/apache2/sites-enabled/XXX |1 |
/etc/init.d/.depend.boot |1 |
/etc/init.d/.depend.start |1 |
/etc/init.d/.depend.stop |1 |
/etc/mailcap |1 |
/usr/bin/www-browser |1 |


Bloqueio contra tentativas de intrusão repetitivas

Isso soa como música para meus ouvidos. Venho usando esta funcionalidade a algum tempo e realmente faz a diferença em servidores muito visados com os de FTP por exemplo. Para habilitá-la siga o exemplo apresentado no blog do DCid

Os desenvolvedores do Ossec HIDS estão mandando muito bem. Por enquanto não estou encontrando bugs nos testes desta versão beta, tenham certeza que eles estão sendo realizados em sistemas onde as tentativas de invasão são constantes.



Rafael Gomes: Atualizando agentes do Zabbix em massa

9 de Junho de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Após de uma thread na lista de discussão do Zabbix, percebi que os administradores do Zabbix, assim como eu, não costumam atualizar seus agentes, quer seja por preguiça ou outro motivo qualquer. (Na maioria das vezes é preguiça mesmo :P )

Não vou defender a necessidade da atualização, acredito que todos já sabem que no pior dos casos a correção de bugs já é o bastante para se tornar NECESSÁRIO atualizar o agente, correto?

Vamos por a mão na massa!

Estou usando como exemplo o CentOS, mas acredito que seja facilmente customizável para sua distro preferida.

Como a versão mais nova do Zabbix-agente no repositório EPEL5 é a 1.4.7 utilizaremos pacotes criados pelo meu amigo Gomix (Gracias!), que estão disponíveis aqui.

Baixe todos os pacotes e deposite em um servidor, com apache, no diretório /var/www/html/deploy

Agora nesse mesmo diretório você criará um arquivo chamado atualiza_zabbix.sh com o conteúdo abaixo:

#!/bin/bash

echo “#################”
echo “Baixando pacote”
echo “#################”

wget http://<ip do servidor que depositou os pacotes e script>/deploy/zabbix-1.8.5-1.el5.$(uname -i).rpm > /dev/null

echo “#################”
echo “instalando pacote”
echo “#################”

rpm -Uvh zabbix-*

echo “#####################”
echo “Reiniciando o serviço”
echo “#####################”

service zabbix-agent restart

echo “#####################”
echo “Removendo lixo”
echo “#####################”

rm -fr zabbix* atualiza_zabbix.sh

Agora execute o comando abaixo:

# chown -R apache:apache /var/www/html/deploy

Agora na sua máquina, crie um arquivo chamado lista_servidores, com a lista de ip (ou nome, caso seu DNS esteja configurado) dos seus servidores, um valor abaixo do outro.

Ainda na sua máquina, execute o comando abaixo:

for i in `cat lista_servidores`; do ssh -l root $i "wget http://<ip do servidor que depositou os pacotes e script>/deploy/atualiza_zabbix.sh && chmod +x atualiza_zabbix.sh && ./atualiza_zabbix.sh" ; done

Obs: Foi utilizado o usuário root aqui, mas em caso do usuário root esteja desabilitado use outro usuário com sudo.

Pronto! Agora só coloque as senhas dos servidores, caso não já tenha trocado as chaves publicas, claro! :P

Update – Se você não tiver problema em adicionar repositórios, pode encurtar o tutorial a um único comando:

for i in `cat lista_servidores`; do ssh -l root $i "rpm -Uvh http://fedora.danny.cz/danny-el/danny-release-5-1.noarch.rpm && yum update zabbix-agent -y && rpm -e danny-release-5-1" ; done

Thanks Sharkcz!



Tags deste artigo: nordeste psl bahia