blog

Configuração FTP Server Debian com Vsftp e CHROOT

Passo 1 – Instalar vsftp

apt install vsftpd

Passo 2 – Fazer Backup do arquivo Original

cd /etc
cp vsftpd.conf vsftpd.conf.bak

Passo 3 – Configurar arquivo vsftp.conf

listen=YES
listen_ipv6=NO
connect_from_port_20=YES

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty

pam_service_name=vsftpd

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=45000

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
~

Passo 4 – Definiar usuário que ficará em CHROOT

vim /etc/vsftpd.chroot_list
SeuUsuario

Passo 5 – Criar conta de usuário

adduser SeuUsuario

Passo 6 – Habilitar e Ativar vsftp server

systemctl enable vsftpd
systemctl start vsftpd

 

Tutorial: Como configurar CSAT do Chatwoot

Nesse breve tutorial iremos ver como configurar o recurso CSAT do Chatwoot.

Necessário ja ter o N8N instalado e funcional.

1º Passo Liberar Acesso Postgres

Editar os seguintes arquivos

vim /etc/postgresql/12/main/pg_hba.conf
host all all 0.0.0.0/0 md5

vim /etc/postgresql/12/main/postgresql.conf
listen_addresses = '*'

2º Passo – Baixar e configurar script N8N

Url para download

https://github.com/delcain/csat-chatwoot

Após importar o script

Node 1 – ConsultaIDBanco ( Configurar acesso ao banco de dados )

# Host
Usar IP Público do Servidor 38.xxx.xxx.138

# Database
chatwoot_production

#User
postgres

#Password
!@aSDFSA231@!

Obs. Pegar senha no arquivo .env ou docker-compose.yml

Node 2 – SetMensagem

  • Expression
  • Vá até o campo value e procure pela variavél #suaurlchatwoot e adicione o endereço de instalação do seu chatwoot

Node 3 NODE SendMSGCodechat

  • Na URL onde ta escrito #urlcodechat adicione o endereço da api codechat.
  • Em #suainstancia é o nome de sua caixa de entrada
  • Exemplo http://38.xxx.xxx.138:8083/message/sendText/whatsapp

Specify Headers

  • apikey
  • Colocar a mesma chave apikey configurada em Whatsapp-API

Obs: em todos os nodes configurar Continue on Fail

3º Passso – Dentro do Chatwoot

  • Acessar Configurações, depois em Caixa de Entrada abra as configrações, encontre a opção Habilitar CSAT e deixe como ativado.
  • Acessar as automações e crie uma nova automação com o evento Conversation Updated e deixe o status como resolvida.
  • Em ações escolha Send Webhook Event e adicione o webhook do workflow baixado.
  • Ex: https://n8n.minhaempresa.com.br/webhook/csat-codechat

 

 

 

Como instalar Chatwoot via Docker + Codechat + API Whatsapp

Passo 1  – Instalação Docker

  • Remover possíveis versões anteriores
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
  • Add Docker’s official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  • Add the repository to Apt sources
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  • Instalação docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

Passo 2 – Instalação do Chatwoot via Docker Compose

  • Download the env file template
  • Download the Docker compose template
  • Rename .env file
cd /root
mkdir chatwoot
wget -O .env https://raw.githubusercontent.com/chatwoot/chatwoot/develop/.env.example
wget -O docker-compose.yaml https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml
  • Ajustando o .env file
  • Atenção para senha do postgres
Main
SECRET_KEY_BASE - criar senha segura
FRONTEND_URL=https://app.sacbr.com.br
DEFAULT_LOCALE=pt_BR

Postgres
    POSTGRES_HOST=postgres
    POSTGRES_USERNAME=postgres
    POSTGRES_PASSWORD=908AS7DF89ASIUAFSDAS89034K
    RAILS_ENV=development
Mail
    MAILER_SENDER_EMAIL=SacBR <app@sacbr.com.br>
    SMTP_DOMAIN=smtp.gmail.com
    SMTP_ADDRESS=smtp.gmail.com
    SMTP_PORT=465
    SMTP_USERNAME=sacbr{at}sacbr.com.br
    SMTP_PASSWORD=Senha123
    SMTP_AUTHENTICATION=plain
    SMTP_ENABLE_STARTTLS_AUTO=true
    SMTP_OPENSSL_VERIFY_MODE=peer
    SMTP_SSL=true
  • Ajustando o docker-compose.yml
  • Atenção para senha do postgres
version: '3'
services:
  base: &base
    image: chatwoot/chatwoot:latest
    env_file: .env ## Change this file for customized env variables
    volumes:
      - ./data/storage:/app/storage

  rails:
    <<: *base
    depends_on:
      - postgres
      - redis
    ports:
      - '127.0.0.1:3000:3000'
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    entrypoint: docker/entrypoints/rails.sh
    command: ['bundle', 'exec', 'rails', 's', '-p', '3000', '-b', '0.0.0.0']

  sidekiq:
    <<: *base
    depends_on:
      - postgres
      - redis
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']

  postgres:
    image: postgres:12
    restart: always
    ports:
      - '5432:5432'
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=chatwoot
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=SENHA SUPER SEGURA AQUI

  redis:
    image: redis:alpine
    restart: always
    command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]
    env_file: .env
    volumes:
      - ./data/redis:/data
    ports:
      - '127.0.0.1:6379:6379'
  • Preparar banco de dados
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
  • Levantando o serviço
docker compose up -d
  • Instalando Nginx e Configurando Proxy Reverso
sudo apt-get install nginx
cd /etc/nginx/sites-enabled
vim yourdomain.com.conf
  • Configurando Virtual Host
  • Em server name: chatwoot.minhaempresa.com.br
server {
  server_name <yourdomain.com>;

  # Point upstream to Chatwoot App Server
  set $upstream 127.0.0.1:3000;

  # Nginx strips out underscore in headers by default
  # Chatwoot relies on underscore in headers for API
  # Make sure that the config is set to on.
  underscores_in_headers on;
  location /.well-known {
    alias /var/www/ssl-proof/chatwoot/.well-known;
  }

  location / {
    proxy_pass_header Authorization;
    proxy_pass http://$upstream;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Ssl on; # Optional

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_http_version 1.1;
    proxy_set_header Connection “”;
    proxy_buffering off;

    client_max_body_size 0;
    proxy_read_timeout 36000s;
    proxy_redirect off;
  }
  listen 80;
}
  • Checando as configurações
nginx -t
systemctl reload nginx
  • Instalando Certbot e gerando certififcado
apt  install certbot
apt install python3-certbot-nginx
mkdir -p /var/www/ssl-proof/chatwoot/.well-known
certbot --webroot -w /var/www/ssl-proof/chatwoot/ -d yourdomain.com -i nginx
  • Ao chegar nessa etapa do processo de instalação do Chatwoot deverá estar rodando na porta 3000.
  • O nginx deverá estar rodando nas portas 80 e 443.
  • Proxy reverso deverá estar funcional e buscando chatwoot no localhost.
  • Crie sua conta.
  • Faça Login para seguir adiante.

Passo 3 – Instalando NodeJS versão 16 (Obrigatório)

–> Adicionar repositório

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

–> Instalar versão 16

NODE_MAJOR=16
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list

Passo 4 – Instalar Codechat

git clone https://github.com/w3nder/chatwoot-codechat.git
mv chatwoot-codechat/ codechat
cd codechat
mv .env.example .env

–> Pegar token do usuário dentro do Chatwoot e atualizar
–> Gerar uma chave particular e colocar no CODECHAT_API_KEY Ex: ” 301803677cd97069a55a79038fb0a2ebd4be1e49 ”
–> Se desejar assinar as mensagens como o nome de usuário mude para TOSIGN=true
–> Se desejar receber mensagens enviadas fora do chatwoot mude para IMPORT_MESSAGES_SENT=false

####################################  EXEMPLO ############################
        PORT = 1234
        CHATWOOT_TOKEN = wV7yJG7q28h3RdQY7m4sDzVM
        CHATWOOT_BASE_URL = http://localhost:3000
        CODECHAT_BASE_URL = http://localhost:8080
        CODECHAT_API_KEY = 301803677cd97069a55a79038fb0a2ebd4be1e49
        TOSIGN=true
        IMPORT_MESSAGES_SENT=true
####################################  EXEMPLO ############################

Explicando em sequência:

  • Instalar dependências
  • Construir aplicação (bildar)
  • Rodar aplicação, o prompt ficará preso, assim poderá acompanhar os logs.
npm install
npm run build 
npm start

Passo 5 – Instalar API

  • Baixando API
  • Renomeando dev-env.yml para env.yml
cd
git clone https://github.com/code-chat-br/whatsapp-api.git
cd whatsapp-api
mv src/dev-env.yml src/env.yml
  • Ajustar Server Port
  • Ajustar Server URL
  • Habilitar Webhook
  • Ajustar Client
  • Usar chave de acesso configurada no Codechat
vim src/env.yml

Server Port 8080 http
Webhook --> URL: Colocar o link da url webhook: http://0.0.0.0:1234/webhook/codechat
Webhook Enabled: True

Client: Sac BR
--> Autehtication ( PEGAR A CHAVE DO CODECHAT EM cat /root/codechat/.env )
  • Explicando em sequência:

    • Instalar dependências
    • Construir aplicação (bildar)
    • Rodar aplicação, o prompt ficará preso, assim poderá acompanhar os logs.
npm install
npm run build
npm run start

Passo 6 – Instalar PM2

  • Instalar PM2
  • Configurar Codechat como Serviço
  • Configurar API como Serviço
npm install pm2 -g

cd /root/codechat
pm2 start dist/app.js --name codechat

cd /root/whatsapp-api
pm2 start 'npm run start prod' --name whatsapp-api

Passo 7 – Criando caixa de entrada no Chatwoot

  • Configurações
  • Caixa de Entrada
  • Adicionar Caixa de Entrada
  • API
URL: http://192.168.0.254:1234/webhook/chatwoot

PS. Usar endereço IP do Host. Não Usar Localhost - Não Usar 127.0.0.1
  • Criar contato para chamar o bot
  • Contatos
  • Novo Contato
    • Nome: Bot
    • Número: +123456
  • Abrir contato
    • Nova Mensagem
    • Caixa de Entrada: Whatsapp
    • Mensagem: /iniciar

 

  • Comandos do Code Chat
    • /iniciar
      • Este comando irá criar uma nova instância e gerar um QR code
    • /status
      • Este comando irá verificar o status da instância
    • /desconectar
      • Este comando irá desconectar o WhatsApp da instância

Passo 7 – Liberando personalização do chatwoot

  • Instalar PostgreSQL Client
apt install postgresql-client postgresql-client-common
  • Logar no banco de dados
  • Selecionar o chatwoot_production
  • Atualizar update installation_configs set locked = false;
psql -U postgres -h localhost -w
\c chatwoot_production
update installation_configs set locked = false;
\q

 

| Tutorial | Como instalar n8n via docker com proxy Reverso- Passo a Passo

INSTALAR N8N VIA DOCKER

Referência

https://docs.n8n.io/hosting/installation/server-setups/docker-compose/#5-create-docker-compose-file

Passo 1

cd /root
mkdir n8n
vim docker-compose.yml

Ler mais

Graylog Server Docker

Siga os seguintes passos

Criar diretórios

sudo mkdir -p /docker/graylog/mongo/data;
sudo mkdir -p /docker/graylog/elasticsearch/data;
sudo mkdir -p /docker/graylog/data;
sudo chmod -R 777 /docker/graylog;

Criar instância Mongo

docker run --name mongo --restart=always \
  -v /docker/graylog/mongo/data:/data/db -d mongo:5.0.13;

Criar instância Elastic Search

docker run -d --name elasticsearch \
  --restart=always \
  -e "http.host=0.0.0.0" \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -v /docker/graylog/elasticsearch/data:/usr/share/elasticsearch/data \
  docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2;

Criar instância Graylog

