Questão nº 41

Questão de Sistemas Operacionais · FCC TJ-CE 2022 (nº 41)

FCC2022Analista Judiciário - Especialidade Ciência da Computação - Área Infraestrutura de TISistemas Operacionais
Gabarito: Aver comentário ↓

Considere o script de firewall abaixo, que não contém erros, para ser executado em ambiente Linux Kernel 5.0 ou superior, em condições ideais. O código contém uma linha de comentário seguida de comando(s) que o executa(m).

#!/bin/bash

# 1) Abre para uma faixa de endereços da rede local
iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT

# 2) Abre uma porta (inclusive para a Internet)
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT

# 3) Ignora pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# 4) Proteções diversas contra portscanners, ping of death, ataques DoS etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP

# 5) Abre para a interface de loopback. Essencial para o KDE e outros programas gráficos funcionarem adequadamente.
iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT

# 6) Ignora qualquer pacote de entrada, vindo de qualquer endereço, a menos que especificado o contrário acima, bloqueando tudo.

Analisando o script, para fazer o que consta no comentário indicado por # 6), a lacuna I deve ser corretamente preenchida com:

Resposta comentada

Gabarito Alternativa A

Em `iptables`, as regras são processadas em ordem, e se um pacote não corresponde a nenhuma regra que o aceite, ele é tratado pela regra final ou pela política padrão da cadeia. Para "bloquear tudo" que não foi explicitamente permitido, adiciona-se uma regra de descarte (`DROP`) no final da cadeia ou define-se a política padrão da cadeia como `DROP`.

(A) Correta: `iptables -A INPUT -p tcp --syn -j DROP`. Esta regra adiciona (`-A`) uma regra à cadeia `INPUT` (para pacotes destinados ao próprio firewall). Ela corresponde a pacotes TCP (`-p tcp`) que iniciam uma nova conexão (`--syn`) e os descarta (`-j DROP`). Como as regras anteriores aceitam tráfego TCP específico, esta regra, colocada no final, efetivamente bloqueia todas as novas conexões TCP de entrada que não foram explicitamente permitidas, cumprindo a intenção de "bloquear tudo" que não foi especificado acima.

(B) Incorreta: `iptables -J FORWARD -p tcp --syn -m BLOCK`. O comando `-J` é inválido para especificar uma cadeia (deveria ser `-A`, `-I`, etc.). A cadeia `FORWARD` é para pacotes que atravessam o firewall, não para pacotes destinados a ele (`INPUT`). Além disso, `BLOCK` não é um alvo (`-j`) válido em `iptables`; o correto seria `DROP` ou `REJECT`.

(C) Incorreta: `iptables -A INPUT -p tcp --syn -m ACCEPT`. Embora a sintaxe seja válida, o alvo `ACCEPT` é o oposto do que se pede no comentário `# 6)`, que é "bloquear tudo". Esta regra aceitaria novas conexões TCP, em vez de bloqueá-las. Armadilha da banca: Esta alternativa usa sintaxe quase correta e a cadeia `INPUT`, mas inverte completamente a ação desejada, sendo um distrator para quem não lê atentamente o objetivo da regra.

(D) Incorreta: `iptables -A OUTPUT -p tcp ip --syn -j BLOCK`. A cadeia `OUTPUT` é para pacotes originados do próprio firewall, enquanto o comentário `# 6)` refere-se a "pacote de entrada" (cadeia `INPUT`). O termo `ip` é um argumento inválido nesta posição, e `BLOCK` não é um alvo (`-j`) válido.

(E) Incorreta: `iptables -P INPUT -j protocol tcp --syn -a DROP`. O comando `-P` é usado para definir a política padrão de uma cadeia (ex: `iptables -P INPUT DROP`), mas não aceita parâmetros como protocolo, flags (`--syn`) ou `-j` seguido de outros parâmetros. A sintaxe `protocol tcp --syn -a DROP` é completamente inválida para a definição de política padrão. Armadilha da banca: Esta alternativa tenta usar `-P INPUT` que, conceitualmente, poderia ser usado para "bloquear tudo", mas a sintaxe está incorreta, pois a política padrão não pode ser tão granular.

Fonte: FCC TJ-CE 2022 Analista Judiciário - Especialidade Ciência da Computação - Área Infraestrutura de TI (Caderno Tipo 004). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho