Aumentando o limite de arquivos abertos no Linux

Vamos modificar dois limites de arquivos abertos no Linux. Um limite do kernel e outro limite por usuário.
Mensagems de erro: too many opened files,running out of file handles.

Não existe um cálculo definido para a quantidade máxima, isso depende do seu hardware, quantidade de memória e quais aplicativos está executando que consomem recursos. O kernel define baseado na quantidade de memória, +- 100 para cada 1MB de RAM.
Você pode ir aumentando por demanda ou utilizar o calculo dessas referências:
http://stackoverflow.com/questions/6180569/need-to-calculate-optimum-ulimit-and-fs-file-max-values-according-to-my-own-se

Para verificar nosso limite atual de arquivos abertos suportado pelo kernel:

cat /proc/sys/fs/file-max

Para aumentar seu limite, adiciona no arquivo /etc/sysctl.conf

fs.file-max = 943718

Para verificar nosso limite atual de arquivos abertos por usuário:

ulimit -n

Para aumentar o limite, adicione no arquivo /etc/security/limits.conf

*   soft    nofile  65000
*   hard    nofile  65000

e adicione no /etc/pam.d/common-session

session required pam_limits.so

Para aumentar sem precisar reiniciar:

ulimit -n 65000
echo 943718 > /proc/sys/fs/file-max

Postfix blacklist

Criando uma lista negra no postfix para rejeitar domínios ou emails.

No arquivo de configurações main.cf adicione a seguinte linha no smtpd_sender_restrictions =

  check_sender_access hash:/etc/postfix/blacklist,

Crie o arquivo /etc/postfix/blacklist com o seguinte conteúdo no
formato DOMINIO/EMAIL REJECT  MENSAGEM DE BLOQUEIO

dominiospam.com.br REJECT Blacklist
entregueimx.info REJECT Blacklist
mktphone.com.br REJECT Blacklist
bounces.paineldeenvio.com REJECT Blacklist
marketingalves.com.br REJECT Blacklist
hffix.com.br REJECT Blacklist
mktlionbrasil113.info REJECT Blacklist
cartaexpressa.info REJECT Blacklist
vendamais.com.br REJECT Blacklist
vistamail.com.br REJECT Blacklist

Execute

      postmap /etc/postfix/blacklist

Recarregar as configurações do postfix:

      /etc/init.d/postfix reload

 

Apagando emails da fila de envio do Postfix

As vezes nos deparamos com algum malware na rede enviando email loucamente ou algum envio errado de mala direta, etc, e não queremos que nosso server acabe em listas negras.

Segue abaixo um script bem simples para apagar da fila de envio do postfix os emails de um determinado remetente.

#!/bin/sh
#Script para apagar emails da fila do postfix de um determinado remetente
#Genilto Dallo <geniltodallo at gmail.com>
#————————————————————————

echo “————————————”
echo “- Excluir email da fila do postfix -”
echo “————————————”
echo “Digite o email:”
read email

LISTA=`postqueue -p|grep $email |awk -F” ” {‘print $1’}|sed -e s’/\*//g’`

for IDEMAIL in $LISTA; do
echo “Apagando $IDEMAIL”
postsuper -d $IDEMAIL
done

Postfix + Spamassassin on Debian

Installing and configuring Spamassassin + Postfix on Debian.

apt-get install spamassassin

Modify the line of smtp on /etc/postfix/master.cf

smtp inet n - n - - smtpd -o content_filter=spamassassin

Add at the end of the file /etc/postfix/master.cf

spamassassin unix  -       n       n       -       -       pipe
flags=R user=spamuser argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Set ENABLED=1 in /etc/default/spamassassin

ENABLED=1

Add spamuser:

adduser spamuser

Start Spamassassin:

service spamassassin start

Restart Postfix

service postfix restart

and watch the logs…

Jan 25 14:58:56 web01 spamd[6747]: spamd: connection from localhost [127.0.0.1] at port 54825
Jan 25 14:58:56 web01 spamd[6747]: spamd: setuid to spamuser succeeded
Jan 25 14:58:56 web01 spamd[6735]: prefork: child states: IB
Jan 25 14:58:56 web01 spamd[6747]: spamd: processing message <1238538872.3099.1359132632799.JavaMail.root@java.srv> for spamuser:1000
Jan 25 14:58:56 web01 spamd[6747]: spamd: clean message (2.4/5.0) for spamuser:1000 in 0.0 seconds, 1415 bytes.
Jan 25 14:58:56 web01 spamd[6747]: spamd: result: . 2 - ALL_TRUSTED,HTML_IMAGE_ONLY_12,HTML_MESSAGE,HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY scantime=0.0,size=1415,user=spamuser,uid=1000,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=54825,mid=<1238538872.3099.1359132632799.JavaMail.root@java.srv>,autolearn=no

After run Spamassassin, we have to tune the config... Coming soon...

Você pode personalizar a mensagem de spam editando o arquivo:
/usr/share/spamassassin/30_text_pt_br.cf

É possível ajustar a pontuação.
A pontuação é um escore que o spamassassin atribui as mensagens, quanto mais padrões de spam ele encontra, maior é a pontuação.
Como padrão o escore é 5.0, acima disso as mensagens são classificadas como SPAM.
Servidores com poucos domínios eu utilizo 4.0. Mas é bom você ajustar conforme os tipos de mensagens que o seu servidor recebe.
Para ajustar edite o arquivo /etc/spamassassin/local.cf
descomente e modifique a linha

# required_score 5.0

Configurando dois links de Internet

Segue abaixo o script para utilização de dois links de internet.
Trocar os IPs etc conforme o comentário…

Adicionar o mesmo nome dos links que voce utilizar no script no arquivo /etc/iproute2/rt_tables

echo "1 gvt" >> /etc/iproute2/rt_tables
echo "2 copel" >> /etc/iproute2/rt_tables

Script:

#!/bin/sh
# Dois links de internet
# Balaceamento de Link
# Genilto Dallo geniltodallo@gmail.com
#---------------------

IP1=10.1.11.20 #IP Link 1
IP2=200.195.176.28 #IP Link 2
IFACE1=eth1 #Interface do Link 1
IFACE2=eth2 #Interface do Link 2
GW1=10.1.11.1 #Gateway Link 1
GW2=200.195.176.25 #Gateway Link 2

W1=1 #Peso do balaceamento link 1
W2=1 #Peso do balanceamento link 2

NAME1=gvt #Nome do link 1
NAME2=copel #Nome do link 2

ip route add $IP2/24 dev $IFACE2 src $IP2 table $NAME2
ip route add default via $GW2 table $NAME2
ip route add $IP1/24 dev $IFACE1 src $IP1 table $NAME1
ip route add default via $GW1  table $NAME1
ip rule add from $IP2 table $NAME2
ip rule add from $IP1 table $NAME1
ip route add default scope global nexthop via $GW2 dev $IFACE2 weight 1 nexthop via $GW1 dev $IFACE1 weight 1

Configurando o módulo Vacation – Resposta Automática no RoundCube

Site do Plugin: https://github.com/bhuisgen/rc-vacation/

Baixar em zip: https://github.com/bhuisgen/rc-vacation/zipball/master

1. Descompacte o bhuisgen-rc-vacation-0.5-12-gdadb328.zip para roudcube/plugin/

Aqui eu renomeei para roundcube/plugin/vacation

2. Adicione o plugin nas configurações do Roundcube ( roundcube/config/main.inc.php)

$rcmail_config[‘plugins’] = array(“vacation”);

Como eu tenho mais de um plugin, ficou assim:

$rcmail_config[‘plugins’] = array(“password”,”http_authentication”,”vacation”);

3. Configurações do plugin:

copie o config.inc.php.dist para config.inc.php

edite o config.inc.php

// default vacation subject
$rcmail_config[‘vacation_subject_default’] = ‘Resposta Automatica’;

// default vacation message
$rcmail_config[‘vacation_message_default’] = ‘Estou Ausente no momento. Mais tarde eu entrarei em contato’;

// vacation start/end date format
$rcmail_config[‘vacation_dateformat’] = ‘d/m/Y’;

// driver used for backend storage
$rcmail_config[‘vacation_driver’] = ‘sql’;

// database DSN
$rcmail_config[‘vacation_sql_dsn’] =
‘mysql://userdobanco:senhadobanco@localhost/postfix’;

Configurando Vacation no PostfixAdmin

Fonte: VIRTUAL_VACATION/INSTALL.TXT
(incluso no código fonte do PostfixAdmin, inclusive o script vacation.pl)

Receita de bolo bem prática para habilitar o modo férias no PostfixAdmin

Instale os Módulos perl necessários:

apt-get install libmail-sender-perl libdbd-mysql-perl libemail-valid-perl libmime-perl liblog-log4perl-perl liblog-dispatch-perl libgetopt-argvfile-perl libmime-charset-perl libmime-encwords-perl

Caso não encontre o libmail-sender-perl instale via CPAN:

perl -e shell -MCPAN

cpan[x]: install Mail::Sender

 

1. Criar contas locais:

groupadd -r -g 65501 vacation
useradd
-r -u 65501 -g vacation -d /var/spool/vacation -s /sbin/nologin vacation

2. Criar diretório:

mkdir /var/spool/vacation

3. Copiar o script para o diretório:

cp vacation.pl  /var/spool/vacation/

4. Permissão para usuário vacation no diretório:

chown -R vacation:vacation /var/spool/vacation/

5. Adicionar o tipo de transporte abaixo no /etc/postfix/master.cf:

vacation    unix  –       n       n       –       –       pipe
flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} — ${recipient}

6. Adicionar em /etc/postfix/main.cf:

transport_maps = hash:/etc/postfix/transport

7. Criar o arquivo /etc/postfix/transport com o conteúdo (mudar para seu domínio):

autoreply.yourdomain.com        vacation:

8. Execute postmap /etc/postfix/transport

9. Reinicie o postfix

10. Edite o script /var/spool/vacation/vacation.pl para configurar o banco de dados:

#our $db_type = ‘Pg’; # Descomente este para POSTGRE
our $db_type = ‘mysql’;  # Descomente este para MYSQL

# connection details
our $db_username = ‘user’;  #USUARIO DO BANCO DE DADOS
our $db_password = ‘password’; # SENHA DO BANCO DE DADOS
our $db_name     = ‘postfix’; #NOME DO BANCO DE DADOS

our $vacation_domain = ‘autoreply.example.org’; #MUDE AQUI PARA SEU DOMINIO

tem outras configurações tambem, as básicas para MTA no próprio servidor são essas…

11. Habilite o modo Vacation no config.inc.php do PostfixAdmin

12. Teste a configuração. Ative o modo férias para algum email no PostfixAdmin e envie email para ele. Caso algum erro aconteça, fique atento aos logs e confira se todos os itens da configuração estão corretos.