passos Fáceis para abrir uma porta no Linux RHEL/CentOS 7/8

Tabela de Conteúdo

Anúncio

neste artigo, vou compartilhar exemplos para verificar o status da porta e abra uma porta no Linux. Este artigo foi escrito durante o uso de CentOS 8, por isso é seguro dizer que ele também cobre totalmente CentOS/RHEL 7/8, Fedora, Oracle Enterprise Linux e, geralmente, toda a família Red Hat de sistemas operacionais e, possivelmente, SLES e OpenSUSE de Novell.

Antes de saltarmos para os exemplos para abrir uma porta no Linux, devemos entender o requisito claramente. A questão muito básica que me vem à mente

  1. você precisa abrir um porto para um serviço? Como uma porta personalizada 5555 para o serviço apache?Quer dizer que o porto já está a ouvir, mas está bloqueado pela firewall, por isso quer abrir uma porta na firewall?
  2. Abra uma porta para uma tarefa temporária personalizada, como transferir e receber arquivos usando esta porta e, em seguida, fechar a porta.

Vamos cobrir todos esses cenários deste artigo

Verifique o status da porta

Para verificar a lista de portas existentes que estão abertas, vamos utilizar nmap para verificar o status da porta:

# nmap localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2020-03-22 12:08 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000024s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
Nmap done: 1 IP address (1 host up) scanned in 1.71 seconds

Atualmente vemos apenas duas portas estão abertas no meu CentOS 8 nó.

Check list of list of listening ports

we will use netstat to listen the TCP ports which are in listing state. O número total de portas é maior em comparação com a saída nmap.

# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26893/sshd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 26893/sshd tcp6 0 0 :::111 :::* LISTEN 1/systemd

abra um porto para algum serviço

se este é o seu requisito então você está procurando a pergunta errada. Basicamente é ao contrário, ou seja, um serviço abrirá um porto. Por exemplo, quando você iniciar o serviço SSHD, por padrão ele irá iniciar o porto 22 e não o contrário, ou seja, se você abrir o porto 22, Ele não irá iniciar automaticamente o serviço SSHD.

publicidade

observemos isto, por exemplo, sabemos que a porta 22 está aberta no meu nódulo de CentOS 8. Se eu parar o serviço sshd

# systemctl stop sshd

você pode ver que o porto 22 já não está aberto.

# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasq tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::111 :::* LISTEN 1/systemd

deve usar o ficheiro de configuração do respectivo Serviço para alterar a porta predefinida. Uma vez feito, você pode reiniciar o serviço e isso deve abrir automaticamente a respectiva porta em seu nó Linux.

dica:

se planeia usar algum porto personalizado para um serviço, então deverá também adicioná-lo em /etc/services

isto cobre o primeiro cenário.

firewalld open port

também é possível que as suas portas estejam desactivadas na firewall. Se a sua porta não estiver listada em nmap, então é mais provável que seja bloqueada pelo firewall.

usaremos firewalld para abrir uma porta, pois esta é a interface mais usada hoje em RHEL/CentOS 7 e 8. Determinar em que Zona estão as interfaces de rede do sistema. No exemplo seguinte, a interface eth0 e eth1 está na zona “pública”:

# firewall-cmd --get-active-zones
libvirt
interfaces: virbr0
public
interfaces: eth0 eth1

para abrir permanentemente a porta do firewalld numa zona, use a opção --add-port. O exemplo abaixo abre permanentemente a porta tcp 1234 na zona “pública”. Note-se que as alterações permanentes não produzem efeitos até que o serviço do firewalld seja recarregado.

# firewall-cmd --zone=public --add-port=1234/tcp --permanentsuccess# firewall-cmd --reloadsuccess
nota:

para fazer uma alteração não persistente, emitir o mesmo comando sem o conjunto de opções --permanent. Qualquer alteração não permanente entrará imediatamente em vigor e persistirá até que o firewall seja recarregado.

uma vez que o firewalld abrir a porta, use o netstat para verificar o estado do Porto:

publicidade

# netstat -ntlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1627/dnsmasqtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 28188/sshdtcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemdtcp6 0 0 :::22 :::* LISTEN 28188/sshdtcp6 0 0 :::111 :::* LISTEN 1/systemd

ainda não vemos o porto 1234 aqui. Isso ocorre porque atualmente o porto 1234 não está vinculado a nenhum serviço. O nosso porto está aberto, mas não está a ouvir. Assim que um pedido ou serviço tentar usar a porta 1234, vamos colocar isto em estado de escuta.

Usar nc ou ncat para abrir uma porta no Linux

Vamos verificar essa teoria, Use nc ou ncat para abrir uma porta no Linux nc ou ncat é entregue como parte do nmap-ncat rpm no RHEL/CentOS que você pode instalar usando o yum ou desistência. Use --listen com --port para abrir uma porta usando nc comando. No exemplo abaixo abrimos o porto 1234

# nc --listen --source-port 1234

abra outro terminal deste servidor e verifique o estado do Porto

# netstat -ntlp | grep 1234tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 28983/nctcp6 0 0 :::1234 :::* LISTEN 28983/nc

como vê, o porto 1234 está a ouvir tanto o IPv4 como o IPv6. Para usar somente IPv4 usar -4 com o comando acima

# nc --listen --source-port 1234 -4

Avançar em outro terminal, você pode verificar o status da porta para a porta 1234

# netstat -ntlp | grep 1234tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 29329/nc

Use nc ou ncat para abrir uma porta e transferência de arquivos

também podemos usar nc para transferência de arquivos de um host para outro host. Aqui vou transferir o meu “inputfile ” de centos-8 para rhel-8 no cliente vamos abrir uma porta aleatória, aqui vamos usar 9899. Activei a verbose para que possa ver mais detalhes no ecrã

# ncat --verbose --listen 9899 > outputfileNcat: Version 7.70 ( https://nmap.org/ncat )Ncat: Listening on :::9899Ncat: Listening on 0.0.0.0:9899Ncat: Connection from 192.168.43.250.Ncat: Connection from 192.168.43.250:40242.

a seguir para iniciar a transferência, use o comando abaixo

# ncat --verbose 192.168.43.157 9899 < inputfileNcat: Version 7.70 ( https://nmap.org/ncat )Ncat: Connected to 192.168.43.157:9899.Ncat: 19 bytes sent, 0 bytes received in 0.01 seconds.

se enfrentar quaisquer problemas, poderá verificar a firewall entre o seu servidor e o cliente. É possível que a respectiva porta esteja bloqueada e você deve usar a porta aberta do firewalld

Deixe uma resposta

O seu endereço de email não será publicado.