Como determinar quais portas estão escutando, no Linux, com o comando lsof

O comando lsof, presente no Linux e nos UNIX (o que inclui o MacOS), tem a função de listar arquivos abertos por processos em seu sistema.
Já mostrei como usar o lsof para detectar se algum arquivo aberto impede que você consiga desmontar o seu pendrive (ou qualquer outro dispositivo de armazenamento USB) — se tiver curiosidade, leia este texto.
Também explicamos rapidamente o funcionamento do lsof no post Comandos para obter informações sobre o Ubuntu.
lsof listening ports
O nome do comando é uma abreviação de list opened files — ou “lista arquivos abertos”, em uma tradução livre.
Por “arquivo aberto”, entenda-se um arquivo simples, um diretório, um arquivo especial de bloco, um arquivo especial de caractere, uma referência ao um texto ou a uma biblioteca, um fluxo de dados ou um arquivo de rede etc.
Neste texto vamos mostrar como o lsof pode ser usado para determinar que portas estão abertas e escutando (listening) por conexões.
Se você digitar lsof pura e simplesmente, vai acabar “soterrado” sob uma montanha de informações.
Se for executado sozinho, sem qualquer opção ou parâmetro, o lsof vai exibir todos os arquivos abertos por todos os processos do sistema — o que pode resultar em uma lista bem extensa.
Na maioria das vezes, portanto, é necessário acompanhar a ferramenta do comando grep, para filtrar e descartar dados que não interessaM na nossa listagem.
Veja um exemplo de uso:


sudo lsof -P | grep --color -i listen

[sudo] senha para justincase:          

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
sshd        508                   root    3u     IPv4              19120      0t0        TCP *:22 (LISTEN)
sshd        508                   root    4u     IPv6              19122      0t0        TCP *:22 (LISTEN)
cupsd     27424                   root    6u     IPv6             371198      0t0        TCP localhost:631 (LISTEN)
cupsd     27424                   root    7u     IPv4             371199      0t0        TCP localhost:631 (LISTEN)

Acima, os números das portas em uso podem ser vistos à esquerda de “(LISTEN)”.
A opção ‘-P’ tem a função de inibir a conversão dos números das portas para nomes de arquivos de rede.
Neste caso, é útil por que força a exibição do número da porta, em vez do serviço que a está usando.
Experimente dar o comando sem a opção ‘-P’, para ver do que estou falando.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Altere a porta de entrada do servidor SSH como medida de segurança

Mover para outro lugar a porta, a partir da qual o servidor SSH recebe conexões, é uma medida muito simples e eficiente para evitar ataques.
Qualquer cracker sabe que a porta padrão (default listening port) é a 22.

É a partir daí que um ataque de força bruta começa a contar.
Se o invasor não conseguir encontrar a porta de entrada, nos primeiros segundos da sua operação, ele pode desistir e passar para o próximo servidor da sua lista de vítimas.
Esta é uma das táticas de segurança por obscuridade. Em outras palavras, estamos apenas “mudando a porta de lugar” — não se trata de fortalecer a segurança, portanto.
Este método traz 2 problemas que convém levar em conta, antes de colocar em prática:

  1. se você esquecer onde colocou “a porta”, pode acabar trancado do lado de fora.
  2. certifique-se de usar uma porta que não esteja sendo usada por outro serviço ou daemon ou que já seja popularmente usado.

Se estes dois itens não forem problemáticos para você, prossiga com a configuração (que é muito simples).
Você pode obter uma lista de portas em uso (ou não) no sistema, dentro do arquivo ‘/etc/services’:


less /etc/services

Sugiro usar o nmap, se quiser obter uma relação mais completa, contudo.

Como editar o arquivo de configuração do servidor SSH

O procedimento trata de editar o arquivo de configuração do servidor SSH que costuma ficar em ‘/etc/ssh/’.
Use o seu editor favorito para abrir o arquivo ‘/etc/ssh/sshd_config’:


# comece com um backup:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo editor /etc/ssh/sshd_config

Localize a linha que define o ‘Port’ e mude o número para o que achar melhor.


Port 1234


Feito isto, grave o arquivo e saia.
Pode ser interessante anotar a nova porta usada em alguma folha de papel.
Para que as mudanças surtam efeito, reinicie o servidor SSH:


sudo service sshd restart

ou


sudo /etc/init.d/sshd restart

Seja cautelosa(o), agora.
Não desautentique da máquina, simplesmente, para testar.
Se houver problemas com os ajustes, você pode ficar trancado do lado de fora — como mencionei anteriormente.
O mais seguro é abrir um novo terminal para testar a conexão sob uma nova porta.
Se algo deu errado, copie de volta o arquivo de configuração, para verificar exatamente qual foi o problema.
Uma das possibilidades que podem atrapalhar que você consiga se autenticar via SSH, por outra porta, é a configuração do seu firewall.
Neste caso, cabe adequar a configuração do firewall aos ajustes que você fez ao sshd.
Depois disto, tente de novo.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

O KDE Neon é a distro dos que fazem e amam o KDE

Baseada no Ubuntu, a distro KDE Neon é um fork realizado pela própria comunidade de desenvolvedores do KDE Plasma.
O objetivo é ter uma distribuição GNU/Linux para testar as versões mais atuais do ambiente.
kde neon logo

O Neon provê uma maneira fácil e elegante para as pessoas testarem as últimas versões dos softwares que compõem o universo do KDE, à medida em que ele vai evoluindo.

É impossível não comparar com o Kubuntu, claro. Mas a proposta é diferente.
O Kubuntu é uma distro Linux de facto, baseada no Ubuntu.
Já a proposta do KDE Neon é prover o Ubuntu LTS com uma das versões do KDE Plasma, como é explicado abaixo.
Atualmente, os desenvolvedores estão montando o ambiente gráfico sobre o Ubuntu LTS 16.04 Xenial Xerus.
Portanto, a distro continua sendo o Ubuntu — contudo, para facilitar a comunicação, vou continuar a me referir ao KDE Neon como “distro”.
Pode ser instalada a partir de 4 versões ou canais de desenvolvimento:

  1. User Edition LTS — voltada para o ambiente de produção. Se você prefere ter mais estabilidade e um tempo de suporte estendido, este é o melhor KDE Neon para você.
  2. User Edition — voltada para todos os usuários. Se não tiver certeza, baixe sempre esta. Aqui você encontra uma versão do KDE Plasma estável e atualizada com foco no usuário comum.
  3. Developer Edition Stable — O foco deste branch é o desenvolvedor da comunidade KDE. Se você não for desenvolvedor, mas gosta muito do KDE e não se importa de encontrar alguns bugs pela frente, esta edição vai te dar a experiência de uso do software mais atualizado possível, com estabilidade razoável.
    Outro ponto que pode incomodar usuários comuns, na developer edition são as atualizações constantes (diárias) na distribuição.
  4. Developer Edition Unstable — Nesta edição o fluxo das atualizações é mais intenso e você vai se deparar com uma quantidade maior de bugs. Esta é usada pelos desenvolvedores do KDE e é a edição que proporciona uma experiência mais rica em termos de uso de software atualizado.

Lembre-se, quando se fala em stable, unstable ou LTS a referência é o KDE. A versão do Ubuntu é sempre a mesma para todos: a LTS atual.

Quem é o público alvo do KDE Neon

Este é o público a que se destina o produto:

  • desenvolvedores que precisam obter atualizações constantes do KDE e usar a GUI mais avançada possível
  • fãs do KDE, que admiram o trabalho da equipe de desenvolvedores e querem acompanhar a evolução do ambiente e, ocasionalmente contribuir com comentários sobre os rumos do projeto, contar sobre o que está funcionando ou não, nos fóruns sobre o assunto

kde neon logo
A maioria deve optar entre a segunda e a terceira edição.
Os mais aventureiros irão pela Developer Edition Stable. Se você pretende instalar o KDE Neon em uma máquina de trabalho, opte por uma das User Edition, contudo.
A quarta opção pode ser uma boa pedida, se você tiver uma máquina de testes. O que permite que você use os recursos mais avançados que os desenvolvedores colocaram no KDE e, se algo der errado, no máximo será necessário reiniciar o sistema — é o que fazem os usuários de um “outro SO muito popular” e nem reclamam, coitados.
Pessoalmente, gosto mais da interface minimalista do GNOME para trabalhar — mas tenho uma máquina de testes rodando a versão mais atual do Neon há mais de um ano.
Além disso, tenho muitos motivos para gostar do KDE.

Onde baixar o KDE Neon

kde neon site download
O site oficial de download tem uma página com todas as 4 opções reunidas, nesta URL: https://neon.kde.org/download.
Se preferir, pode usar o comando wget, dentro de um terminal, para fazer o trabalho:


# User edition
wget https://files.kde.org/neon/images/neon-useredition/current/neon-useredition-current.iso

# User LTS edition
wget https://files.kde.org/neon/images/neon-userltsedition/current/neon-userltsedition-current.iso

# Developer STABLE edition
wget https://files.kde.org/neon/images/neon-devedition-gitstable/current/neon-devedition-gitstable-current.iso

# Developer UNSTABLE edition
wget https://files.kde.org/neon/images/neon-devedition-gitunstable/current/neon-devedition-gitunstable-current.iso

As imagens são live e, portanto, permitem que você possa testar sem instalar, se quiser.
Para saber como criar um pendrive inicializável, leia este post, por favor.
Se quiser, conte para a gente o que achou do KDE Neon e qual a edição que você prefere. 😉

Use o calendário incluído na shell CLI do Android

A shell mksh, incluída nos dispositivos Android, desde a versão 4.2, vem acompanhada de uma série de utilitários interessantes.
O seu smartphone tem possibilidades que você mal desconfia.

Quando estiver sem Internet e sem nada pra fazer e apenas com o seu smartphone na mão, brincar na shell CLI (Command Line Interface, ou “Interface da Linha de Comando”) pode ser uma alternativa.

Sei que a grande maioria das pessoas, não vai achar este tipo de coisa interessante… mas, enfim, eu nunca fiz parte desta “grande maioria” e adoro descobrir coisas novas no terminal.
Antes de continuar, certifique-se de ter instalado um emulador de terminal em seu smartphone ou tablet.
Feito isso, vamos conhecer o comando cal.

Como obter informações sobre datas e calendários no Android com o comando cal

Já adivinhou que “cal” é abreviatura de calendar ou “calendário”?
É um utilitário tradicional do mundo UNIX/Linux.


cal

     Junho 2017       
do se te qu qu se sá  
             1  2  3  
 4  5  6  7  8  9 10  
11 12 13 14 15 16 17  
18 19 20 21 22 23 24  
25 26 27 28 29 30  

No Linux, o utilitário vai destacar o dia atual, do mês — o que não ocorreu na CLI do meu celular (Android 7 Nougat).
linux shell cal command
Você pode obter o calendário de um determinado mês e ano, com o seguinte comando:


cal 8 2019

Em que o primeiro parâmetro é o número do mês do ano e o segundo o ano.
calendar 8 August 2019
Desta forma, sempre que precisar saber em que dia da semana cai um determinado dia do ano ou do mês, você pode usar este método autenticamente geek para descobrir.

Envie arquivos para o celular via adb shell

Uma das importantes funções da adb shell é enviar código ou programas compilados, do seu PC para o dispositivo Android.
Com a adb, é possível se conectar ao celular via Wi-Fi, Bluetooth ou, simplesmente, com um cabo USB.

Uma vez estabelecida a conexão, a transferência pode ser feita, na linha de comando como se você estivesse copiando um arquivo qualquer de um diretório para outro.
Para contextualizar, estou usando um laptop com Debian GNU/Linux 9 Stretch conectado ao smartphone Motorola/Lenovo Moto G4 Plus, com Android 7.0 Nougat — conectados via USB.
O procedimento é (ou deve ser) o mesmo em outros sistemas operacionais.
Se tiver dúvidas sobre a instalação da adb shell, leia este post.
Sugiro, ainda, ler outros artigos com dicas de uso da adb shell, se quiser obter mais exemplos de uso da ferramenta.
Se você tiver apenas um dispositivo Android conectado ao PC, pode usar o comando assim:


adb push arquivo-de-origem /sdcard/arquivo-de-destino

Acima, usei a pasta /sdcard, como exemplo. Ela corresponde ao diretório raiz do cartão de memória. Mas você pode usar qualquer outra dentro do dispositivo Android.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.