O administrador de uma máquina Linux, com IPTABLES p...

Próximas questões
Com base no mesmo assunto
Q465294 Sistemas Operacionais
O administrador de uma máquina Linux, com IPTABLES previamente instalado e configurado, resolveu permitir acesso remoto à sua própria máquina por meio de SSH, utilizando a porta padrão do protocolo.

Assumindo que as regras do IPTABLES já configuradas permitem qualquer pacote saindo desta máquina, uma das formas de resolver o problema seria por meio do comando
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: Alternativa A

Para resolver a questão, vamos entender os principais conceitos envolvidos.

1. IPTABLES: É uma ferramenta de linha de comando usada para configurar as regras de filtragem de pacotes no Linux. Ele é essencial para configurar firewalls e gerenciar a segurança da rede.

2. SSH (Secure Shell): É um protocolo de rede que permite a administração remota segura de sistemas. A porta padrão utilizada pelo SSH é a porta 22.

3. Chain INPUT: No IPTABLES, as "chains" (cadeias) são conjuntos de regras. Especificamente, a chain INPUT é usada para controlar os pacotes que estão entrando na máquina.

Agora, vamos analisar a questão e a alternativa correta:

Alternativa A: iptables -I INPUT -p tcp --dport 22 -j ACCEPT

Essa alternativa está correta porque:

  • Estamos utilizando a chain INPUT, que é apropriada para controlar pacotes que estão chegando à máquina.
  • A opção -p tcp especifica que a regra se aplica a pacotes do protocolo TCP, que é utilizado pelo SSH.
  • A opção --dport 22 indica que a regra se aplica a pacotes destinados à porta 22.
  • O target -j ACCEPT faz com que os pacotes sejam aceitos, permitindo o acesso SSH.

Outras Alternativas:

Alternativa B: "iptables -I FORWARD -p tcp --sport 22 -j ACCEPT"

Essa alternativa está incorreta porque utiliza a chain FORWARD, que é usada para pacotes que atravessam a máquina, não para pacotes destinados a ela.

Alternativa C: "iptables -A FORWARD --dport 22 -j ACCEPT"

Também incorreta pelo mesmo motivo da alternativa B, além de não especificar o protocolo (TCP).

Alternativa D: "iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT"

Incorreta porque a chain OUTPUT é usada para pacotes saindo da máquina, enquanto queremos permitir pacotes entrando.

Alternativa E: "iptables -A INPUT -p udp --dport 22 -j ACCEPT"

Incorreta pois especifica o protocolo UDP, mas o SSH utiliza TCP.

Conclusão: A alternativa correta é a A porque configura corretamente a regra no IPTABLES para permitir o acesso SSH na porta 22 para pacotes de entrada.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Resposta: Letra A

Como o Administrador resolveu liberar o acesso ao SSH, podemos matar a questão com algumas informações básicas:

O SSH utiliza a porta 22 do protocolo TCP com isso eliminamos a letra C e a letra E;

Como o parâmetro de entrada é o INPUT eliminamos a letra B e D, sobrando apenas a letra A, que é a resposta.
 

Abaixo coloquei umas explicações sobre os parâmetros de configuração do IPTABLES que foram retiradas do site: http://www.hardware.com.br/dicas/resumo-iptables.html
 

-j: É usado no final de cada regra, especificando uma ação, que pode ser:

-j ACCEPT : Aceita o pacote. Ele é encaminhado ao destino sem passar pelas demais regras.

-j REJECT : Rejeita educadamente o pacote, enviando um pacote de resposta ao emissor. Quando uma porta está fechada em modo reject, o emissor recebe rapidamente uma resposta como "connect to host 192.168.1.1 port 22: Connection refused".

-j DROP: O DROP é mais enfático. O pacote é simplesmente descartado, sem aviso. O emissor fica um longo tempo esperando, até que eventualmente recebe um erro de time-out.

-j LOG: Este último parâmetro permite logar conexões. É interessante usar esta regra principalmente em portas muito visadas, como a do SSH, pois assim você tem uma lista de todos os endereços que acessaram seu servidor na porta especificada.

--dport ou --destination-port: Especifica uma porta. O uso mais comum para esta opção é para abrir portas de entrada (e depois aplicar uma regra que fecha as demais), como na regra que abre para conexões na porta 22, neste caso o SSH;

-A INPUT: Especifica que a regra se aplica a pacotes de entrada, ou seja, pacotes recebidos pelo servidor, em qualquer interface.

-A OUTPUT: A regra se aplica a pacotes de saída, transmitidos pelo próprio servidor.

-A FORWARD: Este parâmetro é usado ao compartilhar a conexão com a Internet, permitindo que os micros da rede local acessem através do servidor. Os pacotes de outros micros, encaminhados pelo servidor, são tratados como "FORWARD", diferentemente dos pacotes transmitidos pelo próprio servidor, que são tratados como "OUTPUT". Você pode definir regras diferentes para cada situação.

-p tcp: Especifica que a regra se aplica a pacotes TCP, o que é o mais comum.

-p udp: Alguns serviços usam também portas UDP. Um bom exemplo são os servidores DNS, que escutam tanto na porta 53 TCP, quanto na 53 UDP. Este parâmetro permite definir regras que se aplicam a estes casos, abrindo ou fechando as portas UDP

Pergunta pegadinha: e se a questão A contivesse -A ao invés de -I estaria correta? iptables -A INPUT -p tcp --dport 22 -j ACCEPT. As duas são usadas para inserir regras na cadeia, porém, -A sempre insere no final da cadeia, enquanto que -I insere no início, ou você pode definir uma posição qualquer. Então, nesse cenário, se a banca não mencionar nada sobre a existência de outras regras, a resposta é sim, estaria correta. Porém, no caso da existência de outras configurações, a resposta seria errada. Por que? Porque no caso da existência de outras regras, ao incluir o comando -A, esta seria incluída no final do chain e o tráfego seria rejeitado pela primeira regra (nunca atingindo a segunda). Com o comando -I, isso não acontece, pois ele tem prioridade sobre regras existentes, ou pode até ser incluido na posição de prioridade a escolha do administrador.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo