terça-feira, 20 de novembro de 2018

VPN PPTP Client rodando em Linux

Requisitos:
ppp
pptp-client


Configuração:
Configure a VPN PPTP Client:
pptpsetup --create cppronuvem --server scb-srv03.scbadvogados.adv.br --username vpnmatriz --password matrizvpn@123456 --encrypt

cat /etc/ppp/options
lock
noauth
nobsdcomp
nodeflate
refuse-pap
refuse-eap
refuse-chap
refuse-mschap

cat /etc/ppp/options.pptp
lock
noauth
refuse-pap
refuse-eap
refuse-chap
refuse-mschap
nodefaultroute
nobsdcomp
nodeflate

Crie um script para iniciar a VPN automaticamente em caso de queda:
vi /etc/check-vpn.sh
#!/bin/bash

DEBUG="0"
HOST="192.168.199.199"
VPN_NAME="cppronuvem"

DAY=$(date +'%d/%m/%Y')
HOUR=$(date +'%H:%M:%S')
DATE="${DAY} ${HOUR}"
PINGRES=$(ping -c 3 ${HOST})
PLOSS=$(echo ${PINGRES} : | grep -oP '\d+(?=% packet loss)')

if [ "${DEBUG}" -eq "1" ];then
echo "[${DATE}] Loss Result: ${PLOSS}"
fi

if [ "100" -eq "${PLOSS}" ];then
{ ps auxw|grep pppd|grep ${VPN_NAME}|awk '{print $2}'|xargs kill; } 2> /dev/null
echo "[${DATE}] Iniciando PPTP Client : ${HOST}"
/usr/sbin/pppd call ${VPN_NAME}
echo "[${DATE}] PPTP iniciada: ${HOST}"
else
if [ "${DEBUG}" -eq "1" ];then
echo "[${DATE}] PPTP OK: ${HOST}"
fi
fi

Dê permissão de execução ao script:
chmod +x /etc/check-vpn.sh
Adicione ao /etc/crontab:
* * * * * root /etc/check-vpn.sh >> /var/log/vpncheck.log 2>&1

Caso seja necessário adicionar alguma rota após o início da VPN, adicione a mesma no script abaixo:
vi /etc/ppp/ip-up.local
route add -net 10.4.202.0 netmask 255.255.255.0 gw 192.168.199.199

segunda-feira, 22 de outubro de 2018

Descobrir conta enviado SPAM no Zimbra - Discover SPAM account sent in Zimbra

Avaliação de fluxo de email para checagem da saúde do Zimbra, é um ótimo indicativo de roubo de conta para Spam.
Evaluation of e-mail flow for Zimbra's health check, is a good indication of account theft for Spam.



Verificar quantidade de emails enviados por conta:
Check quantity of emails sent per account:

cat /var/log/zimbra.log | sed -n 's/.*sasl_username=//p' | sort | uniq -c | sort -n

Contas disparando emails:
Accounts firing emails:
tail -f /var/log/zimbra.log | sed -n 's/.*sasl_username=//p'



English by translate.google.com :P

sexta-feira, 28 de setembro de 2018

Zimbra - Erro ao enviar email 530 5.7.0 Must issue a STARTTLS command first (in reply to MAIL FROM command)

Erro "530 5.7.0 Must issue a STARTTLS command first (in reply to MAIL FROM command)"


Retorno de email com o seguinte erro:

530 #5.7.0 Must issue a STARTTLS command first (in reply to MAIL FROM command)
Precisa habilitar postfix_smtp_tls_security_level na conf do postfix.

Verificar configuração.
$ zmlocalconfig -e postfix_smtp_tls_security_level=may

Segue os passos:
$ zmlocalconfig|grep postfix_smtp_tls_security_level
$ zmmtactl stop ; sleep 1 ; zmmtactl start

sexta-feira, 24 de agosto de 2018

Como fazer rsync entre servidores sem senha

Isso faz com que não seja necessário rodar o rsync daemon no cliente. Com a configuração do ssh também é possível efetuar o login direto por ssh sem senha.


Permitir ssh conectar sem senha:

Esses comandos abaixo devem ser executados no servidor que VAI conectar sem senha (ORIGEM):

Com essa configuração acima, o ssh já funciona sem senha quando se tenta conexão do servidor origem para o servidor destino.

Agora iremos melhorar a segurança deste acesso:

 No arquivo /root/.ssh/authorized_keys do servidor DESTINO, fica a chave criada. Deve-se então  adicionar na linha da chave o seguinte:

Ou seja, o comando from restringe somente para o ip de origem e o command permite que o comando especificado seja executado quando o servidor de origem fizer o ssh no servidor de destino. O resto da linha é o que já existe no arquivo authorized_keys.

Para aumentar ainda mais a segurança, podemos forçar que o Login de root seja efetuado somente para o comando indicado no arquivo acima, basta efetuar o procedimento abaixo, que seta a variavel PermitRootLogin como forced-commands-only:

OBS: Isso restringe totalmente o acesso de root diretamente, de qualquer máquina.

terça-feira, 21 de agosto de 2018

Load Average no Linux

Na administração de servidores Linux o load average é quase instintivamente consultado, essa preocupação se deve ao fato da carga do sistema ser uma métrica usada para medir e dimensionar  servidores e seus trabalhos, vale lembrar que muitas vezes lidamos com instâncias em nuvem e neste ambiente o load average pode significar economia ou prejuízo a depender das métricas utilizadas.

Embora seja um assunto muito bem documentado, vou  me aventurar um pouco nele também. Abaixo uma imagem de load average gerada pelo monitoramento do Zabbix ao longo de sete dias de um servidor Oracle.


É possível observar picos regulares causados devido a uma rotina de backup agendada no cron, embora não exista a informação da quantidade de CPUs este histórico nos indica um consumo padrão muito abaixo dos picos. Processos em espera devido ao atraso de IO de um HD externo faz o load average subir, mas não por um gargalo do processador mas sim pelas limitações da USB ou do disco.

No Linux podemos ver load average através de vários comandos, dois deles são o uptime e o top.

Os dois comandos fazem a mesma impressão da informação da carga do sistema, abaixo o primeiro deles o "uptime" mostra o load average. São apresentados 3 números representando a média de processos rodando ou em espera pelo processador  nos últimos 1, 5 e 15 minutos.


Nesta saída do uptime e podemos concluir que existem 0,97 processos em execução e/ou esperando no último minuto e que está havendo um crescimento em comparação com os últimos 5 e 15 minutos.


Na saída do top confirmamos que o load segue baixo agora em 0,47, com tendência de queda se observamos os últimos 5 e 15 minutos. Na mesma tela a linha CPU(s) um pouco abaixo podemos verificar que o wait está em 0.0%, bem alinhado com o resultado do load, assim como o idle bem alto 97,2% confirmam que o servidor está bem ocioso.

Mas olhando apenas o load average muitas vezes não podemos concluir muita coisa além da tendência de subida ou queda de carga, mas a partir do momento que se conhece o número de CPUs podemos ter uma visão mais clara.

lscpu - Mostra informações detalhadas de CPU.


Conhecendo o número de CPUs percebemos que o servidor está realmente muito ocioso, para 32 CPUs mesmo um load de 32 poderia não significar um problema, caso ele estivesse apenas esperando para gravar um subprocesso limitado à velocidade de um hd externo por exemplo.

Acredito que dentro da funcionalidade básica deste recurso para por aqui já é o suficiente, contudo não poderia deixar de falar sobre algumas curiosidades que achei numa pesquisa pelo Google .

Curiosidades

A primeira é sobre s RFC 546 de 1973 descrevendo uma análise de load average nos dinossauros BBN-TENEX e USC-ISI. 

Fonte: http://tenex.opost.com/kapix.html

O climax fica por conta do gráfico das cargas feito a mão.


Trecho da RFC interpretando o gráfico:

  Interpreting data such as this is tricky business.  However, it is   difficult to resist making the following observations:
   1. The shapes of the BBN and ISI curves are approximately the; furthermore, there is no skew between the curves.  This suggests      that the user populations for the two systems have similar working      habits and are acclimated to the same time zone.


   2. The significant features of both curves appear to be strongly correlated with "normal events" in the day of a user living on      East Coast time,suggesting that the load at both sites is      influenced most strongly by such users:
      a. the load begins to increase between 7-8 a.m. EDT as users begin their daily computing;
      b. it dips between 10-11 a.m. EDT (smoothed to a smaller rate of increase in the ISI curve) as users take their coffee break;
      c. the load peaks sharply between 1-2 p.m. EDT as users return from lunch to resume their computing;
      d. it decreases as the afternoon continues and as users go home from work;
      e. it reaches a local minimum between 6-7 p.m. EDT (minimum not present in ISI curve) when most people eat dinner;
      f. it increases to an evening peak between 9-10 p.m. EDT as some users come back from dinner and after dinner activities to         resume their computing.


   3. The curve for ISI is smoother than the one for BBN: the "coffee      break" dip appears only as a decrease in slope; the dinner break      and evening peak are completely smoothed  out.  This smoothing is      probably due to the influence of the West Coast users of the ISI      machine.


   4.  During July the BBN system was more heavily loaded than the ISI system.  Since the data collected did not include the number of      active jobs it is not possible to determine from the data whether      BBN had more users or just more demanding users."



terça-feira, 14 de agosto de 2018

Liberar Skype em rede com Squid Proxy

Desde o dia 13 de março de 2018, foi removida do skype a opção de configuração manual de proxy. Segue:

https://support.skype.com/pt-br/faq/FA1017/posso-me-conectar-ao-skype-por-meio-de-um-servidor-proxy


Para corrigir este problema, crie um arquivo com os hosts do skype, e libere via masquerade.

1- Crie uma lista com os hosts do skype:

# for i in {0..20} ; do dig +short dsn$i.d.skype.net >> /home/firewall/lista-skype.txt; done | sort | uniq

2- Libere via MASQUERADE:

for host_skype in $(cat /home/firewall/lista-skype.txt);do
        iptables -t nat -A POSTROUTING -s $LAN -d ${host_skype} -o $INTF -j MASQUERADE
done

* Onde $LAN e  $INTF são as interfaces previamente declaradas.


quinta-feira, 19 de julho de 2018

Backup Incremental com rsync

O programa rsync é um utilitário de cópia muito utilizado para fazer backups, ele aceita diversos parâmetros como uso de chaves, manipulação de parâmetros, cópias diferenciais e incrementais.

Abaixo vou deixar um pequeno bashscripts de backup incremental.

Frisando que no backup incremental o local que recebe a cópia completa sempre fica atualizada e o que é mudado é adicionado na pasta de "incrementais".

Exemplo:

ANTES DO RSYNC

Origem:
/DADOS/word.doc     13 kb

Destino:
/BKPFULL/DADOS/word.doc    13 kb

DEPOIS DO RSYNC COM MUDANÇA NA ORIGEM NO DIA 01/01/2022

Origem:
/DADOS/word.doc     124 kb

Destino:
/BKPFULL/DADOS/word.doc    124kb
/BKP_INCR/01-01-2022/DADOS/word.doc    13 kb

quarta-feira, 18 de julho de 2018

Monitorando rede com iftop

O iftop é um programa para analisar o tráfego da rede, da internet ou de alguma vpn.

Já está empacotado na maioria das distribuições.

No OpenSuse.

# zypper install iftop

Algumas opções:

-i <interface> : Especificar uma interface.
-n : Não resolver nome.
-N : Não resolver porta.
-P : Exibir portas
-h : Ver todas opções disponíveis.

Exemplo de análise:

# iftop -nNPi eth0


Você pode analisar a tela da seguinte forma:

Host local e destino da perspectiva da placa, sendo o tráfego orientado pela seta => ou <=.

Na frente da linha com os hosts você vai ver o tráfego médio nos últimos 2,10 e 40 segundos.

O somatório fica no rodapé, sendo TX de upload e TX download  da perspectiva da interface. Ainda no rodapé você pode ver o tráfego acumulado durante a análise.



sexta-feira, 6 de abril de 2018

Inventário de Hardware inxi


Inventário de Hardware

Algumas vezes precisamos ver a configuração de um servidor remoto, pegar a service tag de um servidor DELL, IBM ou HP por linha de comando e juntar todas as informações dos comandos lspci, lscpu e cat nos "/procs  da vida" para saber qual placa mãe, quantos slots de memoria e se é possível expandir. As vezes perdermos um precioso tempo que podemos economizar com esse super útil binário.



 inxi - uma ferramenta de informação do sistema de linha de comando

O binário  em Perl é leve, organizado e poderoso.

Baixe:

# wget -Nc https://github.com/smxi/inxi/raw/inxi-perl/pinxi

Ajuste as permissões

# chmod +x pinxi

Mova para a pasta de binários.

#mv pinxi /usr/bin

Use e abuse:

#pinxi -Fxx



quinta-feira, 28 de dezembro de 2017

speedtest - Verificar velocidade do link pelo terminal

Verificar a velocidade de internet no terminal com speedtest:


# wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py -O speedtest-cli
# chmod +x speedtest-cli
# ./speedtest-cli

Dica para compartilhar:

# speedtest-cli --share

Velocidade da placa de rede no linux

Por vezes precisamos verificar a velocidade estabelecida pela placa de rede, verificar se estamos fechando um link de gigabit com switch por exemplo, ou identificar a interface deixando-a piscando ( -S ), etc.

#ethtool enp5s0

Settings for enp5s0:
Supported ports: [ TP MII ]
Supported link modes:   10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Half 1000baseT/Full 
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Half 1000baseT/Full 
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                     100baseT/Half 100baseT/Full 
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000033 (51)
       drv probe ifdown ifup

Link detected: yes

quarta-feira, 1 de novembro de 2017

Console linux verificar RAID de Hardware

Checar raid físco/hardware com MegaCLI.

Instale o pacote RPM necessário (em CentOS).

# rpm -ivh http://mirror.cogentco.com/pub/misc/MegaCli-8.07.14-1.noarch.rpm


Verifique o status do RAID:

# /opt/MegaRAID/MegaCli/MegaCli64 -AdpAllInfo -aAll

# MegaCli64 -PDList -aALL


Para checar o nível do RAID:

#/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -Aall 

['Primary-0, Secondary-0, RAID Level Qualifier-0'] = RAID-0

['Primary-1, Secondary-0, RAID Level Qualifier-0'] = RAID-1 

['Primary-5, Secondary-0, RAID Level Qualifier-3'] = RAID-5

['Primary-6, Secondary-0, RAID Level Qualifier-3'] = RAID-6 

['Primary-1, Secondary-3, RAID Level Qualifier-0'] = RAID-10


terça-feira, 17 de outubro de 2017

rtorrent - cliente torrent no terminal linux

Hoje precisei de um arquivo que estava disponível para download em um torrent, segue a dica.

Obrigado à LinuxTechi por esse ótimo post, quem precisar de ir mais afundo segue o link.
rtorret-LinuxTechi

Instalando um cliente torrent de terminal linux, neste exemplo usei rtorrent num centos 7 na Google Cloud.

Instalar

# yum install rtorrent

Configurar

Criar diretórios:

# mkdir -p ~/rtorrent_FullDownload_Files

# mkdir /home/eduardo/rtorrent_session -p

Criar Conf:

# vi ~/.rtorrent.rc

Conteúdo do conf:
# Location where to download temporary files
 directory = ~/rtorrent_Download_Files

# Folder to save & resume rtorrent sessions
 session = ~/rtorrent_session

# Other Settings
 upload_rate = 30
 download_rate = 200
 peer_exchange = yes

# DHT options
 dht = auto

# custom throttles settings
 throttle_up = low,10
 throttle_down = low,10
 throttle_up = med,20
 throttle_down = med,20

# rtorrent_Watch is a folder for new torrents
 schedule = watch_directory,0,10,load_start=~/rtorrent_Watch/*.torrent
 schedule = tied_directory,10,10,start_tied=
 schedule = untied_directory,10,10,close_untied=

# Enable the default ratio group
 ratio.enable=

# Modify the limits, the defaults is optimal.
 ratio.min.set=50
 ratio.max.set=150
 ratio.upload.set=20M

# Modify the command triggered when the ratio is reached.
 system.method.set = group.seeding.ratio.command, d.close=, d.erase=

# Transfer the finished torrents to rtorrent_FullDownload_Files folder
 system.method.set_key = event.download.finished,rm_torrent,"execute=rm,$d.get_tied_to_file="
 system.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,~/rtorrent_FullDownload_Files/ ;d.set_directory=~/rtorrent_FullDownload_Files/"Criar os arquivosd
Criar os diretórios:
linuxtechi@localhost:~$ mkdir ~/rtorrent_Download_Files
linuxtechi@localhost:~$ mkdir ~/rtorrent_session
linuxtechi@localhost:~$ mkdir ~/rtorrent_Watch
linuxtechi@localhost:~$ mkdir ~/rtorrent_FullDownload_Files
Executar

Eu tinha que usar o link magnético do torrent, com isso segui os seguintes passos: 

1º Executei o binário:
#rtorrent

2º Dentro do sistema apertei enter para ficar disponível o espaço de digitação do link.
Colei o link e dei enter.

3º Setas para baixo para selecionar o item com " * " (asterisco)
4º Apertei Ctrl + S para iniciar o download.

Segue outros atalhos conforme rtorrent -h:

Usage: rtorrent [OPTIONS]... [FILE]... [URL]...
  -h                Display this very helpful text
  -n                Don't try to load ~/.rtorrent.rc on startup
  -b <a.b.c.d>      Bind the listening socket to this IP
  -i <a.b.c.d>      Change the IP that is sent to the tracker
  -p <int>-<int>    Set port range for incoming connections
  -d <directory>    Save torrents to this directory by default
  -s <directory>    Set the session directory
  -o key=opt,...    Set options, see 'rtorrent.rc' file

Main view keys:
  backspace         Add a torrent url or path
  ^s                Start torrent
  ^d                Stop torrent or delete a stopped torrent
  ^r                Manually initiate hash checking
  ^q                Initiate shutdown or skip shutdown process
  a,s,d,z,x,c       Adjust upload throttle
  A,S,D,Z,X,C       Adjust download throttle
  I                 Toggle whether torrent ignores ratio settings
  right             View torrent

Download view keys:
  spacebar          Depends on the current view
  1,2               Adjust max uploads
  3,4,5,6           Adjust min/max connected peers
  t/T               Query tracker for more peers / Force query
  *                 Snub peer
  right             View files
  p                 View peer information
  o                 View trackers