Sametime através do Pidgin – corrigindo problema de conexão no Ubuntu Xenial (libmeanwhile1)

Bem galera, trabalho em uma empresa onde é utilizado o famoso (ou nem tanto) notes e com o linux, tive algumas dificuldades em encontrar o cliente linux para o serviço de mensagem instantânea do mesmo, chamado de Sametime.

Utilizando a distro Ubuntu Xenial, descobri que o pidgin tem suporte ao protocolo do mesmo, porém não conseguia nunca logar. Efetuei umas pesquisas pela internet e vi que tem um probleminha com a libmeanwhile1 que na release Xenial, está na versão 1.0.2-7. Também encontrei uma possível solução que seria fazer o downgrade desta lib para a versão 1.0.2-4.1 porém não encontrei em lugar nenhum o “como fazer” (How to). Bem, com isso, mãos a obra e vamos nos virar para descobrir.

Na verdade nunca tinha precisado fazer algo do gênero no ubuntu, só em redhat/centos/fedora, que é relativamente simples.

Bem, vamos parar de papo e vamos ao que interessa de verdade.

Vc terá que adicionar algumas linhas no seu apt para que possa ter acesso a essa lib e também a todos os pacotes de uma release antiga, no caso a Trusty Tahr (14.04.5 LTS).

 

Primeiro passo, instale o pidgin.

# apt-get install pidgin pidgin-plugin-pack -y

Agora criamos o source para os pacotes da release Trusty Tahr.

# echo -e “deb http://mirror.globo.com/ubuntu/archive/ trusty main restricted \n \
deb http://mirror.globo.com/ubuntu/archive/ trusty universe \n \
deb http://mirror.globo.com/ubuntu/archive/ trusty multiverse” >> /etc/apt/sources.list.d/trusty.list

Atualizamos a listagem de pacotes no SO

# apt-get update

Para verificar que está tudo ok e que o pacote que vc deseja já está disponível para instalação, rode o comando abaixo para ver.

# apt-cache showpkg libmeanwhile1

Irá aparecer uma lista como essa…

Package: libmeanwhile1
Versions:
1.0.2-7 (/var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_xenial_universe_binary-amd64_Packages)
Description Language:
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_xenial_universe_binary-amd64_Packages
MD5: 82e65bea7e1388bd4ffee62b6cc57363
Description Language:
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_xenial_universe_binary-i386_Packages
MD5: 82e65bea7e1388bd4ffee62b6cc57363
Description Language: en
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_xenial_universe_i18n_Translation-en
MD5: 82e65bea7e1388bd4ffee62b6cc57363
Description Language:
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_trusty_main_binary-amd64_Packages
MD5: 82e65bea7e1388bd4ffee62b6cc57363
Description Language:
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_trusty_main_binary-i386_Packages
MD5: 82e65bea7e1388bd4ffee62b6cc57363

1.0.2-4.1ubuntu1 (/var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_trusty_main_binary-amd64_Packages) (/var/lib/dpkg/status)
Description Language:
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_xenial_universe_binary-amd64_Packages
MD5: 82e65bea7e1388bd4ffee62b6cc57363
Description Language:
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_xenial_universe_binary-i386_Packages
MD5: 82e65bea7e1388bd4ffee62b6cc57363
Description Language: en
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_xenial_universe_i18n_Translation-en
MD5: 82e65bea7e1388bd4ffee62b6cc57363
Description Language:
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_trusty_main_binary-amd64_Packages
MD5: 82e65bea7e1388bd4ffee62b6cc57363
Description Language:
File: /var/lib/apt/lists/mirror.globo.com_ubuntu_archive_dists_trusty_main_binary-i386_Packages
MD5: 82e65bea7e1388bd4ffee62b6cc57363

Reverse Depends:
libmeanwhile-dev,libmeanwhile1 1.0.2-4.1ubuntu1
libpurple0,libmeanwhile1 1.0.2
kopete,libmeanwhile1 1.0.2
libmeanwhile1:i386,libmeanwhile1
libpurple0,libmeanwhile1 1.0.2
libmeanwhile-dev,libmeanwhile1 1.0.2-7
libmeanwhile1:i386,libmeanwhile1 1.0.2-7
libmeanwhile1:i386,libmeanwhile1 1.0.2-7
libpurple0,libmeanwhile1 1.0.2
kopete,libmeanwhile1 1.0.2
Dependencies:
1.0.2-7 – libc6 (2 2.14) libglib2.0-0 (2 2.24.0) libmeanwhile1:i386 (35 1.0.2-7) libmeanwhile1:i386 (38 1.0.2-7)
1.0.2-4.1ubuntu1 – libc6 (2 2.14) libglib2.0-0 (2 2.24.0) libmeanwhile1:i386 (32 (null))
Provides:
1.0.2-7 –
1.0.2-4.1ubuntu1 –
Reverse Provides:

Aqui é que acontece a “mágica”. Você vai indormar ao sistema que vc quer o pacote de uma release específica, utilizando a opção -t e depois determinar a versão do pacote que você deseja.

# apt-get install -t trusty libmeanwhile1=1.0.2-4.1ubuntu1 –allow-downgrades -y

E agora, para não acontecer nenhum acidente e o sistema fazer o upgrade do pacote sem que você queira, vamos marcar ele para não ser atualizado.

# apt-mark hold libmeanwhile1

Feito esses pequenos passos, você vai conseguir acessar o sametime através do pidgin ao invés de ter que usar o cliente do sametime.

Agora é só correr para o abraço e utilizar!!!!

>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<

Espero que com isso possa ajudar outras pessoas assim como me ajudou.

Grande abraço e até a próxima!

Mario Neto

Nagios Core 4.11 + Check_MK 1.2.6p16

Beleza, galera!?

A cada dia que passa aumenta mais e mais a concorrência e a necessidade de se manter os seus serviços computacionais saudáveis e online o tempo todo. Só que para isso, ninguém quer passar o dia todo com 500 janelas abertas, monitorando caso a caso, todos os seus servidores e serviços. Até porque, seria humanamente impossível. Com tudo isso, foram surgindo os serviços de monitoramento e um deles foi esse aqui, o Nagios. Começou totalmente gratuito e hoje possui também a sua versão paga. Tem os mais diversos plugins de monitoramento que você possa imaginar. É leve. Mas tem um porém, é um saco ficar escrevendo arquivos de configuração, host por host. Nesse caso, o Check_MK veio ajudar com uma interface mais rica, e descomplicar um pouco essa parte de escrever (digitar) pra cacete para monitorar um mísero host. Vamos adicionar a funcionalidade do ruindows (next, next, finish) a eficiência do linux.

Bem, vamos parar de enrolação e vamos ver isso funcionar na prática. Neste exemplo estou efetuando a instalação em um CentOS 6.8 – minimal install.

Preparando os pacotes a serem instalados para podermos compilar o source do Nagios e do Check_MK.

  • Debian / Ubuntu

# apt-get install build-essential wget libgd2-xpm libgd2-xpm-dev libssl-devapache2 php5-gd libapache2-mod-php5 libapache2-mod-python

  • RHEL / CentOS

# yum groupinstall “Development Tools” -y
# yum install wget httpd php gd gd-devel make net-snmp net-snmp-devel perl-Net-SNMP mod_python
# setenforce 0

Após instalarmos esses pacotes, vamos fazer o download do que precisamos para fazer essa bagaça funcionar. Hehehehehe!

# useradd -M -d /opt/nagios -s /bin/false nagios
# usermod -a -G nagios nagios

Para Debian / Ubuntu
# usermod -a -G nagios www-data
Para RHEL / CentOS
# usermod -a -G nagios apache

# cd /usr/src
# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz –no-check-certificate
# wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz –no-check-certificate
# wget http://mathias-kettner.com/download/check_mk-1.2.6p16.tar.gz –no-check-certificate

Pronto, pacotes básicos baixados e/ou instalados. Agora vamos colocar pra andar…

> Nagios Core 4.11 (stable) – Install

# tar xvzf nagios-4.1.1.tar.gz
# cd nagios-4.1.1
# ./configure –prefix=/opt/nagios –sysconfdir=/etc/nagios –with-nagios-user=nagios –with-nagios-group=nagios –with-command-user=nagios –with-command-group=nagios
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
# make install-webconf

> Plugins Nagios Core 4.11 – Install

  • Para Debian / Ubuntu

# perl -MCPAN -e ‘install Net::SNMP’

  • Para RHEL / CentOS

Não precisa fazer nada pois já instalamos lá no início da nossa instalação.

Vamos lá!

# cd ..
# tar xvzf nagios-plugins-2.1.1.tar.gz
# cd nagios-plugins-2.1.1/
# ./configure –prefix=/opt/nagios –with-nagios-user=nagios –with-nagios-group=nagios
# make
# make install

Agora vamos criar nosso usuário de acesso ao painel do Nagios.

# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin

Vamos configurar a inicialização do serviço Nagios.

  • Para Debian / Ubuntu

# update-rc.d -f nagios defaults
# /opt/nagios/bin/nagios -v /etc/nagios/nagios.cfg
# /etc/init.d/nagios start
ou
# service nagios start

  • Para RHEL / CentOS

# chkconfig –add nagios
# chkconfig nagios on
# /opt/nagios/bin/nagios -v /etc/nagios/nagios.cfg
# /etc/init.d/nagios start
ou
# service nagios start

> Check_MK 1.2.6p16 (stable) – Install

Essa parte temos que ter muita atenção pois vamos ter que adequar as configurações de acordo com o que fizemos nos passos anteriores. Fora isso, é algo bem simples de fazer-mos.

# cd ..
# tar xvzf check_mk-1.2.6p16.tar.gz
# cd check_mk-1.2.6p16/
# ./setup.sh

Responda as perguntas de acordo com esse resumo que segue abaixo. Ao final ele irá compilar o check_mk.

PS: Atenção para os itens em vermelho. Na linha 10 (User of Apache process) caso esteja usando Debian / Ubuntu, o nome de usuário será www-data, porém o script pegará isso automaticamente. Na linha 21 (Apache config dir) caso esteja usando Debian / Ubuntu, o diretório correto será /etc/apache/conf.d que será pego automaticamente também (seu eu não me engano).

1  Executable programs > /usr/bin
2  Check_MK configuration > /etc/check_mk
3  Check_MK software > /usr/share/check_mk
4  documentation > /usr/share/doc/check_mk
5  check manuals > /usr/share/doc/check_mk/checks
6  working directory of Check_MK > /var/lib/check_mk
7  extensions for agents > /usr/lib/check_mk_agent
8  configuration dir for agents > /etc/check_mk
9  Name of Nagios user > nagios
10 User of Apache process > apache
11 Common group of Nagios+Apache > nagios
12 Nagios binary > /opt/nagios/bin/nagios
13 Nagios main configuration file > /etc/nagios/nagios.cfg
14 Nagios object directory > /etc/nagios/check_mk.d
15 Nagios startskript > /etc/init.d/nagios
16 Nagios command pipe > /opt/nagios/var/rw/nagios.cmd
17 Check results directory > /opt/nagios/var/spool/checkresults
18 Nagios status file > /opt/nagios/var/status.dat
19 Path to check_icmp > /opt/nagios/libexec/check_icmp
20 URL Prefix for Web addons > /
21 Apache config dir > /etc/httpd/conf.d
22 HTTP authentication file > /etc/nagios/htpasswd.users
23 HTTP AuthName > Nagios Access
24 PNP4Nagios templates > /usr/share/check_mk/pnp-templates
25 RRD files > /var/lib/nagios/rrd
26 rrdcached socket > /tmp/rrdcached.sock
27 compile livestatus module > yes
28 Nagios / Icinga version > 4.1.1
29 check_mk’s binary modules > /usr/lib/check_mk
30 Unix socket for Livestatus > /opt/nagios/var/rw/live
31 Backends for other systems > /usr/share/check_mk/livestatus
32 Install Event Console > yes
33 working directory of mkeventd > /var/lib/mkeventd
34 Proceed with installation (y/n)? y

Bem, feito isso tudo, vamos agora reiniciar o nagios e o apache para que possamos acessá-los e testar para ver se tudo correu bem. Claro, isso só vai acontecer se você seguir o padrão que criei. Se você pulou alguma parte ou fez diferente, problemas podem ocorrer.

# service apache restart && service nagios restart
ou
# service httpd restart && service nagios restart

Para acessá-los vá nos seguintes endereços:

>    http://ip_ou_nome/nagios

>    http://ip_ou_nome/check_mk

> Agents – Install

>>> Agent Windows:
http://mathias-kettner.de/download/check-mk-agent-1.2.4p5.exe

>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<

Espero que com isso possa ajudar outras pessoas assim como me ajudou.

Grande abraço e até a próxima!

Mario Neto

 

Esse artigo foi inspirado no post do Vagner Fonseca.
( http://www.cooperati.com.br/2012/12/20/nagios-com-check-mk/ ).

Instalando o VirtualBox no Fedora 22

Galera, estou aqui para ajudar a instalar e configurar o VirtualBox 5 no Fedora 22. Apesar de ser uma coisa boba, tive alguns pequenos problemas nessa instalação e dei um jeito para resolver, já que não estamos instalando o meta pacote do repositório padrão da distro.

Vamos que vamos ao hands-on porque é coisa rápida:

# wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo -O /etc/yum.repos.d/virtualbox.repo

#Conteúdo do virtualbox.repo.

[virtualbox]
name=Fedora $releasever - $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.as

#Vamos limpar o cache.

# dnf clean all

#Agora vamos adicionar a chave para que o repositório possa ser acessado.

# dnf update

Em seguida vamos digitar “S” se a instalação estiver em português ou “Y” se estiver em inglês. Se for Alemão, Javanês ou qualquer outro eu não faço ideia, mas provável que seja a “letra” menos pois o padrão é negar.
Após esse passo vocês terão uma saída parecida como essa aqui debaixo:

 Userid     : "Oracle Corporation (VirtualBox archive signing key) "
 Fingerprint: 7B0F AB3A 13B9 0743 5925 D9C9 5442 2A4B 98AB 5139
 From       : https://www.virtualbox.org/download/oracle_vbox.asc

Isso quer dizer que você já pode instalar o virtualbox, mas antes vamos acertar alguns detalhes.
#Agora vamos instalar os pacotes necessários.

# dnf install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms

#Vamos instalar a última versão do VirtualBox.

# dnf install VirtualBox-5.0-5.0.8_103449_fedora22-1

#Vamos adicionar o seu usuário ao grupo do VirtualBox para que o mesmo possa criar as interfaces de rede, tanto de rede interna quanto de NAT.

# usermod -a -G vboxusers usuario

Bem, espero poder ter ajudado a alguém a fazer essa pequena instalação.

Um grande abraço e até a próxima!

Tunelamento remoto via SSH por Socks dinâmico ou redirecionamento de porta

Bom dia galera!

 

Hoje trago um método interessante para você que quer usar uma conexão remota mas ela não te dá a camada de segurança necessária. Para isso, ainda bem que existe o SSH. Com este serviço, vamos adicionar uma camada de segurança fazendo os pacotes trafegarem criptografados. Para isso temos duas maneiras de fazer, que seria através de SOCKs dinâmico ou um simples redirecionamento de porta. Claro que para isso acontecer tem que existir um host remoto onde você possa se conectar. Para a coisa ficar um pouco mais didática, vamos supor que você esteja no trabalho e precise fazer algo no computador na sua casa que está lá, LIGADO, com o VNC habilitado e seu serviço de SSH rodando. Se vc acessar diretamente o VNC, ele vai trafegar todas as suas telas de forma aberta onde qualquer um pode interceptar e colher informações (úteis ou inúteis, hehehehe!). Para que possamos evitar isso vamos colocar esses dados dentro de um tunelamento que vai criptografar os dados trafegados. Qual o custo disso? Bem, além do trabalho do VNC de compressão das imagens, existirá também o trabalho de criptografia dos pacotes, porém acredito valer muito a pena. Vamos a melhor parte… A prática… Hehehehehe!!!

Segue abaixo o comando que será executado no seu desktop:

ssh user@ip-remoto -f -N -Lport:ip-local:port

Exemplo prático:

ssh jose@123.213.10.90 -f -N -L5900:12.21.10.90:5900

Pronto! Dessa maneira você está dizendo para o seu desktop que tudo o que for para a porta 5900 ele vai entregar no endereço 123.213.10.90 também na porta 5900 para ele tratar. Agora o tunelamento está pronto para ser usado. Mas e aí, ficou na dúvida com essas “letrinhas” aí né?! Bem, a opção “-f” coloca o processo em background, liberando o seu terminal. Já o “-N” serve para que nenhum comando seja executado remotamente, somente para ser executado o tunelamento (forwarding) em sí, mas essa opção só serve para protocolo na versão 2. O “-L” é exatamente para indicar o tunelamento (forwarding) dizendo que os dados entregues naquela porta local serão encaminhados para a porta remota. Após efetuar essa conexão, basta abrir o cliente do VNC e colocar o IP que você usou na conexão (123.213.10.90) e a porta 1, ficando desta maneira 127.0.0.1:1. Pronto, efetuado o seu tunelamento e adicionada sua camada de segurança para o uso do VNC. Ah, lembrando que tem que ser tudo junto no parâmetro -L.

Bem, esse foi o primeiro método que vimos, que é o redirecionamento direto. Agora vamos ver a mesma idéia, só que dessa vez através de SOCKs dinâmico. O processo é muito parecido porém vamos colocar numa outra situação hipotética. Supomos que você está em um lugar que tem a internet com certas limitações e você precisa usar o acesso para fazer uma pesquisa para solução de algum problema. Com este método os seus problemas acabaram. Vamos lá!

Segue abaixo o comando que será executado no seu desktop:

ssh user@ip -f -N -D port

Exemplo prático:

ssh jose@123.213.10.90 -f -N -D 6666

Agora que você já está conectado, basta ir no seu navegador, procurar as configurações de redes e no painel onde tem a configuração de proxy, colocar na caixa que está escrito SOCKs o IP 127.0.0.1 e na porta a mesma que você usou no comando, que no caso do exemplo foi a 6666. Não esqueça de selecionar a opção “Socks V5” caso a mesma exista (Estou baseado nas configurações do Firefox). Só para decifrar as letrinhas, o “-D” é utilizado para definir uma porta de SOCKs dinâmico que funciona bem parecido com o encaminhamento de porta explicado acima.

Bem, acho que é só isso. Simples e prático. Muito útil para o dia a dia e salva a pele em momentos mais complicados.

Agradecimento especial ao meu Master Jedi, Vagner Fonsseca.

 

Até a próxima pessoal!!!

Instalando / Configurando Logger Snoopy no Debian Squeeze 6x e Centos 6x

O que é Snoopy Logger e para o que serve?

Snoopy Logger é um aplicativo/ferramente de “segurança” bastante interessante, criado para gerar logs de todos os comandos executados em um sistema, seja por todos os usuários ou somente pelo root. Desenvolvido em linguagem C, o que o torna rápido o bastante e gera um peso irrisório ao seu SO, trabalha como um wrapper para chamadas do execve() e trabalha em conjunto com o syslod, mas também pode ser configurado para trabalhar com o syslog-ng.

Qual a utilidade dele para um Sysadmin?

Um sysadmin só não faz verão, correto!? Pois é… E como diz a velha máxima, “filho feio não tem pai”. O Snoopy vem para nos ajudar a encontrar os pais perdidos dessas crianças órfãs. Ele nos ajuda a encontrar o que foi feito no equipamento e que por ventura, algum “espertinho” apagou o history, na intenção de encobrir o que fez. Dessa forma, temos como verificar o histórico de todos os comandos executados no SO e assim conseguir traçar um caminho até onde pode estar o erro e, quem sabe, repará-lo ou não.

Instalação / Configuração do sistema em seu SO

– Debian Squeeze 6x:

Basta colocar o repositório do backports no sources.list.

~# echo "deb http://backports.debian.org/debian-backports squeeze-backports main" >> /etc/apt/sources.list
~# apt-get clean all
~# apt-get update
~# apt-get install snoopy

Em seguida irá aparecer uma tela perguntando se você quer instalar a lib de preload ou não. Se você instalá-la, o snoopy efetuará o log de todos os usuários do SO, caso escolha não só efetuará o log do root.

Caso deseje desabilitá-la comente a linha do arquivo ld.so.preload como demonstrado abaixo:

~# vim /etc/ld.so.preload
~#/lib/snoopy.so

Os logs, por padrão, são direcionados para /var/log/auth.log

Exemplo de entrada criada:

Mar 28 18:27:32 fw-01 snoopy[9522]: [uid:0 sid:9487 tty:/dev/pts/1 cwd:/root filename:/bin/ls]: ls /etc/bash_completion.d
Mar 28 18:27:32 fw-01 snoopy[9526]: [uid:0 sid:9487 tty:/dev/pts/1 cwd:/root filename:/usr/bin/mesg]: mesg n
Mar 28 18:27:52 fw-01 snoopy[9561]: [uid:0 sid:9487 tty:/dev/pts/1 cwd:/root filename:/bin/cat]: cat /etc/issue
Mar 28 18:28:17 fw-01 snoopy[9576]: [uid:0 sid:9487 tty:/dev/pts/1 cwd:/root filename:/bin/cat]: cat /etc/issue
Mar 28 18:38:17 fw-01 snoopy[9636]: [uid:1000 sid:9487 tty:/dev/pts/1 cwd:/home/admin filename:/usr/bin/clear_console]: /usr/bin/clear_console -q


– RedHat / Centos 6x:

Para efetuarmos a instalação no Centos 6x, temos que adicionar o repositório EPEL, que é oficial da RedHat.

~# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
~# yum install snoopy

Agora nesse momento, iremos adicionar o módulo “snoopy.so” ao arquivo de preload para que assim, o log seja efetuado não somente do usuário root, como para o restante dos usuários do equipamento também. Caso esse arquivo não exista ou a entrada dele que aponta para o módulo esteja comentado, os logs só serão gravados para o usuário root, como informado anteriormente.

~# rpm -qa | grep snoopy | xargs rpm -ql | grep snoopy.so >> /etc/ld.so.preload

Pulo do gato! Para não termos que efetuar o reboot do equipamento para que o módulo seja carregado, setamos a variável manualmente.

~# set LD_PRELOAD=/lib64/snoopy.so

É isso! E por hoje é só pessoal!

Dúvidas e sugestões é só falar!

Modulo PHP para envio de email autenticado com TLS / SSL

My Fellow Motherfuckers!!!

Hoje me deparei com uma requisição de um cliente quanto a autenticação de email via modulo php, para a utilização de TLS/SSL que é exigido pela estrutura do mesmo. Como a aplicação dele não estava dando suporte e eu por minha vez não sei nada de programação PHP, fiz uma rápida pesquisa pela internet procurando módulos/códigos que pudessem resolver este problema. Em poucos minutos consegui encontrar este site (http://www.canaldev.com.br/topic/388-tutorial-como-enviar-e-mail-via-smtp-autenticado-com-php/) com a solução para o problema. E bem simples a utilização e bem customizável quanto as configurações de email.

Maos a obra:

– Primeiro criamos um diretório qualquer dentro de onde estará seu site/aplicação e um subdiretório para organizar as classes. Algo como no exemplo abaixo:

# mkdir -p /var/www/html/meusite/email/libs

– Agora, dento do diretório que você criou, crie um arquivo com um nome qualquer como por exemplo contato.php

# vim /var/www/html/meusite/email/contato.php

Insira dentro deste arquivo os seguintes dados:

<?php

require("libs/class.phpmailer.php"); // Certifique-se de que o caminho está certo.

$mail = new PHPMailer();
$mail->SetLanguage("br", "libs/"); // Linguagem
$mail->SMTP_PORT  = "465"; // Porta do SMTP
$mail->SMTPSecure = "tls"; // Tipo de comunicação segura

$mail->IsSMTP();
$mail->Host     = "smtp.gmail.com";  // Endereço do servidor SMTP
$mail->SMTPAuth = true; // Requer autenticação?
$mail->Username = "remetente@gmail.com"; // Usuário SMTP
$mail->Password = "123456"; // Senha do usuário SMTP

$mail->From     = "remetente@gmail.com"; // E-mail do remetente
$mail->FromName = "Remetente"; // Nome do remetente
$mail->AddAddress("destinatario@provedor.com.br"); // E-mail do destinatário

$mail->IsHTML(true);
$mail->Subject = "Assunto da mensagem";
$mail->Body    = "Esta é a mensagem... bla bla bla bla bla... Até mais!";

if(!$mail->Send()) {
echo "Erro: " . utf8_decode($mail->ErrorInfo);
} else {
echo "Email enviado com sucesso!";
}
?>

– Agora baixe os arquivos de classe dentro do diretório libs.

# cd /var/www/html/meusite/email/libs/
# wget class.phpmailer.php ; mv class-phpmailer.doc class.phpmailer.php
# wget class.smtp.php ; mv class-smtp.doc class.smtp.php
# wget phpmailer.lang-br.php ; mv phpmailer-lang-br.doc phpmailer.lang-br.php

Feito isso, altere os dados de acordo com o seu provedor de email e seja feliz!

Ate a próxima!!!

Habilitando SELinux para proteção de WordPress

Verifique se o SELinux está habilitado e em que estado (disable/permissive/enforcing) está.

# getenforce

Caso já esteja como PERMISSIVE, iginore os passos abaixo.

Caso esteja como DISABLE

Altere para PERMISSIVE como vemos abaixo.

# vim /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – SELinux is fully disabled.
SELINUX=permissive
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted – Only targeted network daemons are protected.
# strict – Full SELinux protection.
SELINUXTYPE=targeted

# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0

Saia dando “:wq” ou “:x” (sem aspas)

Caso o mesmo dê algum problema para salvar, informando que o arquivo é somente leitura, utilize “:wq!” ou “:x!” (sem aspas)

Após essa alteração é necessário reiniciar o servidor. O mesmo reiniciará como PERMISSIVE

Agora verificaremos as permissões booleanas do SELinux.

# getsebool -a | grep http

allow_httpd_anon_write –> off
allow_httpd_bugzilla_script_anon_write –> off
allow_httpd_cvs_script_anon_write –> off
allow_httpd_mod_auth_pam –> off
allow_httpd_nagios_script_anon_write –> off
allow_httpd_prewikka_script_anon_write –> off
allow_httpd_squid_script_anon_write –> off
allow_httpd_sys_script_anon_write –> off
httpd_builtin_scripting –> on
httpd_can_network_connect –> on
httpd_can_network_connect_db –> on
httpd_can_network_relay –> off
httpd_can_sendmail –> on
httpd_disable_trans –> off
httpd_enable_cgi –> on
httpd_enable_ftp_server –> off
httpd_enable_homedirs –> on
httpd_execmem –> off
httpd_read_user_content –> off
httpd_rotatelogs_disable_trans –> off
httpd_setrlimit –> off
httpd_ssi_exec –> off
httpd_suexec_disable_trans –> off
httpd_tty_comm –> on
httpd_unified –> on
httpd_use_cifs –> off
httpd_use_nfs –> off

# getsebool -a | grep ftp

allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
allow_tftp_anon_write –> off
ftp_home_dir –> on
ftpd_connect_db –> off
ftpd_disable_trans –> off
ftpd_is_daemon –> on
httpd_enable_ftp_server –> off
tftpd_disable_trans –> off

Caso as opções abaixo estejam como OFF, altere-as para ON.

httpd_can_network_connect –> on
httpd_can_network_connect_db –> on
httpd_can_sendmail –> on
httpd_enable_cgi –> on
httpd_enable_homedirs –> on
httpd_tty_comm –> on
httpd_unified –> on

ftp_home_dir –> on
ftpd_is_daemon –> on

Comando para alterar os booleanos.

# setsebool -P httpd_can_network_connect 1
# setsebool -P httpd_can_network_connect_db 1
# setsebool -P httpd_can_sendmail 1
# setsebool -P httpd_enable_cgi 1
# setsebool -P httpd_enable_homedirs 1
# setsebool -P httpd_tty_comm 1
# setsebool -P httpd_unified 1

# setsebool -P ftp_home_dir 1
# setsebool -P ftpd_is_daemon 1

Ou somente

# setsebool -P httpd_can_network_connect=1 httpd_can_network_connect_db=1 httpd_can_sendmail=1 httpd_enable_cgi=1 httpd_enable_homedirs=1 httpd_tty_comm=1 httpd_unified=1 ftp_home_dir=1 ftpd_is_daemon=1

###########################################################################
# 1 -> ON                                                                                                                                                           #
# 0 -> OFF                                                                                                                                                         #
#                                                                                                                                                                          #
# -P -> Registra no arquivo de políticas no disco para que não perca a regra no boot do server. #
###########################################################################

Após esse passo, vamos verificar os diretórios se estão como Content do serviço em questão.

# ls -Z /var/www

Caso esteja tudo OK, a saída será desta forma, podendo variar de acordo com os diretórios e estrutura cadastradas em seu servidor.

drwxr-xr-x root root system_u:object_r:httpd_sys_script_exec_t cgi-bin
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t error
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t html
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t icons

Caso contrário, setaremos desta maneira.

# chcon -R -t httpd_sys_content_t diretório

PS: Por padrão, o SELinux já vem setado com as permissões corretas em /var/www (diretório padrão do serviço HTTPD).

Ao fim destes passos, é só habilitarmos o para ENFORCING o SELinux

# setenfornce 1

Verificando.

# getenfornce
Enforncing

#### TROUBLESHOOTING ####

Após essas alterações, caso tenha algum problema pode verificar com o comando abaixo.

# sealert -a /var/log/audit/audit.log

PS1: Verifique que para poder utilizar esta ferramente, o audit tem que estar habilitado.

Ao fim da análise do sealert, o mesmo lhe dará o diagnóstico e o que tem que proceder para corrigir o problema.

PS2: Vale lembrar também que no momento em que for gerar o seu wp-config.php, altere o padrão de tabelas de wp_ para algo do tipo nome_wp_ afim de evitar outro problemas.

Por hoje é só pessoal!!!