Category — FreeBSD
Dicas sobre Qmail - redirecionamentos e catchall
Pessoal,
Para fazer um redirecionamento de uma conta no Qmail - Vpopmail para sua conta, sem manter copia local, crie um arquivo .qmail dentro do Maildir da conta a ser redirecionada, com o seguinte conteúdo:
cat /usr/home/vpopmail/domains/seudominio.com/nome_conta_a_ser_redirecionada/Maildir/.qmail
&seu_email@seu_dominio.com
Para fazer um redirecionamento, porem agora mantendo uma cópia tambem para o email que originalmente recebe as mensagens, voce deve criar o mesmo arquivo .qmail dentro do Maildir, adicionando a seguinte linha:
cat /usr/home/vpopmail/domains/seudominio.com/nome_conta_a_ser_redirecionada/Maildir/.qmail
&seu_email@seu_dominio.com
/usr/home/vpopmail/domains/seudominio.com/nome_conta_a_ser_redirecionada/Maildir/
Outra configuração importante que as vezes precisamos utilizar é o catchall, ou seja, uma conta que recebe todos os emails do dominio, podendo ser configurado de várias formas:
1) Para fazer um catchall para o dominio, apagando o email sem fazer
nada:
.qmail-default
| /usr/home/vpopmail/bin/vdelivermail ” delete
2) Para fazer um catchall para o dominio, enviando um email de bounce:
.qmail-default
| /usr/home/vpopmail/bin/vdelivermail ” bounce-no-mailbox
3) Para fazer um catchall para o dominio, enviando todos os emails
que chegam para um endereço local:
.qmail-default
| /usr/home/vpopmail/bin/vdelivermail ” seu_email@seu_dominio.com
October 29, 2007 No Comments
FreeBSD and Bash is cool!
Pessoal,
Há uns dias atras precisei extrair de centenas de arquivos compactados [.tar.gz] apenas os arquivos chamados index2.php, cada pacote tem pelo menos 30 subpastas com tais arquivos dentro, logo me encontrei com a tarefa de descompactar 300 arquivos .tar.gz :( e retirar deles os arquivos index2.php. A solucao encontrada foi a combinaçao do proprio comando tar com o shell Bash, é claro tudo isso rodando no FreeBSD :
ls -l /home/nick/*.tar.gz | awk ‘{ print $9 }’ | while read files ; do tar –include=*index2.php -zxvf $files ; done
Usei o awk para filtrar a saida do comando ls -l, trazendo somente o nome do arquivo, e criei um loop atraves do while para executar o tar -zxvf com o argumento –include=*index.php que como o nome ja fala, somente inclui o *index2.php para ser extraido.
Uso muito o loop while para inclusive apagar, concatenar um ´nada´ nos arquivos de logs:
ls -l /var/logs/meus_log_files.log | awk ‘{ print $9 }’ | while read files ; do : > $files ; done
Espero ter ajudado!
October 25, 2007 No Comments
Instalando e configurando DNS com Djbdns - Tinydns e Dnscache
Bem diferente do BIND que é ao mesmo tempo servidor de cache e autoritativo, o sistema de DNS Djbdns possui 2 daemons separados para tal serviço. O DNSCACHE para caching, onde ele faz as buscas nos root servers para efetuar a resolucao de nomes em uma rede.
O TINYDNS, é servidor de nomes autoritativo, somente responderá requisições que estejam em seu banco de dados.
Lembro aqui que os dois não podem rodar no mesmo IP.
Para instalá-los é bem simples, aqui uso o ports do FreeBSD para dar exemplo de como isso pode ser feito:
Instalando:
root~#cd /usr/ports/dns/djbdns/ && make all install clean
Via ports ele ja adiciona os principais patchs para o funcionamento, ainda instala o daemontools e uicspi-tcp, que são necessários. No entanto você poderá instalar manualmente os pacotes:
http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
Agora adicionamos alguns usuários para que o programa rode com segurança:
root~# pw useradd tinydns -g djbdns -d /dev/null -s /sbin/nologin
root~# pw useradd dnscache -g djbdns -d /dev/null -s /sbin/nologin
root~# pw useradd dnslog -g djbdns -d /dev/null -s /sbin/nologin
Configurando:
root~# mkdir /var/djbdns && cd /var/djbdns/
root~# dnscache-conf dnscache dnslog /var/djbdns/dnscache IP_DA_MAQUINA_QUE_VAI_RODAR
Ex.:
root~#dnscache-conf dnscache dnslog /var/djbdns/dnscache 192.168.10.1
Agora ja com o daemontools rodando, crie um link simbólico para o /service:
root~# ln -s /var/djbdns/dnscache /service/
Em 5 segundos você ja tem o dnscache rodando, porem ele ainda estará somente aceitando conexões no loopback 127.0.0.1, voce precisará dar permissão para outros IPs usarem o serviço:
root~# touch /var/djbdns/dnscache/root/ip/192.168.10
Liberamos assim para toda a rede 192.168.10, se preferir libere somente no seu IP específico.
Test it!
root~# cat /dev/null >/etc/resolv.conf && echo nameserver 127.0.0.1 >/etc/resolv.conf
root~# host yahoo.com
Se ele resolver, é porque tudo esta funcionando perfeitamente. Use o svstat para checar os servicos rodando abaixo do daemontools:
root~#svstat /service/dnscache/
/service/dnscache/: up (pid 443) 686084 seconds
Vamos agora para o tinydns:
O Tinydns ja é diferente do dnscache, ele é servidor de DNS, com ele voce pode responder autoritativamente para os dominios.
Para instalacão do tinydns, após ter instalado o pacote djbdns, é preciso somente configurá-lo:
root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns IP.DA.MAQUINA
Ex.:
root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns 192.168.10.2
Nao esqueca de subir o programa via daemontools:
root~#ln -s /var/djbdns/tinydns /service/
Voce agora pode adicionar os dominios no tinydns utilizando os programas que o próprio djbdns disponibiliza:
root~# cd /var/djbdns/tinydns/root/
root~# ./add-ns nome_do_dominio ip_do_dominio
root~# ./add-host host_do_dominio ip_do_dominio
root~# ./add-mx nome_do_dominio ip_do_servidor_de_email
root~# make
Eu particularmente utizo um script pessoal que gera as entradas automaticamente para eu copiar
para o data:
root~#more adiciona_dominio_dns.sh
#!/usr/local/bin/bash
echo ”
.$1::ns1.nomedodns.com
.$1::ns2.nomedodns.com
=$1:65.65.200.200
=mail.$1:65.65.200.200
+$1:65.65.200.200
@$1:65.65.200.200:mail.$1″
Execute: ./adiciona_dominio_dns.sh nomedoseudominio.com, desta forma ele criará entradas como:
.nomedoseudominio.com::ns1.nomedodns.com
.nomedoseudominio.com::ns2.nomedodns.com
=nomedoseudominio.com:65.65.200.200
=mail.nomedoseudominio.com:65.65.200.200
+nomedoseudominio.com:65.65.200.200
@nomedoseudominio.com:65.65.200.200:mail.nomedoseudominio.com
prontas para serem adicionadas no arquivo /var/djbdns/tinydns/root/data
apos isso rode:
root~#cd /var/djbdns/tinydns/root/ ; make
Pronto! Assim voce ja tem o tinydns respondendo pelo seu dominio.
Uma questão que sempre encontro nos foruns e Internet a fora é a criação de DNS primário e DNS secundário, exigido na Fapesp para registro de dominios aqui no Brasil.
O tinydns é muito legal nesse aspecto porque voce simplesmente adicionando mais um IP no seu servidor e rodando o instalacao a partir do ponto:
root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns 192.168.10.2
mudando o IP e pasta voce terá quantos servidores DNS precisar:
root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns2 192.168.10.3
root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns3 192.168.10.4
Percebem que somente alterei a pasta onde ficarão os arquivos e o IP que escutará as requisições, ja o data.cdb criado no DNS 1, vamos chama-lo assim, poderá ser copiado para as pastas dos outros servers sem que precisem ser compilados novamente:
Ex.:
root~#pwd
/var/djbdns/tinydns/root
root~#rsync -arvl data* ../../tinydns2/root/
building file list … done
data
data.cdb
sent 200920 bytes received 64 bytes 401968.00 bytes/sec
total size is 200746 speedup is 1.00
Nesta maquina tenho rodando dois servidores de DNS:
root~#ls -l /var/djbdns/
total 6
drwxr-sr-t 6 root wheel 512 Jun 22 14:20 dnscache
drwxr-sr-t 6 root wheel 512 May 14 13:30 tinydns
drwxr-sr-t 6 root wheel 512 Sep 3 10:23 tinydns2
Esta facilidade de inserir dominios e replicar o servidor rapidamente me atraiu e acredito que será bem util a todos!
October 22, 2007 No Comments
Como gerenciar a fila de mesagens do Qmail
Pessoal,
Fila do qmail é algo que é preciso ter cuidado, muitas vezes precisamos gerenciar a fila, deletar emails específicos e isso pode se tornar uma tarefa difícil, ja que o qmail tem sua fila organizada em diversos diretórios e as mensagens sao identificadas com um número único, cada diretório tem uma parte da mensagem, exemplifico aqui a mensagem de numero 478:
mess/457: the message
todo/457: the envelope: where the message came from, where it’s going
intd/457: the envelope, under construction by qmail-queue
info/457: the envelope sender address, after preprocessing
local/457: local envelope recipient addresses, after preprocessing
remote/457: remote envelope recipient addresses, after preprocessing
bounce/457: permanent delivery errors
Parece bem confuso entao apagar uma mensagem da fila, haja visto que ela é dividida em varias partes.
Para isso existe um programa chamado qmHandle que facilita nossa vida, pois ele permite gerenciar, visualizar as mensagens de forma mais amigavel, veja as principais caracteristicas dele:
- Voce poderá ler a fila do qmail, igualmente voce faz com o qmail-read, porem aqui o output do programa é melhor, ele descreve tambem o assunto da mensagem e uso de cores no relatorio;
- Poderá bter um relatório das estatisticas como o qmail-stat, porem com capacidade de fazer isso com cores, bem mais organizado e melhor de entender;
- Voce poderá ver uma mensagem na fila;
- Tambem poderá remover uma mensagem da fila facilmente
Veja alguns exemplos:
[root@woody]# qmHandle
qmHandle v1.2.0
Copyright 1998-2003 Michele Beltrame
Available parameters:
-a : try to send queued messages now (qmail must be running)
-l : list message queues
-L : list local message queue
-R : list remote message queue
-s : show some statistics
-mN : display message number N
-dN : delete message number N
-Stext : delete all messages that have/contain text as Subject
-D : delete all messages in the queue (local and remote)
-V : print program version
Additional (optional) parameters:
-c : display colored output
-N : list message numbers only
(to be used either with -l, -L or -R)
You can view/delete multiple message i.e. -d123 -v456 -d567
É isso, espero ter ajudado
October 17, 2007 No Comments
Redirecionar portas no freebsd
Existem varias formas de redirecionar portas no FreeBSD aqui voce citar 3 formas de redirecionar portas de um servidor para outro sem o uso do firewall, seja ipfw ou pf.
- Atraves da configuração de NAT.
Se voce estiver usando NAT no servidor que vai receber as conexões a serem desviadas, voce poderá utiliza-lo para redirecionar portas usando um arquivo de configuracao para melhor organização:
Edite seu /etc/rc.conf e insira a seguinte linha:
natd_enable=”YES”
natd_flags=”-l -f /etc/natd.conf”
Depois crie um arquivo /etc/natd.conf com as seguintes linhas:
interface xl0
dynamic yes
same_ports yes
use_sockets yes
redirect_port tcp 192.168.0.1:80 200.80.90.100:8080
redirect_port tcp 192.168.0.1:4070 200.80.90.100:4070
Onde xl0 é a sua interface de NAT.
As duas últimas linhas são as configurações de redirecionamento, veja que você pode redirecionar para portas diferentes e protocolos diferentes. A sintaxe da linha é a seguinte:
redirect_port [tcp/udp] IP_DESTINO:PORTA IP_QUE_RECEBE_PEDIDO :PORTA
- Através do programa socket utilizando o inetd.
Você tambem pode redirecionar conexôes TCP utilizando o program socket que roda no inetd. Você deve instalar esse pacote no FreeBSD através dos ports ou no site do FreeBSD.
A sintaxe de utilização do socket é a seguinte:
TIPODECONEXAO stream tcp nowait root /usr/local/bin/socket socket IPdeDESTINO TIPODECONEXAO
Exemplo:
ftp stream tcp nowait root /usr/local/bin/socket socket 192.168.0.1 ftp
Basta colocar essa linha no seu inetd e reinicia-lo, pronto, as conexões serão redirecionadas para seu outro servidor.
- Através do programa rinetd.
O programa também pode ser instalado via ports, ja na configuracao para redirecionar portas voce pode seguir o exemplo
abaixo usado para conexão do VNC - programa usado para acesso remoto da maquina windows:
/usr/local/etc/rinetd.conf
200.200.200.200 5800 192.168.1.76 5800
200.200.200.200 5900 192.168.1.76 5900
Note que ele tem um padrão parecido com a configuração do NAT, porem agora invertendo o IP do destino.
É isso, ja temos assim 3 formas de redirecionar portas no FreeBSD.
October 17, 2007 No Comments
Ajustar horario de verao servidores freebsd e linux
Ola a todos!
Facil e rápido!
Artigo sobre ajuste de horario no Freebsd, publicado no site:
http://www.fug.com.br/content/view/381/54/
que orienta na reconfiguração dos servidores Freebsd para o novo horário de verão.
Ja no Linux voce poderá utilizar o tutorial:
http://www.rnp.br/cais/alertas/2007/cais-alr-20071005.html#LINUX
Ate mais!
October 15, 2007 No Comments
Servidor de email completo com Qmail Spam control no Freebsd
Pessoal,
Tutorial muito bom para implementação de servidor de email completo com
qmail-spamcontrol : http://www.fehcom.de/qmail/spamcontrol/README_spamcontrol.html
Instalacao no Freebsd utilizando o ports.
http://www.swcat.com/artigos/freebsd/artigo002.php
Ate mais!
September 25, 2007 No Comments
Como instalar postfix com autenticacao sasl smtp auth
Antes da instalação do Postfix, uma dica rapida: no FreeBSD para atualizar sua arvore do ports é digitar:
portsnap fetch
portsnap extract
portsnap update
para implementar o Postfix no FreeBSD siga as intruções abaixo:
1) compilar o /usr/ports/mail/postfix com suporte a sasl2
assim ele instalara o sasl:
/usr/ports/security/cyrus-sasl2-saslauthd
2) configurar no /usr/local/etc/postfix/main.conf
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated,reject_unauth_destination,permit_mynetworks,permit
September 11, 2007 No Comments
Conceitos da tecnologia RAID
Este artigo visa explicar os conceitos da tecnologia RAID, muito utilizada para operações críticas, onde não se pode perder dados ou ter serviços fora de funcionamento. Para um usuário normal, a perda de dados até que pode não fazer muita falta (mesmo que tenha, inclusive, valores sentimentais). Mas para empresas ou profissionais, a perda de informações pode significar prejuízos enormes. A tecnologia RAID, já consolidada e usada há alguns anos, é uma forma bastante eficiente de proteger informações e, no caso de empresas, garantir a permanência de seus negócios. Conheça, nas próximas linhas, os conceitos desta tecnologia.
O que é RAID
RAID é a sigla para Redundant Array of Independent Disks. Sua definição em português seria “Matriz Redundante de Discos Independentes”. Trata-se de uma tecnologia que combina vários discos rígidos (HD) para formar uma única unidade lógica, onde os mesmos dados são armazenados em todos (redundância). Em outras palavras, é um conjunto de HDs que funcionam como se fossem um só. Isso permite ter uma tolerância alta contra falhas, pois se um disco tiver problemas, os demais continuam funcionando, disponibilizando os dados. O RAID é uma tecnologia consolidada, já que surgiu pelas mãos de pesquisadores da Universidade de Berkesley, na California (EUA) no final da década de 1980.
[Read more →]
September 10, 2007 No Comments
