quinta-feira, 19 de agosto de 2010

quarta-feira, 18 de agosto de 2010

Aula Faculdade BD 17-Aug-2010

Bom, eu assim como muitos outros brasileiros estou fazendo faculdade obviamente visando me formar para ter uma carreira de sucesso na área que atuo, já fiz 2 anos na Universidade São Judas Tadeu de ciencia da computação(ah que saudade, bons tempos e fiz grandes amigos (Erick Vitor de Barros http://erickvitor.wordpress.com/ e Adriano Urbano Esposito http://4works.com.br/), porém parei por motivos maiore$$$$, voltei fiz 2 anos na unip, porém tive que parar pois o trabalho estava consumindo todo o meu tempo(Uma das coisas que mais me arrependo é ter parado, deveria ter tentado me formar a qualquer custo, portanto que isso sirva de lição a todos que lerem esse post), mas tudo nessa vida serve de lição e é comum aprendermos com ela. Porém agora voltei, e dessa vez é para me formar c Deus quiser e ele quer pode crer! rs

Aproveitando que reativei o blog vou postas as aulas em laboratório aqui, isso servirá tanto para que eu possa estudar quando eu quiser quanto para consulta de quem acessar esse blog, portanto estou anexando a aula dada e a resolução, abraço a todos(as).

#Aula
http://www.scribd.com/doc/36057582/document2010-08-18-082905

#Resolução
http://pastebin.com/r2UyNdLv

Lembrando que a forma que resolvi possivelmente pode ser melhorada, portanto críticas construtivas são sempre bem vindas :D

Ps.: Estou colocando a aula de java do dia 11 08 2010 de laboratório, pois não havia postado.
http://pastebin.com/gCj6Jwj5
Abs.

terça-feira, 17 de agosto de 2010

Dica: Remover scripts malicioso

Tempo atrás enfrentei alguns problemas de segurança em um ambiente com (LAMP), nos quais o atacante conseguia colocar c99shell.php c100.php whatever.php com conteúdo malicioso ou injetar um código malicioso no meio da pagina que geralmente retornava a seguinte tela para o usuário final:


Antes de instalarmos ossec, ajustes finos de segurança no PHP, foram tomadas algumas atitudes, então gostaria de compartilhar algo que parece óbvio porém acredito que mesmo assim pode ser útil.


Ajustes de permissão:
A não ser locais aonde precisam-se ser feito upload de arquivos(mesmo assim sugiro que seja feita uma verificação via programação para que verifique se o arquivo que está sendo enviado seja realmente o que você aceita) adicionar nessas pastas um .htaccess contendo
php_flag engine off
isso fará com que dentro dessa pasta não seja permitido executar nenhum .php o que aumenta a segurança do diretório.

Quanto a permissão sugiro as seguintes permissões:
Pastas que não precisam ser inseridos dados - 555
Arquivos que não precisam ser alterados - 444
Pastas que precisam ser inseridos dados - 775
Arquivos que precisam ser alterados - 664
Usar usuário.grupo (Usuário e grupo do webserver)
http://pt.wikipedia.org/wiki/Chown

Algumas dicas para ajustar a permissão mais facilmente:
find /path1/path2/ -type d -exec chmod 0555  {} \; #Pastas
find
/path1/path2/ -type f -exec chmod 0444  {} \; #Arquivos

find
/path1/path2/ -type d -exec chmod 0775  {} \; #Pastas que podem ser alteradas
find
/path1/path2/ -type f -exec chmod 0664  {} \; #Arquivos que podem ser alteradas


Com esses pontos já temos um grande avanço na segurança, porém pretendo em breve aumentar essa documentação relatando mais coisas que foram feitas para ajustar o ambiente e estabiliza-lo.

Caso você já esteja com o script infiltrado em seu servidor uma alternativa para localiza-lo é procura-lo por palavras chaves que possivelmente encontrariamos dentro dos .php como:

find /path1/path2/ -name "*.php" -exec grep "Liloss" {} \; -print
find /path1/path2/  -name "*.php" -exec grep -i "Adobe FlashPlayer" {} \; -print
find /path1/path2/  -name "*.php" -exec grep -i "system(" {} \; -print
find /path1/path2/ -name "*.php" -exec grep -i "s0n_g0ku" {} \; -print

Sendo que esses valores podem ser alterados analise o que está acontecendo em sua infra e ajuste o find para ela.

abs a todos.
:D

Dica: Erro mysql

Hoje realizando o backup de um ambiente obtive o seguinte erro:

mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `EVENTS`': Cannot proceed because system tables used by Event Scheduler were found damaged at server start (1577)

Pesquisando encontrei a solução do meu problema, executei um:

mysql_upgrade -u root -p xxx
depois
/etc/init.d/mysql stop
/etc/init.d/mysql start 
e meu problema foi resolvido, fica a dica, abs.
:D


Referências:
man mysql_upgrade

quarta-feira, 11 de agosto de 2010

Dica: HIDS - Samhain

Ontem um grande amigo Erick Vitor de Barros( http://erickvitor.wordpress.com/ ) me passou um artigo sobre invasão de rede:
http://www.eriberto.pro.br/blog/?p=376

- Lá ví uma ferramenta que o Eriberto utilizou chamada SAMHAIN para monitorar as alterações quaisquer feita, achei muito interessante e juntamente com um outro grande brother Ricardo Silveira(http://lostsoulis.blogspot.com/ | http://dominiodesconhecido.com.br/), ele implementou em seu servidor VPS, realizamos alguns testes como alteração do passwd, instalação/remoção de software e todas as mudanças foram reportadas por e-mail para ele pelo samhain, então acho que é uma leitura válida, por isso estou repassando a dica:
http://www.la-samhna.de/samhain/s_download.html

PS.: Temos uma opção nacional para isso (http://www.ossec.net/), vale a pena também pesquisar sobre ele, já utilizei e ele realmente é ninja.

Abs a todos.

:D

Dica: Mudar cor da barra superior do GNOME

- Estava eu aqui sentado, quando um brother haruo chegou comentando sobre colocar Timestamp no dmesg de um servidor, estavamos analisando quando ele falou ao ver minha barrinha superior do desktop um pedaço transparente, um pedaço na cor antiga:



"Ow Jovem não quer deixar ela transparente?", Pensei claro porque não?! Topei na hora!

É simples, ele me explicou:

- Olhe qual tema você está utilizando. O meu é o o Ambience.
- Para verificar vá em:
System -> Preferences -> Appearance, aba Theme



- Feito isso, abra um terminal e bora fazer a mágica.
vim /usr/share/themes/THEME/gtk-2.0/gtkrc
- No meu caso:
vim /usr/share/themes/Ambiance/gtk-2.0/gtkrc

- Procure pela linha:
bg_pixmap[NORMAL] = "panel_bg.png"
- Comente ela com um # na frente, salve e saia, nada mudou ainda correto?! Seguinte, para por em prática a alteração existem 2 formas:


- Trocar o tema por outro, e logo após voltar para o tema que foi feita a modificação ou fazer um logout e login novamente :D

PS.: Quanto ao timestamp que foi o objetivo da conversa, também foi ajustado :D
Uma das referências para ajustar o que ele precisava foi:
http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/ch09s07.html
http://www.digitalprognosis.com/linuxtips/timestamping-linux-kernel-printk-output-in-dmesg-for-fun-and-profit/
- Fica ae para compartilhar com todos :D

[[ Tks D. Haruo ]]

Configuração feita em:
OS: Ubuntu 10.04
Gerenciador: GNOME 2.30.2

segunda-feira, 9 de agosto de 2010

Dica: Criar novo usuário MySQL e dar permissões nos DBs.

- Bom essa é uma dica utilizando INSERT para se adicionar um usuário ao MySQL, poderia também fazer a partir de GRANT, porém não é o assunto que vou abordar na dica.
- Basicamente você tem o que precisa ser alterado bem claro escrito em Portugues e em negrito para ser alterado, quanto ao Y or N, depende de sua necessidade alterar ou não, aconselho a nunca dar a permissão no user, mas sempre no db, acredito que isso facilita a administração, pelo menos facilita para mim, caso algum DBA veja essa dica e queria fazer alguma crítica construtiva será muito bem vinda :D



use mysql
INSERT INTO user(Host,
            User,
            Password,
            Select_priv,
            Insert_priv,
            Update_priv,
            Delete_priv,
            Create_priv,
            Drop_priv,
            Reload_priv,
            Shutdown_priv,
            Process_priv,
            File_priv,
            Grant_priv,
            References_priv,
            Index_priv,
            Alter_priv,
            Show_db_priv,
            Super_priv,
            Create_tmp_table_priv,
            Lock_tables_priv,
            Execute_priv,
            Repl_slave_priv,
            Repl_client_priv,
            Create_view_priv,
            Show_view_priv,
            Create_routine_priv,
            Alter_routine_priv,
            Create_user_priv,
            ssl_type,
            ssl_cipher,
            x509_issuer,
            x509_subject,
            max_questions,
            max_updates,
            max_connections,
            max_user_connections)
           
VALUES            ('%',
            'USUARIOdesejado',
            PASSWORD('COLOCARsenhaAQUI'),
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            '',
            '',
            '',
            '',
            0,
            0,
            0,
            0);

INSERT INTO db        (Host,
            Db,
            User,
            Select_priv,
            Insert_priv,
            Update_priv,
            Delete_priv,
            Create_priv,
            Drop_priv,
            Grant_priv,
            References_priv,
            Index_priv,
            Alter_priv,
            Create_tmp_table_priv,
            Lock_tables_priv,
            Create_view_priv,
            Show_view_priv,
            Create_routine_priv,
            Alter_routine_priv,
            Execute_priv)

VALUES            ('%',
            'NOMEdoBANCO',
            'NOMEdoUSER',
            'Y',
            'Y',
            'Y',
            'Y',
            'Y',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N',
            'N');


flush privileges;

sexta-feira, 6 de agosto de 2010

Script para instalar APC automaticamente

- Maiores informações sobre o que é o APC http://en.wikipedia.org/wiki/Alternative_PHP_Cache#Alternative_PHP_Cache

- Eu estava querendo automatizar o processo de instalação do apc, e como estava afim de fazer um script, então está ai o script, espero que seja útil para você assim como foi para mim.

- Teoricamente ele pode ser executado em qualquer distribuição linux, porém apenas testei em debian com com o php compilado(funcionou), e um fedora13 instalado a partir do yum, em ambos os casos com as dependências supridas, funcionou sem problemas, portanto caso alguém tenha coragem de testar em outras distros por favor poste para que possamos melhora-lo, abs a todos.

- Explicação básica de como utilizá-lo:
Basta copiar o conteúdo abaixo e jogar em um arquivo ex.: 

install_apc_auto.sh
chmod 755 install_apc_auto.sh
./nomeQualquer.sh
IMPORTANTE: Ter as dependências instaladas, para o funcionamento correto.
Ter acesso a internet.

https://github.com/abargiela/scripts/blob/master/install_apc.sh

http://pastebin.com/wJHCvti6