terça-feira, 14 de setembro de 2010

MySQL Workbench no Slackware

o MySQLWorkbench e o phpMyAdmin são administradores de MySQL. Dêsses, aparentemente o mais enjoado de instalar no Slackware é o primeiro dêles, mas acontece que, como é produzido/disponibilizado pela própria MySQL, muitos preferem sua utilização. Bem, pra ficar menos chata a instalação, é melhor seguir a sugestão do Leo Kyota no VivaOLinux:

"
Esses dias eu consegui compilar no meu Slackware64 13.1. Eu compilei os seguintes pacotes no meu Slack.
cairomm-1.8.4
GConf-2.28.1
glibmm-2.22.2
gnome-mime-data-2.18.0
gnome-vfs-2.24.3
gtkmm-2.18.2
libbonobo-2.24.3
libglademm-2.6.7
libgnome-2.28.0
libsigc++-2.2.7
lua-5.1.4
ORBit2-2.14.18
pangomm-2.26.2
wxWidgets-2.8.11
Eu não me lembro a ordem. Eu baixei todos esse pacotes no http://slackbuilds.org/repository/13.1/"

o post original tá lá no VOL

ps: o Slackware é um pé no saco, não?

domingo, 5 de setembro de 2010

OpenVPN (de novo)

Pessoalmente gosto de VPNs desde quando "cometi" uma, há uns 5 anos, em IPSec sob FreeBSD. É emocionante (pelo menos pra mim foi) quando vc faz tudo certinho e as coisas se comportam como delas se espera :)

Hoje em dia é mais utilizada mesmo a OpenVPN, que é muito boa. Muitos colegas se "embananam" quando tem que montar uma mas existem tutoriais às pencas na 'net, além do próprio site, que é bem completo. Recentemente alguém me indicou tutoriais no site Guia do Hardware. O site é muito bem organizado e MUITO abrangente. Os dois tutoriais indicados foram:

OpenVPN-Criando uma VPN básica e OpenVPN Avançado: Certificados e Bridges

um outro artigo, muito bom: OpenVPN: Criando VPNs com alta disponibilidade

quarta-feira, 1 de setembro de 2010

fighting spam with Postfix

O colega Ronan Lucio (lista Postfix-br) nos deu mais um link "muito bom" na nossa incessante batalha contra o spam.


Instruções bem interessantes a serem usadas no postfix ;)

quarta-feira, 25 de agosto de 2010

malware e spam - Postfix - (novamente)

acho que nunca termina. Acabo de encontrar o link da Advosys Consulting com um "paper" bem interessante sobre como usar o Postfix para combater spam, e-mails mal-formados ou "limpar" tudo, usando Perl, SpamAssassin e um tal de Anonimy Sanitizer.

é uma documentação bem completa, com todas as instruções apropriadas :)

o site tem um grande conjunto de howtos, vejam:


Fighting malware and spam with Postfix
Friday, May 25 2007 15:56

An easy way to extend Postfix, the popular replacement for Sendmail, to provide high-level attachment filtering and intelligent spam identification.


Adding a second postfix instance
Wednesday, March 10 2004 14:33

By popular demand, a quick HOWTO describing how to run two instances of Postfix to separate inbound mail from outbound.



Email policies that prevent viruses
Wednesday, August 02 2006 15:14

Simple and effective methods you can use at the gateway level to prevent the next Nimda or Sircam from attacking your organization.



Web security
Web application security

HTTP digest authentication
Tuesday, August 22 2006 17:08

Using HTTP digest authentication in web applications as an alternative to SSL for protecting usernames and passwords.


Hardening PHP servers with suhosin
Thursday, November 09 2006 16:44

How to compile and install the suhosin security module for PHP on Ubuntu Linux Server


Writing Secure Web Applications
Wednesday, March 10 2004 15:46

Creating secure web applications is extremely difficult. Learn the basic techniques of writing tamper-proof web apps in Perl and other languages.


Preventing HTML form tampering
Monday, January 02 2006 15:27

HTML form data and cookies can easily be altered by malicious users, especially the so-called "hidden" fields. Learn how to detect tampering using HMAC signatures.

terça-feira, 24 de agosto de 2010

combatendo spam (mais)

nunca é demais um novo item que nos auxilie no combate/rejeição de spam; seguindo as instruções do site rfc.ignorant e outros, acrescentei alguns items no main.cf de alguns servidores postfix.

Os itens acrescentados foram as listas rbl e dois itens (por enquanto) do rfc.ignorant, como segue:

smtpd_client_restrictions: (várias informações pré-existentes aqui), check_client_access hash:/opt/excecoes/rblexceptions, reject_rbl_client zen.spamhaus.org, reject_rbl_client b.barracudacentral.org, reject_rhsbl_sender dsn.rfc-ignorant.org, reject_rhsbl_sender bogusmx.rfc-ignorant.org

aqui:
hash:/opt/excecoes/rblexceptions eu criei uma listagem das exceções às listas rbl, para liberar e-mail que, embora listados nas rbls, sou forçado ("convidado" pelo diretor) a permitir :(

o arquivo de exceções, sob nome rblexceptions é um simples arquivo texto, com o seguinte conteúdo:

127.0.0.1 OK
[.. outros ip.addr ]

após criado o arquivo, use o postmap, para criar o BD-berkeley que será lido pelo postfix:

#postmap rblexceptions
(será criado o
rblexceptions.db)

as inforrmações sôbre os arquivos do rfc.ignorants podem ser lidas no site RFC-ignorant.org
O básico: se o host remetente não cumprir com as RFCs, o e-mail é rejeitado. Afinal, TODOS devem cumprir com as regras, senão vira casa de maria joana.





segunda-feira, 23 de agosto de 2010

ainda o guto carvalho

o wiki do guto carvalho é (quase) uma fonte inesgotável de recursos, dicas, orientações sobre muitos assuntos:

postfix, squid, OpenVPN, Iptables, NTP, Bind (atualizadíssimo),Awstats, quota, Apache, jails e bridges, dhcp server, alguns aplicativos web (inventário, tickets, painel de controle para servidores), dicas sobre databases, ufa.. o rapaz tem fôlego :)

mais postfix

guto carvalho, da lista postfix-br postou diversas (boas) dicas para configuração do Postfix, anti-spam, melhoria de performance. Vale a pena avaliar e (eventualmente) implementar :)

o llink está aqui, no wiki do guto.

Um outro site, bem interessante, também com dicas importantes - só pelo título já dá pra ver: "Fighting malware and spam with Postfix". Não percam ;)

sexta-feira, 20 de agosto de 2010

squid ninja

várias vezes, pesquisando sobre o squid, tenho a indicação (no google) do "squid ninja" publicado há um bom tempo atrás. Embora antigo (2005 é antigo, quase caso de museu), o artigo é muito bom e (creio) a maioria das recomendações ainda é de valia. Fica aqui o link para o artigo original, com a recomendação: leia com atenção.

quinta-feira, 19 de agosto de 2010

mensagens do access.log (squid)

as mensagens no access.log do squid parecem criptograficas, pelo menos a mim não parecem claras. Mas isso acabou :) encontrei uma página na internet que elucida as coisas.

vários .log do squid e nomenclatura utilizada

quarta-feira, 18 de agosto de 2010

ainda o OpenVPN

Bons artigos sobre a OpenVPN nunca são demais; por exemplo, nêste artigo da CiscoPress eu vi a menção sobre a GUI para configuração, que não me lembra ter lido anteriormente.

então vale a visita :)

nota: o artigo é BEM completo, inclusive com exemplos de configuração de one-to-many (um servidor, vários clients).

quarta-feira, 4 de agosto de 2010

monitoramento em tempo real

O Linux dispôe de inúmeras ferramentas que possibilitam verificação completa da "saúde" do sistema, diversos meios de se realizar um monitoramento decente.

A NixCraft publicou um excelente tutorial ensinando o uso de 20 dessas ferramentas. É imperdível :)

segunda-feira, 2 de agosto de 2010

SquirrelMail com tema do EuTôLoko

Tem quem goste, então vc precisa (um dia) acabar por deixar o SquirrellMail com a cara do EuTôLoko por causa dos animais (burros ao extremo) que não conseguem fazer nada se a "carinha " não for igualzinha aos programas do Tio Bill.

tem um pessoal (brasileiros) que estão desenvolvendo/disponibilizando o skin pra isso; acreditem ou não, é igualzinho (risos), menos nos defeitos. O link da sourceforge é bem claro :)

e no under-linux o pessoal escreveu um tutorial e outros postaram corrigindo alguns êrros.

bem, taí :) divirtam-se.

terça-feira, 13 de julho de 2010

greylist com PF

Artigo no BSD DevCenter mostrando como implementar uma greylist usando o PF do OpenBSD; naturalmente, como o PF também é nativo no FreeBSD, êste pode ser usado. Apresentação do artigo:

Greylisting--delaying mail delivery briefly per the SMTP RFCs--is an effective way to reduce the amount of incoming spam. While many greylisting solutions require customization of your SMTP server, OpenBSD's PF can do it too. Dan Langille shows how to use the powerful packet filter to identify and pass legitimate mail, delay and divert potential spammers, and throw in some OS fingerprinting to ward off certain zombie clients.

Parece bom, né ?

quinta-feira, 24 de junho de 2010

mais anti-spam

Acho que êste é um assunto que nunca termina. O Spam é realmente um problema, então achei mais um link, desta vez de um wiki, o "Fairly Secure Anti Spam Wiki";

Baseado no OpenBSD, com tudo a que tem direito :) postfix, spamassassin, greylist, razor, dcc..

segunda-feira, 21 de junho de 2010

mais monitoramento

O Leandro Malaquias (fug-br), sabendo do nosso sofrimento com o nagios/zabix, sugeriu o jffnms, cuja página "home" está aqui; algo para se ver :)

Olha só o comentário do Leandro:
"Cara, o nagios e assim mesmo se nao der problemas nao e o nagios, mas se estiver interessado em mexer com um nms mas facil use o "JFFNMS" facil de instalar e de tempo real permitindo analisar o SLA com maior precisao."

mas existem ainda várias outras páginas a respeito de nagios, cacti e monitoramento:

Aqui, um tutorial de nosso colega Diego:
:==

Ola, boa tarde lista! Montei ( com ajuda do amigo Wendel) um pequeno howto da configuracao do Nagios. Gostaria de opniao de voces e da verificacao de possiveis erros, obrigado ! abracos !!



Nagios (R) é um sistema de monitoramento de rede e de aplicação. Ele vigia hosts e serviços que você especificar, alertando você quando as coisas correm mal. Algumas coisas que o Nagios pode fazer por voce:


* Acompanhamento dos serviços de rede (SMTP, POP3, HTTP, NNTP, PING, etc);
* Acompanhamento de recursos (processador carga, uso do disco, etc);
* Design com simples plugins que permite aos usuários facilmente desenvolver seu próprio serviço de controle;
* Contato com notificações quando ocorrerem problemas de serviço ou parada de hosts (por e-mail, pager, ou definido pelo metodo pelo usuário);
* Log file rotation;
* Interface web para visualização do atual estado de rede, notificação e problema histórico, arquivo de registro, etc.

Ai vai um pequeno tutorial pra por o servico funcionando, para mais detalhes acesse http://www.nagios.org



Bom, let`s go ! Com o usuario root, baixe e instale o apache:

#cd /usr/ports/www/apache13; make install clean


Edite o httpd.conf e insira as seguintes linhas:

#vi /usr/local/etc/apache/httpd.conf

ScriptAlias /nagios/cgi-bin /usr/local/www/nagios/cgi-bin/

Options ExecCGI
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
Require valid-user


Alias /nagios /usr/local/www/nagios


Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
Require valid-user



Voce precisa definir o arquivo onde vai ficar o passwd dos usuarios autorizados:

#touch /usr/local/etc/nagios/htpasswd.users


#htpasswd -c /usr/local/etc/nagios/htpasswd.users ## caso queira mudar a senha, basta nao incluir o flag -c.




Baixe e instale o nagios:

#cd /usr/ports/net-mgmt/nagios; make install clean

Os arquivos de configuracao do nagios ficam em /usr/local/etc/nagios.
Os principais arquivos sao:

cgi.cfg = Esse arquivos diz onde o CGI vai encontrar os arquivos de configuracao.
commands.cfg = Os comandos que o nagios oferece e suas sintaxes. Aconselhavel da uma olhada.
nagios.cfg = Arquivo principal do nagios, aqui voce vai fazer o seguinte:

# cd /usr/local/etc/nagios; vi nagios.cfg


## Aqui voce ira procurar pelos cfg_file, nele voce setara onde estarao os arquivos de configuracao (objects):

cfg_file=/usr/local/etc/nagios/teste.cfg - Fica a seu criterio definir o nome do arquivo.
# vi teste.cfg ## Aqui esta tudo para localhost, cabe a voce fazer as alteracoes!!
## ## timeperiod voce define `grupos com horarios`. Voce pode especificar diversos horarios. Aqui eu criei 3: 24x7 (24 horas, ## 7 dias),
Hora de trabalho (de 9 ## as 17) e nonworkhours (no qual nao estamaremos trabalhando).

define timeperiod{
timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00 }

define timeperiod{
timeperiod_name workhours alias "Normal" Working Hours
monday 09:00-17:00
tuesday 09:00-17:00
wednesday 09:00-17:00
thursday 09:00-17:00
friday 09:00-17:00 }

define timeperiod{
timeperiod_name nonworkhours alias Non-Work Hours
sunday 00:00-24:00
monday 00:00-09:00,17:00-24:00
tuesday 00:00-09:00,17:00-24:00
wednesday 00:00-09:00,17:00-24:00
thursday 00:00-09:00,17:00-24:00
friday 00:00-09:00,17:00-24:00
saturday 00:00-24:00 }

define timeperiod{
timeperiod_name none alias No Time Is A Good Time }

## Contatos, a quem avisar caso algo ocorra:

define contact{ contact_name MY_NAME alias Administrador da Rede
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands
notify-by-email ## MTA tem que ta configurado !
host_notification_commands host-notify-by-email ## MTA tem que ta configurado !
email email@email # email para qual o nagios vai mandar as notificacoes. }

## Voce pode definir quantos for preciso, por exemplo, um grupo para a equipe tecnica da empresa:

define contact{
contact_name local alias Equipe Tecnica da Empresa
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email email email@email }

## Aqui voce define o grupo de contatos; quais vao ser os membros, etc.

define contactgroup{
contactgroup_name equipe-de-suporte alias EQUIPE DE SUPORTE
members ponha-os-nomes-aqui }

## Definicao do host a ser monitorado
define host{
name servidor
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register 0 }

# localhost

define host{
use servidor
host_name localhost \\ mude para o nome da sua maquina alias localhost \\ como a maquina pode ser chamada pelo nagios.
address 127.0.0.1 \\ IP da maquina a ser monitorada
check_command check-host-alive
max_check_attempts 10
notification_interval 120 \\ Tempo de notificacao, em segundos.
notification_period 24x7 \\ Quando vai ser notificado?
notification_options d,u,r contact_groups equipe-de-suporte \\ Quem vai ser notificado? }

## Voce tambem pode montar um grupo de hosts a ser monitorado:

define hostgroup{
hostgroup_name servidores alias servidores members localhost }

### Servicos, aqui eh a parte legal !
define service{
name generic-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register 0 }

define service{
name gw
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register 0 } # roteador

define service{
use gw
host_name z
service_description PING is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 240
notification_period 24x7
notification_options c,r
check_command check_ping!100.0,20%!500.0,60% } # este servidor

define service{
use generic-service
host_name localhost
service_description SMTP
is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options c,r
check_command check_smtp
}
define service{
use generic-service
host_name localhost
service_description IMAP
is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options c,r
check_command check_imap
}
define service{
use generic-service
host_name localhost
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options c,r
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use generic-service
host_name localhost
service_description POP3
is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_pop
}
define service{
use generic-service
host_name localhost
service_description HTTP
is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_http
}
define service{
use generic-service
host_name localhost
service_description / free space
is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_local_disk!50%!30%!/dev/ad0s1a
# !!! }
define service{
use generic-service
host_name localhost
service_description /tmp
free space is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_local_disk!20%!10%!/dev/ad0s1e # !!! }

define service{
use generic-service
host_name localhost
service_description /usr
free space is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_local_disk!50%!30%!/dev/ad2s1f # !!! }

define service{
use generic-service
host_name localhost
service_description /var
free space is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 3
contact_groups equipe-de-suporte
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command
check_local_disk!20%!10%!/dev/ad0s1d # !!! }

define service{
use generic-service
host_name localhost
service_description Total Processes
is_volatile 0
check_period 24x7
max_check_attempts 2
normal_check_interval 5
retry_check_interval 2
contact_groups equipe-de-suporte
notification_interval 240
notification_period 24x7
notification_options w,u,c,r
check_command check_local_procs!150!200!RSZDT }

O post original dêle está aqui monitoramento por snmp e PF

Acelerando o Cacti: ao invés de usar o poller original (em php), usa-se um compilado em C, conforme êste post do Marcello no fug-br

O colega rogério moura (sempre no fug) fez um script para coletar dados para o MRTG; vale analisar, de repente pode-se usa-lo para gerar dados para o nagios.


Fully Automated Nagios


O FAN, ou “Fully Automated Nagios“ (Nagios completamente automatizado), é uma distribuição em CD voltada para a simplificação da instalação do Nagios em conjunto com diversas ferramentas num servidor de monitoramento de rede. Sua versão atual é a 1.0.

URL para a notícia completa

a página de download está aqui

Controle de Banda com PF

Na lista FUG-BR o colega Renato Frederick deu uma receitinha bem
interessante para controle de banda com o pf, a qual reproduzo aqui:

Faz-se as filas na interface, neste exemplo o link é de 100Mb e está
conectado á xl0 e temos 2 clientes(e o "resto" que vai pro que não tem tráfego explicitamente detalhado):

altq on $ext_if bandwidth 100Mb queue { cliente1 cliente2 default_dmz }

define-se dos 100Mb quanto que cliente1 e cliente2 vai ter e o resto pra default_dmz:

queue cliente1 bandwidth 2Mb priority 4 qlimit 1000 cbq(red)
queue cliente2 bandwidth 8Mb priority 4 qlimit 1000 cbq(red)
queue default_dmz bandwidth 80Mb priority 4 qlimit 1000 cbq(default,borrow)

lembrando que a some dos queue nao pode passar o bandwitdh declarado acima.

note que estou usando o algorítimo RED para fazer o ALTQ, no link[1] você vê mais detalhes dos algorítimos disponíveis.

Também na DMZ eu joguei o borrow, ou seja, os 80Mb da DMZ pode "tomar" banda do cliente2 e cliente2, caso precise, seria como as prioridades que o IPFW tem.


Agora basta colocar uma linha no final de cada regra de pass out pra indicar que esta regra vai ser associada a uma destas queue:


Ex, uma regra que era assim, liberando o cliente1 a conectar a qq local:

pass out quick on $ext_if proto { tcp udp } from { $cliente1 } port > 1023 to any keep state

fica assim:

pass out quick on $ext_if proto { tcp udp } from { $cliente1 } port > 1023 to any queue cliente1 keep state

as regras que eu quero que compartilhem os 80Mb eu não declaro nenhum queue, ele vai pegar o que está como default acima:

pass out quick on $ext_if proto tcp from port $ftp_ports to any port > 1023 keep state



Observe que isto faz o tráfego de output.

para fazer de input, repete-se a mesma coisa, só que a ext_if vai ser substituida pela int_if(ou o nome que você dá pra interface interna) no altq e o queue nao vai ser no pass out, vai ser no pass in e você não vai poder
usar o keep state, vai ter que declarar uma regra de pass out e outra de pass in, senão o keep state cria o retorno sem queue.

a referência: [1]http://openbsd.org/faq/pf/queueing.html

o post original está aqui

sexta-feira, 18 de junho de 2010

pentelhices do Slackware

Embora eu goste do Slackware, pela sua estabilidade e pelos poucos serviços que são colocados como default (experimente dar um netstat -nlpt em uma Debian-like e compare com o Slackware), existem coisas que são "de amargar" também - nem tudo são flores

A parte boa:
Os serviços disponibilizados no Slackware são aquêles que VOCÊ quer disponibilizados, enquanto nos outros (incluindo o CentOS/RH, por exemplo) vc tem que DEPOIS de instalar ficar "caçando" os serviços a serem desativados. Um saco, não?

A parte err.. hmmm.. mais "amargosa": as outras tem praticamente TUDO o que vc possa precisar, em têrmos de "usuário convencional", enquanto no Slack.. veja mais adiante ;)

As demais:
A Debian deve (hoje em dia) estar com tudo atualizadíssimo, comparado a 1963, claro. O lado rosinha da Força mostra sua força com essa viadagem de só colocar algo MUITO testado nos seus servidores, normalmente umas 3 ou 4 versões anteriores à atual. Depois ficam chorando quando invadem os seus (dêles) servidores, como já aconteceu (risos maldosos).

Bem, mas como disse, nem tudo são flores no Slack. Vc tenta um aplicativo qualquer, diretamente de interêsse do já famigerado "usuário normal", e.. tome a sair buscando uma infinidade de dependências com informações das criptográficas a obscuras. "Não encontrei a lib-zedascouves.4.3.7.985.so.lib" e vc sai googlando a 'net inteira, dias a fio, até que uma alma caridosa te informe que a dita cuja está dentro de um "pacotaço" de "desenvolvimento de fritadoras de batata palha", em um site mais ou menos desconhecido. Fo**a, né?

Minha mais recente peripécia foi instalar o XCHM no slack 13.1. Juro, DESTA VEZ não foi tão dificil assim, em comparação com o que eu já encontrei (desde o Slack 3.algumacoisa).. xiii..

mas vamos lá: o XChm é um leitor de chm ("compiled html help"), que hoje em dia nem é mais um "tipo estranho".

vc pode ler êsse arquivo com o konkeror, no KDE. Muitos não dispôe/usam o KDE ou não gostam do modo dessa leitura no konkeror (eu NÃO GOSTO). Mas vamos ao Xchm, que é (IMHO) mais apropriado:

vc precisa instalar algumas libraries NÃO disponiveis diretamente do slack, mais alguns scripts do slackbuild, conforme ESTAS instruções:

tutorial bem interessante: How to read or view chm file in Linux

outro, complementar: Build and install Slackware chmlib

todas as instruções dessses tutoriais são válidas e funcionam bem. Agora eu posso ler meus *chm sem problemas :)

spamassassin - regras

dizem que "ensinar" o spamassassin é um trabalho de paciencia chinesa, coisa para séculos. É até possível que seja verdade, porque as dificuldades que tenho lido nas listas são de doer. Mas recentemente, o colega allan carvalho, na lista FUG-BR, apontou um link que (segundo êle) deve facilitar bem isso aí:

"Escrevendo regras para o SpamAssassin", artigo original que pretende acabar com a dificuldade.

aqui o post original do Allan Carvalho na lista FUG-BR

sexta-feira, 4 de junho de 2010

"arrumando" o teclado com o hald

as versões atuais dos Linux (todas as distribuições) confiam no "hald" para configuração do teclado no ambiente gráfico (xorg); então, não adianta alterarmos o xorg.conf como faziamos antigamente.

a solução:

cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy
vim /etc/hal/fdi/policy/10-keymap.fdi

o arquivo original está assim:
Here's an example of the four lines from above:
key="input.xkb.rules" type="string">base
key="input.xkb.model" type="string">evdev
key="input.xkb.layout" type="string">us
key="input.xkb.variant" type="string">intl
"
então, dentro do arquivo, alteramos as 2 ultimas linhas para ficarem assim:
key="”input.xkb.model”" type="string”>abnt2
input.xkb.layout”type="string”>br

e pronto; ao restartarmos o X (ou a máquina) estamos com o teclado certinho