quarta-feira, 11 de novembro de 2009

Extraindo áudio de arquivos .flv

Salve Salve galera do Software Livre.

Hoje vou mostrar como extrair o áudio dos arquivos .flv, uma mão na roda quando se quer extrair áudio de clipes no youtube.
Existem diversas maneiras de se baixar os arquivos do youtube, plugins para seu navegador ou sites externos, uma boa pesquisada no google vai lhe mostar o caminho.
Uma vez com o .flv em mãos precisamos baixar o aplicativo ffmpeg que é o responsável pela conversão.
O ffmpeg é uma ferramenta bastante poderosa, capaz de converter os mais variados formatos de vídeo e áudio possibilitando também alterações avançadas como redimencionamento de vídeo, alterações no frame rate, bitrate, etc.
Para instalar a ferramenta no ubuntu karmic entre com o comando abaixo:

apt-get install ffmpeg

Após a instalação do aplicativo e suas dependências faz-se necessária a instalação dos pacotes lame e libavcodec-unstripped-52 que realizam a conversão para o formato mp3.

Para a instalação dos pacotes acima é necessário se habilitar os repositórios multiverse em seu arquivo /etc/apt/sources.list

Agora que estamos com todos os pacotes podemos realizar a conversão conforme os exemplos abaixo:

ffmpeg -i arquivo.flv arquivo.mp3

Podemos utilizar mais opções para customizar o arquivo gerado.

ffmpeg -i arquivo.flv -ar 44100 -ab 192k -ac 2 arquivo.mp3

Onde:

-ar Define a frequência do áudio.
-ab Define o bitrate do áudio.
-ac Define o número de canais de áudio.

Para mais opções verifique man do ffmpeg.

Um grande abraço a todos.

terça-feira, 27 de outubro de 2009

Análise de Performance no linux

Olá amigos da comunidade.

Hoje vou tratar de um assunto que considero importante, Análise de Performance. Esse tópico torna-se importante especialmente quando precisamos de dados para convencer um gerente ou chefe que entende muito pouco de TI a atualizar ou comprar um novo servidor.

O linux possui diversas ferramentas para que vc possa acompanhar de perto como anda o fôlego do seu servidor.

O desempenho de um sistema é verificado de acordo com a maneira com que seus recursos são alocados e compartilhados.

Os recursos que têm impacto direto no desempenho são:

Memória
CPU
E/S do HD
E/S da placa de rede.

Existem diversas ferramentas para verificação de seu servidor. As ferramentas que mais utilizo são as seguintes:

htop
vmstat
procinfo
iotop
iftop

htop --> Similar ao top essa ferramenta de linha de comando permite a visualização dos processos e qual o consumo de recurso dos mesmos.
Para acioná-la basta digitar htop no terminal.

No canto superior da tela é possível ver informações de uso de memória, CPU e swap. As informações exbidas podem ser customizadas através do F2.

vmstat --> Essa ferramenta é bastante útil na verificação de uso de swap. Para visualizar as informações basta digitar o comando seguido das opções.
Para maiores informações quanto as opções do vmstat verifique a documentação da ferramenta.

EX:

user@destroyer:~$ vmstat -S k 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 348409 28598 12300 144695 1 9 35 26 230 546 12 2 84 2
0 0 348409 28581 12312 144814 0 0 26 38 697 1617 21 3 76 0
2 0 348409 27947 12312 144945 0 0 23 16 787 1640 19 4 77 0
1 0 348409 22237 12320 144945 0 0 0 16 665 1955 18 4 79 0
1 0 348409 27938 12320 144945 0 0 0 0 681 1487 16 4 80 0
0 0 348409 27938 12341 145252 0 0 66 6 804 2019 26 4 69 0


O comando acima vai gerar informações a cada 5 segundos sobre os recursos do sistema. A parte importante a ser verificada é a coluna swap que possui as opções si e so que correspondem a swap in e swap out.
swap in - Quantidade de memória virtual vinda do disco.
swap out - Quantidade de memória virtual indo para o disco.

O ideal seria manter os valores de si e so sendo zero, caso isso não seja possível a máquina deve funcionar bem com o valor de si e so na casa dos 30. Acima desse valor o desempenho já será bastante prejudicado.

procinfo --> Permite visualizar os recursos do sistema em tempo real com dados colhidos do diretório /proc cujo conteúde deve ser bem conhecido de todos os administradores linux. Através desse comando podemos verificar as irqs, memória, dispositivos, etc.
Para ter acesso as informações basta digitar o comando procinfo diretamente na linha de comando.

EX:

Memory: Total Used Free Buffers
RAM: 993960 975556 18404 8660
Swap: 2931820 355180 2576640

Bootup: Tue Oct 27 07:17:20 2009 Load average: 0.33 0.53 0.63 3/305 16561

user : 01:22:56.09 12.5% page in : 1386665
nice : 00:01:08.40 0.2% page out: 1002060
system: 00:16:10.55 2.4% page act: 289409
IOwait: 00:09:36.47 1.4% page dea: 414192
hw irq: 00:00:27.28 0.1% page flt: 26090361
sw irq: 00:00:11.39 0.0% swap in : 15268
idle : 09:13:21.58 83.4% swap out: 88738
uptime: 05:31:24.90 context : 23071141

irq 0: 2203479 timer irq 16: 534369 ohci_hcd:usb3, oh
irq 1: 27854 i8042 irq 17: 0 ehci_hcd:usb1
irq 4: 4 irq 18: 0 ohci_hcd:usb5, oh
irq 6: 3 floppy irq 19: 494493 ehci_hcd:usb2
irq 7: 0 parport0 irq 22: 254602 ahci
irq 8: 1 rtc0 irq 2300: 206016 eth0
irq 9: 0 acpi irq 2301: 0 fglrx[0]@PCI:1:5:
irq 12: 526037 i8042 irq 2303: 2725465 hpet2

sda 97858r 50504w sdb 0r 0w
sda1 33r 0w sdc 0r 0w
sda2 30r 0w sdd 0r 0w
sda3 3r 0w sde 0r 0w
sda5 95408r 48239w sdf 0r 0w
sda6 2363r 2265w

lo TX 1.41KiB RX 1.41KiB pan0 TX 0.00B RX 0.00B
eth0 TX 37.42MiB RX 63.99MiB



iotop --> Ferramenta bastante interessante utilizada para quantificar a E/S de aplicativos e dispositivos. A ferramenta só pode ser utilizada em kernels 2.6.20 ou mais recentes. Podemos verificar que processos estão tomando mais tempo de encrita nos dispositivos físicos, o que é muito importante para se descobrir quais aplicações estão sendo gargalos no sistema.

Ex:

iotop -o

Total DISK READ: 0 B/s | Total DISK WRITE: 60.24 K/s
PID USER DISK READ DISK WRITE SWAPIN IO> COMMAND
4685 user 0 B/s 0 B/s 0.00 % 0.00 % firefox



iftop --> O iftop é utilizado para medir a quantidade de banda consumida por determinada interface. Podemos fazer a verificação de todo o tráfego ou apenas de sub-redes ou hosts o que é importante em firewalls e roteadores linux por exemplo para verificar o quanto de banda determinado host está utilizando.
As opções da ferramenta podem ser verificadas na documentação da mesma.

EX:

iftop -npP -i eth0

iftop -npP -F 10.10.255.0/34 -i eth0 (rede)

iftop -npP -F 10.10.255.10/32 -i eth0 (host)



É isso ai galera, quaisquer dúvidas ou sugestões estou a disposição.
Grande abraço.

quarta-feira, 14 de outubro de 2009

Data e hora no history

Essa dica é bem legal em ambientes onde mais de um administrador têm acesso aos servidores linux. Muitas vezes queremos saber quando determinado comando foi rodado ou alguma alteração realizada e na maioria das vezes utilizamos o comando history para isso.

history | less

O comando nos mostra apenas os últimos comandos executados:

...
465 dpkg --listfiles clamav-base
466 dpkg --listfiles clamav
467 dpkg --listfiles clamav-freshclam
468 clear
469 rdesktop 10.10.255.17 -g 90% &
470 clear
471 ssh root@10.10.255.1
472 clear
473 ssh root@10.10.255.1
...


Nesse formato não sabemos exatamente quando os programas foram executados. Mas podemos exibir data e hora de execução dos comandos nos history alterando a variável HISTTIMEFORMAT conforme abaixo:

export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

Após a alteração o comando history exibe as informações conforme abaixo:

...
78 Out/14 - 12:36:54 mount -a
79 Out/14 - 12:37:00 mount
80 Out/14 - 12:37:14 exit
81 Out/14 - 12:39:08 clear
82 Out/14 - 12:39:08 ls
83 Out/14 - 12:39:10 clear
84 Out/14 - 12:39:11 ls
85 Out/14 - 12:39:17 ls -laht
...

Para que as alterações continuem ao se reiniciar o computador basta adicionar a seguinte linha no final do arquivo /etc/bash.bashrc no Ubuntu server 9.04.

export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

É isso ai galera. Um grande abraço a todos os Linux Warriors...

terça-feira, 29 de setembro de 2009

COALTI

Nos dias 09, 10 e 11 de outubro irá se realizar em Maceió no Hotel Maceió Mar o COALTI (1° Congresso Alagoano de Tecnologia da Informação), com palestras e a realização da prova de certificação LPI. O evento está sendo organizado pelo meu amigo Giba, sinal de que vai ser um grande evento.
Para maiores informações acesse o site do evento:

http://www.coalti.com.br

Grande abraço...

Reparo de bases de dados corrompidas no Mysql

Recentemente, inspirado por bases de dados corrompidas em um servidor capenga, venho utilizando algumas ferramentas para correção de bases de dados do servidor Mysql.

VERIFICANDO

O Mysql permite que bases de dados sejam checadas com o servidor rodando. Segue a listagem das ferramentas e o estado do servidor ao utilizá-las.

MYSQL CHECK TABLE -- Deve ser utilizado no prompt do servidor Mysql (Logicamente o servidor Mysql deve estar rodando)

mysqlcheck -- O servidor Mysql pode ou não estar rodando.

myisamchk -- O servidor deve estar parado.


Verificando tabelas com o CHECK TABLE

CHECK TABLE tablename[,tablename2...] [option][,option2...]


As opções disponíveis permitem o ajuste da verificação que pode ser mais profunda ou superficial.

Quick
A opção mais rápida, não verifica os "rows" em busca de links incorretos. Geralmente utilizada quando não há suspeita de erros.

Fast
Realiza a verificação das tabelas se as mesmas não forem devidamente fechadas. Geralmente utilizada quando a suspeita de erros na base é mínima. Geralmente em decorrencia de uma falha elétrica.

Changed
Similar ao Fast, mas verifica também tabelas que foram alteradas desde a última verificação.

Medium
A opção "default" se nenhuma opção for especificada. Verifica as linhas a procura de links deletados incorretos, verifica e calcula o checksum de todas as chaves e linhas.

Extented
A opção mais lenta, utilizada quando os outros métodos não apontam erros mas ainda há a suspeita de erros. Bastante lento uma vez que verifica todos os valores de todas as colunas e linhas. Aumentando-se o valor da variável key-buffer-size no arquivo de configuração do Mysql torna a verificação mais rápida.

Verificando tabelas com o mysqlcheck

mysqlcheck [options] dbname tablename [tablename2... ]

As opções para o utilitário permitem checar, analizar, reparar e optimizar as bases de dados.

--auto-repair
Utilizada em conjunto com a opção check, vai automaticamente reparar qualquer dado corrompido encontrado.

--check, -c
Verifica as tabelas.

--check-only-changed, -C
Verifica a base em conjunto com a opção changed acima.

--extended, -e
Verifica a base em conjunto com a opção extended acima.

--fast, -F
Verifica a base em conjunto com a opção fast a acima.

--medium-check, -m
Verifica a base em conjunto com a opção medium acima.

--quick, -q
Verifica a base em conjunto com a opção quick acima.

Verificando tabelas com o comando myisamchk

myisamchk [options] tablename.MYI

Trabalha com tabelas do tipo MyISAM (que possuem arquivos .MYD e .MYI para guardar informações sobre dados e índices)

As principais opções disponíveis para o utilitário são:

--check, -c
Opção default

--check-only-changed, -C
Verifica a base junto com a opção changed acima.

--extend-check, -e
Verifica a base em conjunto com a opção extended acima.

--fast, -F
Verifica a base em conjunto com a opção extended acima.

--force, -f
Executa o mode de reparo caso erros sejam encontrados.

--information, -i
Exibe informações sobre a tabela verificada.

--medium-check, -m
Verifica a base em conjunto com a opção medium acima.

--read-only, -T
Não marca a tabela como verificada.

--update-state, -U
Armazena quando a tabela foi checada e o momento de um eventual crash nos arquivos *.MYI

REPARANDO

Na maioria dos casos apenas os índices estarão corrompidos, (O arquivo de índice é um arquivo menor separado que aponta para o arquivo de dados). Dados realmente corrompidos são raros. Conforme na vimos na verificação são três os métodos de reparo.

MYSQL REPAIR TABLE - Deve ser utilizado com o servidor rodando.

mysqlcheck -- O servidor Mysql pode ou não estar rodando.

myisamchk -- O servidor deve estar parado.

Reparando tabelas com o REPAIR TABLE

REPAIR TABLE tablename[,tablename1...] [options].

As principais opções disponíveis são:

QUICK
O mais rápido, uma vez que o arquivo de dados não é modificado.

EXTENDED
Tenta recuperar todas as linhas possíveis no arquivo de dados, o que pode resultar em linhas com inconsistências. Use em último caso. USE_FRM Usado para reconstruir o arquivo de index caso o mesmo esteja corrompido ou se foi excluído.

USE_FRM
Deve ser utilizado quando os arquivos *.MYI (arquivos de índice) estiverem faltando ou corrompidos. Utilizado para reconstruir os arquivos de index.


Reparando tabelas com o mysqlcheck

mysqlcheck [options] [db_name [tbl_name ...]]

Podem ser utilizadas todas as opções descritas para o utilitário acima adicionando-se a elas a opção (--repair, -r).

Reparando tabelas com o myisamchk

myisamchk [options[ [tablenames]


O servidor deve estar parado, ou as tabelas inativas, o que é garantido quando ao opção --skip-external-locking não está em uso. O caminho para as arquivos .MYI deve ser especificado. As principais opções disponíveis são:

--backup, -B
Cria um backup (.BAK) da tabela antes de repará-la.

--correct-checksum
Realiza correções de checksum.

--data-file-length=valor, -D=valor
Especifica o valor máximo do arquivo de dados. Utilizado na recriação do arquivo.

--extend-check, -e
Tenta recuperar todas as linhas possíveis no arquivo de dados, o que pode resultar em linhas com inconsistências. Use em último caso.

--force, -f
Reescreve arquivos temporários antigos (.TMD) ao invés de abortar o reparo caso encontre um.

--recover, -r
A opção mais utilizada, repara a maioria dos problemas encontrados.

--safe-recover, -o
Verificação mais detalhada, porém mais lenta que a -r. Lê todas as linhas e reconstroi os índices baseado nelas.

--tmpdir=caminho
Altera o caminho de criação dos arquivos temporários

--quick
O método de reparo mais rápido, uma vez que o arquivo de dados não é modificado.

Exemplos:

mysql> CHECK tabela01 EXTENDED;

mysql> REPAIR tabela01 EXTENDED USE_FRM,

mysqlcheck --medium-check --auto-repair banco01 tabela01 -u usuário -p

mysqlcheck --repair --check banco01 tabela01

myisamchk --check --update-state *.MYI

myisamchk --repair --backup *.MYI


Como esses comandos simples consigo resolver a maioria dos problemas em bases de dados Mysql. Quaisquer dúvidas ou contribuições são bem vindas.

Um grande abraço a todos da comunidade.


quinta-feira, 17 de setembro de 2009

Apache autenticando no AD / LDAP com o ubuntu server 9.04

Olá amigos do software livre. Estive meio atarefado e não venho postando no blog como gostaria, mas chega de conversa mole e vamos ao que interessa.

É praticamente padrão o uso de aplicações web nas intranets das empresas. Para facilitar o controle de usuários mantendo uma base centralizada podemos autenticar o apache na base de dados do AD ou se vc tiver mais sorte migra tudo pra uma base LDAP em linux... Hehehe.

Vamos aos passos para a autenticação do Apache2 no AD / LDAP.

Primeiramente devemos habilitar o módulo authnz_ldap que já vem instalado juntamente com o apache2 criando o link simbólico no diretório /etc/apache2/mods-enabled/ ou través do comando a2enmod.

a2enmod authnz_ldap

ou

ln -s /etc/apache2/mods-avaliable/authnz_ldap.load /etc/apache2/mods-enabled/authnz_ldap.load

Habilitado o módulo vamos as configurações para a autenticação.

No arquivo de configuração do seu site no "conteiner" Directory adicione os parâmetros abaixo:

AuthType Basic
AuthName "Acesso ao Site"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPUrl ldap://servidor_ldap:porta/DC=dominio,DC=com,DC=br?sAMAccountName
AuthLDAPBindDN "CN=usuário,OU=usuários,DC=domínio,DC=com,DC=br"
AuthLDAPBindPassword "senha"
require valid-user


Após as configurações recarrege as configurações do apache para que o módulo seja carregado.

/etc/init.d/apache2 force-reload

Agora é só acessar ao site e conferir a autenticação.

Um abraço a todos.

quarta-feira, 9 de setembro de 2009

Backup do Mysql com o mysqldump

Devido a correria aqui no trampo estou sem tempo para postar no blog.
Estou fazendo um monte backups para passarmos para para a nova estrutura de servidores blade.
Já que estamos falando em backup aqui vai como realizar backups no mysql com o mysqldump e as descrições de algumas opções importantes.

Opções:

-A: Todos os bancos de dados
-B: Seleciona o banco de dados a ser salvo
-d: Salva toda a estrutura de tabelas mas sem os dados
-c: Usar comandos insert completos na criação do arquivo de saída.

Exemplos:

mysqldump -u usuário --password=senha -A > arquivo_de_saída

mysqldump -u usuário --password=senha -A -d >arquivo_de_saída

mysqldump -u usuário --password=senha -B Banco01 Banco02 > arquivo_de_saída

mysqldump -u usuário --password=senha -B Banco01 [tabelas]
> arquivo_de_saída

É isso ai.

Até a próxima...

segunda-feira, 31 de agosto de 2009

O poder do Nmap

O Nmap é uma poderosa ferramenta para mapeamento de rede. O que diferencia o Nmap das demais opções disponíveis é a grande quantidade de técnicas e opções disponíveis para a varredura de rede.
O propósito deste artigo é mostrar as principais técnicas e opções de varredura existentes nesta versátil ferramenta.
O Nmap é mantido por "Fyodor" em seu website http://www.insecure.org o site possui bastante conteúdo para quem se gosta de segurança da informação.

Agora vamos ao que interessa.

O Nmap está presente em praticamente todos os repositórios de praticamente todas as distribuições. Para instalá-lo no ubuntu 9.04 siga o passo a seguir:

apt-get install nmap

Depois de instalado o Nmap está pronto para ser utilizado.

Para se ter acesso a todo o poder de fogo do Nmap é preciso que você esteja logado no sistema como um usuário privilegiado uma vez que o nmap utiliza pacotes customizados que só podem ser gerados por usuários com acesso total aos recursos do sistema. O uso do Nmap por usuários não privilegiados não significa que o mesmo não irá funcionar, mas certos métodos de varredura não estarão disponíveis para esses usuários.

Técnicas de Varredura

O Nmap possui Quinze métodos de varredura, cada um com suas características, vantagens e desvantagens.

Abaixo segue um sumário dos métodos de varredura utilizados pelo Nmap.




TCP SYN Scan(-sS)

Este método de varredura permite ao Nmap colher as informações a respeito de portas abertas sem completar o processo de conexão conhecido como "TCP Handshake". Quando uma porta é identificada o processo de "TCP Handshake" é reiniciado sem que a conexão seja realizada.
Uma das vantagens desse método é que uma vez que a conexão não é efetivamente criada ela não vai constar nos logs do sistema alvo.
Esse método de varredura é utilizado por default no Nmap para usuários privilegiados.

TCP connect Scan (-sT)

Este método de varredura utiliza uma conexão TCP normal para determinar as portas abertas em um dispositivo remoto. Uma das vantagens deste método é que não há a necessidade de se utilizar um usuário privilegiado para a varredura, já a desvantagem deste método é que uma vez que a conexão é efetivamente realizada, a mesma vai constar nos logs do sistema alvo.

FIN Scan (-sF), Xmas Tree Scan (-sX) e Null Scan (-sN)

Estas três formas de varredura estão agrupadas porque seu funcionamento é bastante similar. Esses tipos de varredura são conhecidos como "stealth" pois mandam apenas um pacote para o host a ser verificado e aguarda apenas um pacote como retorno, utilizando o mínimo possível de banda para a verificação.

FIN Scan

Este método consiste no envio de um pacote com a flag FIN para a o dispositivo a ser verificado. Se um pacote FIN for enviado a uma porta fechada um pacote com a flag RST será enviado como resposta. Já se a porta estiver aberta nenhuma resposta é enviada de volta a estação realizando a varredura. Há também a possibilidade de que a porta sendo monitorada esteja sendo gerenciada por um firewall que realize o DROP do pacote enviado a porta em questão. Por isso os resultados apresentados por esse scan são apresentados como abaixo:

nmap -sF -v 192.168.0.1
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-04-23
21:17 EDT
Initiating FIN Scan against 192.168.0.1 [1663 ports] at 21:17
The FIN Scan took 1.51s to scan 1663 total ports.
Host 192.168.0.1 appears to be up ... good.
Interesting ports on 192.168.0.1:
(The 1654 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
23/tcp open|filtered telnet
79/tcp open|filtered finger
110/tcp open|filtered pop3
111/tcp open|filtered rpcbind
514/tcp open|filtered shell
886/tcp open|filtered unknown
2049/tcp open|filtered nfs
MAC Address: 00:03:47:6D:28:D7 (Intel)
Nmap finished: 1 IP address (1 host up) scanned in 2.276 seconds
Raw packets sent: 1674 (66.9KB) | Rcvd: 1655 (76.1KB)
#


Os resultados são exibidos como (open|filtered) pois não há como se ter certeza de que não haja um firewall realizando o DROP nas portas verificadas. Outros métodos podem ser utilizados para verificar o real estado das portas.

XMAS Tree Scan (-sX)

Funciona da mesma forma que o FIN Scan, com a diferença de que as flags setadas são as URG e PUSH. Os resultados exibidos são similares ao do FIN Scan.

Null Scan (-sN)

Funciona da mesma forma que o FIN Scan, com a diferença de que nenhuam flag é setada para esse método de varredura. Os resultados exibidos também são similares ao do FIN Scan.

Dentre as vantagens destes métodos de varredura se destaca o fato de estes serem os métodos menos invasivos, não gerando nenhuma entrada nos logs do dispositivo verificado.

Infelizmente a Microsoft não segue os padrões definidos em RFC para o protocolo TCP/IP por isso para essas formas de verificação todas as portas, independente de seu estado, vão constar como fechadas. Portanto esses métodos se mostram ineficazes em hosts com windows.
Em contrapartida estações que exibem portas como open|filtered de certo não são estações baseadas em windows, facilitando o processo de identificação do SO.

Ping Scan (-sP)

O Ping Scan é um dos métodos de varredura mais rápidos do Nmap uma vez que nenhuma porta é verificada. Este método é útil para detectar hosts ativos e para verificar se o protocolo ICMP está trafegando através de determinado firewall.

Version Detection (-sV)

Enquanto a maioria dos métodos do Nmap se destina a identificar o número das portas, o método Version Detection se preocupa em identificar a versão dos serviços rodando no host remoto.
Para este método funcionar o Nmap precisa do arquivo nmap-service-probes que no Ubutu encontra-se em /usr/share/nmap/nmap-service-probes. Se este arquivo não estiver presente o método não irá funcionar.
O método de verificação de versão deve ser utilizado com outro tipo de scan para detectar as portas abertas. Se nenhum outro tipo de scan foi especificado o TCP SYN Scan é utilizado por padrão.
A vantagem de se utilizar o método acima é estar sempre ciente das versões dos serviços rodando em sua rede para mantê-los sempre atualizados.

UDP Scan (-sU)

No UDP Scan, de acordo com as definições do próprio protocolo, não há "handshaking". Os pacotes são enviados e recebidos sem aviso, simplificando o processo processo de varredura.

IP PROTOCOL Scan (-sO)

O Protocol Scan é diferente dos demais, esse método se destina a identificar protocolos IP adicionais no host remoto como ICMP, TCP e UDP.
A principal função do IP protocol é identificar a função do host remoto na rede, uma vez que quando um roteador é scaneado por exemplo, protocolos adicionais podem ser exibidos como o EGP ou IGP.

ACK Scan (-sA)

O método ACK Scan não se destina a descobrir portar abertas mas em definir o estado de "filtered" ou "unfiltered" uma vez que não há conexão para verificar o estado da porta. O ACK Scan nos provê a capacidade de verificar se determinado pacote pode ou não atravessar um firewall ou um link com filtro de pacotes.

Windows Scan (-sW)

O Windows Scan tem seu esse nome devido a definição de janelas no TCP e não devido ao Sistema Operacional da Microsoft. Este método é similar ao ACK Scan com o diferencial de descobrir se existem ou não portas abertas no host remoto.

RPC Scan (-sR)

O RPC Scan é utilizado para localizar e identificar serviços RPC. Depois de identificar as portas abertas com qualquer outro método de varredura o RPC Scan envia a cada porta um RPC Null para gerar uma resposta da aplicação RPC a fim de determinar o serviço RPC. O RPC Scan é executado automaticamente quando um Version Detection Scan (-sV) é executado.

LIST Scan (-sL)

O List Scan não é realmente uma varredura, mas provê ao nmap a capacidade de testes e de "troubleshooting". Esse método apenas lista os IPs que normalmente seriam scaneados.

IdleScan (-sI )

O IdleScan é uma forma engenhosa de se colher informações utilizando outra estação da rede, aparentando que outra estação iniciou o processo de varredura. Consulte a fonte indicada no final deste artigo para maiores informações a respeito do funcionamento deste excepcional método de varredura.

FTP Bounce Attack (-b )

O FTP Bounce Attack utiliza uma falha em servidores FTP para realizar sua varredura. Como o IdleScan este método utiliza um terceiro host na realização do scan. Para maiores informações a respeito do FTP Bounce Attack acesse o link http://www.insecure.org/nmap/hobbit.ftpbounce.txt.

Neste artigo foram descritas os principais métodos de varredura realizados pelo Nmap. Para maiores informações a respeito do funcionamento de cada método e informações detalhadas a respeito do Nmap acesse o excelente material disponibilizado por James Messer em seu site que foi usado como fonte para este artigo, lá você irá encontrar informações bem mais detalhadas a respeito dessa poderosa ferramenta.

http://www.networkuptime.com/nmap/index.shtml

Grande abraço.

sexta-feira, 28 de agosto de 2009

Windows 7 Sins

A Free Software Foundation lançou a campanha "Windows 7 Sins" com argumentos mais do que convincentes contra o M$ Windows que vêm por ai.
Vale a conferida.

http://windows7sins.org/

Grande abraço.

quarta-feira, 26 de agosto de 2009

Como implementar SPF em um servidor Postfix

A maioria das mensagens abusivas de emails têm falsos remetentes. Neste momento alguém pode estar forjando um email de sua empresa para enviar mensagens abusivas a terceiros. Mas há uma forma de se protejer desses abusos utilizando o SPF.

O SPF é a sigla de Sender Policy Framework que define o conjunto de regras para prevenir a falsificação do endereço do remetente.

O SPF funciona da seguinte forma:

Inicialmente o administrador do domínio deve publicar em seu DNS as informações pertinentes a sua política de envio de email, que nada mais é do que informar aos demais servidores de correio com suporte a SPF quais são os endereços que podem enviar mensagens cuja a origem seja o seu domínio.

Para publicar as informações referentes a sua política de envio de email você deve ter um servidor de DNS funcionando. Se você ainda não possui um servidor de DNS existem inúmeros tutoriais disponíveis na internet para este fim.

Seguem alguns exemplos de publicação de SPF que deve estar em seu arquivo de zona de DNS.

EX01.

IN TXT "v=spf1 ip4:200.200.200.200/32 -all"

Onde:

v=spf Significa a versão (Sendo a SPFv1 a mais atual)
ip4:200.200.200.200/32 Significa que o ip 200.200.200.200 pode enviar emails por esse domínio.
-all Significa que os demais endereços não podem enviar email por esse domínio.

EX02.

IN TXT "v=spf1 mx -all"

v=spf Significa a versão do SPF
mx Significa que todos os registros MX publicados no DNS do domínio podem enviar email por esse domínio.
-all Significa que os demais endereços não podem enviar email por esse domínio.

Para uma sintaxe completa da publicação da política de email acesse:

http://www.openspf.org/SPF_Record_Syntax

Você pode ainda verificar como os demais servidores estão publicando suas políticas de envio de email, lembrando que nem todos os servidores utilizam SPF, mas com o número crescente de emails falsos o SPF vem se tornando padrão em todas as empresas que querem garantir a autenticidade de seus emails. Você pode consultar as políticas de email conforme os comandos abaixo:

host -C (Domínio a ser verificado)

EX.

alexandre@destroyer:~$ host -C terra.com.br
Nameserver ns2.terra.com.br:
terra.com.br has SOA record dns.terra.com.br. sysadm.terra.com.br. 2009082706 7200 7200 2419200 7200
Nameserver ns1.terra.com.br:
terra.com.br has SOA record dns.terra.com.br. sysadm.terra.com.br. 2009082706 7200 7200 2419200 7200

O comando informa quais são os servidores de DNS SOA para o domínio informado. Para consultar as entradas de SPF do domínio entre com o comando abaixo:

dig @(Servidor do domínio) (Domínio a ser verificado) (Tipo da Consulta)

EX.

alexandre@destroyer:~$ dig @ns1.terra.com.br terra.com.br TXT

; <<>> DiG 9.5.1-P2 <<>> @ns1.terra.com.br terra.com.br TXT
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37087
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;terra.com.br. IN TXT

;; ANSWER SECTION:
terra.com.br. 7200 IN TXT "v=spf1 ip4:200.176.10.0/23 ip4:200.176.2.0/23 ip4:200.154.152.0/24 ip4:208.84.242.0/23 include:tmp-spf.terra.com.br include:ti-spf.terra.com.br include:te-spf.terra.com.br -all"

;; AUTHORITY SECTION:
terra.com.br. 7200 IN NS ns1.terra.com.br.
terra.com.br. 7200 IN NS ns2.terra.com.br.

;; ADDITIONAL SECTION:
ns1.terra.com.br. 7200 IN A 200.176.2.172
ns2.terra.com.br. 7200 IN A 200.176.2.173

;; Query time: 129 msec
;; SERVER: 200.176.2.172#53(200.176.2.172)
;; WHEN: Fri Aug 28 09:37:41 2009
;; MSG SIZE rcvd: 287


A parte em negrito da resposta ao comando informa a configuração de SPF do servidor em questão. Adapte esta consulta para analisar as configurações de outros domínios.

Com esse passo concluído os demais servidores podem verificar a sua política de email e verificar a autenticidade dos emails recebidos de seu domínio. Resta agora configurar nosso servidor para verificar as políticas de email dos demais servidores.

Existem alguns patches e extensões disponíveis para o Postfix que exigem que o postfix seja recompilado, neste artigo utilizaremos o postfix-policyd-spf-perl que pode ser encontrado em http://www.openspf.org/Software ou no repositório padrão dos servidores Ubuntu.
Este aplicativo trata-se de um pacote perl que pode ser implementado em instalações já existentes de postfix.

A instalação foi realizada em um servidor Ubuntu 8.10.

Inicialmente instale o pacote
postfix-policyd-spf-perl e suas dependências conforme a baixo:

apt-get install
postfix-policyd-spf-perl


Após a instalação edite o arquivo /etc/postfix/masters.cf e adicione a linha abaixo:

[...]
policy unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/sbin/policyd-spf-perl

O próximo passo é editar o arquivo /etc/postfix/main.cf no parâmetro smtpd_recipient_restrictions conforme abaixo:

[...]
smtpd_recipient_restrictions =
[...]
reject_unauth_destination
check_policy_service unix:private/policy
[...]
[...]


IMPORTANTE:

Você deve especificar reject_unauth_destination sempre antes de check_policy_service ou seu servidor de correio pode se tornar um Open Relay.

Para maiores informações sobre os parâmetros de configuração do Postfix acesse http://www.postfix.org/postconf.5.html

Feito isso reinicie seu servidor Postfix

/etc/init.d/postfix restart

Pronto... seu servidor já está configurado para verificar os registros SPF de outros servidores, confira no seu arquivo de log do postfix para verificar o funcionamento do SPF. Os logs são bem diretos e você não precisará de muito tempo para entender as entradas no arquivo de log.Para entender o funcionamento do SPF confira a documentação instalada.

Para maiores informações consultem os links abaixo que serviram de base para este artigo.

http://www.openspf.org/
http://www.postfix.org/postconf.5.html
http://www.howtoforge.com/postfix_spf

terça-feira, 25 de agosto de 2009

Listar compartilhamentos no M$ Windows.

Quer listar compartilhamentos de estações/Servidores com o M$ windows no linux? Fácil...

smbclient -L nome-da-máquina -U usuário -W domínio/grupo-de-trabalho

Logo após entre com a senha do usuário. Se você precisar entrar diretamente com a senha na linha de comando para scripts ou afins basta adicionar a senha a linha acima conforme abaixo:

smbclient -L nome-da-máquina -U usuário%senha -W domínio/grupo-de-trabalho


Grande abraço.

segunda-feira, 24 de agosto de 2009

Utilizando o Evolution como cliente do exchange 2007 com a extensão evolution-MAPI

Para a visualização dos emails recebidos pelo servidor exchange 2003 aqui da empresa eu utilizava a extensão evolution-exchange que fazia uso do OWA para acesso aos emails. Após a migração do Exchange para a versão 2007 este recurso parou de funcionar tive de acessar meus emails via web até descobrir o uso da extensão evolution-mapi.

A extensão encontra-se disponível nos repositórios do Ubuntu 9.04 e para instalá-la basta entrar com o comando abaixo:

apt-get install evolution-mapi

Caso o evolution esteja aberto feixe-o e abra o aplicativo novamente.

Para configurar sua conta através do evolution-mapi siga os passos abaixo:

Abrir o evolution --> Editar --> Preferências --> Adicionar/Editar



Clique em Avançar



Preencha o campo identidade com suas informações pertinentes.



Após a instalação do exchange-mapi a opção Exchange MAPI é exibida no tipo de servidor conforme imagem acima. Em alguns casos ao se utilizar o FQDN ao se referenciar ao servidor ocorrem erros inesperados, mas esses erros não ocorrem caso se utilize o ip do servidor. Portanto entre com o ip do servidor e as demais informações de sua conta conforme a imagem acima.



Para ter acesso a GAL preencha o campo acima conforme seu domínio.

A extensão exchange-mapi ainda é um pouco lenta na checagem das mensagens no servidor, mas para quem é como eu que não abre mão de utilizar softwares livres mesmo em um ambiente misto, é uma mão na roda.

Instalando o Bandwidthd no Ubuntu Server 8.10

O Bandwidthd mostra a utilização de banda da rede através de relatórios com gráficos para serem visualizados através de seu web browser.

Siga os passos abaixo para a instalação do Bandwidthd no seu Ubuntu Server.

apt-get install bandwidthd

O instalador vai solicitar as informações referentes a que subredes e que interfaces devem ser monitoradas. Responda as perguntas de acordo com o seu ambiente.

O arquivo responsável para configuração do Bandwidthd encontra-se em:

/etc/bandwidthd/bandwidthd.conf

Ao se abrir o arquivo de configuração você encontrará as informações dadas durante a instalação que podem ser alteradas manualmente, mas a opção a ser verificada é a htdocs_dir que informa onde os relatórios html serão gerados.

Pressupondo que você já tem o apache instalado e não utiliza virtualhosts aponte a geração dos relatórios para /var/www.

O Bandwidthd adiciona um script para controle do serviço em /etc/init.d/bandwidthd

Após a configuração do diretório reinicialize o serviço do Bandwidth com o comando:

service bandwidth restart
ou
/etc/init.d/bandwidth restart

Agora aponte seu navegador para http://ip-do-servidor ou nome-do-servidor para visualizar a página inicial com as informações de utilização de banda em sua rede.

Para mim o principal uso desta ferramenta é mostrar aos clientes o uso de banda de forma mais amigável através de gráficos uma vez que prefiro utilizar ferramentas em modo texto como o iftop para verificação de banda em tempo real.

Para maiores informações sobre o Bandwidthd acesse o site:
http://bandwidthd.sourceforge.net/

Primeiro Post

Olá, Esse é o meu primeiro post deste blog.
Aqui vou postar informações referentes a TI, principalmente sobre Linux e de como integrar o mesmo com outros sistemas operacionais.
Um grande abraço a todos.