Script: IP’s Válidos na rede interna

Segue uma boa dica para descobrimos IPS válidos em nossa rede interna, todos nós sabemos que toda rede interna mesmo sendo DHCP, existe momentos que necessitamos fixar um IP em determinada máquina e nunca lembramos quais ips podemos utilizar ou não, portanto, segue um Script bem simples para guardamos em nossa rede, a qualquer momento é só executar e ele te diz os IPS UP e DOWN.

Crie um arquivo chamado IPS ou com o nome que preferir:

$ touch IPS

Entre no arquivo:

vim IPS

E cole o seguinte conteúdo:

#!/bin/bash
for i in $(seq 1 244)
do
ping -c 1 -w 1 192.168.1.$i > /dev/null && echo 192.168.1.$i -UP || echo 192.168.1.$i -DOWN ;
done;

Saia e salve com :wq! ou :x !

Dê permissão de execução:

#chmod +x IPS

Agora execute no terminal:

./IPS

No meu caso esse escript retornou algo parecido com:

192.168.1.188 -DOWN
192.168.1.189 -DOWN
192.168.1.190 -UP
192.168.1.191 -UP
192.168.1.192 -UP
192.168.1.193 -DOWN
192.168.1.194 -UP
192.168.1.195 -UP
192.168.1.196 -UP
192.168.1.197 -DOWN
192.168.1.198 -DOWN
192.168.1.199 -UP
192.168.1.200 -UP

Conclusão

Mude o IP 192.168.1 pelo range de sua rede interna.

for = varre com o parâmetro seq de 1 a 244 e guarda na váriavel $i
do = é o mesmo que Faça

Na linha do Ping eu faço nada mais que, usar os parametros -c 1 que informa que é para retornar apenas 1 ping daquele destino -w 1 seria o tempo de resposta do ping > /dev/null joga a retorno do ping fora e && exibe num echo os IP UP. O || seria a expressão OU e exibe os IP DOWN e para finalizar done; concluir o script.

Fonte:
http://www.vivaolinux.com.br/dica/Script-IP-Validos-na-rede-interna

Conversor de vídeos Online

ClipConverter é um aplicativo gratuito de conversão de mídia on-line, que permite que você converta quase qualquer endereço de áudio ou vídeo para formatos comuns.

Serviços compatíveis atualmente: YouTube (HQ e HD), Google Video, Sevenload, MySpace, Dailymotion (HQ), Vimeo (HQ), Metacafe, MyVideo, entre outros. Este conversor gratuito e rápido permite que você assista seus vídeos favoritos do YouTube no seu telefone celular, PSP, iPhone ou quase qualquer outro dispositivo.

Experimente:

http://www.clipconverter.cc

Usando ACL para permissões avançadas no Linux

Algum um tempo atrás eu me perguntava se só poderiam existir três permissões nos sistemas Unix-Like, a permissão de dono, grupo e outros, o que me limitava bastante, principalmente quando se tratavam de fileservers (servidores de arquivo). Em um sistema Linux (ou Unix), as permissões de arquivos são definidas pelo modo do arquivo, que contém nove bits que determinam as permissões de acesso ao arquivo, mais três bits especiais. Este mecanismo permite definir justamente a permissão para os três tipos de classes de usuários: o proprietário do arquivo, o grupo e outros. Este mecanismo é muito simples, e com uma combinação destes bits, muitas permissões podem ser modeladas.

O Windows já suportava a bastante tempo esse tipo de permissão, desde que a partição do sistema e/ou qualquer outra que ele fosse administrar estivesse formatada em NTFS, ou seja, você conseguia definir para vários grupos ou vários usuários o tipo de permissão que ele exercia naquele diretório, quantas vezes necessitasse. Um bom exemplo é leitura para certos usuários/grupos, leitura e escrita para alguns outros usuários/grupos, negado para os demais, e o que mais necessitar.

As ACL (Access Control List) são um sistema muito interessante onde você consegue definir qualquer tipo de permissão para qualquer usuário ou grupo. O Linux já suporta nativamente desde o Kernel 2.6. Com ACL podemos ter um modelo mais refinado de permissões. Além do proprietário do arquivo, do grupo e de outros, que o Unix nos oferece, usuários e grupos adicionais podem ter o acesso modelado, não sendo identificados pelo sistema, simplesmente como “outros” .

Você consegue fazer qualquer permissão do mesmo modo que você faz no Windows. E é suportado por partições ReiserFS, Ext2, Ext3, Ext4, JFS e XFS.

Explorando

Quando você executa o comando $ ls -l em uma pasta qualquer que não está com as definições de ACL você vê essa saída:

drwxr-xr-x 3 root root 88 2003-09-15 10:07 dhcp3
drwxr-xr-x 2 root root 136 2007-06-01 11:55 dhcpc
drwxr-xr-x 2 root root 144 2005-03-25 00:59 dictionaries-common
drwxr-xr-x 2 root root 88 2006-02-22 18:50 discover.conf.d

Observe que o usuário dono é o root e o grupo também é o root, mas não era isso que eu quero que chame a atenção, notem na estrutura da primeira coluna: drwxr-xr-x, significa que d é um diretório, os três primeiros campos são os privilégios do dono do arquivo, no caso rwx é leitura escrita e execução (para que os diretórios possam ser acessados, é obrigatório ter a opção x), a segunda parte (do quarto ao sexto campo) é o grupo, que nesse caso está configurado para somente leitura e execução (r-x), e a terceira parte (do sétimo ao nono campo) são os outros, enfim, qualquer usuário que faça logon nesse computador, tem a mesma permissão do grupo (para esse caso) que é leitura e execução (r-x).

Quando você instala as ACL e personaliza e refina a configuração de permissões do diretório, você vê essa saída com o comando $ ls -l:

drwxrwxr-x 9 usuariodono grupo 288 2007-09-26 10:10 Pasta1
drwxrwx---+ 2 usuariodono grupo 3208 2007-10-02 17:35 Pasta2
drwxrwx---+ 5 usuariodono grupo 85512 2007-10-03 08:59 Pasta3
drwxr-x--- 2 usuariodono grupo 1448 2007-09-24 17:07 Pasta4

Você pode observar que o primeiro diretório Pasta1 ainda está com as permissões comuns do Linux, sem ACL. Notem os 2 próximos diretórios, no final, onde mostram as permissões comuns, ainda tem um sinal +, que significa que estes diretórios estão personalizados, ou seja, utilizam ACL. Posteriormente você verá como saber afinal qual é a permissão real para esse arquivo, ou ainda, o que tem por trás desse sinal de + se você preferir.

Instalação das ferramentas

Para instalar as ferramentas de administração de ACL no Debian ou outras distros que utilzam apt-get você deve utilizar o comando:

# apt-get update
# apt-get install acl

Habilitando ACL

Depois que as ferramentas de console para uso do ACL forem instaladas, para começar a utilização você deve habilitar a ACL para a partição desejada. Para isso edite o arquivo /etc/fstab, adicione a string “acl” nas opções do sistema de arquivo desejado:

# vi /etc/fstab

Veja abaixo a string “acl” em negrito nas opções:

# /etc/fstab: filesystem table.
#
# filesystem mountpoint type options dump pass
/dev/sda1 / reiserfs noatime,<strong>acl</strong>,notail 0 1
/dev/sda2 none swap sw 0 0

Se o seu sistema de arquivos (partição) já está montado, você pode reinciar o sistema ou simplesmente remontar a partição:

# mount / -o remount,acl

Configurando ACL

Com a instalação das ferramentas e nenhum erro após habilitar as ACL para o sistema de arquivos, então agora vamos colocar a mão na massa.

Supondo que você tenha um diretório e necessite que dois grupos tenham permissões diferentes, ou ainda personalizar dois usuários para permissões diferentes, vamos imaginar essa situação.

Primeiro vamos criar uma pasta e alterar os donos dela normalmente como se faz:

# mkdir pasta1
# chown user pasta1
# chgrp desenv pasta1

Pronto, criamos o diretório pasta1 e configuramos para que o usuario “user” seja o dono e o grupo “desenv” seja o grupo dono, agora vamos definir permissões para a pasta:

# chmod 750 pasta1

Agora configuramos para que o dono do diretório (usuário “user”) tenha acesso total (rwx), o grupo tenha acesso somente de leitura (r-x) e os outros não tenham nenhum acesso (—) (deny).

Vamos agora refletir, como é que eu poderia definir para que mais usuários tivessem controle total (rwx) sendo que eu preciso que o grupo “desenv” fique com permissões de acesso para somente de leitura? Na verdade não existe como, se você precisa que mais um grupo acesse com controle total (rwx), você teria que trocar as permissões de acesso do grupo “desenv” para controle total (rwx), e acrescentar usuários que necessitam de controle total no grupo “desenv” e mudar a permissão, de modo que o grupo “desenv” obtenha controle total a pasta. Esse tipo de problema acaba, graças a flexibilidade das ACL.

Personalizando/refinando permissões de arquivo com ACL

Para utilizar as ACL vamos usar 2 comandos básicos, setfacl e getfacl, o set é para definir e o get é para saber quais foram as permissões definidas.

Vamos então aplicar uma ACL simples para que o grupo edita possa ter execução total

# setfacl -m g:edita:rwx pasta1/

Executando o comando ls -l:

# ls -l
 
total 2
drwxrwxr-x+ 2 root root 1024 2008-05-06 11:41 pasta1

Reparem que agora existe um + após os 9 digitos binários, o que significa que existem permissões extras além do já permitido por padrão.

Vamos pegar o resultado agora com o comando getfacl, ele irá nos mostrar como estão aplicadas as ACL (o que tem por trás do +).

# getfacl pasta1/
 
# file: pasta1
# owner: root
# group: root
user::rwx
user:root:rwx
group::rwx
group:edita:rwx
mask::rwx
other::r-x

Podemos observar que as ACL foram corretamente aplicadas, de modo que o grupo edita é capaz de editar, ler e listar o conteúdo da pasta1.

Agora essa pasta está com as ACL definidas, portanto, podemos testar, entrando com os usuários bloqueados, usuários que são aceitos somente para leitura, usuários que são aceitos para controle total (leitura, escrita e etc).

Mais exemplos

Se necessitar que um usuário tenha apenas permissão de leitura em um determinado arquivo você pode usar a seguinte sintaxe abaixo:

# setfacl -m u:usuario:r-- arquivo.txt

Se for um grupo altere para “g:grupo” e assim por diante, é infinito o que você pode fazer com essas ACL.

Configurações para o Samba

Para que o samba consiga interpretar corretamente as ACL você deve seguir o exemplo abaixo:

Adicione o parâmetro map acl inherit = Yes no compartilhamento no qual você deseja ativar ACL (ou na pasta compartilhada que você alterou permissões e deseja efetivar as ACL).

Por padrão eu crio o meu compartilhamento da maneira descrita abaixo:

[compartilhado]
comment = compartilhado
path = /compartilhado
read only = No
create mask = 0777
force create mode = 0777
directory mask = 0777
force directory mode = 0777
map acl inherit = Yes

Não esqueça depois de alterar as ACL de reiniciar o samba para que ele aplique as configurações corretas.

# /etc/init.d/samba restart

Fonte:
http://www.hardware.com.br/dicas/acl-linux.html

Limitando taxa de download do Apt-get

Dica para não consumir toda a banda da sua conexão, configure o Apt-get para limitar sua taxa de download.

Edite o arquivo 70debconf:

root@linux:~# gedit /etc/apt/apt.conf.d/70debconf

Acrescente ao final do arquivo o seguinte:

// Limita taxa de download
//
Acquire
{
http {
Dl-Limit "20"; // Kb/seg
}
}
//
//

*Onde x é a quantidade de Kb/sec máxima de download.

No exemplo acima limitei a taxa máxima para 20 Kb/seg.

Remover Kernel antigo com segurança no Ubuntu / Debian

Passo 1:
Encontrar a versão do kernel atual

Digite num terminal:

$ uname -r

Terá como resposta, algo parecido com:

taurion@linux:/etc/grub.d$ uname -r
2.6.31-16-generic

Onde, 2.6.31-16-generic é o kernel atual que está sendo usado.

Passo 2: Listar todos os kernels instalados
Usuário Ubuntu/Debian Linux usar o comando dpkg:

$ sudo dpkg -l | grep linux-headers-*

Aparecerá:

taurion@linux:/etc/grub.d$ sudo dpkg -l | grep linux-headers-*
ii  linux-headers-2.6.31-14               2.6.31-14.48                               Header files related to Linux kernel version
ii  linux-headers-2.6.31-14-generic       2.6.31-14.48                               Linux kernel headers for version 2.6.31 on x
ii  linux-headers-2.6.31-16               2.6.31-16.53                               Header files related to Linux kernel version
ii  linux-headers-2.6.31-16-generic       2.6.31-16.53                               Linux kernel headers for version 2.6.31 on x
ii  linux-headers-generic                 2.6.31.16.29                               Generic Linux kernel headers

Passo 3: Remover todos kernels antigos
ATENÇÃO! Não remover o kernel em uso pelo sistema.
Escolher qual kernel deve-se desinstalar da lista dos instalados.

Digitar o seguinte comando para remover o pacote do kernel em Debian / Ubuntu Linux:

$ sudo apt-get remove linux-headers-2.6.31-14 linux-headers-2.6.31-14-generic

E depois:

$ sudo update-grub

Foi excluído o kernel mais antigo.
Caso tenha outros kernels antigos instalados, você pode repetir o apt-get remove e desinstalá-los.

Atualização:

Caso os passos a seguir ainda não removam as entradas dos Kernels antigos da lista do GRUB, você deverá remover os arquivos de inicialização manualmente dentro do diretório /boot. Basta remover os arquivos iniciados com abi*, config*, initrd.img*, System.map*, vmcoreinfo* e vmlinuz*, identificados pelo número de versão do Kernel, tomando cuidado para não remover o Kernel atual.

Em um terminal se torne super usuário:

junior@linux:/boot$ sudo su
[sudo] password for junior:

Entre no diretório aonde estão os arquivos que serão deletados:

root@linux:/boot# cd /boot
root@linux:/boot# ls
abi-2.6.32-21-generic         memtest86+.bin
abi-2.6.32-23-generic         System.map-2.6.32-21-generic
config-2.6.32-21-generic      System.map-2.6.32-23-generic
config-2.6.32-23-generic      vmcoreinfo-2.6.32-21-generic
grub                          vmcoreinfo-2.6.32-23-generic
initrd.img-2.6.32-21-generic  vmlinuz-2.6.32-21-generic
initrd.img-2.6.32-23-generic  vmlinuz-2.6.32-23-generic
lost+found

Delete os arquivos com o comando “rm -r nome_arquivo”.

root@linux:/boot# rm -r abi-2.6.32-21-generic
root@linux:/boot# rm -r config-2.6.32-21-generic
root@linux:/boot# rm -r initrd.img-2.6.32-21-generic
root@linux:/boot# rm -r System.map-2.6.32-21-generic
root@linux:/boot# rm -r vmcoreinfo-2.6.32-21-generic
root@linux:/boot# rm -r vmlinuz-2.6.32-21-generic

Deixando somente os correspondentes ao Kernel atual.

root@linux:/boot# ls
abi-2.6.32-23-generic         memtest86+.bin
config-2.6.32-23-generic      System.map-2.6.32-23-generic
grub                          vmcoreinfo-2.6.32-23-generic
initrd.img-2.6.32-23-generic  vmlinuz-2.6.32-23-generic
lost+found
root@linux:/boot#

Atualize o GRUB.

junior@linux:~$ sudo update-grub
[sudo] password for junior:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-23-generic
Found initrd image: /boot/initrd.img-2.6.32-23-generic
Found memtest86+ image: /memtest86+.bin
Found Microsoft Windows XP Professional on /dev/sda1
done
junior@linux:~$
or

Pronto, reinicie e veja se realmente o Kernel antigo desapareceu.

Configurar auditoria e lixeira no Samba

Em qualquer servidor de arquivos, a principal prioridade é assegurar a integridade e a segurança dos dados. Por mais que a rede seja estável e por mais robusto que seja o servidor, o elo mais fraco da cadeia acaba sendo sempre o usuário. De nada adianta um servidor perfeitamente estável se ele deleta um arquivo importante “sem querer”. Um recurso que muitos administradores de sistemas sonham em implementar em seus servidores, é uma lixeira de rede.

Pensando nisso, o Samba oferece a opção de usar uma lixeira, que pode lhe poupar muita dor de cabeça em diversas situações. Isso é feito através da opção “vfs object = recycle“, que cria uma lixeira dentro de cada pasta compartilhada, que armazena todos os arquivos deletados. Isso previne a remoção acidental de arquivos, já que o usuário passa a precisar deletar o arquivo e em seguida limpar o conteúdo da lixeira para realmente removê-lo, que é o comportamento esperado por muitos.

Eu subentendo que você já está com o Samba instalado e rodando perfeitamente e que quer habilitar a lixeira nele. Para tal, antes de qualquer coisa, veja se os arquivo “recycle.so” está no diretório “/usr/lib/samba/vfs”, pois sem este arquivo este tutorial não servirá para nada.

Crie um diretório que será a lixeira para sua rede Samba:

$ mkdir -p /var/spool/samba/lixeira

O nome do diretório é você que irá definir. Caso você queira que os seus usuários tenham acesso à lixeira (não recomendo por questões de segurança), basta dar permissão global neste diretório e criar links simbólicos diretamente para o diretório escolhido.

Agora que você já criou o local em que será a sua lixeira, está na hora de editar as configurações do Samba.

Edite o arquivo /etc/samba/smb.conf e acrescente as linhas abaixo na sessão [Global] se a lixeira for ser utilizada para todos os volumes compartilhados ou, então, apenas em um dos seus [compartilhamentos], como no exemplo abaixo:

#Exemplo Completo
[exemplo]
comment = Comentario
path = /arquivos/teste
valid users = @grupo1, @grupo2
read only = No
create mask = 0777
force create mode = 0775
force security mode = 0775
guest ok = No
browseable = No
locking = no
write cache size = 500000
share modes = no
veto files = /*.mp3/*.wav/*.tif/*.pif/*.jpg/*.bmp
hide files = /*.mp3/*.wav/*.tif/*.pif/*.jpg/*.bmp
vfs objects = recycle
recycle:facility = LOCAL1
recycle:priority = NOTICE
recycle:maxsize = 0
recycle:repository = .recycle/%U
recycle:directory_mode = 0777
recycle:subdir_mode = 0777
recycle:keeptree = True
recycle:touch = False
recycle:maxsize = 0
recycle:versions = True
recycle:noversions = .doc|.xls|.ppt|.pdf
recycle:exclude = *.tmp, *.temp, *.log, *.ldb, *.o, *.obj, ~*.*, *.bak, *.iso
recycle:exclude_dir = tmp, temp, cache

Explicando os parâmetros:

recycle:facility = LOCAL1
recycle:priority = NOTICE

Isso significa que um arquivo de log será usado para registrar a movimentação da sua lixeira.

recycle:maxsize = 0

Nesta linha de código voce limita o tamanho de cada arquivo que poderá ser armazenado na lixeira. O número zero, como no exemplo, significa que não tem limite.

recycle:repository = .recycle/%U

Neste código, você informa ao Samba em qual endereço está a sua lixeira. A tag %U é o nome do seu usuário. Com isso, você garante que todos os arquivos deletados pelo usuário A só estarão acessíveis a ele mesmo.

recycle:directory_mode = 0777
recycle:subdir_mode = 0777
recycle:keeptree = True
recycle:touch = False

Aqui você determina as permissões dos diretórios. Além disso, aqui você define também se o Samba deverá guardar o nome do diretório de onde o arquivo fora excluído (keeptree) e se a data do arquivo deletado vai ser alterada para a data da exclusão (touch).

recycle:maxsize = 0

Nesta linha de código voce limita o tamanho de cada arquivo que poderá ser armazenado na lixeira. O número zero, como no exemplo, significa que não tem limite.

recycle:versions = True

versions: verifica a existência do arquivo na lixeira, e caso exista um arquivo com o mesmo nome, ele cria uma cópia dele e armazena ambos. Assim sucessivamente, enquanto o seu usuário não parar de deletar arquivos de mesmo nome.

recycle:noversions = .doc|.xls|.ppt|.pdf

noversion: este é exatamente o contrário do anterior. Tudo o que estiver neste parâmetro irá sobrescrever o anterior. Significa dizer que se o usuário excluir mais de um arquivo com o mesmo nome, somente o último estará lá, guardadinho para ele. E adeus para o primeiro.

recycle:exclude = *.tmp, *.temp, *.log, *.ldb, *.o, *.obj, ~*.*, *.bak, *.iso
recycle:exclude_dir = tmp, temp, cache

Aqui é algo que é necessária uma dose de atenção e cautela. Você está definindo aquilo que não será armazenado na lixeira em hipótese alguma. Significa dizer que o que estiver ali nestas regras, será deletado de vez sem passar pela lixeira. Use este recurso com cautela para não ter dores de cabeça no futuro.

Auditando os acessos

O Samba oferece também um recurso de geração de log. Ele pode ser ativado adicionando as opções abaixo na seção [global] do smb.conf:

log level = 1
log file = /var/log/samba.log
max log size = 1000

A opção “log level” indica o nível das mensagens (de 0 a 10), sendo que o nível 0 mostra apenas mensagens críticas, o nível 1 mostra alguns detalhes sobre os acessos e os demais mostram diversos níveis de informações de debug, úteis a desenvolvedores. A opção “log file” indica o arquivo onde ele será gerado e a “max log size” indica o tamanho máximo, em kbytes.

A partir do Samba 3.04 foi incluído um módulo de auditoria, que permite logar os acessos e as modificações feitas de uma forma muito mais completa que o log tradicional. Isso é feito através do módulo “full_audit”, que (do ponto de vista técnico) funciona de forma similar ao módulo “recycle” usado pela lixeira.

O primeiro passo é ativar o módulo, o que é feito através da linha abaixo:

vfs objects = full_audit

O próximo passo é definir quais operações devem ser logadas através da opção “full_audit:success”, como em:

full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown

(as opções formam uma única linha)

As opções que incluí no exemplo são open (ler um arquivo), opendir (ver os arquivos dentro de uma pasta), write (alterar um arquivo), unlink (deletar um arquivo), rename (renomear um arquivo), mkdir (criar um diretório), rmdir (remover um diretório), chmod (alterar as permissões de acesso de um arquivo) e chown (mudar o dono de um arquivo).

Você pode remover algumas destas opções, deixando apenas as opções desejadas, ou ver uma lista completa das opções que podem ser incluídas no manual do vfs_full_audit, disponível no:

http://samba.org/samba/docs/man/manpages-3/vfs_full_audit.8.html

Continuando a configuração, especificamos as informações que desejamos que sejam incluídas no log, usando a opção “full_audit:prefix”. Aqui podemos utilizar as variáveis que mostrei no tópico sobre o compartilhamento [homes], como a “%u” (o nome do usuário), “%I” (o IP da máquina) e “%S” (o nome do compartilhamento onde foi feito o acesso ou a alteração). Não é necessário incluir a variável referente ao nome da máquina, pois o nome é incluído automaticamente:

full_audit:prefix = %u|%I|%S

Por padrão, o módulo loga não apenas os acessos e modificações, mas também um grande volume de mensagens de alerta e erros gerados durante a operação. A opção “full_audit:failure = none” evita que estas mensagens sejam logadas, fazendo com que o log fique muito mais limpo e seja mais fácil encontrar as opções que realmente interessam:

full_audit:failure = none

Concluindo, especificamos o nível dos alertas, entre os suportados pelo syslog, como em:

full_audit:facility = local5
full_audit:priority = notice

Juntando tudo, temos:

vfs objects = full_audit
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown
full_audit:prefix = %u|%I|%S
full_audit:failure = none
full_audit:facility = local5
full_audit:priority = notice

Esta configuração pode ser tanto incluída dentro da seção [global] (de forma que o log inclua os acessos e as alterações feitas em todos os compartilhamentos) quanto ser incluída apenas na configuração de um compartilhamento específico.

Com isso, o Samba vai passar a gerar os eventos referentes aos acessos. Falta agora configurar o sysklogd (o serviço responsável pela geração dos logs do sistema), para logar os eventos, gerando o arquivo de log que poderá ser consultado. Para isso, abra o arquivo “/etc/syslog.conf” e adicione a linha abaixo:

local5.notice /var/log/samba-full_audit.log

Note que o “local5.notice” corresponde aos valores informados nas opções “full_audit:facility” e “full_audit:priority”, enquanto o “/var/log/samba-full_audit.log” é o arquivo de log que será gerado.

Depois de concluída a configuração, reinicie os serviços e o log passará a ser gerado imediatamente:

# /etc/init.d/samba restart
# /etc/init.d/sysklogd restart

Dentro do arquivo, você verá entradas contendo a data e hora, o nome da máquina, o usuário, o IP da máquina, o nome do compartilhamento, a operação realizada e o nome do arquivo ou pasta onde ela foi realizada, como em:

Nov 18 15:21:15 m5 smbd_audit: junior|192.168.1.23|arquivos|opendir|ok|.
Nov 18 15:21:29 m5 smbd_audit: junior|192.168.1.23|arquivos|open|ok|r|addr.txt
Nov 18 15:21:34 m5 smbd_audit: junior|192.168.1.23|arquivos|mkdir|ok|trabalho
Nov 18 15:21:36 m5 smbd_audit: junior|192.168.1.23|arquivos|opendir|ok|trabalho
Nov 18 15:21:43 m5 smbd_audit: junior|192.168.1.23|arquivos|open|ok|w|trabalho/Samba.sxw
Nov 18 15:21:44 m5 smbd_audit: junior|192.168.1.23|arquivos|open|ok|w|trabalho/foto.jpg

O log conterá entradas referentes a todos os usuários e máquinas, mas é fácil ver apenas as entradas referentes a um determinado usuário, compartilhamento, endereço IP ou outro parâmetro qualquer ao listar o arquivo pelo terminal usando o grep, que permite mostrar apenas as linhas contendo determinados trechos de texto, como em:

# cat /var/log/samba-full_audit.log | grep "junior|192.168.1.23"

(mostra os acessos provenientes do usuário junior, feitos a partir do endereço 192.168.1.23)

# cat /var/log/samba-full_audit.log | grep "|arquivos|"

(acessos feitos ao compartilhamento “arquivos”, por parte de qualquer usuário)

… e assim por diante. Você pode também direcionar a saída para um novo arquivo (ao invés de tentar lê-la pelo próprio terminal), como em:

# cat /var/log/samba-full_audit.log | grep "|arquivos|" &gt; arquivos.log

Referências:

http://www.butecodebits.com.br/2008/04/20/servidor-samba-lixeira

http://www.guiadohardware.net/tutoriais/samba-configuracao-avancada/

http://hamacker.santhanna.net/?p=cwcndzut&paged=12

Comandos do terminal Linux de A a Z

Preferir usar uma interface gráfica com telinhas bonitas é uma opção mais comum.

Mas existem momentos e necessidades de que precisamos usar o terminal e isso não é problema. Não deveria sê-lo pelo menos.

Para ajudar, existe a página An A-Z Index of the Bash command line for Linux onde você encontra todos os comandos de terminal que pode usar ou pesquisar. Vale a conferida.

Referências:
http://www.ubuntudicas.com.br/blog/2010/09/comandos-do-terminal-de-a-a-z/

Acabar com Spam no WordPress

A algum tempo eu vinha sofrendo com a quantidade de Spams que recebia nos comentários do blog diariamente. Dezenas por dia.

Chegou uma hora que não aguentava mais e resolvi procurar alguma solução para esse problema. Em buscas na internet achei alguns vários Plugins do WordPress que prometiam essa solução, mas acabei optando por dois que reduziram a zero a quantidade de Spams que recebo atualmente. São eles: Akismet e o Simple Trackback Validation.

Akismet Plugin

O Akismet é um serviço de filtro de spam criado pela Automattic, empresa que emprega a maior parte dos desenvolvedores da plataforma de weblog WordPress, e lançado em 25 de Outubro de 2005. Akismet tenta filtrar spam de links e trackbacks dos comentários do blog. O filtro funciona combinando informações sobre spam recuperado de todos os blogs participantes, utilizando estas regras para bloquear futuros spams.

Akismet foi originalmente desenvolvido para se integrar como um plugin para WordPress. Atualmente faz parte da distribuição padrão do WordPress desde a versão 2.0 e ativado em todos os blogs hospedados sob o domínio WordPress.com. Uma API pública resultou em um plugin patrocinado pela Automattic para Movable Type, e diversas outras plataformas. Liberado sobre a licensa Creative Commons Sharealike, o plugin Akismet é um software livre, apesar do código do sistema do Akismet e seu algorítmo ainda não foi liberado publicamente.

Akismet é gratuito para uso pessoal. para usar os serviços do Akismet é necessário obter uma chave da API no site WordPress.com.

Site oficial do Plugin: http://wordpress.org/extend/plugins/akismet/
http://akismet.com/

Simple Trackback Validation Plugin

Como nem todos os bots utilizam o método POST, mas sim o sistema de Trackback, é necessário bloquear também este tipo de bots.

Para tal existe o Simple Trackback Validation que verifica se o IP do servidor que enviou o trackback é o mesmo IP do URL do Trackback.

A partir desta verificação, 99% dos Spam Bots vão ser bloqueados, pois a maioria deles estão rodando em máquinas diferentes da página do endereço do URL para evitar que estes sejam bloqueados.

Existe sempre um ou outro que ultrapasse esta protecção, ou até mesmo falhas encontradas no sistema que permitam ao Spam Bot fazer o seu trabalho, no entanto irá reduzir em muito o número de Spams que recebe.

Estes dois plugins podem ser encontrados no directório oficial do WordPress e portanto instalados em segundos diretamente do backend do WordPress. Convém ler as instruções de utilização de cada um, tal como configurar as opções ao seu gosto.

Site oficial do Plugin: http://wordpress.org/extend/plugins/simple-trackback-validation/
http://sw-guide.de/wordpress/plugins/simple-trackback-validation/

Ler mais:

http://www.webtuga.com/acabar-com-spam-no-wordpress/

Bloqueando extensões nos diretórios do Samba

Quem administra redes heterogêneas com servidores de arquivo Linux e estações Windows, já deve ter percebido a presença de arquivos “suspeitos” no compartilhamento do servidor.

Arquivos do tipo, .bat, .inf, .exe, que apesar de não oferecerem ricos ao servidor Linux, podem prejudicar as estações Windows.

Um modo de impedir que esses arquivos sejam gravados no servidor, é setando o parâmetro “veto files” na configuração do Samba.

Para isso, adicione as linhas a seguir no arquivo “smb.conf”.

#Define quais extenções serão vetadas (não serão gravadas)
veto files = /*.exe/*.bat/*.cmd/*.nds/*.pif/*.com/*.scr/*.exe/*.dll/*.msp/*.msi/*.msu/*.ini/*.inf/*.jad/*.jar/*.reg/*.vbs/*.dat/*.cab/

Além disso, o “veto files” também pode ser útil caso queira proibir determinadas extensões em diretórios específicos ou em todos diretórios do servidor. Como no caso de empresas aonde é proibido por exemplo, colocar MP3 e vídeos no compartilhamento.

Placa Wireless Broadcom BCM4312 no Ubuntu 10.04

Assim como na versão anterior do Ubuntu (Karmic Koala – 9.10), a nova versão (Lucid Lynx – 10.04) também não instala automaticamente a placa de rede wireless (Broadcom BCM4312) do meu notebook, um Dell Inspiron 1525, tendo que ser instalada manualmente.

Os passos para instalação continuam os mesmo do post que tinha feito para o Karmic Koala (aqui), precisando apenas instalar o pacote “bcmwl-kernel-source “.

Segue abaixo:

Se você tiver conexão com a internet, basta digitar em um terminal:

$ sudo apt-get update
$ sudo apt-get install bcmwl-kernel-source

Caso não esteja com o computador conectado, siga os passos:

Na barra superior vá em: Sistema -> Administração -> Gerenciador de Pacotes Synaptic.

Na janela do Synaptic que se abrirá, vá em: Configurações -> Repositórios -> Programas do Ubuntu, e marque a opção “Cdrom com Ubuntu 10.04 ‘Lucid Lynx ‘” e feche. Clique em “Recarregar”.

Vá em “Editar” no menu superior do Synaptic e clique em “Procurar…”.
Procure pelo pacote “bcmwl-kernel-source“.
Marque o pacote para instalar, e clique em aplicar.
Depois da instalação reinicie o computador e pronto.