Teste de banda via terminal

Sempre procurei uma forma de verificar se a velocidade de um link estava correta e sempre tive muito trabalho considerando que nestes links só tinha servidores sem interface gráfica, agora sei que existe um jeito muito simples por sinal de fazer isso via console….
Não vou explicar muito, porque realmente é simples e está tudo muito bem explicado pelo Bruno Gomes na publicação original deste artigo.

No terminal do Linux vamos baixar o script com o comando:

# wget -O speedtest https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py \
–no-check-certificate

Em seguida dar permissão de execução ao arquivo:

# chmod +x speedtest

Para o teste, basta executar o arquivo e aguardar os resultados:

./speedtest

Referência:

Categorias:Dicas

Instalação do Samba4.1 no Debian Wheezy

No inicio do ano publiquei um post sobre a instalação do Samba4 (Instalação do Samba4 – Active Directory compatible Domain Controler). Depois de um tempo de uso, de apanhar bastante e de várias coisas darem errado, a gente acaba vendo tudo diferente, aprende a simplificar e otimizar os trabalhos. Como a solução final foi realmente mais simples e limpa que a anterior, resolvi fazer uma atualização do post anterior. Algumas coisas permanecerão as mesmas, outras deixarão de existir (como compilação do bind, por exemplo) e algumas serão adicionadas, devido a atualização das versões utilizadas e tombos sofridos durante o caminho.

Enfim, falando do que interessa, desta vez nosso ambiente é o seguinte:

  • Debian Wheezy 7.2
  • Samba4.1
  • Bind9

Antes de começar, ajuste os arquivos /etc/hosts e /etc/hostname do servidor com o IP, FQDN e nome correto do servidor para que não tenhamos problemas com o Kerberos.

 

Bind

Sem necessidade de compilação e utilizando versões estáveis disponíveis:

# apt-get install bind9

 
Vamos informar ao Bind que o Samba poderá alterar as entradas de DNS do domínio. No arquivo /etc/bind/named.conf, inserir a linha:

 include "/var/lib/samba/private/named.conf";

 
Agora, vamos informar ao Bind para onde ele deve encaminhar as solicitações que ele não consegue resolver (Forwarders)  e quais redes são autorizadas a utilizar este servidor para resolução de nomes (acl e allow-query):

# vim /etc/bind/named.conf.options

acl redesautorizadas {
192.168.0.0/24;
192.168.2.0/24;
192.168.3.0/29;
};

options {
directory "/var/cache/bind";
//dnssec-validation auto;
tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
allow-query { redesautorizadas; };

forwarders{
8.8.8.8;
8.8.4.4;
};

auth-nxdomain no;    # conform to RFC1035
//      listen-on-v6 { any; };
};

 

Preparação do SO

Dependências necessárias para o serviço:

 # apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev \
libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config \
libpopt-dev libldap2-dev  dnsutils libbsd-dev attr krb5-user docbook-xsl \
libcups2-dev acl

 
Serão solicitados o domínio e servidor administrativo, no caso:

Kerberos Realm: TESTE.COM
KDC: dc.teste.com

 

Configurar o sistema de arquivos para suporte a acl e attr. No arquivo /etc/fstab, localizar a linha que define o ponto de montagem do diretório raiz e deixá-la como no exemplo:

 UUID=uuid_disco  /   ext3    user_xattr,acl,barrier=1,errors=remount-ro  0  1

 

Depois de um tempo com o Samba em funcionamento e o servidor de arquivos ativo, observamos que a partição /run/lock enchia rapidamente e o serviço simplesmente parava. Resultado, muitas reclamações e muitos probemas. Depois de muita pesquisa e alguns testes, descobrimos que seria necessário aumentar o tamanho dessa partição no /etc/fstab e a dor de cabeça cessaria… 
Originalmente essa linha não aparece no arquivo, então é necessário adicioná-la:

tmpfs /run/lock tmpfs rw,noexec,nosuid,nodev,size=52428800 0 0

 

Mais explicações sobre o problema e a solução: 

 

Download configuração e instalação do Samba

