anúncios

sexta-feira, 31 de dezembro de 2021

Resetando e redefinindo o password root no Linux

Nota: Os procedimentos a seguir assume que seja executado na máquina física de sua propriedade.

Procedimentos para resetar o password root no GNU/Linux (qualquer distro)

Na tela do GRUB, segue:

  1. Na tela do GRUB, aperte a tecla e;
  2. Procure a linha linux /vmlinuz… e substitua o "quiet" por "init=/bin/bash"
  3. Digite CTRL+X para iniciar o Shell;
  4. Quando aparecer a tela do shell, digite mount -o remount,rw /
  5. Agora digite passwd e logo será solicitada a nova senha e a confirmação da mesma;
  6. Reinicie o computador shutdown -r e faça o logon com a nova senha.

Feito!

Treine a sua lógica de programação com problemas na comunidade de programadores

A partir de 24/10/2021 a URI Online Judge passou por uma alteração no nome para Beecrowd, mas continua com o seu objetivo para você treinar a sua lógica de programação, por meio de diversos problemas organizado por categorias.

Se ainda não tem uma conta, então cadastre-se e crie o seu perfil para começar a explorar o site e resolver os problemas de programação apresentados.

É interessante colocar o nome da universidade que faz o curso de graduação e assim agrupar os colegas do curso.

O Beecrowd (antecessor de URI Online Judge) dispõe de dois ranks, o primeiro é o geral, onde todos os usuários participam, ficando em primeiro lugar os que tiverem o maior número de exercícios resolvidos e aprovados. O segundo rank é específico de sua universidade, ou seja, apenas os alunos de sua instituição de ensino participam. O critério para alcançar a melhor posição é o mesmo para o rank geral.

Em resumo, procure resolver o maior número de programas de programação e submeta para verificação.

Quais linguagens de programação é permitido resolver os problemas?

Você pode resolver os problemas com as linguagens de programação: C, C++, C#, Python, Java, PHP, Lua, Haskel, Go e tem problemas específicos para SQL.

O mais comum na maratona de programação são as linguagens C, C++, Java, Python.

Recomendo treinar na linguagem C ou C++.

O Beecrowd é uma oportunidade para você mostrar o quanto é bom em programação. Ótimo teste para suas habilidades de desenvolvedor.

Uma sugestão é criar um repositório no GitHub para salvar os problemas de programação que resolver no Beecrowd como backup e assim você rever posteriormente a sua evolução.

Treinar as habilidades de programação com Beecrowd e em conjunto o Git/GitHub, certamente são de auxílio no seu desenvolvimento pessoal e profissional.

Feito!

quarta-feira, 29 de dezembro de 2021

Instalando o cliente VPN Cisco AnyConnect no Linux

O objetivo deste post é explicar os procedimentos de instalação e utilização do cliente VPN Cisco AnyConnect, no Linux (qualquer distro).

Segue os procedimentos:

  1. Acesse https://software.cisco.com/download/home
  2. Na barra de pesquisa, digite "Anyconnect" e as opções serão exibidas. Selecione AnyConnect Secure Mobility Client v4.x
  3. Faça o download do Cisco AnyConnect VPN Client. Especificamente a opção Pacote de pré-implantação do AnyConnect (Linux 64 bits)
  4. No terminal, acesse o diretório onde salvou o arquivo algo similar com isso anyconnect-linux64-4.9.01095-predeploy-k9.tar.gz
  5. Extrair com o comando $ tar -xzvf anyconnect-linux64-4.9.01095-predeploy-k9.tar.gz
  6. Acessar o diretório extraído
  7. $ cd anyconnect-linux64-4.9.01095
  8. Acessar o subdiretório
  9. $ cd vpn
  10. Executar o script de instalação do AnyConnect
  11. $ sudo ./vpn_install.sh
  12. Aceite os termos do contrato de licença para concluir a instalação digitando "y"

A instalação do AnyConnect foi instalado.

Utilizando o AnyConnect Secure Mobility Client v4.9.x

Para acessar o AnyConnect, abra o terminal e execute: $ /opt/cisco/anyconnect/bin/vpngui

Irá abrir o Cisco AnyConnect, informe o IP e porta da VPN da organização ou vpn.empresa.com.br

Após isso irá solicitar as credencias de acesso, seu usuário e o password é código de 6 digitos do MobilePASS.

Feito!

Conhecendo o MIT App Inventor

O que é MIT App Inventor?

O MIT App Inventor é uma ferramenta web que nos permite criar aplicativo para Android.

Criada no MIT - Massachusetts Institute of Technology, é uma ferramenta bastante fácil de utilizar, até mesmo por quem não tem experiência em programação.

O MIT App Inventor trabalha com a linguagem visual (baseada em blocos). Assim você vai encaixando cada bloco como fosse um quebra-cabeça.

Uma forma de criar aplicativos Android em programação de blocos, ideal para quem não tem conhecimento avançado em programação para dispositivo mobile, mas tem uma ideia de criar um aplicativo. Agora tem uma opção desta ferramenta para colocar em prática a sua ideia em alguns dias de forma simples.

Como utilizar o App Inventor?

  1. Acessar https://appinventor.mit.edu/ e criar uma conta
  2. Após criar a conta, logar e clique em "Create apps"
  3. 3. Explore e crie um aplicativo Android

Criar um aplicativo no App Inventor

Estando logado na ferramenta App Inventor, vai em Project > Start new project

No lado esquerdo encontra-se as paletas de componentes e no lado direito as proriedades de cada componente. No centro o resultado do aplicativo.

Na aba Designer é onde você pode trabalhar seu aplicativo. Onde cria a aparência do aplicativo e especifica os componentes utilizados, tais como botões, imagens, caixas de texto e funcionalidades como sensores e GPS.

Na aba Blocks (blocos) é onde faz a programação do aplicativo. É faz o encaixe de cada bloco como um quebra-cabeça.

Como emular o aplicato criado no App Inventor?

Para emular o aplicativo criado na plataforma no seu smartphone, instale Play Store - MIT AI2 Companion App com a leitura do QR code irá sincronizar.

Caso tenha desenvolvido uma API REST ou conheça uma API pública, é possível fazer a integração na ferramenta App Inventor, informando a URL da API com o endpoint correspondente a funcionalidade do aplicativo.

Referências

https://appinventor.mit.edu/

Feito!

terça-feira, 28 de dezembro de 2021

Conhecendo o TransferNow

O que é TransferNow?

O TransferNow possibilita que você envie ou hospede arquivos volumosos de todos os tipos e tamanhos, em poucos cliques ou simplesmente arrastando e soltando os arquivos na interface. Você e seus destinatários não precisam ter uma conta de usuário para transferir ou fazer download de arquivos com TransferNow.

Acesse https://www.transfernow.net/pt e faça um teste que provavelmente irá surpreender com o serviço do TransferNow.

Feito!

Conhecendo o AirMore

O que é AirMore?

AirMore é um aplicativo para Android e iOS que permite transferir arquivos entre dispositivo e computador sem precisar de cabos USB. Assim pode acessar aplicativos do celular pelo computador e gerenciar os diretórios e arquivos, pelo seu sincronismo.

De forma similar ao AirDroid e Wifi-Transfer-File.

Como utilizar o AirMore?

O primeiro passo é acessar a loja de aplicativos Play Store ou App Store , pesquisar por AirMore e efetuar a instalação. Após instalar o aplicativo AirMore no seu smartphone, irá ter um botão "Leia para conectar" ou "Read to connect" e acessar Web AirMore para visualizar o código QR code de pareamento O próximo passo é fazer o escaneamento do QR code do item anterior para sincronizar o smartphone e computador. Lembra que ambos devem estar na mesma rede Wi-Fi.

Pronto, agora pode transferir arquivos do seu dispositivo para o computador e vice-versa.

Feito!

segunda-feira, 27 de dezembro de 2021

Conhecendo o Wifi Transfer File

O que é Wifi Transfer File?

O Wifi Tranfer File é um aplicativo Android e iOS que permite sincronizar o smartphone e computador, assim transferir arquivos sem precisar do cabo USB, pois utiliza a sua rede Wireless.

Como utilizar?

O primeiro passo é acessar a loga de aplicativos Play Store ou App Store . Após instalar, verifique primeiro que o seu dispositivo está conectado na mesma rede Wireless com o computador, sendo assim conecte e irá exibir o endereço IP com a porta para acessar no browser do computador. Pronto, agora pode transferir arquivos do seu dispositivo para o computador e vice-versa.

Feito!

Conhecendo o AirDroid

O que é AirDroid?

AirDroid é um aplicativo Android que permite o gerenciamento do smartphone ou tablet a partir de um computador, por meio do browser. Não é necessário cabos, pois todo o processo é realizado via rede Wi-Fi.

Como utilizar?

O primeiro passo é acessar o Play Store e pesquisar por AirDroid para instalar. Após instalar, crie uma conta que pode sincronizar com sua conta do Google, Facebook ou Twitter.

Para sincronizar o AirDroid com o smartphone, acesse https://web.airdroid.com/ e faça a leitura do QR code por meio do aplicativo em AirDroid Web. Pronto, feito isso, já pode transferir arquivos do smartphone ou tablet para o computador e vice-versa. Simples assim.

Também permite executar qualquer aplicativo instalado no smartphone ou tablet no computador por meio do sincronismo do AirDroid.

Feito!

domingo, 26 de dezembro de 2021

Configurando PHP 8 com OCI8 no ambiente Docker

O objetivo deste howto é explicar os procedimentos de configuração para subir rapidamente um ambiente com Apache, PHP 8 e Oracle Client no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Segue os procedimentos:

$ mkdir -p $HOME/ambiente-php8-oci8-docker $HOME/ambiente-php8-oci8-docker/src

$ cd $HOME/ambiente-php8-oci8-docker

Criar o arquivo docker-compose.yml com o conteúdo abaixo:

docker-compose.yml


version: "3"
services:
  php5.6-oci8:
   image: slatrach/php8-oci8-apache
   container_name: php8-oci8
   ports:
      - "8000:80"
   volumes:
      - ./src:/var/www/html

OBS: Esteja atento a indentação do arquivo docker-compose.yml para o correto funcionamento na hora que for executar.

O diretório src é o volume do HOST mapeado com o CONTAINER, onde ficará os códigos fontes do projeto.

Executar o build e execução do ambiente na raiz do diretório ambiente-php8-oci8-docker

$ docker-compose up -d

Aguarde e após estiver OK, verifique o status com o comando $ docker ps

Crie um arquivo info.php no diretório src (volume mapeado entre HOST e CONTAINER)

<?php
phpinfo();

No browser acesse http://localhost:8000/info.php>/p>

Verifique se o módulo OCI8 está habilitado no PHP.

Pronto, ambiente PHP 8 com OCI8 configurado rapidamente.

Feito!

sexta-feira, 10 de dezembro de 2021

Treinamento e Certificação Oracle

Uma certificação é um grande diferencial para programadores, engenheiros de software e profissionais de tecnologia em geral. Ela acaba sendo um "selo" de conhecimentos mais aprofundados em determinada tecnologia. Faça treinamentos e as provas para a certificação OFICIAIS gratuitamente, através do Programa de Certificação e Treinamento Gratuito de OCI (Oracle Cloud Infrastructure).

O prazo máximo para realização dos exames vai até o dia 31/12/2021, por isso não deixe para a última hora. Esse é sem dúvida um presente de Natal da Oracle!

Onde fazer a inscrição dos treinamentos e certificados Oracle?

Acesse Oracle Cloud Infraestructure , faça o cadastro e a inscrição do treinamento e posteriormente a certificação.

Feito!

terça-feira, 7 de dezembro de 2021

Configurando PHP 5.6 com OCI8 no ambiente Docker

O objetivo deste howto é explicar os procedimentos de configuração para subir rapidamente um ambiente com Apache, PHP 5.6 e Oracle Client 12 no Docker

Apesar da versão PHP 5.6 ser muito antiga e não ter mais suporte, mas se tratando em sistemas legados que utilizam essa versão, é o meio mais rápido de subir um ambiente PHP 5.6 com OCI8.

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Segue os procedimentos:

$ mkdir -p $HOME/ambiente-php5.6-oci8-docker $HOME/ambiente-php5.6-oci8-docker/src

$ cd $HOME/ambiente-php5.6-oci8-docker

Criar o arquivo docker-compose.yml com o conteúdo abaixo:

docker-compose.yml


version: "3"
services:
  php5.6-oci8:
   image: thomasbisignani/docker-apache-php-oracle
   container_name: php5.6-oci8
   ports:
      - "8000:80"
   volumes:
      - ./src:/var/www/html

OBS: Esteja atento a indentação do arquivo docker-compose.yml para o correto funcionamento na hora que for executar.

O diretório src é o volume do HOST mapeado com o CONTAINER, onde ficará os códigos fontes do projeto.

Executar o build e execução do ambiente na raiz do diretório ambiente-php5.6-oci8-docker

$ docker-compose up -d

Aguarde e após estiver OK, verifique o status com o comando $ docker ps

Crie um arquivo info.php no diretório src (volume mapeado entre HOST e CONTAINER)

<?php
phpinfo();

No browser acesse http://localhost:8000/info.php>/p>

Verifique se o módulo OCI8 está habilitado no PHP.

Pronto, ambiente PHP 5.6 com OCI8 configurado rapidamente.

Feito!

segunda-feira, 6 de dezembro de 2021

Configurando o SGBD Oracle 12 no ambiente Docker

O objetivo deste howto é explicar os procedimentos de configuração do SGBD Oracle 12 no ambiente Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Segue os procedimentos:

$ mkdir -p $HOME/ambiente-oracle12-docker,$HOME/ambiente-oracle12-docker/oredata

$ docker run --name oracle12_2 -p 1521:1521 -p 5500:5500 -v $HOME/ambiente-oracle12-docker/oradata:/opt/oracle/oradata oracle/database:12.2.0.1-ee

Observe que não foi gerado o password automaticamente, iremos fazer no passo seguinte:

$ docker exec oracle12_2 ./setPassword.sh SecretPassword

Verificar o status do SGBD Oracle em execução:

$ docker ps -a

Agora pode realizar a conexão com algum cliente DB(DBeaver ou SQLDeveloper), informando os dados seguintes:

Connection Name: nome qualquer que identifique
Username: sys
Password: o password que você criou anteriormente
Hostname: localhost ou 127.0.0.1
Port: 1521

Para verificar o log

$ docker logs oracle12_2

Para parar o serviço do container SGBD Oracle 12

$ docker stop oracle12_2

Para iniciar o serviço do container SGBD Oracle 12

$ docker start oracle12_2

Feito!

sábado, 4 de dezembro de 2021

Configurando o SGBD PostgreSQL e Adminer no ambiente Docker

O objetivo deste howto é explicar os procedimentos de configuração do SGBD PostgreSQL com a ferramenta Adminer no ambiente Docker.

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Composer no Linux (qualquer distro) ou Instalando Docker e Docker Compose no Windows 10

$ mkdir $HOME/ambiente-postgresql-adminer-docker && $HOME/ambiente-postgresql-adminer-docker

$ mkdir $HOME/ambiente-postgresql-adminer-docker/db

O diretório db é o volume mapeado entre HOST e CONTAINER

Se não tiver o volume db ao encerrar, o banco de dados irá para o espaço, na hora que for encerrado, pois o container é volátel.

Crie o arquivo docker-compose.yml no diretório raiz de ambiente-postgresql-adminer-docker, conforme o conteúdo seguinte:

docker-compose.yml


version: "3"
services:
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - "./db://var/lib/postgresql/data"

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

OBS: Esteja atento a indentação do arquivo docker-compose.yml para o correto funcionamento na hora que for executar.

Executar o build e execução do ambiente na raiz do diretório ambiente-postgresql-adminer-docker

OBS: Antes de executar, verifique se as portas 8080 (Adminer) e 5432 (PostgreSQL) estão disponíveis na sua máquina.

$ docker-compose up -d

Aguarde e após estiver OK, verifique o status com o comando $ docker ps

Acesse no browser http://localhost:8080 irá redirecionar para a tela do Adminer, insere as credenciais definidas do SGBD PostgreSQL no docker-compose.yml

Após o acesso, poderá criar o banco de dados e as respectivas tabelas pelo Adminer que irá integrar ao SGBD PostgreSQL.

Feito!

sexta-feira, 3 de dezembro de 2021

Configurando SGBD MySQL e Adminer no ambiente Docker

O objetivo deste howto é explicar os procedimentos de configuração do SGBD MySQL com a ferramenta Adminer no ambiente Docker.

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Composer no Linux (qualquer distro) ou Instalando Docker e Docker Compose no Windows 10

$ mkdir $HOME/ambiente-mysql-adminer-docker && $HOME/ambiente-mysql-adminer-docker

$ mkdir $HOME/ambiente-mysql-adminer-docker/db

O diretório db é o volume mapeado entre HOST e CONTAINER

Se não tiver o volume db ao encerrar, o banco de dados irá para o espaço, na hora que for encerrado, pois o container é volátel.

Crie o arquivo docker-compose.yml no diretório raiz de ambiente-mysql-adminer-docker, conforme o conteúdo seguinte:

docker-compose.yml


version: "3"
services:
  db:
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - "./db:/var/lib/mysql"

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

OBS: Esteja atento a indentação do arquivo docker-compose.yml para o correto funcionamento na hora que for executar.

Executar o build e execução do ambiente na raiz do diretório ambiente-mysql-adminer-docker

OBS: Antes de executar, verifique se as portas 8080 (Adminer) e 3306 (MySQL) estão disponíveis na sua máquina.

$ docker-compose up -d

Aguarde e após estiver OK, verifique o status com o comando $ docker ps

Acesse no browser http://localhost:8080 irá redirecionar para a tela do Adminer, insere as credenciais definidas do SGBD MySQL no docker-compose.yml

Após o acesso, poderá criar o banco de dados e as respectivas tabelas pelo Adminer que irá integrar ao SGBD MySQL.

Feito!

Configurando ambiente Apache Kafka no Docker

O objetivo desse post é explicar a configuração do Apache Kafka no ambiente Docker.

O Apache Kafka é um serviço de mensageria e o Kafdrop é o projeto web que visualiza informações de brokers Kafka dos tópicos existentes, consumers e mensagens encaminhadas no tópico.

Pré-requisto: Ter o Docker e Docker Compose instalado.

$ mkdir $HOME/ambiente-kafka-docker && cd $HOME/ambiente-kafka-docker

Crie o arquivo docker-compose.yml conforme o conteúdo a seguir:

Segue o conteúdo do arquivo docker-compose.yml para o ambiente Apache Kafka + ZooKeeper + Kafdrop).

O serviço zookeeper é criado com a imagem confluentinc/cp-zookeeper, que é a instância do ZooKeeper.

O serviço Kafka é criado com a imagem confluentinc/cp-kafka, que é a instância do Apache Kafka, utiliza a porta 9092 externo e internamente para o network broker-kafka na porta 29092. Esse container também é uma instância do ZooKeeper em depends_on.

O serviço Kafdrop, container que possibilitará o acessa via browser à interface de gerenciamento do Kafdrop na porta 19000. A variável de ambiente KAFKA_BROKERCONNECT foi configurada para se comunicar com o container kafka (depends_on) internamente na porta 29092.

docker-compose.yml


version: '3'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    networks: 
      - broker-kafka
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  kafka:
    image: confluentinc/cp-kafka:latest
    networks: 
      - broker-kafka
    depends_on:
      - zookeeper
    ports:
      - 9092:9092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

  kafdrop:
    image: obsidiandynamics/kafdrop:latest
    networks: 
      - broker-kafka
    depends_on:
      - kafka
    ports:
      - 19000:9000
    environment:
      KAFKA_BROKERCONNECT: kafka:29092

networks: 
  broker-kafka:
    driver: bridge  

Executar o build na raiz do diretório ambiente-kafka-docker

OBS: Antes de executar, verificar se as portas 9092,290092 e 19000 esteja livres no HOST.

$ docker-compose up -d

Verifique o status se está tudo OK, com o comando $ docker ps

Acesse no browser http://localhost:19000 para visualizar o Kafdrop, gerenciamento gráfico do Kafka.

Feito!

quinta-feira, 2 de dezembro de 2021

Configurando o MongoDB no ambiente Docker

O objetivo deste howto é explicar os procedimentos para instalar o SGBD noSQL (não relacional), MongoDB no ambiente Docker com a aimagem container oficial.

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker-Compose no Linux ou Instalando Docker e Docker-Compose no Windows

$ mkdir $HOME/ambiente-mongodb-docker && cd $HOME/ambiente-mongodb-docker

Crie o arquivo docker-compose.yml, conforme o conteúdo a seguir:

docker-compose.yml


version: "3.2" 
services: 
 mongo: 
    image: mongo 
    restart: always 
    environment: 
      MONGO_INITDB_ROOT_USERNAME: admin 
      MONGO_INITDB_ROOT_PASSWORD: secret 
 mongo-express: 
    image: mongo-express
    restart: always 
    ports: 
      - 8081:8081 
    environment: 
      ME_CONFIG_MONGODB_ADMINUSERNAME: admin 
      ME_CONFIG_MONGODB_ADMINPASSWORD: exemplomongodb 
      ME_CONFIG_MONGODB_URL: mongodb://admin:exemplomongodb@mongo:27017/ 
 

Executar o build na raiz do diretório ambiente-mongodb

OBS: Antes de executar, verificar se as portas 27017 e 8081 estejam livres no HOST.

$ docker-compose up -d

Verifique o status se está tudo OK, com o comando $ docker ps -a

Acesse o Mongo Express http://localhost:8081 pelo browser e conecte com o usuário e password definido no docker-compose.

Feito!

quarta-feira, 1 de dezembro de 2021

Conhecendo o Robo 3T

O que é Robo 3T?

Robo 3T é uma ferramenta gráfica para o MongoDB, que facilita assim gerenciar bancos de dados NoSQL (não relacional).

Instalando o Robo 3T

Pré-requisito: Ter instalado o MongoDB, caso ainda não tenha, verifique aqui

Acesse https://robomongo.org/download e após clicar no botão "Download Robo 3T" que será redirecionado para página correspondente para selecionar o Sistema Operacional (Windows, Linux, macOS) por aba, informe o seu e-mail, nome e clique no botão "Download for [SO conforme a aba escolhida]".

O procedimento de instalação é simples independente do SO, basta extrair, acessar o diretório bin e executar o arquivo robo3t.

Ao abrir, cliquei no botão "Connect", as informações default para o ambiente local são:

Define um nome qualquer, Address: localhost, Port: 27017

Clique no botão "Save".

Com o Robo 3T, pode importar o arquivo implementado em Node.js com as collections.

Feito!

quinta-feira, 25 de novembro de 2021

Configurando ambiente Kafka no Windows e Linux

Introdução

O Apache Kafka é uma plataforma opensource de processamento de streams desenvolvida pela Apache Software Foundation, escrita em Scala e Java. O projeto tem como objetivo fornecer uma plataforma unificada, de alta capacidade e baixa latência para tratamento de dados em tempo real.

Pré-requisito: Ter o JDK a partir da versão 1.8 no PATH do SO.

$ wget -c "https://archive.apache.org/dist/kafka/2.4.1/kafka_2.13-2.4.1.tgz"

$ tar -xzvf kafka_2.13-2.4.1.tgz

No Linux (qualquer distro), geralmente é extraído no diretório /opt/kafka

No Windows, pode ser no C:\kafka

Edite o arquivos config/zookeeper.properties, config/server.properties e coloque o caminho do arquivo log

config/zookeeper.properties

No Linux (qualquer distro)

dataDir=/opt/kafka/logs/zookeeper

No Windows

dataDir=C:\kafka\logs\zookeeper

config/server.properties

Descomenta a linha e adicione o IP e porta do servidor Kafka

listeners=PLAINTEXT://127.0.0.1:9092

No Linux (qualquer distro)

log.dirs=/opt/kafka/logs/kafka

No Windows

log.dirs=C:\kafka\logs\kafka

Inicialização dos serviços Zookeeper e Kafka

No Linux (qualquer distro)

$ cd /opt/kafka

$ ./bin/zookeeper-server-start.sh config/zookeeper.properties

$ bin/kafka-server-start.sh config/server.properties

No Windows

cd C:\
cd kafka\bin\windows zookeeper-server-start.bat ../../config/zookeeper.properties
kafka-server-start.bat ../../config/server.properties

Criar um tópico do evento Kafka

Uma vez inicializado o Zookeeper e Kafka, execute o comando para criar o tópico de evento do Kafka

No Linux (qualquer distro)

$ ./bin/kafka-topics.sh --create --topic [nome-topico] --bootstrap-server localhost:9092

Listar o tópico criado

$ bin/kafka-topics.sh --describe --topic [nome-topico] --bootstrap-server localhost:9092

No Windows

bin/kafka-topics.bat --create --topic [nome-topico] --bootstrap-server localhost:9092

bin/kafka-topics.bat --describe --topic [nome-topico] --bootstrap-server localhost:9092

Escrever um evento no tópico

No Linux (qualquer distro)

$ ./bin/kafka-console-producer.sh --topic [nome-topico] --bootstrap-server localhost:9092

No Windows

bin/kafka-console-producer.bat --topic [nome-topico] --bootstrap-server localhost:9092

Ler eventos no tópico

No Linux (qualquer distro)

$ ./bin/kafka-console-consumer.sh --topic [nome-topico] --from-beginning --bootstrap-server localhost:9092

No Windows

bin/kafka-console-consumer.bat --topic [nome-topico] --from-beginning --bootstrap-server localhost:9092

Encerrar o ambiente Kafka

  1. Parar o produtor e consumidor com CTRL + C
  2. Parar o serviço Kafka com CTRL + C
  3. Parar o serviço Zookeeper com CTRL + C

Referências

https://kafka.apache.org/quickstart

Feito!

terça-feira, 23 de novembro de 2021

Conhecendo o OpenShot

O que é OpenShot?

OpenShot é uma ferramenta para criar e editar vídeos, multiplataforma, isto é, Windows, Linux (qualquer distro), macOS, gratuito e de código aberto com licença GPLv3.

O OpenShot você pode adicionar sub-títullos, transições, efeitos e exportar também o seu vídeo para DVD, YouTube, Vimeo, Xbox-360 e outros formatos comuns.

Instalando o OpenShot no Ubuntu

$ sudo add-apt-repository ppa:openshot.developers/ppa
$ sudo apt update
$ sudo apt install openshot-qt

Feito!

sábado, 20 de novembro de 2021

Conhecendo o brModelo

O que é brModelo?

É um software para modelagem para banco de dados relacionais, desenvolvida pelo grupo de Banco de Dados da UFSC (GPD/UFSC) em 2005 com o objetivo de ser uma ferramenta gratuita com esse quesito. Seus principais diferenciais em relação a ferramentas similares são o suporte a todas as três etapas clássicas de projeto de banco de dados, a interação com o projetista durante a execução da etapa de modelagem lógica e o suporte a todos os conceitos do modelo EER, conforme na principal literatura nacional sobre projeto de banco de dados. A aceitação do brModelo foi de intensa populariedade.

Instalação do brModelo

Tem duas versões do brModelo, uma na versão desktop que o pré-requisito ter o Java (JRE já é o suficiente). A partir da versão 8 do Java.

$ wget -c "http://www.sis4.com/brModelo/brModelo.jar"

$ java -jar brModelo.jar

Também tem a versão brModelo Web que é 100% online e gratuita para criar a conta e utilizar.

Feito!

Conhecendo o LucidChart

O que é LucidChart?

É uma aplicação web para construir diagramas UML, com funcionalidade de arrastar e soltar componentes UML.

Utiliza o modelo SaaS, isto é, por meio de sua conta associada a algum plano: Gratuito, Individual, Team ou Empresa, cada plano possui os recursos.

Escolha o plano que atenderá melhor no seu caso.

Para saber mais sobre os recursos de cada plano, Consulte Planos LucidChar .

O que é UML e para que serve?

UML (Unified Modeling Language), que significa Linguagem Unificada de Modelagem é uma linguagem padrão para modelagem orientada a objetos. Esta linguagem de modelagem não é proprietária de terceira geração, não é um método de desenvolvimento. Têm como papel auxiliar a visualizar o desenho e a comunicação entre objetos.

Criação da conta no LucidChart

Para criar a conta no LucidChart e começar a criar os diagramas UML, acesse .

Permite escolher utilizar a sua conta do Google, Office 365 ou Slack de forma integrada.

Feito!

sábado, 16 de outubro de 2021

Conhecendo o QtSpim

O que é QtSpim?

O Spim é o simulador da linguagem Assembly MIPS. O QtSpim é uma ferramenta gráfica para o Spim.

A versão atual até a data de publicação deste post é 9.1.22, no entanto, dependendo da data que estiver seguindo esse howto, verificar a versão atual

O presente post é explicado na distribuição com base Debian

Instando o QtSpim na distro base Debian

Download do .deb

$ wget https://sourceforge.net/projects/spimsimulator/files/qtspim_9.1.22_linux64.deb

Executar o arquivo .deb via DPKG para instalação

$ sudo dpkg -i qtspim_9.1.22_linux64.deb

Abrir o QtSpim pelo terminal

$ qtspim &

Também encontra disponível no ambiente gráfico que utiliza na distro derivada do Debian.

Vamos fazer o primeiro programa em Assembly MIPS?

HelloWorld.asm

.text
la $a0, showHelloWorld
li $v0, 4
syscall
.data
showHelloWorld: .asciiz "Hello World em Assembly MIPS!"

Fig. 1 Screenshot do QtSpim

Para executar um programa em Assembly MIPS no QtSpim, no menu File>Reinitialize and Load File seleciona o arquivo com extensão .s ou .asm no diretório que salvou.

Register Panel

O Register Panel mostra o conteúdo de todos os registradores MIPS. Observe que existe duas abas nesse painel, uma para os registradores de ponto flutuante e outra para os registradores de propósito geral (R1-R31), junto com registradores de propósito especial, como contador de programa.

Memory Panel

O Memory Panel mostra duas abas: Data e Text. Na aba Text mostra o conteúdo do programa em memória.

Na aba Data mostra o conteúdo de memória de dados. Isso inclui as variáveis e os dados da matriz que você cria, junto com o conteúdo da pilha.

Feito!

terça-feira, 12 de outubro de 2021

Conhecendo o MARS

O que é MARS?

O MARS é um ambiente de desenvolvimento integrado (IDE) destinado a estudos da arquitetura MIPS, assim pode estudar a linguagem Assembly MIPS com a IDE MARS. Geralmente é utilizado na disciplina de Arquitetura e Organização de Computadores no curso Bacharelado em Ciência da Computação, o qual segue o livro do Patterson, Organização e Arquitetura de Computadores.

O MARS foi desenvolvido em Java e a partir do release 4.0, contém 155 instruções básicas da arquitetura MIPS, aproximadamente 370 pseudo-instruções, 17 funções syscalls para o console e entrada e saída de dados, outras 22 funções syscalls para outros usos como o MIDI output, para as saídas de mídia, geração de números aleatórios.

A linguagem Assembly é o que no mundo da computação, chamamos de linguagem de montagem. É basicamente faz o intermediário entre as linguagens de programação que nós usuários usamos e o que o computador interpreta.

Download do MARS

Pré-requisito: Precisa ter o JRE instalado no computador.

Uma vez tendo o JRE instalado no computador, faça o download do JAR MARS e execute no terminal, onde salvou o arquivo JAR MARS, conforme segue:

PS: Até a data de publicação deste post, a versão atual do MARS é 4.5, então dependendo da data que esteja seguindo esse post, adapte pela respectiva versão.

$ java -jar Mars4_5.jar

Vamos fazer o primeiro programa em Assembly MIPS?

HelloWorld.asm

.text
la $a0, showHelloWorld
li $v0, 4
syscall

.data
showHelloWorld: .asciiz "Hello World em Assembly MIPS!"

O que faz esse código?

Podemos ver as diretivas e novos elementos. Temos a instrução la, que vai nos servir para armazenar o endereço de algum elemento em um registrador específico. Nesse caso, estamos pegando o endereço do rótulo 'showHelloWorld'. Um rótulo é como se fosse uma marcação daquele endereço específico. E com essa marcação, podemos acessar esse endereço por esse rótulo.

Depois, temos a primeira syscall. Uma syscall é uma chamada do sistema, literalmente falando. Como ela funciona? Essa chamada do sistema tem dois registradores padrão de argumentos. O $a0 e o $v0. Para essa syscall, que é de imprimir uma string no console, enviamos o endereço da string que queremos imprimir para $a0 e o código da operação enviamos para $v0. Esse código da operação podemos consultar no Help apertando F1 e indo na aba Syscalls. Após enviarmos os valores para os registradores de argumento da syscall, fazemos uma chamada com o comando syscall no nosso código.

Também temos uma nova diretiva, o .asciiz, que é a diretiva responsável por representar os caracteres da string a seguir em ASCII com a terminação '\0'.

Fora os novos elementos do código, é visível que ele está melhor estruturado, separando o que é do segmento de texto e o que é do segmento de dados.

Após compilar o nosso código, na nossa tela de execução teremos algo diferente. O nosso segmento de dados não está mais vazio. Agora, contém nele a nossa string “Hello World em Assembly MIPS!”, que enviamos com a diretiva .asciiz. Podemos executar o programa pressionando o F5 ou através do F7 e ver como o processador faz a execução de cada instrução.

Feito!

segunda-feira, 11 de outubro de 2021

Conhecendo o Clockify

O que é Clockify?

É uma ferramenta de controle de horas 100% gratuita e ilimitada para equipes e autônomos.

Ideal para acompanhar os horários dos colaboradores e as horas faturáveis, o andamento dos projetos, relatório, cronogramas e muito mais. Controle o tempo usando um cronômetro ou registre as horas manualmente.

Permite gerar relatórios semanalmente, mensalmente e anualmente de projetos realizado pela equipe.

Disponível na versão web, dispositivos móveis (Android, iOS) e desktop para Windows, Linux e macOS.

Também tem extensão no Google Chrome e Mozilla Firefox .

Quem utiliza o Clockify?

Autônomos, consultores, trabalhadores remotos, pequenas e médias empresas, agências digitais, ONGs, universidades e empresas.

O Clockify foi fundado em 2017 e pode ser acessado https://clockify.me/

O Clockify tem uma API REST que pode desenvolver a integração no sistema, caso tiver interesse.

Feito!

quinta-feira, 7 de outubro de 2021

Instalando o MongoDB Compass no Linux

O que é MongoDB Compass

MongoDB Compass é uma ferramenta gráfica do MongoDB, que torna mais fácil utilizar os recursos do MongoDB.

Procedimentos de instalação do MongoDB Compass em distro derivada do Debian


$ wget https://downloads.mongodb.com/compass/mongodb-compass_1.26.1_amd64.deb

$ sudo dpkg -i mongodb-compass_1.26.1_amd64.deb

$ mongodb-compass &

Verifique no gerenciador gráfico que estiver utilizando na distro derivada do Debian, se o MongoDB Compass aparece no menu. Deve aparecer.

Feito!

segunda-feira, 4 de outubro de 2021

Instalando e Configurando o MongoDB Community Edition no Linux

MongoDB é um software de banco de dados orientado a documentos livre, de código aberto e multiplataforma, escrito na linguagem C++. Classificado como um programa de banco de dados NoSQL (não relacional), o MongoDB usa documentos semelhantes a JSON com esquemas.

Preparação para instalação do MongoDB

$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

$ sudo apt install gnupg

$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

Ubuntu 20.04

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Ubuntu 18.04

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Ubuntu 16.04

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Debian 10

$ echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Atualizar a lista de repositório

$ sudo apt update

Instalando o MongoDB via APT

$ sudo sudo apt install -y mongodb

Inicializar o serviço do MongoDB

$ sudo systemctl start mongodb

Caso exibir o erro abaixo

"Failed to start mongod.service: Unit mongod.service not found."

$ sudo systemctl daemon-reload

Verificar o status do serviço MongoDB

$ sudo systemctl status mongod

Para parar o serviço MongoDB

$ sudo systemctl stop mongod

Para reiniciar o serviço MongoDB

$ sudo systemctl restart mongod

Log do MongoDB

O log do MongoDB fica no caminho /var/log/mongodb/mongod.log, então verifique em tempo real com o comando abaixo:

$ sudo tail -f /var/log/mongodb/mongod.log

Feito!

domingo, 3 de outubro de 2021

Conhecendo o Mendeley

O que é Mendeley?

O Mendeley é um gerenciador de bibliografias e artigos, também uma rede social que conecta pesquisadores científicos. O gerenciamento de bibliografias pode ser realizado tanto local (seu computador), quanto à distância (via Internet na sua conta).

Ao adicionar um artigo no Mendeley, o banco de dados buscará na Internet informações sobre o artigo e construirá a bibliografia para você. Essa busca é feita através do título do artigo e pelo DOI (Digital Object Identifier), que é um padrão de identificação de documentos na Internet. Essa funcionalidade é apenas para artigos no formato PDF.

Instalando o Mendeley no Linux (Ubuntu)

$ sudo apt-add-repository https://www.mendeley.com/repositories/ubuntu/stable/amd64/mendeleydesktop-latest

$ sudo apt update

$ sudo apt install mendeleydesktop

Pronto, o Mendeley está instalado. Abre o Mendeley, loga na sua conta ou crie uma, caso não existir. Depois em Tools > Options> na aba General. Insere os artigos em Add Documents. Caso preferir pode usar a opção "Watched Folder", que monitora os diretórios. Essa opção faz a busca dos artigos em PDF para inserir no banco de dados na hora que for iniciado. Verifique em Tools>Options> na aba "Watched Folder".

Também tem a extensão Mendeley no Google Chrome ( https://chrome.google.com/webstore/detail/mendeley-web-importer/dagcmkpagjlhakfdhnbomgmjdpkdklff ).

Feito!

sábado, 25 de setembro de 2021

Conhecendo o Notion

O que é Notion?

Notion é uma aplicação para organizar tarefas, que fornece componentes em: notas, bases de dados, quadro no estilo Kanban, wikis, calendários e lembretes. Assim você pode interligar os componentes para criar seus próprios sistemas de gerenciamento do conhecimento, tomada de notas, gerenciamento de dados, gerenciamento de projetos, entre outros. Estes componentes e sistemas podem ser utilizados individualmente ou em colaboração com outros usuários do Notion.

É possível utilizar o Notion na versão web no browser que utiliza diariamente e/ou no aplicativo disponível para Android e iOS, sendo sincronizado entre o aplicativo e web.

Como começar a utilizar o Notion?

O primeiro passo é criar uma conta no Notion pelo aplicativo Android/iOS ou na versão web, pode escolher sincronizar com a sua conta do Google ou da Apple ou outro e-mail seu a sua escolha.

Após a criar a conta no Notion, explore os recursos disponíveis para utilizar na organização de suas tarefas diárias.

Feito!

segunda-feira, 20 de setembro de 2021

Conhecendo o Spiceworks

O que é Spiceworks?

O Spiceworks é um software gratuito de gestão de ativos de TI que oferece monitoramento de redes e ferramentas de suporte técnico. A ferramento de monitoramento de redes permite rastrear a infraestrutura crítica de TI, como servidores, dispositivos IP e comutadores, enquanto a de suporte técnico inclui recursos para gestão de chamados, relatórios, automação de regras de chamados e integração com diretórios ativos.

O software é adequado principalmente para pequenas e médias empresas e está disponível nas versões local e na nuvem.

Prós: O Spiceworks é simples e fácil de usar. Os usuários dizem que a comunidade Spiceworks responde às dúvidas rapidamente e muitos mencionam que o programa se diferencia de outras ferramentas gratuitas pelo volume de funcionalidades disponíveis.

Contras: Os usuários reclamam que às vezes o aplicativo fica lento. Alguns também reclamam da sua configuração um pouco complicada e muitos se queixam do excesso de publicidade.

Apenas é possível instalar no ambiente Windows, conforme os requisitos mínimos que segue abaixo:

  • Windows 7, Windows 8, Windows Server 2008 R2 or Windows Server 2012 R2
  • 1.5 GHz Pentium 4 class processor
  • 4 GB RAM

Valor do upgrade: Todos os planos oferecidos pelo Spiceworks são gratuitos.

Aplicativos móveis: Android, iOS

Referências

https://www.spiceworks.com/download/inventory/

Feito!

domingo, 19 de setembro de 2021

Configurando o VSCode para Java

Na postagem Configurando ambiente de desenvolvimento Java no Linux foi detalhado a instalação e configurado do setup Java na máquina. O objetivo deste post é explicar que pode utilizar o editor VSCode para programar em Java. Então, considerando que o seu setup Java está já funcional, caso contrário, verifique no link da postagem anterior, ok?

Instalar o VSCode

No Linux (Debian/Ubuntu)

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg

$ sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/

$ sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" < /etc/apt/sources.list.d/vscode.list'
$ sudo apt install apt-transport-https

$ sudo apt update

$ sudo apt install code

Habilitar as extensões

Com o VSCode instalado, abre em seguida e vai em "Extensions" (Ctrl+Shift+K) e pesquise as extensões que ajudam ao programar em Java para instalar.

Extensões: Java Extension Pack,Spring Boot Extension Pack, Spring Boot Dashboard, lombok

Se versiona o projeto com Git, então a extensão "Git Blame" não deve faltar. 😂

Criar projeto Java pelo VSCode

Pressione o atalho Ctrl+Shift+P digite Java overview

Para Projeto Java simples com JUnit, escolha maven-archetype-quickstart

Para Projeto Java Web com Maven, escolha maven-archetype-webapp

Para Projeto Java com Spring Boot, Ctrl+Shift+P Ctrl+Shift+P, digite Spring "Initializr: Generate a Maven Project" OU "Spring Initializr: Generate a Grandle Project"segue os passos normalmente.

Adicionar e remover dependências no projeto rapidamente

No arquivo pom.xml aberto, clica com botão direito, seleciona "Edit starters" e escolhe as dependências que deseja adicionar ou remover.

Tomcat

No Java overview instalar a extensão Tomcat

Adicionar o caminho do diretório Tomcat em TOMCAT SERVERS

clicar em "+" e adicionar o diretório do Apache Tomcat

clicar com botão direito em apache-tomcat e iniciar

Em MAVEN PROJECTS, verifique em war

war
  war:war clicar na seta ->

Verificar em target que foi gerado o arquivo.war

Clicar com botão direito do arquivo.war e "Run on Tomcat Server"

Clicar com botão direito do arquivo.war e "Open on Browser"

Irá abrir o browser default na URL http://localhost:8080/ContextoProjeto

OBS: No lugar de "ContextoProjeto" corresponde ao nome do projeto

Referências

https://code.visualstudio.com/docs/java/extensions

Feito!

sábado, 18 de setembro de 2021

Configurando ambiente de desenvolvimento Java no Linux

O objetivo deste post é explicar os procedimentos de configuração do ambiente de desenvolvimento Java Web no Linux na distro Debian e Ubuntu.

openJDK

Usando PPA

Adicionar o repositório openJDK para facilitar o gerenciamento de versões

$ sudo add-apt-repository ppa:openjdk-r/ppa

Atualizar a lista de repositório

$ sudo apt-get update

Instalação da versão openJDK 8

$ sudo apt-get install openjdk-8-jdk

Substitua o 8 pela versão outra versão do openJDK que desejar, como 9, 10, 11, 12, 13, 14, 15, 16, 17, 18

Pelo repositório oficial da distro

Outra opção de instalação do openJDK, caso não costuma instalar pacotes com PPA, mas sim apenas no repositório oficial da distro, então é descrito nessa seção.

$ sudo apt install default-jdk

Irá instalar a versão corrente do openJDK disponível no repositório oficial da distro Debian/Ubuntu

Caso por necessidade do projeto precise instalar o openJDK 8, segue os procedimentos

$ sudo apt install apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common

$ wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -

$ sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

$ sudo apt install adoptopenjdk-8-hotspot

Verificar a versão

$ java -version

Alterar a versão do openJDK default no PATH

$ sudo update-alternatives --config java

Irá listar as versões openJDK disponíveis no sistema e selecione a versão openJDK que deseja utilizar como default

Definir o caminho absoluto do openJDK default na variável JAVA_HOME

$ sudo vim /etc/environment

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

ESC + :x (salvar e sair do editor Vim)

Testar

$ source /etc/environment

$ echo $JAVA_HOME

Apache Maven

Download do Apache Maven

O Apache Maven é um gerenciador de bibliotecas e suas dependências do projeto Java. O Maven mantém o arquivo pom.xml para centralizar as bibliotecas que o projeto irá precisar.

Até a data de publicação deste post, a versão atual do Maven é 3.8.2, caso por eventual motivo desejar obter uma versão anterior ou dependendo da data que estiver seguindo esse post, acesse a URL https://downloads.apache.org/maven/ e escolha a versão mais recente.

$ wget https://downloads.apache.org/maven/maven-3/3.8.2/binaries/apache-maven-3.8.2-bin.tar.gz -P /tmp

$ sudo tar -xzvf /tmp/apache-maven-3.8.2-bin.tar.gz -C /opt

Configuração do ambiente para o Maven

Para que o Maven funcione corretamente, precisa configurar as variáveis de ambiente. Isso inclui: JAVA_HOME, M3_HOME, MAVEN_HOME, PATH

Adicione o conteúdo abaixo no arquivo /etc/profile.d/maven.sh

$ sudo vim /etc/profile.d/maven.sh

export JAVA_HOME=/usr/lib/jvm/default-java
export M3_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=$M2_HOME/bin:$PATH

ESC +:x (salvar e sair do editor Vim)

Permissão ao script /etc/profile.d/maven.sh

$ sudo chmod +x /etc/profile.d/maven.sh

Load do script setado nas variáveis de ambiente

$ source /etc/profile.d/maven.sh

Download e configuração do Apache Tomcat

Criar um grupo e usuário no Tomcat sem acesso ao terminal

$ sudo groupadd tomcat
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

De forma análoga que foi comentado na versão do Maven, segue o mesmo para versão do Tomcat. Até a data de publicação deste post, a versão recente do Tomcat é 9.0.53.

$ wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz

$ sudo tar -xzvf apache-tomcat-9.0.53.tar.gz -C /opt --strip-components=1

$ sudo chgrp -R tomcat /opt/tomcat

$ sudo chown -R tomcat /opt/tomcat/webapps/ /opt/tomcat/work/ /opt/tomcat/temp/ /opt/tomcat/logs/

$ sudo chmod -R g+r /opt/tomcat/conf

$ sudo chmod g+x /opt/tomcat/conf

$ sudo vim /etc/systemd/system/tomcat.service

SystemD Arquivo tomcat.service

[Unit] Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_Home=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS.awt.headless=true -Djava.security.egd=file:/dev/v/urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target

ESC +:x (salvar e sair do editor Vim)

$ sudo systemctl daemon-reload

Configurar a interface de gerenciamento Tomcat

Edite o arquivo tomcat-users.xml

$ sudo vim /opt/tomcat/conf/tomcat-users.xml

Arquivo tomcat-users.xml simplificado

<tomcat-users . . .>
<tomcat-users . . .>
>user username="admin" password="password" roles="manager-gui,admin-gui"/>
</tomcat-users>

Gerenciador de host no Tomcat: /opt/tomcat/webapps/manager/META-INF/context.xml

Iniciar/Reiniciar o serviço Tomcat

$ sudo systemctl start tomcat

$ sudo systemctl restart tomcat

Acesso gerenciador Tomcat pela interface web

http://IP:8080/manager

Feito!

terça-feira, 31 de agosto de 2021

Conhecendo o Logisim

O que é Logisim?

Logisim é uma ferramenta educacional para a concepção e a simulação digital de circuitos lógicos. Possui uma interface simples e com ferramentas para simular circuitos a medida em que são construídos, é simples o bastante para facilitar a aprendizagem dos conceitos mais básicos relacionados aos circuitos lógicos. Com o recurso de construir circuitos maiores a partir de subcircuitos menores, traçar conexões com um mero arrastar do mouse, o Logisim pode ser usado (e é usado) para projetar e simular CPUs completas para fins educacionais.

O Logisim é um software gratuito com a licença sob os termos GNU General Public License, versão 2.

Instalando o Logisim no Linux

Debian e derivados

$ sudo apt install logisim

Fig. Screenshot Logisim

Feito!

sábado, 21 de agosto de 2021

10 anos de blog

O blog está completando hoje, 21 de Agosto de 2021, 10 anos!

Gostaria de agradecer a todos pelo prestígio e a paciência de ler os posts que são publicados. Espero continuar compartilhando conhecimentos no blog para nossos leitores. Continuem prestigiando e divulgando o blog Mundo da Computação Integral, assim aumentamos nossa comunidade.

quarta-feira, 11 de agosto de 2021

Configurando ambiente de desenvolvimento .NET Core no Linux

O que é .NET Core?

O .NET Core é uma plataforma para desenvolvimento de aplicações criada e mantida pela Microsoft como um projeto de código aberto. Sendo uma solução mais leve e modular que o .NET Framework e pode ser usada em diiferentes sistemas operacionais como Windows, Linux e macOS.

Qual é a diferença entre .NET Framework e .NET Core?

O .NET Framework é usado para desenvolvimento de aplicações Windows usando Windows Forms, WPF e de aplicações web com ASP.NET MVC.

O .NET Core é usada para criar aplicações web para Windows, Linux e macOS.

Consere usar o .NET Core se:

  • Você tiver necessidades da aplicações ser executada no Windows, Linux, macOS;
  • Você estiver direcionando microserviços;
  • Você estiver usando contêineres do Docker;
  • Você precisar de alto desempenho e sistemas escalonáveis;
  • Você precisar de versões do .NET correspondente a cada aplicativo

Considere usar o .NET Framework se:

  • Seu aplicativo usar o .NET Framework atualmente é estender ao invés de migrar;
  • Seu aplicativo usar bibliotecas .NET de terceiros ou pacotes NuGet não disponíveis para o .NET Core;
  • Seu aplicativo usa tecnologias .NET que não estão disponíveis para o .NET Core;
  • Seu aplicativo usa uma plataforma que não oferece suporte ao .NET Core;

Instalando o .NET Core no Linux

Debian e derivados

$ wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb

SDK .NET Core

$ sudo apt update
$ sudo apt install -y apt-transport-https
$ sudo apt update

Caso desejar instalar a versão inferior da 5, substituir pela versão correspondente no lugar de 5.0.

$ sudo apt install -y dotnet-sdk-5.0

RHEL e derivados

$ sudo dnf install dotnet-sdk-5.0

openSUSE

$ sudo zypper install libicu
$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
$ wget https://packages.microsoft.com/config/opensuse/15/prod.repo
$ sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo
$ sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo
$ sudo zypper install aspnetcore-runtime-5.0


Criando o primeiro projeto .NET Core

Após ter instalado o SDK do .NET Core, crie um diretório de sua preferência para o primeiro projeto .NET Core.

Abre o terminal e execute no diretório destinado aos projetos .NET Core.

$ mkdir -p $HOME/projetos-netcore; cd $HOME/projetos-netcore

Projeto .NET Core do tipo console

$ dotnet new console -n nome-projeto -lang {C#|F#|VB}

A linguagem default é C#, logo se for criar o projeto .NET Core com C#, não é necessário especificar.

Para projeto .NET Core do tipo ASP.NET Core Web App (Model-View-Controller).

$ dotnet new mvc -n nome-projeto

Acesse o diretório do projeto e execute para compilar e executar o projeto.

Compilar o projeto .NET Core

$ dotnet build

Executar o projeto .NET Core

$ dotnet run

Para não parecer oneroso de usar o terminal para criar, compilar e executar o projeto .NET Core. Então, no Linux tem um ótimo editor também da Microsoft, é o VSCode, que permite instalar as extensões, no caso do .NET Core, recomenda a extensão C#, NuGet. Com isso, permite fazer tudo no VSCode.

O NuGet é o gerenciador de bibliotecas do C#, de forma similar ao Composer do PHP e Maven do Java.

Fig. 1 Screenshot de compilação e executação do projeto .NET Core

Fig. 2 Screenshot de execução do projeto .NET Core no VSCode

Referências

[1] Macoratti.net
[2] Docs Microsoft

Feito!

domingo, 8 de agosto de 2021

Conhecendo o Pencil Project

O que é Pencil Project?

É uma ferramenta de prototipagem, vastamente utilizada para a modelagem de interfaces de soluções de software. O Pencil é possível que seja modelado soluções de software com uso de templates, que podem ser usados em diversos cenários, para reproduzir interfaces.

É software livre e de código aberto, com licença GNU GPLv2 e está disponível para Linux, Windows e macOS.

Instalando o Pencil no Linux

Até a data de publicação deste, a versão do Pencil é 3.1.

Debian e derivados

$ wget -c "https://pencil.evolus.vn/dl/V3.1.0.ga/pencil_3.1.0.ga_amd64.deb"
$ sudo dpkg -i pencil_3.1.0.ga_amd64.deb

RHEL e derivados

$ wget -c "https://pencil.evolus.vn/dl/V3.1.0.ga/pencil-3.1.0.ga-1.x86_64.rpm"
$ sudo rpm -iv pencil-3.1.0.ga-1.x86_64.rpm

Referências

[1] https://pencil.evolus.vn/Downloads.html

Feito!

quinta-feira, 5 de agosto de 2021

Conhecendo o Krita

O que é Krita?

Krita é um software de criação de ilustrações, pinturas digitais, animações, pode ser usado para retoques e manipulação de fotos, conversor de formatos, suporta vários modelos de cores e pintura HDR. Possui uma interface de baixa distração, suporte acelerado de alta qualidade OpenGL, suporte a gerenciamento de cores, mecanismo avançado de pincéis, camadas e máscaras não-destrutivas, gerenciamento de camadas em grupo, suporte a arte vetorial e perfis de customização alternáveis.

É software livre e de código aberto, com licença GNU GPLv3 e está disponível para Linux, Windows e macOS.

Em resumo, o Krita é o Paint do Linux, mas com mais recursos.

Instalando o Krita no Linux

Debian e derivados

$ sudo apt install krita

RHEL e derivados

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo dnf upgrade

Fig. 1 Screenshot do Krita

Feito!

terça-feira, 3 de agosto de 2021

Conhecendo o Microsoft Teams

O que é Microsoft Teams ?

Microsoft Teams é uma plataforma unificada de comunicação e colaboração que combina bate-papo, videoconferências, armazenamento de arquivos e integração de aplicativos no local de trabalho.

O serviço se integra ao pacote de produtividade Office 365 e apresenta extensões que podem ser integradas a produtos que não são da Microsoft.

Possui suporte aos SOs: Windows, Linux, macOS

Instalando o cliente Microsoft Teams no Linux

Debian e derivados

$ wget --quiet -O - https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
$ echo "deb https://packages.microsoft.com/repos/ms-teams stable main" | sudo tee /etc/apt/ sources.list.d/microsoft-teams.list
$ sudo apt install teams

RHEL e derivados

$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
$ sudo sh -c 'echo -e "[teams]\nname=teams\nbaseurl=https://packages.microsoft.com/yumrepos/ms-teams\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/teams.repo'
sudo dnf check-update
sudo dnf install teams


Agendando uma reunião no Microsoft Teams

Após instalar o cliente Microsoft Teams, segue os procedimentos:

  1. Acessar com sua conta ou criar uma nova, caso não tiver
  2. Ir em calendário, clicar no botão "New meeting" ou "Nova reunião"
  3. Preencher os campos solicitados, como: título, e-mail dos participantes, data, horário inicial e final, escrever uma breve descrição
  4. Por fim, clicar no botão "Send" ou "Enviar"

Os participantes receberão um e-mail com o invite para participar e no dia do agendamento, irão receber uma notificação de lembrete 10 minutos antes do horário agendado.

Feito!

domingo, 1 de agosto de 2021

Conhecendo o Beekeeper Studio

O que é Beekeeper Studio?

O Beekeeper Studio é um software cliente que suporta os SGBD MySQL, MariaDB, PostgreSQL, SQLite, MS SQL Server, CockroachDB, Amazon Redshift.

Possui licença MIT.

Suporte aos SOs: Windows, Linux, macOS

Recursos

  • Autocompletar query SQL com sintaxe highlighting
  • Interface com guias para multitarefas
  • Classificação e filtro de dados da tabela para encontrar o que exatamente precisa
  • Atalhos de teclado
  • Histórico de execução de consulta
  • Tema dark padrão

Instalando no Linux

Debian e derivados

# Adicionar a chave GPG do Beekeeper
$ wget --quiet -O - https://deb.beekeeperstudio.io/beekeeper.key | sudo apt-key add -

# Adicionar a lista de repositório
$ echo "deb https://deb.beekeeperstudio.io stable main" | sudo tee /etc/apt/sources.list.d/beekeeper-studio-app.list

# Atualizar a lista de repositório e instalar via APT
$ sudo apt update
$ sudo apt install beekeeper-studio


Referências


[1] https://docs.beekeeperstudio.io/

Feito!

quinta-feira, 1 de julho de 2021

Configurando o MS SQL Server no ambiente Docker

O objetivo deste howto é explicar os procedimentos para instalar o SGBD MS SQL Server no ambiente Docker com a imagem container oficial disponibilizada pela Microsoft no Docker Hub.

A premissa é ter Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker-Compose no Linux ou Instalando Docker e Docker-Compose no Windows 10 .

$ mkdir $HOME/ambiente-mssql-docker && cd $HOME/ambiente-mssql-docker

Crie o arquivo docker-compose.yml, conforme o conteúdo abaixo:

docker-compose.yml
version: "3.2"
services:

  mssql-db:
    container_name: mssql-db
    image: mcr.microsoft.com/mssql/server:2019-latest
    ports:
      - "1433:1433"
    environment:
      SA_PASSWORD: "YourStrong@Passw0rd"
      ACCEPT_EULA: "Y"

Executar o build e execução do ambiente MS SQL Server na raíz do diretório ambiente-mssql-docker.

OBS: Antes de executar, verificar se a porta 1433 está disponível na sua máquina.

$ docker-compose up -d

$ docker ps -a

Aguarde e após estiver OK. Acesse o container mssql-db que subiu, conecte com o password definido conforme a política de senha padrão do SQL Server.

$ docker exec -it mssql-db bash

Ao entrar no contêiner, conecte-se localmente com a sqlcmd. O sqlcmd não está no caminho por padrão, portanto, você precisará especificar o caminho completo.

$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "YourNewStrong@Passw0rd"

Criar novo banco de dados

Após conectar no via sqlcmd no contêiner, execute:

CREATE DATABASE ExemploDB

Consultar o nome de todos os bancos de dados do servidor

SELECT Name from sys.Databases

Digite GO em um nova linha para executar os comandos anteriores.

GO

Também é possível gerenciar o SGBD MS SQL Server no ambiente Docker com DBeaver . Basta informar o IP, porta de onde foi instalado o MS SQL Server no ambiente Docker, junto com as credencias definidas no arquivo docker-compose.yml.

Feito!

domingo, 20 de junho de 2021

Conhecendo o editor Micro

O micro é um editor de texto baseado em terminal que visa ser fácil de usar e intuitivo, ao mesmo tempo que tira proveito das capacidades dos terminais modernos. Ele vem como um binário estático único, incluído com baterias, sem dependências; você pode baixar e usar agora mesmo.

Como o próprio nome indica, o micro pretende ser uma espécie de sucessor do editor nano por ser fácil de instalar e usar. Para quem prefere trabalhar no terminal e precisam editar arquivos regurlarmente por SSH.

Instalação


$ sudo curl https://getmic.ro | bash

$ micro nome-arquivo

Referências


https://github.com/zyedidia/micro

Feito!

sábado, 19 de junho de 2021

Conhecendo o utilitário Cheat.sh

O que é Cheat.sh ?

O cheat.sh é um utilitário que fornece acesso de referências orientadas pela comunidade e framentos para comandos UNIX / Linux e muitas linguagens de programação.

O uso mais comum é diretamente pelo terminal, mas pode usar com curl ou em um browser, também tem plugin que pode adicionar nos editores: Vim, VSCode, Sublime Text e IntelliJ Idea.

Instalação

Para instalar o Cheat.sh de forma global no sistema, segue os procedimentos.

$ sudo apt install rlwrap

$ curl https://cht.sh/:cht.sh | sudo tee /usr/local/bin/cht.sh

$ sudo chmod +x /usr/local/bin/cht.sh

Modo de utilizar


$ cht.sh nome-comando-ou-pacote

Referências

https://github.com/chubin/cheat.sh

Feito!

sexta-feira, 18 de junho de 2021

Instalando aplicativos Android no Linux

Nesse howto é apresentado a ferramenta Anbox que permite instalar aplicativos Android no Linux (qualquer distro).

O que é Anbox ?

Anbox é uma ferramenta gratuita e de código aberto que visa permitir que aplicativos para Android sejam executados em distribuições Linux.

Nesse howto é explicado a instalação do Anbox de duas formas, via Snap e via APT (em distros derivados do Debian). Escolhe uma que desejar instalar o Anbox e segue os procedimentos seguintes:

Instalação do Anbox

via Snap

$ sudo snap install anbox

via APT

$ sudo add-apt-repository -y ppa:morphis/anbox-support

$ sudo apt update

$ sudo apt install anbox-modules-dkms

Instalar aplicativos Android no Anbox

Para instalar um aplicativo Android no Linux com o Anbox, digite no terminal

$ adb install $HOME/diretorio-onde-salvou/aplicativo.apk

E para desinstalar um aplicativo Android ?

$ adb uninstall nome-aplicativo

Encontrar aplicativos Android (APK) de código aberto no F-Froid Conhecendo o F-Droid

Desinstalação do Anbox

via Snap

$ sudo snap remove anbox

via APT

$ sudo apt install ppa-purge
$ sudo ppa-purge ppa:morphis/anbox-support

Feito!

Conhecendo o F-Droid

O que é F-Droid?

F-Droid é um repositório de software para Android, servindo uma função semelhante à da Google Play Store. O repositório principal, hospedado pelo projeto, contém apenas aplicativos gratuitos e de código aberto.

Instale o aplicativo F-Droid, acessando o https://f-droid.org no seu smartphone e ao abrir o F-Droid, pesquise o aplicativo gratuito e de código aberto que deseja instalar.

É necessário conceder permissão para instalar aplicativos de terceiros (fora do Google Play Store) no seu smartphone.

As funcionalidades do F-Droid é semelhante ao serviço do Google Play Store.

Feito!

segunda-feira, 31 de maio de 2021

Conhecendo o Snort

O que é Snort ?

O Snort é uma sistema de prevenção a intrusões na rede (Intrusion Prevention System - IPS), open source, mantido e desenvolvido pela Cisco há mais de 5 anos. A ferramenta se destaca por sua capacidade de analisar tráfegos em tempo real e registar pacotes de protocolo TCP.

Por meio dessa versatilidade, o Snort consegue desempenhar o papel de três tipos de aplicações cruciais para monitorar um servidor. Assim, pode ser utilizado como Sniffer de pacotes (de modo similiar ao TCPDump e Wireshark), registrador de pacotes e um sistem avançado de prevenção à intrusão.

O que é um IDS ?

IDS é a sigla para Intrusion Detection System (Sistema de Detecção de Intrusão).O IDS faz o monitoramento, mapeamento, identificação e notificação de atividades suspeitas. Na analogia, o IDS executa as funções semelhantes a um sistema de vigilância, mas abstrato, devido ambos monitoram, contam com sensores e alertas e são controlados por uma equipe de pessoas que tomam as decisões cabíveis a cada evento.

Tipos de soluções IDS

Existem diversas soluções de IDS baseadas em host (Host Instrusion Detection System (HIDS) ou em redes. A primeira consiste no monitoramente e análise de informações extraídas de um host, atuando como um verificador de registros de logs, útil para atividades forenses (forensics).

Por outro lado, quando baseada em rede (Network Instrusion Detection System (NIDS), o foco é o tráfego e a transferência de pacotes. É nesse modo de funcionamento que o Snort se enquadra.

Convém ressaltar, que a implantação simultânea de ambos os modelos de IDS é possível. A fusão do HIDS com NIDS resulta o que chamamos Hybrid Instrusion Detection System, ou seja, um sistema híbrido de detecção de intrusão. Isso é aplicado na segurança de nuvens privadas.

IDS em modo passivo ou reativo

A maneira como a ferramenta age mediante suspeita ou instrusão é um detalhe definido em função do modo de utilização, o qual pode ser passivo ou reativo.

O modo passivo funciona da seguinte maneira: Ao identificar uma atividade maliciosa, o sistema emite notificações ao administrador que, então, exerce a tomada de decisão. Por padrão, o Snort utiliza do modo passivo.

O modo reativo se encarrega de detectar a instrusão, alertar o administrador e executar uma ação. Como as medidas tomadas pelo IDS são previamente configuradas, o modo reativo, que dispõe de ótimos recursos de prevenção, costuma ser o mais indicado.

Métodos de detecção

Por último e não menos importante, temos os parâmetros de detecção de ameaças. Quais são? São os padrões baseados em: anomalias, assinatura e comportamento.

A detecção por anomalias é um modo comum em aplicações IDS. Ela consiste em levantar o que há de habitual na rotina dos usuários da rede, resultando na montagem de um perfil comum. Surgindo eventos discrepantes, o sistema identifica a anomalia como potencial intrusão.

O método baseado em assinturas, por sua vez, toma como alvo atividades que se enquadram ao que o sistema, previamente configurado pelo SysAdmin, classifica como maliciosas. Logicamente, a sua efetividade requer conhecimento amplo das ameaças virtuais existentes.

A detecção baseada em comportamento identifica os ataques em razão do comportamento do usuário. Uma vantagem do méotodo é a sua flexibilidade estratégica, a qual permitie ao administrador definir uma série de pontos que indiquem uma potencial invasão à rede.

Principais funções do Snort

Qual é o método de detecção utilizado no Snort?

As ameaças são detectadas pelo Snort por meio de assinaturas e está é uma das funcionalidades chave da ferramenta. Ainda que possa ter os seus pontos fracos, como as demais, ela funciona muito bem no Snort de modo similar a um antivírus.

As assinaturas são criadas pela equipe da Cisco e, posteriormente, transmitidas aos ausuários por meio de atualizações. Sendo assim, há uma equipe super qualificada, formada por hackers éticos e especialistas em Segurança da Informação, trabalhando na identificação e no provisionamento de novas ameaças.

O uso de pré-processadores é também, uma caracterísiticas importante do Snort. Eles asseguram, por exemplo, a remontagem de pacotes fragmentados, a análise de desempenho e performance, a detecção de dados sigilosos, a normalização de tráfego em várias instâncias, entre outras tarefas cruciais.

Instalação do Snort

Após conhecer sobre as características do IDS e funcionalidades do Snort, chegou a hora de fazer a instalação do Snort e configurá-lo no seu servidor ou computador pessoal.

Testado nas distribuições Debian 10 e Ubuntu 18.04/20.04 LTS

$ sudo apt update

$ sudo apt install snort

No setup da instalação é perguntado a interface de rede e a rede, então informe conforme o seu cenário.

Antes a interface de rede era eth0, passou para enp2s0, mas isso pode variar, e no caso da rede deve informar juntamente com a máscara.

Teste da instalação e configuração do Snort


$ sudo snort -T -c /etc/snort/snort.conf -i enp2s0

A flag -T significa teste, enquanto a -c mostra ao Snort que o diretório leva ao snort.conf e o -i, indica a interface especificada.

Referências

[1] Manual Snort

[2] Snort Monitor de Redes

Feito!

quinta-feira, 27 de maio de 2021

Conhecendo o Wireshark

O que é Wireshark ?

O Wireshark é uma ferramenta  que analisa o tráfego de rede, e o organiza por protocolos. As funcionalidades do Wireshark são semelhantes com o tcpdump, mas possui uma interface gráfica, com mais informação e possibilidade da utilização de filtros.

Através dessa ferramenta é possível controlar o tráfego de uma rede e monitorar a entrada e saída de dados do computador, em diferentes protocolos, ou da rede à qual o computador está ligado.

Também é possível controlar o tráfego de um determinado dispositivo de rede em uma máquina que pode ter um ou mais desses dispositivos. Se você estiver a rede local, com micros ligados através de um hub ou switch, outro usuário pode usar o Wireshark para capturar todas as suas transmissões.

Instalação do Wireshark no Debian e Ubuntu

Ubuntu 18.04/20.04/Debian 10

Atualiza a lista de repositório

# apt update

Instala o Wireshark

# apt -y install wireshark

Na instalação será perguntado se deseja capturar pacotes com usuário não root, selecione "YES" para poder ter permissão com o usuário regular ao capturar pacotes no Wireshark.

Cria o grupo Wireshark

$ sudo groupadd wireshark

Adicionar o usuário regular no grupo wireshark

$ sudo usermod -a -G wireshark $USER

Alterar o grupo wireshark no diretório e setar permissão adequada

$ sudo chgrp wireshark /usr/bin/dumpcap
$ sudo chmod o-rx /usr/bin/dumpcap
$ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
$ sudo chmod +x /usr/bin/dumpcap

Verificar

$ sudo getcap /usr/bin/dumpcap

Saída do comando anterior

/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

Feito!

quarta-feira, 26 de maio de 2021

Conhecendo o TCPDump

O que é TCPDump?

O tcpdump é uma ferramenta utilizada para monitorar os pacotes trafegados numa rede de computadores. Ela mostra os cabeçalhos dos pacotes que passam pela interface de rede.

Alguns exemplos de uso do tcpdump

PS: Adapte a interface de rede e o IP para o seu cenário.

Mostrar quais as ligações de um determinado endereço TCP/IP à porta 80 do seu servidor

# tcpdump -ni esp2s0 src IP and dst port 80

Mostrar as interfaces disponiveis

# tcpdump -D

Mostrar todo o tráfego sem resolver nomes

# tcpdump -n

Mostrar todo o tráfego UDP no adaptador esp2s0

# tcpdump -nAi esp2s0 udp

Mostrar todo o tráfego no host 192.168.2.3 e UDP sem resolver nomes

# tcpdump -n host 192.168.2.3 and udp

Mostrar todo o tráfego no host 192.168.2.3 que seja UDP e destino ou origem a porta 53

# tcpdump -n host 192.168.2.3 and udp and port 53

Mostrar todo o tráfego no host 192.168.2.3 que seja UDP qualquer porta menos a 53 mostra o cabeçalho da camada 2 (enlace)

# tcpdump -ne host 192.168.2.3 and udp and port ! 53

Mostrar todo o tráfego com origem ou destino na porta 80 ou apenas da porta 110

# tcpdump -n tcp and '(port 80or src port110)'

Mostrar os pacotes ICMP referente a qualquer host da rede 192.168.2.0/21 sem resolver nomes

# tcpdump -n icmp and net 192.168.2.0/21

Mostrar todo o tráfego referente ao MAC especificado em resolver nomes

# tcpdump -n ether host 00:ff:31:22:2d:11

Referências


Manual TCPDump

Feito!