docker run -d --name graylog \
 --hostname graylog-server \
 --restart=always \
 --link mongo \
 --link elasticsearch \
 -v /docker/graylog/data:/usr/share/graylog/data/journal \
 -p 9000:9000 -p 12201:12201 -p 5140:5140 -p 5140:5140/udp \
 -e GRAYLOG_HTTP_EXTERNAL_URI="http://log.MEUDNS.com.br:9000/" \
 graylog/graylog:4.0;

Para parar os serviços use:

docker stop graylog 
docker stop elasticsearch 
docker stop mongo

Para iniciar os serviços use:

docker start graylog 
docker start elasticsearch 
docker start mongo

Se preferir

docker stop graylog && docker stop elasticsearch && docker stop mongo

docker start graylog && docker start elasticsearch && docker start mongo

Para visualizar os logs.

docker logs graylog
docker logs elasticsearch
docker logs mongo

Logue no pinel como admin:

usr: admin
pwd: admin

Para alterar a senha do admin siga os respectivos passos

Você DEVE definir um segredo para proteger/salvar as senhas de usuário armazenadas Use pelo menos 64 caracteres.

Gere uma senha usando pwgen. Por exemplo:

pwgen -N 1 -s 96

ATENÇÃO: Este valor deve ser o mesmo em todos os nós Graylog do cluster.
A alteração desse valor após a instalação tornará todas as sessões de usuário e valores criptografados no banco de dados inválidos. (por exemplo, tokens de acesso criptografados)

GRAYLOG_PASSWORD_SECRET="x6dn4BjyLN37qZh0R2b0FckMzOrORLUivljy7a3PMqRItwtZ6SJdu2PxMbn6U6qJrMXKoh7mqOZ0jtHKTUv2UcaOLwoDbKpX"

 

Você DEVE especificar uma senha hash para o usuário root (que você só precisa configurar inicialmente o sistema e caso você perca a conectividade com seu back-end de autenticação)
Esta senha não pode ser alterada usando a API ou por meio da interface da web. Se precisar alterá-lo, modifique-o neste arquivo.
Crie uma senha usando shasum. Por exemplo:

echo -n SenhaSuperSecreta!@# | shasum -a 256
GRAYLOG_ROOT_PASSWORD_SHA2="8c586a074ed73366348cecd0dc6574b53d7515e313bafc4fa95191887cfd3989"

Sua configuração deverá ficar assim com ajuste de usuário admin e timezone

docker run -d --name graylog \
 --hostname graylog-server \
 --restart=always \
 --link mongo \
 --link elasticsearch \
 -v /docker/graylog/data:/usr/share/graylog/data/journal \
 -p 9000:9000 -p 12201:12201 -p 5140:5140 -p 5140:5140/udp \
 -e GRAYLOG_HTTP_EXTERNAL_URI="http://log.cuidadodigital.com.br:9000/" \
 -e GRAYLOG_PASSWORD_SECRET="x6dn4BjyLN37qZh0R2b0FckMzOrORLUivljy7a3PMqRItwtZ6SJdu2PxMbn6U6qJrMXKoh7mqOZ0jtHKTUv2UcaOLwoDbKpX" \
 -e GRAYLOG_ROOT_PASSWORD_SHA2="8c586a074ed73366348cecd0dc6574b53d7515e313bafc4fa95191887cfd3989" \
 -e GRAYLOG_TZ="America/Sao_Paulo" \
 -e GRAYLOG_TIMEZONE="America/Sao_Paulo" \
 -e GRAYLOG_ROOT_TIMEZONE="America/Sao_Paulo" \
 graylog/graylog:4.0;

 

Como instalar a configurar o Nxlog para enviar Log para Graylog

Arquivo de configurção para enviar arquvios deletados do servidor windows para o GrayLog

Acesse https://nxlog.co/downloads/nxlog-ce#nxlog-community-edition para baixar a aplicação para Windows

Instale o Nxlog em C:\nxlog

Edite o arquivo c:\nxlog\conf\nxlog.conf

 

Copie e cole essa diretiva.

Maiores inforamções em:

https://docs.nxlog.co/userguide/integrate/windows-eventlog.html

 

Panic Soft
#NoFreeOnExit TRUE

define ROOT     C:\nxlog
define CERTDIR  %ROOT%\cert
define CONFDIR  %ROOT%\conf\nxlog.d
define LOGDIR   %ROOT%\data

include %CONFDIR%\\*.conf
define LOGFILE  %LOGDIR%\nxlog.log
LogFile %LOGFILE%

Moduledir %ROOT%\modules
CacheDir  %ROOT%\data
Pidfile   %ROOT%\data\nxlog.pid
SpoolDir  %ROOT%\data

<Extension _syslog>
    Module      xm_syslog
</Extension>

<Extension _charconv>
    Module      xm_charconv
    AutodetectCharsets iso8859-2, utf-8, utf-16, utf-32
</Extension>

<Extension _exec>
    Module      xm_exec
</Extension>

<Extension _fileop>
    Module      xm_fileop

    # Check the size of our log file hourly, rotate if larger than 5MB
    <Schedule>
        Every   1 hour
        Exec    if (file_exists('%LOGFILE%') and \
                   (file_size('%LOGFILE%') >= 5M)) \
                    file_cycle('%LOGFILE%', 8);
    </Schedule>

    # Rotate our log file every week on Sunday at midnight
    <Schedule>
        When    @weekly
        Exec    if file_exists('%LOGFILE%') file_cycle('%LOGFILE%', 8);
    </Schedule>
</Extension>

<Extension _gelf>
    Module      xm_gelf
</Extension>

# <Input in>
    # Module      im_msvistalog
# </Input>

<Input security_events>
    Module    im_msvistalog
    <QueryXML>
        <QueryList>
            <Query Id="0">
                <Select Path="Security">
                *[System[(Level=0) and (EventID=5145)]]
                and
                *[EventData[Data[@Name='AccessMask']and(Data='0x110080')]]
                </Select>
            </Query>
         </QueryList>
    </QueryXML>
</Input>

<Output out>
    Module          om_udp
    Host            log.cuidadodigital.com.br
    Port            12201
    Exec            to_syslog_snare();
    OutputType      GELF_UDP
</Output>

<Route 1>
    # Path        in => security_events => out
    Path        security_events => out
</Route>

 

Como instalar Windows 11 SEM CONTA Microsoft

Para instalar o Windows 11 sem necessáriamente ter que fazer login em um conta Microsoft, siga os seguintes passos.

Assim que inicar o Wizard de instalação APÓS a cópia dos arquivos precione no teclado SWIFT + F10, assim que aparecer o promtp de comando digite.

oobe\bypassnroe

Ao reiniciar o computador prossiga sem acesso a internet.

 

Script Backup Robocopy com Relatórios por e-mail

Nesse breve tutorial iremos aprender como configurar um Script de Backup para Windows usando o robocopy em Power Shell com relatório sendo enviado por e-mail.

Ler mais

Liberar Discord Fierwall Pfsense [RESOLVIDO]

Segue a relação de IP’s e URL’s necessárias para liberação do update e demais recursos do Discord em firewall sendo Pfsense ou Não quando as portas 443 estão bloqueadas.

 

Se preferir segue o link para download. discordapp

 

162.159.135.233
162.159.133.233
162.159.130.233
162.159.129.233
162.159.134.233
162.159.138.232
162.159.128.233
162.159.135.232
162.159.136.232
162.159.137.232
162.159.135.234
162.159.136.234
162.159.130.234
162.159.133.234
162.159.134.234
142.250.218.170
138.199.4.77
142.250.219.234
142.250.219.10
216.58.222.10
142.250.218.170
138.199.4.77
162.159.129.232
162.159.134.232
162.159.133.232
162.159.130.232
162.159.128.232
discordstatus.com
discordapp.net
discord.media
discord.gg
discordapp.com
cdn.discordapp.com

 

Como Instalar Sarg no Debian 11 Bulls Eyes

Para instalar o Sarg no Debian 11 Bulls Eyes utilize o repositório BackPorts Ler mais