# wget -c https://ftp.samba.org/pub/samba/stable/samba-4.1.0.tar.gz
# gunzip samba-4.1.0.tar.gz
# tar -xvf samba-4.1.0.tar
#  cd samba-4.1.0/
# ./configure --enable-debug --enable-selftest --enable-fhs \
--prefix=/usr --sysconfdir=/etc --localstatedir=/var
# make && make install
# mkdir /var/run/samba

Nota: Na configuração, os parâmetros prefix, sysconfdir e localstatedir não são obrigatórios, fiz desta forma apenas para que os arquivos de configuração e executáveis do Samba fossem copiados para os locaias padrão da distribuição.
 

Configuração do NSS (Network Service Switch)

# vim /etc/nsswitch.conf

passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

 

Ajustes Kerberos

#vim /etc/krb5.conf
[libdefaults]
default_realm = TESTE.COM
dns_lookup_realm = true
dns_lookup_kdc = true

[realms]
TESTE.COM = {
kdc = kdc.teste.com
admin_server = kdc.teste.com
}

[domain_realm]
.teste.com = TESTE.COM
teste.com = TESTE.COM

Nota: Nas configurações do kerberos deve-se respeitar upper case e lower case na configuração dos parâmetros. 

 

Como o pacote do samba foi compilado o script de inicialização do serviço não foi criado, vamos criá-lo e configurar a inicialização automática no sistema:

# vim /etc/init.d/samba4

#! /bin/bash
### BEGIN INIT INFO
# Provides:          samba4
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start Samba daemons
### END INIT INFO
#
# Start/stops the Samba daemon (samba).
# Adapted from the Samba 3 packages.
#
PIDDIR=/var/run/samba
SAMBAPID=$PIDDIR/samba.pid
 # clear conflicting settings from the environment
unset TMPDIR
# See if the daemon and the config file are there
test -x /usr/sbin/samba -a -r /etc/samba/smb.conf || exit 0
. /lib/lsb/init-functions
case "$1" in

start)
log_daemon_msg "Starting Samba 4 daemon" "samba"
# Make sure we have our PIDDIR, even if it's on a tmpfs
install -o root -g root -m 755 -d $PIDDIR
if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/samba -- -D; 
then
log_end_msg 1
exit 1
fi
log_end_msg 0
;;

stop)
log_daemon_msg "Stopping Samba 4 daemon" "samba"
start-stop-daemon --stop --quiet --name samba $SAMBAPID
# Wait a little and remove stale PID file
sleep 1
if [ -f $SAMBAPID ] && ! ps h `cat $SAMBAPID` > /dev/null
then
# Stale PID file (samba was succesfully stopped),
# remove it (should be removed by samba itself IMHO.)
rm -f $SAMBAPID
fi
log_end_msg 0
;;

restart|force-reload)
$0 stop
sleep 1
$0 start
;;
*)

echo "Usage: /etc/init.d/samba {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0

 
# chmod +x /etc/init.d/samba4
# update-rc.d samba4 defaults

 

Samba4 instalado e sistema ajustado. Segue alguns comandos que podem ser úteis na criação e configuração do domínio:

 

– Provision Domain
# samba-tool domain provision

– Join Domain
# samba-tool domain join teste.com DC -Uuser.adm –realm=teste.com –dns-backend=BIND9_DLZ –site=SITE –server=DC

– Retirar membro de domínio
# samba-tool domain demote –realm=TESTE.COM -Uuser.adm –password=xxxxxx –server=DC

– Teste DNS
# host -t SRV _ldap._tcp.teste.com.
# host -t A dc.teste.com

 Update Samba
* Compilar e instalar o novo pacote com as instruções anteriores.
* Alterar a permissão do arquivo key.pm
# chmod 0600 /var/lib/samba/private/tls/key.pem

 

Após os ajustes reiniciar os serviços do samba e bind.

Categorias:Diversos

Instalação do Samba4 – Active Directory compatible Domain Controler

Depois de muita espera e muita expectativa finalmente chegou o Samba4, prometendo (e cumprindo) implementação do ambiente criado pelo Active Directory (Microsoft), após a instalação a gerência e configuração do domínio e DC’s é feita utilizando as próprias ferramentas da Microsoft.

E vamos ao que interessa. Neste post serão abordadas a instalação do Samba4 no Debian Squeeze6.0.6 e Ubuntu 12.04LTS utilizando o Bind como DNS backend, nessa caso é necessário que o pacote tenha versão  igual ou superior a 9.7.x

– Bind – DNS

Debian Squeeze 6.0.6

O último pacote de instalação do bind disponível para o Debian é o 9.6 nesse caso teremos que compilar o pacote correto.

Para que não seja necessário criar os scripts de start/stop do serviço vamos instalá-lo e removê-lo utilizando o apt-get.

Nota: caso a versão disponível seja superior a 9.7.x não é necessária a remoção do serviço.

# apt-get install bind9
# apt-get autoremove bind9

Dependências necessárias

# apt-get install devscripts build-essential libkrb5-dev debhelper libssl-dev libtool bison libdb-dev libldap2-dev libxml2-dev libpcap-dev hardening-wrapper libgeoip-dev dpkg-dev

Criar diretório de cache e alterar as permissões

# mkdir /var/cache/bind
# chown bind:bind /var/cache/bind

Baixar o pacote

# mkdir bind9
# cd bind9
# dget -x http://ftp.de.debian.org/debian/pool/main/b/bind9/bind9_9.8.4.dfsg.P1-3.dsc
# tar -xvzf bind9_9.8.4.dfsg.P1.orig.tar.gz
# cd bind9-9.8.4.dfsg.P1/
 
Compilar e instalar o serviço
#  ./configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –sysconfdir=/etc/bind –localstatedir=/var –enable-threads –enable-largefile –with-libtool –enable-shared –enable-static –with-openssl=/usr –with-gssapi=/usr –with-gnu-ld –with-dlz-postgres=no –with-dlz-mysql=no –with-dlz-bdb=yes –with-dlz-filesystem=yes –with-dlz-ldap=yes –with-dlz-stub=yes –with-dlz-dlopen=yes –with-geoip=/usr CFLAGS=-fno-strict-aliasing

# make install
Ubuntu 12.04LTS

Dependências necessárias:

# apt-get install  devscripts build-essential libkrb5-dev debhelper libssl-dev libtool bison libdb-dev libldap2-dev libxml2-dev libpcap-dev hardening-wrapper libgeoip-dev dpkg-dev 

No Ubuntu o pacote disponível no repositório atende aos requisitos do Samba4, nesse caso não é necessário compilar o pacote, a instalação pode ser feita via apt-get:

# apt-get install bind9

Para que o Samba possa alterar as configurações e criar as entradas para o domínio é necessário fazer algumas alterações, são elas:

# vim /etc/bind/named.conf
include “/usr/local/samba/private/named.conf”;
 
# vim /etc/bind/named.conf.options
tkey-gssapi-keytab “/usr/local/samba/private/dns.keytab”;
forwarders {
                8.8.8.8;
                8.8.4.4;
                };

Nota: A opção forwarders só deve ser usada caso o servidor encaminha solicitações que ele não consiga resolver para servidores DNS externos.

Samba4

Dependências necessárias:

Debian 6.0.6 – Squeeze
# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev  dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl
 
Ubuntu 12.04LTS
# apt-get install libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev  dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl

Nota: Serão solicitados o domínio do servidor e FQDN dos servidores do Kerberos.

No Ubuntu ainda é necessária uma alteração no apparmor para que ele permita alterações no bind

# vim /etc/apparmor.d/usr.sbin.named
/usr/local/samba/private/** rkw,
/usr/local/samba/private/dns/** rkw,
/usr/local/samba/lib/** rm,# /etc/init.d/apparmor reload

Se o sistema de arquivos utilizado for ext3 ou ext4 será necessário configurá-lo para suportar acl e attr. Para isso vamos editar o arquivo /etc/fstab e incluir as opções “user_xattr,acl,barrier=1” na montagem do volume. Após alterado o arquivo deve estar parecido com este:

# vim /etc/fstab
/dev/hda       /               ext3    user_xattr,acl,barrier=1,errors=remount-ro  0       1

Montar novamente o sistema de arquivos

# mount -o remount,rw /

Também é importante verificar se o nome do host está definido corretamente, verifique as configurações dos arquivos /etc/hosts e /etc/hostname, faça as alterações necessárias e reincie o servidor.

Download, configuração e instalação do Samba

# wget -c http://www.samba.org/samba/ftp/stable/samba-4.0.1.tar.gz
# tar -xvf samba-4.0.1.tar.gz
# cd samba-4.0.1/
# ./configure –enable-debug –enable-selftest
# make
# make install

Após instalado o samba, vamos criar o domínio:

# /usr/local/samba/bin/samba-tool domain provision

Serão solicitadas informações como: realm,domain, server role, DNS backend e password. As configurações serão aplicadas e o domínio criado, uma saída semelhante a esta será apresentada:

Realm: TESTE.COM
Domain [TESTE]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=teste,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=teste,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4-dc
NetBIOS Domain: TESTE
DNS Domain: teste.com
DOMAIN SID: S-1-5-21-2228987782-1448195482-472659170

Antes de iniciar o Samba, reiniciar o bind para que as alterações sejam aplicadas:

# /etc/init.d/bind9 restart

Iniciar o samba

# /usr/local/samba/sbin/samba

Atualizar a base DNS

# /usr/local/samba/sbin/samba_dnsupdate –verbose –all-names

Testar o DNS
# host -t SRV _ldap._tcp.senior.local

Nota: Para funcionamento correto dos comandos acima, é necessário que no /etc/resolv.conf o nameserver contenha o IP do servidor local.

Outro serviço importante a ser configurado para o correto funcionamento do samba4 e kerberos é o NTP, caso os relógios não estejam sincronizados os serviços podem apresentar problemas.

Referências:

SSO: Apache e Samba4

Em um post anterior mostrei a configuração de autenticação do Apache no Samba2 utilizando o NTLM. Seguindo a mesma idéia, vou mostrar a configuração de autenticação do Apache em domínios Samba4 utilizando os usuários já autenticados na rede. Serão mostradas algumas configurações diferentes, dependentes dos clientes ou serviços utilizados.

Obs: Já estou considerando que o domínio samba4 já está funcional e com o kerberos e o DNS corretamente configurados.

– Configurações utilizando o NTLM

Nos testes realizados, o NTLM funcionou corretamente quando configurado em clientes rodando o samba3 e autenticando no samba4.
É necessário habilitar o módulo do NTLM no apache, vamos baixá-lo e habilitá-lo:

# apt-get install  libapache2-mod-auth-ntlm-winbind
# a2enmod auth_ntlm_winbind

Adicionar o usuário de execução do Apache ao grupo do Winbind:

# adduser www-data winbindd_priv

Nos arquivos de configurações dos alias (/etc/apache2/conf.d) ou sites do apache (/etc/apache2/sites-available) , adicionar as seguintes configurações:

AuthType NTLM
 AuthName "Autenticar Acesso"
 NTLMAuth on
 NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp \
--domain=dominio.com"
 NTLMBasicAuthoritative off
 require valid-user

Ou a seguinte para autenticação baseada em grupos de acesso:

AuthType NTLM
AuthName "Autenticar Acesso"
NTLMAuth on
NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp \
--domain=dominio.com --require-membership-of=DOMINIO\\\grupo"
NTLMBasicAuthoritative off
require valid-user

Após as alterações aplicadas, reiniciar o serviço:

 # /etc/init.d/apache2 restart

OBS: Nos servidores executando o samba4, a autenticação NTLM funcionou somente no primeiro caso. Quando a autenticação por grupos foi necessária, o serviço não funcionou corretamente.

– Configurações utilizando o Kerberos

É necessário criar uma zona de pesquisa inversa no DNS e adicionar um registro para o servidor onde o apache é executado:

# samba-tool dns zonecreate DC 0.168.192.in-addr.arpa
# samba-tool dns add DC 0.168.192.in-addr.arpa 200 PTR webserver.domain.com

Onde:
– DC = nome do controlador de domínios
– webserver = servidor de IP 192.168.0.200
– domain.com = domínio DNS

Agora vamos criar um usuário com senha randômica que será usado para criação do SPN (Service Principal Name) e exportar o keytab do domínio:

# samba-tool user create --random-password http-server
# samba-tool spn add HTTP/server.domain.com@SENIOR.LOCAL.TLD http-server
# samba-tool domain exportkeytab http.keytab --principal=HTTP/server.domain.com@DOMAIN.COM.TLD

Vamos mover o arquivo criado para o diretório do apache e ajustar as permissões:

# mv http.keytab /etc/apache2/
# chown root:www-data /etc/apache2/http.keytab
# chmod 640 /etc/apache2/http.keytab

Também é necessário habilitar o módulo do kerberos no apache:

# apt-get install libapache2-mod-auth-kerb
 # a2enmod auth_kerb
# a2enmod authnz_ldap

No site (nesta caso a autenticação configurada no conf.d não funcionou) correspondente à aplicação que necessita de autenticação, adicionar as configurações:

<Directory /caminho_aplicacao>
 AuthType Kerberos
 AuthName "Intranet Login"
 KrbMethodNegotiate on
 KrbMethodK5Passwd on
 KrbLocalUserMapping on
 Krb5Keytab /etc/apache2/http.keytab
 KrbAuthRealms DOMAIN.COM
 Require valid-user
 </Directory>

Para a autenticação baseada em grupos de acesso deve ser usada a seguinte configuração:

<Directory /caminho_aplicacao>
AuthType Kerberos
AuthName "Intranet Login"
KrbMethodNegotiate on
KrbMethodK5Passwd on
KrbLocalUserMapping on
Krb5Keytab /etc/apache2/http.keytab
KrbAuthRealms DOMAIN.COM
Require valid-user

AuthLDAPURL "ldap://server1.domain.com/ou=users,dc=domain,dc=com?sAMAccountName"
AuthLDAPBindDN user@domain.com
AuthLDAPBindPassword password
require ldap-group cn=grupo,ou=groups,dc=domain,dc=com
</Directory>

Referências:

Categorias:Apache Tags:, , ,

Autenticação NTLM no Apache

Ambiente:
– Samba 3.5.6 e 3.6.6
– Apache 2.2
– Debian Wheezy 7.1

Pacotes necessários: samba, smbclient, winbind, libapache2-mod-auth-ntlm-winbind

# Samba

No arquivo /etc/smb/smb.conf adicionar as configurações

workgroup = <dominio>
server string = %h server
netbios name = <nomeservidor>
realm = <dominio.com>
log level = 2
log file = /var/log/samba/samba.log
max log size = 50
security = domain
password server= <servidor que validará as requisições. Ex: ad, ldap>
socket options = SO_KEEPALIVE TCP_NODELAY
encrypt passwords = yes
allow trusted domains = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users =yes
winbind enum groups = yes
winbind use default domain = yes
winbind use default domain = yes
hosts allow = <rede com permissão para autenticar. Ex: 192.168.>

# Configurações winbind

Editar o arquivo /etc/nsswitch.conf de maneira que fiquei como a seguir

passwd: files winbind
group: files winbind
shadow: files winbind

# Incluir o servidor no domínio

net join -w DOMAIN -SSERVER -U USER

– DOMAIN: domínio
– SERVER: PDC
– USER: usuário com permissão de administrador no domínio
– Adicionar o usuário www-data ao grupo winbindpriv

# Apache

Nos arquivos do diretório conf.d, referentes aos sistemas que precisam de autenticação, adicionar as linhas:

AuthType NTLM
 AuthName "Autenticar Acesso"
 NTLMAuth on
 NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
 NTLMBasicAuthoritative on
 require valid-user

# Reiniciar o winbind e o apache

/etc/init.d/winbind restart
/etc/init.d/apache2 restart

Categorias:Diversos

Criação e atualização de Feeds no Zimbra

#!/bin/bash
# Script para criacao e atualizacao de Feeds RSS nas caixas postais do Zimbra

LOG=/etc/feeds/log
domains=/etc/feeds/domains
feeds=/etc/feeds/feeds
zmmailbox=/opt/zimbra/bin/zmmailbox

while read dom;
do    
  dominio=$dom
  for usuario in $(/opt/zimbra/bin/zmprov -l gaa $dominio);do
      echo "" >> $LOG
      echo "Usuario: " $usuario >> $LOG
      while read line_feed;
      do
         feed=`echo $line_feed | cut -d* -f1`
         url_feed=`echo $line_feed | cut -d* -f2`
         canal=`$zmmailbox -z -m $usuario gaf | grep "$feed"`

           if [ -n "$canal" ]; then
              echo "Atualizando feed " $feed >> $LOG
                 $zmmailbox -z -m $usuario syncfolder "$feed" >> $LOG
           else
              echo "Criando feed: " $feed >> $LOG
                 $zmmailbox -z -m $usuario cf -u $url_feed "$feed" >> $LOG
        fi
   done < $feeds # fim while feed
 done # fim for
done < $domains #fim while dominio

Explicação do Script:

Variáveis:

  • LOG: armazena as informações de execução do script.
  • domains: contém os domínios configurados no servidor, ou que receberão os Feeds. No arquivo deve ser informado um domínio por linha.
    Ex: dominio.com.br
        dominio2.com.br
  • feeds: contém as urls dos feeds. Também deve ser informado um por linha. O ‘*’ é o caracter delimitador no script e deve ser informado.
    Ex: /Inbox/Canal TI*  http://site.com.br/index.php/ti?format=feed&type=rss*
        /Inbox/Canal RH*  http://site.com.br/index.php/rh?format=feed&type=rss*
  • zmmailbox: serviço que adicionará/atualizará os feeds;
  • dominio: domínio selecionado a cada iteração ‘do while read dom’;
  • usuario: usuário selecionado na execução do zmprov no loop ‘for’;
  • feed: primeira coluna do arquivo feeds. Corresponde à localização e nome do feed a ser criado/atualizado;
  • url_feed: segunda coluna do arquivo feeds. Corresponde ao endereço do feed a ser criado/atualizado;
  • canal: variável utilizada para verificar se o feed já existe para o usuário selecionado;

Primeiramente o script lê o arquivo dos domínios (domains) cadastrados. Cada iteração seleciona um domínio e dentro do loop são percorridas as caixas postais correspondentes. Em cada caixa postal, é verificada a existência de cada uma das urls presentes no arquivo feeds, caso o Feed não exista ele é criado,  se já existe é atualizado.

Categorias:Zimbra - Email Tags:

Criar templates no XenServer

Algumas versões do XenServer não possuem templates prontos para Distros mais novas. Em alguns casos, baseado em templates já existentes no sistema, é possível criar templates para as Distros mais novas sem necessidade de paravirtualizar a nova instalação, segue alguns exemplos:

 

– Template Debian Wheezy

 

#!/bin/bash

SQUEEZE=$(xe template-list name-label=Debian\ Squeeze\ 6.0\ \(32-bit\) –minimal)

if [[ -z $SQUEEZE ]] ; then
echo “Cant find squeeze 32bit template, is this on 6.0″
exit 1
fi

distro=”Debian Wheezy”
arches=(“32-bit” “64-bit”)
for arch in ${arches[@]} ; do
echo “Attempting $distro ($arch)”
if [[ -n $(xe template-list name-label=”$distro ($arch)” params=uuid –minimal) ]] ; then
echo “$distro ($arch)” already exists, Skipping
else

NEWUUID=$(xe vm-clone uuid=$SQUEEZE new-name-label=”$distro ($arch)”)
xe template-param-set uuid=$NEWUUID other-config:install-methods=http,ftp \
other-config:install-repository=http://ftp.debian.org/debian \
PV-args=”– quiet console=hvc0″ \
other-config:debian-release=wheezy \
other-config:default_template=true

if [[ “$arch” == “32-bit” ]] ; then
xe template-param-set uuid=$NEWUUID other-config:install-arch=”i386″
else
xe template-param-set uuid=$NEWUUID other-config:install-arch=”amd64″
fi
echo “Success”
fi

done

echo “Done”

 

– Template Ubuntu 

 

#!/bin/bash

LENNY=$(xe template-list name-label=Debian\ Lenny\ 5.0\ \(32-bit\) –minimal)

if [[ -z $LENNY ]] ; then
echo “Cant find lenny 32bit template, is this on 5.6?”
exit 1
fi

distro=”Ubuntu 10.04″
arches=(“32-bit” “64-bit”)
for arch in ${arches[@]} ; do
echo “Attempting $distro ($arch)”
if [[ -n $(xe template-list name-label=”$distro ($arch)” params=uuid –minimal) ]] ; then
echo “$distro ($arch)” already exists, Skipping
else

NEWUUID=$(xe vm-clone uuid=$LENNY new-name-label=”$distro ($arch)”)
xe template-param-set uuid=$NEWUUID other-config:install-methods=http,ftp \
other-config:install-repository=http://archive.ubuntu.net/ubuntu \
PV-args=”– quiet console=hvc0 partman/default_filesystem=ext3″ \
other-config:debian-release=lucid \
other-config:default_template=true

if [[ “$arch” == “32-bit” ]] ; then
xe template-param-set uuid=$NEWUUID other-config:install-arch=”i386″
else
xe template-param-set uuid=$NEWUUID other-config:install-arch=”amd64″
fi
echo “Success”
fi

done

echo “Done”

XenServer – Comandos úteis

Comandos, console…. prático, rápido, funcional…. mas se você não usa todo dia acaba esquecendo, apesar de saber que eles existem. Vou listar alguns comandos do XenServer, muito úteis, mas nem tanto utilizados.

— listar discos das vms

# xe vm-disk-list –multiple

— configurar pool para iniciar automaticamente

# xe pool-param-set uuid=uuid_pool other-config:auto_poweron=true

— configurar para vm iniciar automaticamente

# xe vm-param-set other-config:auto_poweron=true uuid=uuid_template

— Remover configuração de VM (neste caso inicialização automática)

# xe vm-param-remove param-key=auto_poweron param-name=other-config uuid=uuid_vm

— Exlcuir um template

# xe template-param-set other-config:default_template=false uuid=uuid_template

# xe template-param-set is-a-template=false uuid=uuid_template

# xe vm-destroy uuid=uuid_template

— Shutdown / Start / Export VM

xe vm-shutdown vm=nome_vm

xe vm-start vm=nome_vm

xe vm-export vm=nome_vm filename=/Caminho_arquivo.xva

— Resetar estado da vm

# xe vm-reset-powerstate uuid=<vm>

— Listar tarefas pendentes
# xe task-list

— Cancelar tarefa
# xe task-cancel uuid=<tarefa>

— Eliminar tarefas pendentes
# xe-toolstack restart

Antispam Zimbra – Blacklist e Whitelist

Tema (problema) de hoje Spam que não é barrado no AntiSpam. É, acontece!!

E como tudo na TI nada funciona 100%, nem depois da intervenção. A briga de gato e rato é constante e nós estamos aí, uma hora encontramos o ninho do rato e acabamos com a bagunça. Enquanto isso não acontece, dificultamos a vida deles.

De volta ao Antispam, palavras de Marciel Meurer (http://pt.scribd.com/doc/63799499/Blacklist-e-Whitelist-No-Zimbra)
O Zimbra disponibiliza uma opção para que sejam criadas Blacklist e Whitelist. Primeiro detalhe antes de mostrar como proceder. Whitelist prevalece sobre a Blacklist, então caso tenha bloqueado na Blacklist o dominio gmail.com e liberado na Whitelist o endereço simpsons@gmail.com, os e-mails enviados por simpsons@gmail.com irão ir normalmente para o usuário.”

1 – Como root, adicione no arquivo  /opt/zimbra/conf/amavisd.conf.in, as seguintes linhas:

read_hash (\%whitelist_sender, "/opt/zimbra/conf/whitelist"),
read_hash (\%blacklist_sender, "/opt/zimbra/conf/blacklist"),

Só para manter a organização do arquivo, adicionei as linhas abaixo da seguinte linha (no arquivo ela está comentada, e deve ser mantida assim).

# read_hash("/var/amavis/sender_scores_sitewide"),

Nota: Não alterem o arquivo /opt/zimbra/conf/amavisd.conf, podem ter alguns problemas com isso.

2 – Agora vamos criar e preencher os arquivos que receberão nossas listas:

# vim /opt/zimbra/conf/blacklist
# vim /opt/zimbra/conf/whitelist

3 – Reiniciar o serviço de Antispam

# su – zimbra
$ zmamavisdctl restart

Referências: