Desabilitando impressoras no servidor Samba

12, agosto, 2010 Sem comentários

Opa,

Já faz um tempo que não posto nada técnico por aqui (estou brincando bastante com o Android ainda), portanto resolvi postar essa dica para desabilitar o suporte a impressão no servidor Samba.

Para isso basta editar o arquivo smb.conf e alterar/adicionar as linhas abaixo:

# vim /etc/samba/smb.conf

load printers = no
printing = bsd
printcap name = /dev/null
show add printer wizard = no
disable spoolss = yes

Execute o comando testparm para verificar se existem erros no arquivo
de configuração e depois basta recarregar o samba com o comando abaixo:

# /etc/init.d/smb reload

Pronto!

Fonte: http://lists.samba.org/archive/samba/2006-December/127596.html

Categories: Linux Tags: , ,

5 aplicativos para Android

Opa,

Nesse post vou listar 5 aplicativos para o Android que uso e recomendo, todos disponíveis pelo Market:

1o. Wordress

Já mencionei no post anterior e volto a comentar, ótimo aplicativo para quem possui um blog com WordPress.

2o. Jewels

Joguinho altamente viciante!!!

3o. Twitter

Aplicativo oficial para o Twitter.

4o. APN Brasil

Aplicativo para configurar e ativar/destivar o acesso à Internet no seu Android.

5o. ConnectBot

Acesse via SSH seus servidores Linux através do seu Android!

No momento deixo essas 5 dicas de aplicativos para o Android, em breve irei mencionar outras interessantes e também algumas que ainda não estão disponíveis no Android Market!

Abraço!

Categories: Tech Tags: ,

Teste do WordPress para Android

12, julho, 2010 2 comentários

Opa,

Esse post foi enviado a partir do meu Motorola Milestone com o aplicativo do WordPress para Android para teste! O aplicativo possui suporte para posts (com direito a media, tags e categorias), páginas e comentários!

Recomendo! Abraço!

Categories: Tech Tags:

Compilar driver ET131x no OpenSuSE 10.3

Opa,

Recentemente tive que compilar o driver et131x para a placa de rede Agere PCI Express ET-131x no OpenSuSE 10.3. Para isso primeiro é necessário instalar os fontes do kernel e também alguns pacotes necessários para compilação:

# zypper install make gcc kernel-source

Depois é necessário baixar os drivers atualizados no site do projeto:

# wget -c http://sourceforge.net/projects/et131x/files/et131x-1.2.3-3%20Source/et131x/et131x-1.2.3-3.tar.gz/download

Descompactar e compilar o driver:

# tar -xvzf et131x-1.2.3-3.tar.gz
# cd et131x-1.2.3-3/
# make

Caso não seja apresentado nenhum erro na compilação, instalar o módulo no sistema através do comando:

# make modules_install

Carregue o módulo no sistema:

# modprobe et131x

Verifique com o comando dmesg se o driver foi carregado:

# dmesg

10/100/1000 Base-T Ethernet Driver for the ET1310, v1.2.3 01/31/2006 15:40:00 by Agere Systems, http://www.agere.com
ACPI: PCI Interrupt 0000:03:00.0[A] → GSI 16 (level, low) → IRQ 16
PCI: Setting latency timer of device 0000:03:00.0 to 64

Agora basta configurar a interface pelo YaST:

# yast network

Abraço!

Categories: Linux Tags: , ,

Patch fix para a quarentena do Dspam 3.8.0

Opa,

Recentemente encontrei um problema em uma instalação de um servidor de e-mail com o software Dspam (anti-spam). O problema aconteceu quando um e-mail legítimo foi considerado spam (falso positivo) e decidi recuperá-lo através da interface Web, removendo-o da quarentena. O primeiro erro que detectei foi na visualização da mensagem pois não era exibido o código fonte, o segundo erro foi quando cliquei no botão “Deliver message”, nada ocorreu! Após uma busca rápida pela Internet encontrei um patch para o arquivo dspam.cgi que conserta esse problema, segue abaixo:

--- webui.orig/cgi-bin/dspam.cgi	2007-02-14 13:18:59.000000000 -0500
+++ webui/cgi-bin/dspam.cgi	2007-03-27 16:43:46.000000000 -0400
@@ -531,10 +532,13 @@
   foreach my $period (qw( daily weekly )) {
     my $uc_period=uc($period);
     my $hk="DATA_$uc_period";
-    my %lst=();
+    my %lst=(
+	spam => [],
+	nonspam => [],
+	title	=> []
+    );
     foreach my $hr (sort {$a->{idx}<=>$b->{idx}} (values %{$Stats{$period}})) {
       foreach my $type (qw( spam nonspam title )) {
-        (exists $lst{$type}) || ($lst{$type}=[]);
         push(@{$lst{$type}},$hr->{$type});
         my $totk="";
         if ($type eq "spam") { $totk="S"; }
@@ -546,9 +550,9 @@
       }
     }
     $DATA{$hk}=join("_",
-		join(",",@{$lst{spam}}),
-		join(",",@{$lst{nonspam}}),
-		join(",",@{$lst{title}}),
+		join(",",@{$lst{spam}}    || [0]),
+		join(",",@{$lst{nonspam}} || [0]),
+		join(",",@{$lst{title}}   || [0]),
 	);
   }
 
@@ -698,7 +702,7 @@
   }
   open(FILE, "<$MAILBOX");
   while(<FILE>) {
-    chomp;
+    s/\r?\n$//;
     push(@buffer, $_);
   }
   close(FILE);
@@ -759,7 +763,7 @@
 
   open(FILE, "<$MAILBOX");
   while(<FILE>) {
-    chomp;
+    s/\r?\n$//;
     push(@buffer, $_);
   }
   close(FILE);
@@ -839,7 +843,7 @@
 
   open(FILE, "<$MAILBOX");
   while(<FILE>) {
-    chomp;
+    s/\r?\n//;
     push(@buffer, $_);
   }
   close(FILE);
@@ -907,7 +911,7 @@
   }
   open(FILE, "<$MAILBOX");
   while(<FILE>) {
-    chomp;
+    s/\r?\n//;
     push(@buffer, $_);
   }
   close(FILE);
@@ -980,7 +984,7 @@
   $rowclass="rowEven";
   open(FILE, "<$MAILBOX");
   while(<FILE>) {
-    chomp;
+    s/\r?\n//;
     if ($_ ne "") {
       if ($mode eq "") { 
         if ($_ =~ /^From /) {

Após aplicar o patch o código da mensagem passou a ser exibido normalmente e o botão “Deliver message” também. Abraço!

Fonte: http://www.mail-archive.com/dspam-users@lists.nuclearelephant.com/msg00675.html

Categories: Linux Tags: , ,

Configurando sendmail como cliente SMTP-AUTH

Opa,

Essa dica é para aqueles que precisam configurar um servidor com sendmail para enviar e-mail’s autenticando em um servidor SMTP. Nesse post foi utilizado o sistema operacional Red Hat Enterprise Linux 4 i386.

Primeiro instale o pacote sendmail-cf referente ao seu sistema via up2date ou baixe o pacote de algum repositório e instale via rpm.

Via up2date:

# up2date -i sendmail-cf

Via wget:

# wget -c ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/core/3/i386/os/Fedora/RPMS/sendmail-cf-8.13.1-2.i386.rpm
# rpm -ivh sendmail-cf-8.13.1-2.i386.rpm

Edite o arquivo sendmail.mc, adicionando ou alterando as linhas abaixo:

# vim /etc/mail/sendmail.mc

define(`SMART_HOST',`smtp.seudominio.com.br')
FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
dnl EXPOSED_USER(`root')dnl
MASQUERADE_AS(`seudominio.com.br')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(nomeservidor.seudominio.com.br)dnl
MAILER(local)dnl

Gere o arquivo sendmail.cf:

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

Crie o arquivo authinfo, ajuste suas permissões e gere o db:

# vim /etc/mail/authinfo

AuthInfo:smtp.seudominio.com.br "U:usuario" "P:senha" "M:PLAIN"
AuthInfo: "U:usuario" "P:senha" "M:PLAIN"

# chmod 660 /etc/mail/authinfo
# makemap hash /etc/mail/authinfo < /etc/mail/authinfo

Agora basta reiniciar o serviço e verificar nos logs se os e-mail’s estão sendo enviados com sucesso:

# /etc/init.d/sendmail restart
# tail -f /var/log/maillog

Abraço!

Fontes:
http://www.linuxquestions.org/questions/slackware-14/sendmail-smtp-auth-howto-224543/
http://kbase.redhat.com/faq/docs/DOC-10697
http://rpm.pbone.net/index.php3/stat/4/idpl/11412526/dir/fedora_3/com/sendmail-cf-8.13.1-2.i386.rpm.html

Categories: Linux Tags: , ,

Protegendo serviços com o Fail2ban

Opa,

Recentemente notei uma grande quantidade de tentativas de acesso (sem sucesso) ao servidor de e-mail’s onde trabalho, mais precisamente no serviço de autenticação para envio de e-mail’s (SASL), após verificar que as tentativas vinham de vários endereços diferentes e obviamente perceber que manualmente isso ia dar um trabalho enorme para bloquear, resolvi procurar uma solução para esse problema na Internet, foi quando encontrei o fail2ban, na verdade já tinha lido algumas coisas sobre ele, mas nunca cheguei a testá-lo. O fail2ban para quem não conheçe serve para verificar os logs do sistema e identificar as tentativas de acesso aos serviços (SSH, SASL, POP3, IMAP, DNS, Apache, etc…) utilizando o método de brute force, após essa identificação é possível realizar o bloqueio do IP utilizando o iptables ou o TCP wrappers (hosts.deny).

O servidor em questão está executando um OpenSuSE 10.3, ou seja, o repositório oficial já foi descontinuado pela Novell e foi necessário adicionar um repositório para poder instalar as dependências:

# zypper ar http://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/10.3/repo/oss/ Repositorio

Instale as dependências:

# zypper install python python-devel

Faça o download dos fontes no site do projeto (nesse post utilizei a versão 0.8.4):

# wget -c http://downloads.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.4/?use_mirror=ufpr

Descompacte e instale a aplicação:

# tar -xvjf fail2ban-0.8.4.tar.bz2 && cd fail2ban-0.8.4
# python setup.py install

Abra o arquivo jail.conf e configure o serviço de acordo com as suas necessidades:

# vim /etc/fail2ban/jail.conf
[DEFAULT]

# IPs que devem ser ignorados
ignoreip = 127.0.0.1 192.168.1.200

# Tempo em segundos que o IP sera banido
bantime = 600

# O host sera banido caso atinja o numero de maxretry durante o tempo configurado em findtime
findtime = 600

# Apos quantas tentativas o host devera ser bloqueado
maxretry = 3

# Backend utilizado, podendo ser gamin, polling ou auto
backend = auto

# Agora criamos as jail's:

# Este jail bloqueia o host apos 5 tentativas no Courier POP3
[courierpop3]

enabled = true
port = pop3
filter = courierlogin
action = iptables[name=%(__name__)s, port=%(port)s]
logpath = /var/log/mail
maxretry = 5

# Este jail bloqueia o host apos 5 tentativas no Courier Imap
[courierimap]

enabled = true
port = imap2
filter = courierlogin
action = iptables[name=%(__name__)s, port=%(port)s]
logpath = /var/log/mail
maxretry = 5

# Este jail bloqueia o host apos 3 tentivas no Sasl e envia um e-mail para o destinatario
[sasl-iptables]

enabled = true
filter = sasl
action = iptables[name=sasl, port=smtp, protocol=tcp]
sendmail-whois[name=sasl, dest=fulano@dominio.com.br]
logpath = /var/log/mail

OBS.: Foi necessário alterar o filtro do sasl.conf para poder detectar as tentativas corretamente:

# vim /etc/fail2ban/filter.d/sasl.conf
failregex = (?i): warning: [-._\w]+\[\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed: authentication failure$

Dica: Para testar um filtro basta executar o comando fail2ban-regex seguido do log desejado e o arquivo de filtro referente, também pode ser usado uma string no lugar do log e a expressão regular no lugar do arquivo de filtro:

# fail2ban-regex /var/log/mail /etc/fail2ban/filter.d/sasl.conf
Running tests
=============

Use regex file : /etc/fail2ban/filter.d/sasl.conf
Use log file : /var/log/mail

Results
=======

Failregex
|- Regular expressions:
| [1] (?i): warning: [-._\w]+\[\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed: authentication failure$
|
`- Number of matches:
[1] 5915 match(es)

Ignoreregex
|- Regular expressions:
|
`- Number of matches:

Summary
=======

Addresses found:
[1]
xxx.xxx.xxx.xxx (Thu May 13 10:30:30 2010)
xxx.xxx.xxx.xxx (Thu May 13 10:30:32 2010)
...

Date template hits:
52774 hit(s): MONTH Day Hour:Minute:Second
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second Year
0 hit(s): WEEKDAY MONTH Day Hour:Minute:Second
0 hit(s): Year/Month/Day Hour:Minute:Second
0 hit(s): Day/Month/Year Hour:Minute:Second
0 hit(s): Day/MONTH/Year:Hour:Minute:Second
0 hit(s): Month/Day/Year:Hour:Minute:Second
0 hit(s): Year-Month-Day Hour:Minute:Second
0 hit(s): Day-MONTH-Year Hour:Minute:Second[.Millisecond]
0 hit(s): Day-Month-Year Hour:Minute:Second
0 hit(s): TAI64N
0 hit(s): Epoch
0 hit(s): ISO 8601
0 hit(s): Hour:Minute:Second
0 hit(s):

Success, the total number of match is 5915

However, look at the above section 'Running tests' which could contain important information.

Ative na inicialização do sistema e inicie o serviço:

# cp fail2ban-0.8.4/files/suse-initd /etc/init.d/fail2ban
# chkconfig --add fail2ban
# /etc/init.d/fail2ban start

Podemos verificar os bloqueios atráves do log do fail2ban ou pelo iptables:

# tail -f /var/log/fail2ban.log
2010-05-13 10:31:16,824 fail2ban.actions: WARNING [sasl-iptables] Ban xxx.xxx.xxx.xxx
2010-05-13 10:31:20,913 fail2ban.actions: WARNING [sasl-iptables] Ban xxx.xxx.xxx.xxx

# iptables -L -n
DROP all -- xxx.xxx.xxx.xxx 0.0.0.0/0
DROP all -- xxx.xxx.xxx.xxx 0.0.0.0/0

O fail2ban possui diversos serviços já configurados bastando ativá-los no seu arquivo de configuração e novos serviços podem ser adicionados e ajustados conforme desejar. Abraço!

Fonte: http://www.howtoforge.com/fail2ban_opensuse10.3

Categories: Linux Tags: , , ,

RAID via software: Substituindo um disco

26, abril, 2010 3 comentários

Opa,

Há alguns dias atrás eu precisei substituir um disco que estava apresentando problemas em um RAID1 via software, após uma rápida pesquisada encontrei a solução. Abaixo estão os passos necessários para executar essa tarefa.

Vamos supor que seu RAID1 esteja configurado da seguinte forma:

/dev/sda1 + /dev/sdb1 = /dev/md0
/dev/sda3 + /dev/sdb3 = /dev/md1

E que o disco sdb começou a apresentar problemas, logo devemos substituí-lo por um disco que DEVE ter a mesma capacidade ou superior, criando as partições com o mesmo tamanho das partições anteriores.

Pode-se verificar o status do RAID com o comando abaixo:

# cat /proc/mdstat

Deve ser exibido [UU], caso retorne [U_] o RAID está com problemas!

Para remover as partições do disco com problemas basta executar os comandos abaixo:

# mdadm --manage /dev/md0 --fail /dev/sdb1
# mdadm --manage /dev/md1 --fail /dev/sdb3

# mdadm --manage /dev/md0 --remove /dev/sdb1
# mdadm --manage /dev/md1 --remove /dev/sdb3

O comando com o parâmetro –fail “marcou” a partição como “falha” e o segundo com o parâmetro –remove removeu a partição.

Agora desligue o sistema e faça a substituição dos discos!

Após carregar o sistema faça a “clonagem” do particionamento do disco com o comando abaixo:

# sfdisk -d /dev/sda | sfdisk /dev/sdb

Caso deseje verifique se as partições estão idẽnticas com o comando fdisk:

# fdisk -l

Devemos agora adicionar as novas partições ao RAID existente:

# mdadm --manage /dev/md0 --add /dev/sdb1
# mdadm --manage /dev/md1 --add /dev/sdb3

Verifique se as partições estão sendo sincronizadas com o comando abaixo:

# cat /proc/mdstat

Quando a sincronização concluir deverá ser exibido novamente o [UU].

OBS.: Caso tenha problemas com o grub, será necessário reinstalá-lo no novo disco!

Abraço!

Fonte: http://www.howtoforge.com/replacing_hard_disks_in_a_raid1_array

Categories: Linux Tags: ,

Alagoas Digital 2010

25, abril, 2010 3 comentários

Opa,

Durante os dias 21 e 23 de Abril ocorreu aqui em Maceió o Alagoas Digital 2010, evento de TI da região em sua segunda edição, como a palestra de abertura foi no feriado do dia 21/04, não pude participar e pelo que eu soube não chegou a lotar o local onde foi realizada, talvez uma coisa para o pessoal da organização pensar no próximo evento.

As partes positivas do evento, no meu ponto de vista, foram a participação maior das empresas da região, incluindo nisso rodadas de negócios entre empresas e fornecedores, entre amigos soube que as reuniões foram muito proveitosas, bom para o mercado da região. Outro ponto positivo foi a qualidade das palestras, pelo menos as que participei (Processos de A à Z: Da estratégia a automatização e a otimização contínua de Nelson Rabello, PMI – Tendências em Gerenciamento de Projetos da Barbara Fernandes e o Painel Marco Civil da Internet com Pedro Markun e Paulo Rená da Silva Santarém).

Agora vamos as partes negativas, novamente no meu ponto de vista, a primeira coisa que senti falta nesse evento foram as palestras técnicas, no evento anterior existiram várias delas, mas nesse não vi nenhuma. Falando em palestras, não sei por qual motivo, mas foram poucas esse ano. Um ponto de falha foi a organização das salas, já que na grade de programação foram numeradas mas nas portas não, o que causou uma certa confusão para encontrar onde estavam sendo apresentadas as palestras.

Fora esses pontos que citei, novamente achei o evento um sucesso! Parabenizo a organização e espero que no próximo ano o evento retorne maior e melhor!

Abraço!

Zimbra: Atualizando o Clamav

16, abril, 2010 2 comentários

Opa,

Recentemente (15/04) o software anti-vírus Clamav descontinuou as versões anteriores a 0.95.x (mais informações aqui), logo após essa operação os servidores que rodavam versões anteriores começaram a apresentar problemas, quando tentavam realizar a atualização das vacinas corrompiam o banco de dados e com isso os e-mail’s não eram entregues. Para solucionar esse problema foi necessário atualizar a versão do software, segue abaixo como consegui atualizar essa tarefa com o Zimbra em um servidor CentOS 5.4.

Antes de tudo recomendo a realização de um backup do seu sistema, pois como diz o ditado, “melhor prevenir…”, após essa tarefa faça o download do código (source) da última versão estável no site do Clamav (nesse post utilizei a versão 0.96).

Feito o download vamos instalar as dependências, descompactá-lo e executar os passos para a compilação e instalação do pacote:

# yum install gmp-devel bzip2-devel zlib-devel gcc
# tar -xvf clamav-0.96.tar.gz
# cd clamav-0.96
# ./configure --prefix=/opt/zimbra/clamav-0.96 --with-user=zimbra --with-group=zimbra
# make
# make check
# make install

Feita a instalação compare os antigos arquivos de configuração (clamd.conf e freshclam.conf) com os novos arquivos instalados, caso necessário realize os ajustes.

# cd /opt/zimbra/clamav-0.96/etc/
# mv clamd.conf clamd.conf.orig
# mv freshclam.conf freshclam.conf.orig
# cp /opt/zimbra/conf/{clamd,freshclam}.conf .
# diff clamd.conf clamd.conf.orig
# diff freshclam.conf freshclam.conf.orig

Pare o serviço:

# su - zimbra -c "zmcontrol stop"

Remova o link simbólico do clamav na pasta do zimbra e crie um novo link apontando para a nova versão:

# cd /opt/zimbra
# rm clamav
# ln -s /opt/zimbra/clamav-0.96 /opt/zimbra/clamav

Agora crie a pasta onde são armazenados os banco de dados das vacinas e ajuste as permissões:

# mkdir /opt/zimbra/clamav/db
# chown -R zimbra:zimbra /opt/zimbra/clamav-0.96

Atualize as vacinas e inicie o serviço:

# su - zimbra -c "/opt/zimbra/clamav/bin/freshclam"
# su - zimbra -c "zmcontrol start"

Execute o comando abaixo para ver se todos os serviços estão executando:

# su - zimbra -c "zmcontrol status"
Host meuservidor.exemplo.com
antispam                Running
antivirus               Running
ldap                    Running
logger                  Running
mailbox                 Running
mta                     Running
snmp                    Running
spell                   Running
stats                   Running

Caso o serviço antivirus não inicie verifique o log em /opt/zimbra/log/clamd.log.

Abraço!

Fonte: http://wiki.zimbra.com/wiki/ClamAV_-_Updating_Version

Categories: Linux Tags: , , ,