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/ ).

Erro de permissionamento por ACL – -????????? ? ? ? ? ?

Bom dia amigos!

   Num belo dia de um sol para cada um no Rio de Janeiro, quando um usuário me pediu que desse permissão a ele para acesso aos logs do servidor para consulta, fui definir uma simples ACL e me deparei com um pequeno problema, que até certo ponto me deixou com pé atrás achando que poderia ser algo pior. Ao aplicar a ACL, efetuar login com o usuário e efetuar um teste, me deparei com um problema que nunca antes tinha visto.

Aplicando a ACL para o usuário:

# setfacl -R -m u:usuario:rx /var/log

Verificando a ACL aplicada:

# getfacl /var/log
getfacl: Removing leading ‘/’ from absolute path names
# file: var/log
# owner: root
# group: root
user::rwx
user:usuario:r-x
group::—
mask::rwx
other::—

   Após efetuei login com o usuário e fiz um teste listando os arquivos e diretórios para ver se a ACL tinha entrado corretamente. Me deparei com isso:

# su – usuario
$ ls -l /var/log
d????????? ? ? ? ?            ? audit
-????????? ? ? ? ?            ? boot.log
-????????? ? ? ? ?            ? boot.log-20111127
-????????? ? ? ? ?            ? boot.log-20111204
-????????? ? ? ? ?            ? boot.log-20111211
-????????? ? ? ? ?            ? btmp
-????????? ? ? ? ?            ? btmp-20151201
d????????? ? ? ? ?            ? ConsoleKit
-????????? ? ? ? ?            ? cron
-????????? ? ? ? ?            ? cron-20131208

   Nesse momento eu gelei e o coração parou (rs….). Pensei comigo, truncou o FS (File System), o HD está morrendo, deu zica no vmx (pois é uma máquina virtualizada), culpa do PT (brincadeirinha) e por aí vai (rs…). Com isso fiquei pensando o que poderia ser e fui checar para ver se o ponto de montagem estava com a opção de ACL ativa. Quando executei o comando abaixo e tive a surpresa.

# mount
/dev/mapper/vg_system-lv_root on / type ext4 (rw,acl,acl)

   Quando vi ACL duas vezes aí não entendi mais nada. Bem, pensei que pudesse ser um bug do SO na hora de exibir a informação. Para fazer um teste resolvi remover todas as ACLs do diretório /var/log (que eram somente desse usuário) e depois listas os mesmos arquivos para validar e ver se as permissões poderiam ser vistas normalmente ou não. Antes fiz um pequeno backup dos permissionamentos, pois se algo desse errado pelo menos poderia recuperar de uma vez e não ficar me matando reparando um por um.

# getfacl -R /var/log > /tmp/perm.acl.var.log.bkp
# setfacl -R -b /var/log
# su – usuario
$ ls -l /var/log
drwxr-xr-x 13 root   root    4.0K Dec 13 03:28 .
drwxr-xr-x. 19 root   root    4.0K Nov 24  2011 ..
drwxr-x—. 2 root   root       4096 Dec 17 13:10 audit
-rw-r–r–  1 root   root       3073 Nov 25 22:13 boot.log
-rw-r–r–  1 root   root       2312 Nov 24  2011 boot.log-20111127
-rw-r–r–  1 root   root          0 Nov 27  2011 boot.log-20111204
-rw-r–r–  1 root   root          0 Dec  4  2011 boot.log-20111211
-rw——-  1 root   utmp       8064 Dec 16 16:48 btmp
-rw——-  1 root   utmp       1152 Nov 25 22:09 btmp-20151201
drwxr-xr-x  2 root   root       4096 Aug  9  2012 ConsoleKit
-rw——-  1 root   root    1015920 Dec 18 08:31 cron
-rw——-  1 root   root     170773 Dec  8  2013 cron-20131208

   Confirmada minha suspeita então parti para a resolução que num primeiro momento era corrigir a opção de ACL no ponto de montagem.

Removendo a opção ACL:

# mount -o remount,defaults /

Readicionando a opção ACL:

# mount -o remount,defaults,acl /

Conferindo para ver se ficou tudo ok:

# mount
/dev/mapper/vg_system-lv_root on / type ext4 (rw,acl)
# setfacl -R -m u:usuario:rx /var/log
# getfacl /var/log
getfacl: Removing leading ‘/’ from absolute path names
# file: var/log
# owner: root
# group: root
user::rwx
user:usuario:r-x
group::—
mask::rwx
other::—

# su – usuario
$ ls -l /var/log
drwxr-xr-x+ 13 root   root    4.0K Dec 13 03:28 .
drwxr-xr-x. 19 root   root    4.0K Nov 24  2011 ..
drwxr-x—+ 2 root   root       4096 Dec 17 13:10 audit
-rw-r–r– + 1 root   root       3073 Nov 25 22:13 boot.log
-rw-r–r–+  1 root   root       2312 Nov 24  2011 boot.log-20111127
-rw-r–r–+  1 root   root          0 Nov 27  2011 boot.log-20111204
-rw-r–r–+  1 root   root          0 Dec  4  2011 boot.log-20111211
-rw——-+  1 root   utmp       8064 Dec 16 16:48 btmp
-rw——-+  1 root   utmp       1152 Nov 25 22:09 btmp-20151201
drwxr-xr-x+  2 root   root       4096 Aug  9  2012 ConsoleKit
-rw——-+  1 root   root    1015920 Dec 18 08:31 cron
-rw——-+  1 root   root     170773 Dec  8  2013 cron-20131208

Sendo assim, o problema foi corrigido, o permissionamento ficou correto e meu coração voltou a bater normalmente.

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

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

Mario Neto

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!!!