Sites interessantes

Setembro 19, 2006

Sobre qmail:

Life with qmail
QmailRocks (FreeBSD)

Sobre djbdns:

Life with djbdns

Sobre lighttpd:

Wiki do Daniel


Configuração Lighttpd + PHP

Setembro 14, 2006

Cada vez me surpreendo mais com a flexibilidade e facilidade de configuração deste programa! O arquivo de configuração abaixo, mesmo sendo simples, faz o que você quer e faz rápido. Perdoem-me pelos erros de indentação, mas o WordPress as vezes não ajuda.
Bom, sem enrolar demais, segue o arquivo (com comentários):

# módulos que serão carregados
server.modules = ( “mod_access”, “mod_accesslog”, “mod_fastcgi”, “mod_alias” )
# local onde estão as páginas
server.document-root = “/usr/local/www/”
# localização do arquivo de log dos erros
server.errorlog = “/var/log/lighttpd.error.log”
# localização do arquivo de log de acessos
accesslog.filename = “/var/log/lighttpd.access.log”

# quais arquivos serão exibidos inicialmente
index-file.names = ( “index.html”, “index.php” )
# quem vai cuidar dos eventos (necessário no Mac OS X)
server.event-handler = “freebsd-kqueue”
# qual a identificação do servidor
server.tag = “lighttpd”

# porta de operação
server.port = 80
# IP a ser ouvido, caso não seja definido, irá ouvir em todos
server.bind = “172.16.5.15″
# localização do arquivo de pid
server.pid-file = “/var/run/lighttpd.pid”
# usuário e grupo que vão rodar o lighttpd
server.username = “www”
server.groupname = “www”

# define o que o servidor vai ‘entender’
mimetype.assign = (
“.html” => “text/html”,
“.txt” => “text/plain”,
“.jpg” => “image/jpeg”,
“.png” => “image/png”
)

# configuração do PHP
fastcgi.server = ( “.php” =>

( “localhost” =>

(

“socket” => “/tmp/php-fastcgi.socket”,
“bin-path” => “/usr/local/bin/php-cgi”,
“min-procs” => 3,
“max-procs” => 5,
“idle-timeout” => 20,
“max-load-per-proc” => 10,
)

)

)

# páginas extra-raiz
alias.url = ( “/arqs” => “/home/bsd/arquivos/”, “/docs” => “/home/bsd/docs” )


Barrando spams no firewall (pf-spamd)

Setembro 6, 2006

Bom, antes de mais nada dedico este artigo ao meu mentor no mundo BSD… Mestre Skywarrior (aka MacBelo)!!

Pergunta… por que instalar o pf-spamd?

Resposta... porque utilizando-se dessa técnica de ‘tarpit’ direto no firewall você economiza recursos no seu servidor de email, além de “machucar” os spammers, já que eles vão ficar tentando, tentando, tentando, e não vão conseguir enviar nada, ou seja, você faz com que eles percam muito tempo.

Vamos ao raú-tu então:

01. Atualizar a árvore do ports:

$ portsnap fetch extract

02. Instalar o pf-spamd:

$ cd /usr/ports/mail/spamd && make install clean

Ao final da instalação, será perguntando se você quer inserir no /etc/services as entradas relativas ao pf-spamd, o padrão é aceitar.

03. Configurar o pf-spamd:
03.1 configurar o pf (adicione as seguintes linhas):

  • table table <spamd> persist
  • rdr pass on $ext_if proto tcp from <spamd> to port 25 -> 127.0.0.1 port 8025

03.2 configurar o /usr/local/etc/spamd.conf:

all:\
:spews1:whitelist:spews2:whitelist:china:whitelist:korea:whitelist:

spews1:\
:black:\
:msg=”SPAM. Your address %A is in the spews level 1 database\n\
See http://www.spews.org/ask.cgi?x=%A for more details”:\
:method=http:\
:file=www.openbsd.org/spamd/spews_list_level1.txt.gz:

spews2:\
:black:\
:msg=”SPAM. Your address %A is in the spews level 2 database\n\
See http://www.spews.org/ask.cgi?x=%A for more details”:\
:method=http:\
:file=www.openbsd.org/spamd/spews_list_level2.txt.gz:

china:\
:black:\
:msg=”SPAM. Your address %A appears to be from China\n\
See http://www.okean.com/asianspamblocks.html for more details”:\
:method=http:\
:file=www.openbsd.org/spamd/chinacidr.txt.gz:

korea:\
:black:\
:msg=”SPAM. Your address %A appears to be from Korea\n\
See http://www.okean.com/asianspamblocks.html for more details”:\
:method=http:\
:file=www.openbsd.org/spamd/koreacidr.txt.gz:

whitelist:\
:white:\
:file=/etc/pf/allow/hosts-permitidos:

03.3 explicando o que acontece:

Ao receber uma conexão oriunda de algum IP o spamd vai checar na ordem determinada em “all” ou seja, primeiro ele verifica a lista “spews1″, depois compara com minha lista branca, verifica a lista “spews2″, depois compara com minha lista branca, e assim vai. De acordo com o manual do programa, voce deve colocar a entrada de lista branca logo após cada entrada de lista negra.

Caso você tenha algum arquivo em disco já (uma lista de ips personalizada) você seguindo a mesma sintaxe da entrada “whitelist” trocando apenas “white” por “black” fará com que o arquivo seja lido e desde que o mesmo esteja em “all” seja carregado para a memória.

OBS1: lembre-se de adicionar pfspamd_enable=”YES” ao /etc/rc.conf
OBS2: o pfspamd usa ftp para baixar as listas, tenha certeza que você consegue baixar arquivos
OBS3: insira os seguintes alias seu /etc/csh.cshrc, para uma administração feliz dos dados:
alias blkspam “pfctl -t spamd -Ts | wc -l”
alias curspam “netstat -an | grep 8025 | wc -l”


Cacti (com lighttpd + bsnmpd)

Setembro 4, 2006

A evolução do MRTG chegou!! A tempos já tinha ouvido falar do Cacti, mas devido falta de tempo não pude ‘brincar’ com ele, mas me sobraram algumas horas no sábado, ou seja, consegui brincar com ele.

Fiz a instalação do Cacti e do MySQL 5.1 (server) via ports, ou seja, nem me preocupei com dependências, o ports se encarrega disso. Caso você queria ter fortes emoções e compilá-lo na unha, leia bastante o site do Cacti.

Bom, em toda documentação que lia falava sobre ‘o pacote’, Apache + PHP4 + mod_php + net-snmp, e que só funcionava neste conjunto, contrariando todas as documentações, coloquei ele para rodar com o lighttpd, bsnmpd e php5.

Considerando que você já tem um lighttpd funcional, é necessário que você tenha as seguintes linhas no seu arquivo de configuração (lighttpd.conf):

  • server.modules = ( “mod_access”, “mod_accesslog”, “mod_fastcgi”, “mod_alias” )
  • index-file.names = ( “index.html”, “index.php” )
  • fastcgi.server = ( “.php” =>
    ( “localhost” =>
    (
    “socket” => “/tmp/php-fastcgi.socket”,
    “bin-path” => “/usr/local/bin/php-cgi”,
    “min-procs” => 3,
    “max-procs” => 5,
    “idle-timeout” => 20,
    “max-load-per-proc” => 10,
    )
    )
  • alias.url = ( “/cacti” => “/usr/local/share/cacti/” )

Uma nota importante sobre o php5 é que ele deve ser compilado com a opção fast-cgi habilitada. Outra nota interessante sobre o php é a NÃO necessidade de compilar o módulo para Apache.

Siga as intruções deste artigo, para finalizar a configuração do Cacti.

OBS1: Tive alguns ‘enrroscos’ porque minha máquina não tinha um dns-server ativo, é necessário que você insira o FQDN da máquina na configuração.

OBS2: Note que o binário do php com fastcgi é php-cgi, troque a linha do cron.

OBS3: Sei que deve ter uns ‘gaps’ mas já é um começo, qualquer coisa, comente.