jul 052020
 

A mágica do GNU/Linux muitas vezes acontece sem que você tenha sequer uma interface gráfica para uso amigável, porém, o shell (ou o terminal) também tem suas malícias para agilizar o seu trabalho.

Você pode trabalhar com várias aplicações ao mesmo tempo sem ter que terminar o que estava fazendo para iniciar uma nova tarefa, isso graças aos comandos “jobs”, “fg” e “bg”. “Jobs” significa “Trabalhos” e serve para exibir tudo o que você está fazendo no shell do GNU/Linux mas que está em segundo plano. Claro, você precisa mandar as tarefas para segundo plano para poder utilizar o comando “jobs”.

“fg” (foreground) serve para trazer as tarefas que estão em segundo plano para o primeiro plano, assim você pode continuar fazendo o que estava fazendo anteriormente.

Já a última opção, “bg” (background) serve para continuar executando tarefas em segundo plano, para que o shell fique livre e você possa executar outras tarefas sem interromper a tarefa anterior.

Vamos ver alguns exemplos práticos para que você entenda melhor.

Continue reading »

abr 192020
 

Esta dica irá mostrar um exemplo de configuração do lshell, em um sistema Debian Squeeze, para limitar a execução de comandos previamente liberados para um determinado usuário ou grupo, bem como os diretórios aos quais o usuário poderá ter acesso, dentre outras opções relacionadas ao seu ambiente shell.

Instalação do lshell:

# aptitude install lshell

Configuração do lshell – /etc/lshell.conf:

# gedit /etc/lshell.conf

[global]

## Diretório de logs.
## Usuário deve ser membro do grupo lshell.

logpath     : /var/log/lshell/

## Nível de log: 0, 1, 2 ou 3.
loglevel      : 3

## Nome do arquivo de log. (Padrão %u.log. Ex: usuario.log)
logfilename   : %y%m%d-%u

## Configuração padrão. Poderão ser criadas configurações
## separadas para cada usuário ou grupo.
## Ex: [usuariox], [grp:users]

[default]

## Lista de comandos permitidos ao usuário. Use ‘all’ para permitir
## todos os comandos na variável PATH do usuário.

allowed     : [‘ls’,’echo’,’cd’,’ll’,’date’,’hora’,’vim’,’vi’,’cat’]

## Lista de comandos ou caracteres proibidos.
forbidden     : [‘;’, ‘&’, ‘|’,’`’,’>’,'<‘, ‘$(‘, ‘${‘, ‘cat’]

## Lista de comandos permitidos quando usados com sudo.
## Devem estar previamente configurados em /etc/sudoers.

sudo_commands    : [‘modprobe’, ‘iptables’]

## Número de avisos que o usuário terá antes de ser desconectado
## após tentar entrar em um diretório não permitido ou executar
## um comando da lista ‘forbidden’.

warning_counter : 5

## Aliases para comandos. (alias e comando devem estar na lista ‘allowed’)
aliases     : {‘ll’:’ls -l’, ‘vi’:’vim’, ‘hora’:’date +%H:%M’}

## Texto a ser exibido ao iniciar o lshell.
intro      : “== Ambiente restrito ==\nDigite ‘?’ ou ‘help’ para ver a lista de comandos permitidos.”

## Tempo máximo de inatividade em segundos antes
## do usuário ser automaticamente desconectado.

timer      : 300

## Lista de pastas as quais poderão ser acessadas pelo usuário.
path      : [‘/tmp/’,’/var’]

## Define o diretório home do usuário. Se não especificado,
## sera utilizado o valor da variável de ambiente $HOME.
#home_path    : ‘/home/usuario/’

## Altera a variável de ambiente PATH do usuário.
#env_path    : ‘:/usr/local/bin:/usr/sbin’

## Permite ou proíbe o uso de SCP pelo usuário. ( 1 permitir – 0 negar)
scp      : 1

## Permite ou proíbe uploads com SCP ( 1 permitir – 0 negar).
## Parâmetro ‘scp’ deve possuir valor 1.

scp_upload    : 1

## Permite ou proíbe downloads com SCP ( 1 permitir – 0 negar).
## Parâmetro ‘scp’ deve possuir valor 1.

scp_download    : 0

## Permite ou proíbe o uso de SFTP ( 1 permitir – 0 negar).
sftp      : 1

## Lista de comandos permitidos através de SSH.
## Ex: ssh [email protected] ‘ls ~’

overssh      : [‘ls’,’rsync’]

## Considerar ou não comandos inválidos como ação proibida, se 1,
## comandos inválidos irão gerar avisos que poderão desconectar
## o usuário, conforme parâmetro ‘warning_counter’.

strict      : 0

## Forçar pasta de destino para arquivos enviados por SCP.
scpforce      : “/tmp”

## tamanho máximo do arquivo history.
history_size    : 100

## Nome do arquivo contendo o hipótrico de comandos.
history_file    : “/home/%u/.lshell_history”

Continue reading »

SHELL IN A BOX – ACESSANDO O SHELL LINUX PELO NAVEGADOR WEB

 Apache2, Clusterweb, ClusterWeb, Debian, Leitura Recomendada, Linux, Profissional de TI, Redes, Shell Script, Ubuntu  Comentários desativados em SHELL IN A BOX – ACESSANDO O SHELL LINUX PELO NAVEGADOR WEB
abr 192020
 

Esta, é apenas uma dica que tem o intuito de mostrar e divulgar uma ferramenta para acessar o Linux / Shell através de um navegador Web. Sendo assim, não entrarei em detalhes sobre instalação e configuração do mesmo.

No entanto, com a evolução das distribuições Linux, já existem pacotes que podem ser executados e instalados automaticamente, como no caso o Shell in A Box, que oferece o pacote de instalação no formato “.deb”, podendo ser instalado diretamente em distro baseadas no Debian / Ubuntu.

A FERRAMENTA

O Shell in A Box é ideal quando há necessidade de acessar remotamente um computador. Muitas vezes ‘sendo obrigado’ ou, não tendo outras maneiras de acessá-lo, tendo apenas o Navegador Web.

Uma das grandes vantagens do Shell in A Box, é que o mesmo já traz consigo um servidor Web próprio que escuta a porta 4200, sendo assim, logo após instalá-lo, já está disponível para acesso via Web sem a necessidade de nenhuma outra configuração.

Para acessá-lo, basta apenas abrir um Navegador Web, e digitar o seguinte endereço: https://localhost:4200

Desta maneira, você terá acesso no computador local.

Para acessá-lo remotamente, basta digitar o seguinte endereço: https://IP_Servidor_Shell_in_A_Box:4200/

Linux: Shell In A Box - Acessando o Shell Linux pelo Navegador Web

O Shell in A Box suporta atividades diretas com editores de texto, podendo usar editores como VI, VIM, JOE, entre outros.

Ao acessar o servidor pelo navegador, o Shell in A Box não permite acesso direto ao root, sendo assim, há necessidade de acessar com outro usuário, e depois de fazer o login como root.

Para baixá-lo, basta acessar o seguinte link:

Maio 242019
 

PRELIMINARES

 

Um pouco da história sobre este estudo.

Resolvi criar este artigo devido à dificuldade em encontrar material de apoio sobre como utilizar o script “ghettoVCB.sh” para efetuar snapshots de máquinas virtuais de servidores ESXi 5.0, de forma automatizada.

O script ghettoVCB é simples, prático e fácil de configurar na sua forma básica (caminho_destino + número_cópias), que é o que, na prática, todo administrador precisa (efetuar snapshot das máquinas virtuais quentes salvando no destino desejado).

E é com este intuito que escrevi este tutorial. O meu objetivo era montar uma solução *FREE* automatizada para snapshot das VMs, utilizando recursos simples e básicos.

Para isso, utilizei também um servidor (em VM) Ubuntu Server 11.04 64 bits. Neste material, cito a possibilidade de backup através de um servidor NFS na rede, mostrando de forma simples e objetiva, como instalar e configurar este recurso.

Resumindo, este artigo trata da minha experiência na configuração do script, efetuando snapshot das VMs quentes, com agendamento programado em um servidor GNU/Linux com Ubuntu Server 11.04, salvando as snapshots em um case de HD conectado à porta USB da máquina física ESXi e também em um storage com FreeNAS instalado em máquina física através de NFS e iSCSI.

Como abordo de forma simples o script ghettoVCB, sugiro visitar a comunidade VMware para informações específicas sobre o funcionamento da ferramenta:

How to Install Let’s Encrypt on Apache2

 Apache2, Clusterweb, ClusterWeb, Debian, Linux, Profissional de TI, Redes, Segurança, Shell Script  Comentários desativados em How to Install Let’s Encrypt on Apache2
nov 052018
 

Improving your website security through encryption, even on the most basic servers, can increase your visitors’ trust in your site and your ability to run it. Setting up encryption on your web host has generally been complicated and expensive, which often deters administrators whose web applications might not depend on user input. Let’s Encrypt aims to change this by making implementing encryption on any website easier. They are an open and free project that allows obtaining and installing of certificates through simple, automated, commands.

Let's Encrypt Project Logo

Continue reading »

mar 262018
 

I have wrote a post regarding on how to access ftp host using curl. And this time, let us look at how to mount the ftp host to a local directory on top of FUSE.

FUSE (Filesystem in userland) is a userland build on top of virtual filesystem, it allows you to implement functional filesystem in userspace application. Robson Braga Araujo wrote an app based on fuse and curl that allows you to mount a ftp host to a local directory, curlftpfs.

What is the benefit of mounting ftp host to a local directory?
The most obvious benefit is easing file management in ftp host. After mounting ftp host to a local dir, you can simply copy, move and delete files using command such as cp, mv, rm. You can easily transfer files from your localhost to ftp host and vice versa.

Continue reading »

mar 222018
 

Olá!

Aqui, você verá uma forma simples de “criptografar” um Shell Script que você quer passar a alguém, mas não quer liberar o fonte ou que seja editável por qualquer um.

BÁSICO DE CRIPTOGRAFIA

Bom, um conceito básico sobre criptografia:

Criptografia (do Grego kryptós, “escondido”, e gráphein, “escrita”) é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível.

Mais sobre isso: Criptografia – Wikipédia, a enciclopédia livre
Continue reading »

CRIAR UM SERVIDOR TEAMSPEAK NO UBUNTU SERVER

 CentOS 7 / RHEL 7, Clusterweb, ClusterWeb, Debian, Linux, Programação, Redes, Segurança, Shell Script, Ubuntu  Comentários desativados em CRIAR UM SERVIDOR TEAMSPEAK NO UBUNTU SERVER
nov 242017
 

Comece executando esses comandos no seu servidor Ubuntu. Esses comandos receberão automaticamente a última atualização para o seu servidor.

 sudo apt-get update && apt-get upgrade -y

O Ubuntu deve incluir os binários nano, wget, perl e bzip2, mas se eles não estiverem incluídos, você precisará instalar os pacotes necessários.

 sudo apt-get install nano wget tar perl bzip2

Em primeiro lugar, criaremos um usuário dedicado que será usado para executar o software do servidor TeamSpeak. Isso é importante do ponto de vista da segurança; executar programas daemon como root pode ser perigoso. Criar um novo usuário nos permitirá executar o TeamSpeak com privilégios limitados. Isso é feito executando o o comando:

 sudo adduser –disabled-login teamspeak

Você pode deixar os campos de informações vazios e validar as informações no final pressionando Y ou simplesmente pressionando enter. É necessário que você valide as informações ao criar o novo usuário.
Continue reading »

set 042017
 

Uma das minhas paixões por Linux surgiu justamente quando eu comecei a criar os meus primeiros scripts utilizando shell. Quando eu percebi a quantidade de coisas que era possível fazer com scripts, minha mente fervilhou e eu passei a fazer dezenas de scripts para automatizar tudo que eu fazia manualmente até então.

Ao final deste artigo você saberá:

  • O que é shell script;
  • Boas práticas de programação utilizando shell script;
  • Erros de iniciantes em shell script;

É claro que meus primeiros scripts eram bem toscos, mas isso eu só notei quando os revisitei depois de um certo tempo, como eu não tinha referência de comparação, para mim estava maravilhoso.
E é justamente sobre isso que pretendo compartilhar com você neste artigo, dicas para você iniciar a criação dos seus scripts de forma mais inteligente e eficaz.

Continue reading »

set 042017
 

Neste texto, vou ensinar a baixar, instalar e usar SHC, um programa que encripta o código do seus shell scritps.
Antes de mais nada, eu gostaria de dizer que encriptar seus códigos não é uma prática recomendável. O ideal é documentar todo o script, de forma que qualquer pessoa o possa entender facilmente. Códigos fonte devem ser o mais acessíveis possível – já a informação com a qual eles lidam, é que deve ser restringida.
Se você precisa usar informações, usualmente confidenciais, como senhas, de forma automática, então deve procurar outra solução.
Hmmmm… você ainda está aqui?
Tenha em mente, contudo, que um script codificado através do SHC pode não ser legível para usuários comuns (creio que este seja o seu objetivo) — Contudo, uma pessoa que tenha conhecimento do seu funcionamento pode extrair o código criado pelo software.
Em tempo, SHC quer dizer SHell script Compiler.

Continue reading »

TESTE DE INTRUSÃO COM METASPLOIT

 Clusterweb, ClusterWeb, Firewall, Leitura Recomendada, Profissional de TI, Segurança, Shell Script  Comentários desativados em TESTE DE INTRUSÃO COM METASPLOIT
mar 052017
 

INTRODUÇÃO E DESENVOLVIMENTO

 

INTRODUÇÃO

O Metasploit é um programa e sub-projeto desenvolvido por Metasploit LLC. Ele foi inicialmente criado em 2003 utilizando a linguagem de programação Perl, porém, mais tarde, foi reescrito na linguagem Ruby. O Metasploit tem levado completamente os teste e simulações de vulnerabilidades a níveis profissionais. O mesmo está disponível nas versões PRO e Community.

A versão utilizada neste artigo é a Community, onde já vem integrada ao Kali Linux e também pode ser facilmente instalada em qualquer outra distribuição GNU/Linux.

O Metasploit pode ser utilizado de três formas: msfconsole, msfcli e msfweb. Contudo, a principal interface mais utilizada para trabalhar com o Metasploit é a msfconsole. É uma eficiente interface de linha de comando com um grande conjunto de exploits[1] e payloads[2] que serão úteis na detecção de falhas e escalada de privilégios.

INICIANDO O TESTE

Tentaremos ganhar acesso remoto a um sistema vulnerável. Será feito o levantamento de possíveis alvos em nossa rede. Assim que os mesmos forem detectados, aplicaremos alguns testes afim de obter exito em nosso ataque.

Linux: Teste de Intrusão com Metasploit

Foram utilizados os programas nbtScan e NMap. Solicitei ao nbtScan que realize uma varredura por hosts ativos em minha rede. O mesmo encontrou um servidor SRV-AD-01. O segundo IP refere-se ao Kali Linux.

Caso você tenha mais hosts ativos em sua rede e queira procurar por vulnerabilidades neles, recomendo criar um arquivo de texto ou planilha para organizar suas atividades. O NMap detectou algumas portas de serviços abertas. Vamos trabalhar em cima do serviço msrpcrodando na porta 135.
Continue reading »

mar 052017
 

INTRODUÇÃO E DESENVOLVIMENTO

 

Dando início as atividades do ano 2017, vou fazer uma demonstração de como explorar uma falha em um servidor FTP e assim poder obter informações privilegiadas do mesmo.

As ferramentas usadas serão o nmap utilizado para realizar port scan e o telnet. Neste LAB vou utilizar o Kali Linux e uma máquina alvo que é o Metasploitable. Esta última é ideal para criação e teste de intrusão tendo em vista que a mesma vem configurada com vários serviços vulneráveis a ataques.

Primeiro é preciso fazer um levantamento das portas abertas no alvo bem como a versão dos serviços que estão rodando. Aqui vou abordar apenas o ataque ao FTP, porém, é bom ter uma visão geral do procedimento para futuros posts.

fev 012017
 

Recentemente precisei criar um script de backup com algumas exigências… não entrarei muito em detalhes sobre os recursos utilizados, a ideia é compartilhar e passar um overview do que faz o script.

As exigências:

  1. Realizar backup logo após que a mídia externa for conectada (HDD externo)
  2. Deletar dados no diretório de backup com 15 dias ou mais
  3. Realizar backup para diretório em servidor remoto
  4. Enviar mensagem de e-mail notificando o administrador dos servidores

As soluções:

1. Existem algumas maneiras de obter informações de um device via Udev … no meu caso utilizei o seguinte:

# udevadm info –query=all –name=/dev/sdc

Obs.: as linhas iniciadas com “P” (PATH) mostram o caminho absoluto do device, “S” (SYMLINK) links simbólicos para o device e “E” (ENVIRONMENT) variáveis de ambiente que podemos usar nas regras do Udev.

/etc/udev/rules.d/90-CustomUdev.rules
ACTION==”add”, SUBSYSTEM==”block”, ENV{ID_SERIAL_SHORT}==”5758323145393436444B4134″, SYMLINK+=”BackupUSB”
ACTION==”add”, SUBSYSTEM==”block”, ENV{ID_SERIAL_SHORT}==”5758323145393436444B4134″, RUN+=”SEU SCRIPT”

Quando plugado o HDD (ACTION==”add”) com número serial (ENV{ID_SERIAL_SHORT}==”5758323145393436444B4134″) e seja um block device (SUBSYSTEM==”block”), crie um link simbólico em /dev com nome BackupUSB (SYMLINK+=”BackupUSB) e execute o script RUN+=”SEU SCRIPT”.

2. Tal comando encontra-se em função dentro do script, mas seguindo a ordem das exigências … o comando é:
Continue reading »

fev 012017
 

Se você está tendo problemas com sua hospedagem, traga seu site para a Clusterweb!
Garantimos que seu site fique no ar 24hs por dia, 7 dias por semana, todos os dias do ano!
Damos suporte a qualquer hora que precisar!
Visite: www.clusterweb.com.br e saiba mais!