Com relação à proteção de rede com iptables, julgue os itens...
Mediante a regra abaixo, bloqueiam-se pacotes que tenham origem na rede 192.168.0.0/24 e retorna-se uma mensagem ao host informando que foi recebido o bloqueio do tipo ICMP.
iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 -j DROP
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E
A questão aborda a configuração de regras de firewall utilizando o iptables, uma ferramenta amplamente utilizada em sistemas Linux para gerenciar o tráfego de rede. O comando iptables permite criar políticas de filtragem de pacotes, o que é essencial para a segurança de redes de computadores.
Para entender a justificativa, precisamos analisar a regra apresentada:
iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 -j DROP
Vamos destrinchar essa regra:
- -t filter: Especifica que estamos utilizando a tabela de filtragem de pacotes, que é a tabela padrão do iptables.
- -A INPUT: Adiciona a regra à cadeia INPUT, que é responsável pelo tráfego de entrada.
- -p tcp: Define que a regra se aplica a pacotes do protocolo TCP.
- -s 192.168.0.0/24: Especifica que a origem dos pacotes deve ser a rede 192.168.0.0 com máscara /24 (ou seja, rede 192.168.0.0 a 192.168.0.255).
- -j DROP: Define que os pacotes que correspondem aos critérios acima devem ser descartados (DROP).
A questão afirma que a regra "bloqueia pacotes que tenham origem na rede 192.168.0.0/24 e retorna uma mensagem ao host informando que foi recebido o bloqueio do tipo ICMP". No entanto, isso está errado.
Justificativa:
A regra apresentada apenas descarta (DROP) os pacotes que correspondem aos critérios especificados; ela não retorna nenhuma mensagem ao host de origem. Se o objetivo fosse retornar uma mensagem, a regra deveria utilizar o alvo REJECT em vez de DROP. Por exemplo:
iptables -t filter -A INPUT -p tcp -s 192.168.0.0/24 -j REJECT --reject-with icmp-port-unreachable
Essa regra, sim, rejeitaria os pacotes e enviaria uma mensagem ICMP ao host de origem.
Portanto, a alternativa correta é E, pois a regra apresentada na questão não realiza a função de enviar uma mensagem ICMP ao host de origem, mas apenas descarta os pacotes recebidos.
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
Questão errada de começo a fim.
Drop --> Significa que o pacote sera descartado, sem passar po mais nenhuma regra ou chain. O remetente do pacote não sera avisado que ele foi descartado.
Reject --> Atua da mesma forma que o DROP, mas ele avisa o remetente que o pacote foi descartado.
Para bloquear pacotes que tenha origem a rede 192.168.0.0/24, seria uma regra de saída ou seja OUTPUT.
iptables -A OUTPUT -p tcp -s 192.168.0.0/24 -j REJECT
Ei de descordar do colega!
A questão realmente está errada, porém o motivo é exclusivo devido ao trecho: "e retorna-se uma mensagem ao host informando que foi recebido o bloqueio do tipo ICMP." Pois, realmente para que o host que enviou o pacote seja notificado deve-se usar a opção -j REJECT e não -j DROP. Porém, a opção -A INPUT está correta para filtrar os pacotes que tem origem em 192.168.0.0. já que INPUT filtra todos os pacotes de que chegam ao servidor oriundos da origem determinada no parâmetro INPUT. Vejamos as definições abaixo:
-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.
-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. Para ativar o log, você deve duplicar a regra que abre a porta, usando a opção "-j LOG" na primeira e "-j ACCEPT" na segunda, como em:
iptables -A INPUT -p tcp --dport 22 -j LOG iptables -A INPUT -p tcp --dport 22 -j ACCEPT
As mensagens são gravadas no arquivo "/var/log/messages" de forma bastante detalhada, incluindo a data e hora da conexão, o IP e MAC do micro que fez a conexão (SRC), além da porta (DPT). Você pode ver o mesmo log, porém com as entradas escritas de forma resumida, usando o comando "dmesg".
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.Ref: http://www.hardware.com.br/dicas/resumo-iptables.html.
Espero ter ajudado!
Ei de descordar do colega!
A questão realmente está errada, porém o motivo é exclusivo devido ao trecho: "e retorna-se uma mensagem ao host informando que foi recebido o bloqueio do tipo ICMP." Pois, realmente para que o host que enviou o pacote seja notificado deve-se usar a opção -j REJECT e não -j DROP. Porém, a opção -A INPUT está correta para filtrar os pacotes que tem origem em 192.168.0.0. já que INPUT filtra todos os pacotes de que chegam ao servidor oriundos da origem determinada no parâmetro INPUT. Vejamos as definições abaixo:
"-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.
-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. Para ativar o log, você deve duplicar a regra que abre a porta, usando a opção "-j LOG" na primeira e "-j ACCEPT" na segunda, como em:
iptables -A INPUT -p tcp --dport 22 -j LOGiptables -A INPUT -p tcp --dport 22 -j ACCEPTAs mensagens são gravadas no arquivo "/var/log/messages" de forma bastante detalhada, incluindo a data e hora da conexão, o IP e MAC do micro que fez a conexão (SRC), além da porta (DPT). Você pode ver o mesmo log, porém com as entradas escritas de forma resumida, usando o comando "dmesg".
Ainda é dado um exemplo para confirmar a função do -A INPUT:
exemplo da regra que bloqueia qualquer tipo de conexão proveniente de um determinado endereço:
iptables -A INPUT -p ALL -s 88.191.79.206 -j DROP "Ref: http://www.hardware.com.br/dicas/resumo-iptables.html.
Espero ter ajudado!
-j DROP difere de -j REJECT. O primeiro descarta silenciosamente. O segundo é mais polido e devolve reposta ao host.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo