13 perguntas da entrevista sobre Linux iptables Firewall
Nishita Agarwal, uma visitante frequente da Tecmint compartilhou conosco sua experiência (perguntas e respostas) sobre a entrevista de emprego que ela acabara de dar em uma empresa privada de hospedagem em Pune , Índia. Ela recebeu muitas perguntas sobre vários tópicos, mas ela é uma especialista em iptables e queria compartilhar essas perguntas e suas respostas (ela deu) relacionadas ao iptables para outras pessoas que possam estar indo dar entrevista em um futuro próximo.
Todas as perguntas e suas respostas foram reescritas com base na memória de Nishita Agarwal.
"Olá amigos! Meu nome é Nishita Agarwal. Eu fiz bacharelado em tecnologia. Minha área de Especialização é UNIX e Variantes de UNIX (BSD, Linux) me fascinam desde que ouvi falar. Tenho mais de 1 ano de experiência em armazenamento. Eu estava procurando uma mudança de emprego que terminasse em uma empresa de hospedagem em Pune, na Índia. ”
Aqui está a coleção do que me foi perguntado durante a entrevista. Documentei apenas as perguntas e suas respostas relacionadas ao iptables com base na minha memória. Espero que isso ajude você a decifrar sua entrevista.
1. Você já ouviu falar de iptables e firewall no Linux? Alguma ideia do que são e para que servem?
Resposta: Eu uso o iptables há bastante tempo e conheço tanto o iptables quanto o firewall. Iptables é um programa aplicativo escrito principalmente em linguagem de programação C e é lançado sob GNU General Public License. Escrito para o ponto de vista da administração do sistema, a versão estável mais recente do iptables 1.4.21.iptables pode ser considerado um firewall para sistema operacional semelhante ao UNIX, que pode ser chamado como iptables/netfilter, mais precisamente. O administrador interage com o iptables por meio de ferramentas de front-end do console/GUI para adicionar e definir regras de firewall em tabelas predefinidas. Netfilter é um módulo construído dentro do kernel que faz o trabalho de filtragem.
Firewalld é a implementação mais recente de regras de filtragem no RHEL/CentOS 7 (pode ser implementada em outras distribuições das quais talvez eu não esteja ciente). Ele substituiu a interface iptables e se conecta ao netfilter.
2. Você usou algum tipo de ferramenta front-end baseada em GUI para iptables ou linha de comando do Linux?
Resposta: Embora eu tenha usado ferramentas de front-end baseadas em GUI para iptables como Shorewall em conjugação de Webmin em GUI e acesso direto a iptables via console.E devo admita que o acesso direto ao iptables via console Linux dá ao usuário imenso poder na forma de maior grau de flexibilidade e melhor compreensão do que está acontecendo em segundo plano, se não qualquer outra coisa. A GUI é para administradores novatos, enquanto o console é para administradores experientes.
3. Quais são as diferenças básicas entre iptables e firewalld?
Resposta: iptables e firewalld servem ao mesmo propósito (Filtragem de Pacotes), mas com abordagens diferentes. O iptables libera todas as regras definidas sempre que uma alteração é feita, diferentemente do firewalld. Normalmente, o local da configuração do iptables está em '/etc/sysconfig/iptables', enquanto a configuração do firewalld está em '/etc/firewalld/', que é um conjunto de arquivos XML .Configurar um firewalld baseado em XML é mais fácil em comparação com a configuração de iptables, porém a mesma tarefa pode ser realizada usando o aplicativo de filtragem de pacotes, ou seja, iptables e firewalld. O Firewalld executa o iptables sob seu capô junto com sua própria interface de linha de comando e arquivo de configuração baseado em XML e mencionado acima.
4. Você substituiria o iptables pelo firewalld em todos os seus servidores, se tivesse uma chance?
Resposta: Estou familiarizado com o iptables e ele está funcionando e se não houver nada que exija o aspecto dinâmico do firewalld, parece não haver razão para migrar toda a minha configuração do iptables para o firewalld.Na maioria dos casos, até agora nunca vi o iptables criando um problema. Além disso, a regra geral da tecnologia da informação diz “por que consertar se não está quebrado”. No entanto, este é o meu pensamento pessoal e eu nunca me importaria de implementar o firewalld se a organização fosse substituir o iptables pelo firewalld.
5. Você parece confiante com o iptables e o ponto positivo é que estamos usando o iptables em nosso servidor.
Quais são as tabelas usadas no iptables? Dê uma breve descrição das tabelas usadas no iptables e das cadeias que elas suportam.
Resposta: Obrigado pelo reconhecimento. Passando para a parte da pergunta, existem quatro tabelas usadas no iptables, a saber:
- Mesa Nacional
- Mesa Mangle
- Tabela de filtros
- Tabela Bruta
Tabela Nat: a tabela Nat é usada principalmente para tradução de endereços de rede. Pacotes mascarados têm seus endereços IP alterados de acordo com as regras da tabela. Os pacotes no fluxo atravessam a tabela Nat apenas uma vez. ou seja, se um pacote de um jato de pacotes for mascarado, o restante dos pacotes no fluxo não passará por esta tabela novamente. Recomenda-se não filtrar nesta tabela. As cadeias suportadas pela tabela NAT são PREROUTING Chain, POSTROUTING Chain e OUTPUT Chain.
Mangle Table : Como o nome sugere, esta tabela serve para desfigurar os pacotes. É usado para alteração de pacotes especiais. Pode ser usado para alterar o conteúdo de diferentes pacotes e seus cabeçalhos. A tabela Mangle não pode ser usada para mascaramento. As cadeias suportadas são PREROUTING Chain, OUTPUT Chain, Forward Chain, INPUT Chain, POSTROUTING Chain.
Filter Table : Filter Table é a tabela padrão usada no iptables. É usado para filtrar pacotes. Se nenhuma regra for definida, a Tabela de Filtro será considerada a tabela padrão e a filtragem será feita com base nesta tabela. As cadeias suportadas são INPUT Chain, OUTPUT Chain, FORWARD Chain.
Tabela Bruta : A tabela Bruta entra em ação quando queremos configurar pacotes que foram isentos anteriormente. Suporta cadeia PREROUTING e cadeia OUTPUT.
6. Quais são os valores alvo (que podem ser especificados em target) no iptables e o que eles fazem, seja breve!
Resposta: A seguir estão os valores de destino que podemos especificar em target no iptables:
- ACCEPT : aceita pacotes
- QUEUE : Pacote Paas para o espaço do usuário (local onde residem o aplicativo e os drivers)
- DROP : Descartar pacotes
- RETURN : Retorna o controle para a cadeia de chamada e interrompe a execução do próximo conjunto de regras para os pacotes atuais na cadeia.
7. Vamos passar para os aspectos técnicos do iptables, por técnico quero dizer prático.
Como você verificará o rpm do iptables necessário para instalar o iptables no CentOS?
Resposta: iptables rpm estão incluídos na instalação padrão do CentOS e não precisamos instalá-lo separadamente. Podemos verificar o rpm como:
rpm -qa iptables
iptables-1.4.21-13.el7.x86_64
Se precisar instalá-lo, você pode fazer yum para obtê-lo.
yum install iptables-services
8. Como verificar e garantir se o serviço iptables está em execução?
Resposta: Para verificar o status do iptables, você pode executar o seguinte comando no terminal.
service iptables status [On CentOS 6/5]
systemctl status iptables [On CentOS 7]
Se não estiver em execução, o comando abaixo pode ser executado.
---------------- On CentOS 6/5 ----------------
chkconfig --level 35 iptables on
service iptables start
---------------- On CentOS 7 ----------------
systemctl enable iptables
systemctl start iptables
Também podemos verificar se o módulo iptables está carregado ou não, como:
lsmod | grep ip_tables
9. Como você revisará as regras atuais definidas no iptables?
Resposta: As regras atuais no iptables podem ser revisadas tão simples quanto:
iptables -L
Exemplo de resultado
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
10. Como você irá liberar todas as regras do iptables ou uma cadeia específica?
Resposta: Para liberar uma cadeia de iptables específica, você pode usar os seguintes comandos.
iptables --flush OUTPUT
Para liberar todas as regras do iptables.
iptables --flush
11. Adicione uma regra no iptables para aceitar pacotes de um endereço IP confiável (digamos 192.168.0.7)
Resposta: O cenário acima pode ser alcançado simplesmente executando o comando abaixo.
iptables -A INPUT -s 192.168.0.7 -j ACCEPT
Podemos incluir uma barra padrão ou máscara de sub-rede na fonte como:
iptables -A INPUT -s 192.168.0.7/24 -j ACCEPT
iptables -A INPUT -s 192.168.0.7/255.255.255.0 -j ACCEPT
12. Como adicionar regras ao serviço ACCEPT, REJECT, DENY e DROP ssh no iptables.
Resposta: Esperando que o ssh esteja rodando na porta 22, que também é a porta padrão para o ssh, podemos adicionar regras ao iptables como:
Para ACEITAR pacotes tcp para serviço ssh (porta 22).
iptables -A INPUT -s -p tcp --dport 22 -j ACCEPT
Para REJEITAR pacotes tcp para serviço ssh (porta 22).
iptables -A INPUT -s -p tcp --dport 22 -j REJECT
Para NEGAR pacotes tcp para serviço ssh (porta 22).
iptables -A INPUT -s -p tcp --dport 22 -j DENY
Para DROP pacotes tcp para serviço ssh (porta 22).
iptables -A INPUT -s -p tcp --dport 22 -j DROP
13. Deixe-me apresentar um cenário. Digamos que haja uma máquina cujo endereço IP local seja 192.168.0.6. Você precisa bloquear as conexões nas portas 21, 22, 23 e 80 para sua máquina. O que você vai fazer?
Resposta: Bem, tudo que preciso usar é a opção 'multiport' com iptables seguido de números de porta a serem bloqueados e o cenário acima pode ser alcançado de uma só vez como .
iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP
As regras escritas podem ser verificadas usando o comando abaixo.
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
DROP tcp -- 192.168.0.6 anywhere multiport dports ssh,telnet,http,webcache
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Entrevistador : Isso é tudo que eu queria perguntar. Você é um funcionário valioso que não gostaríamos de perder. Vou recomendar seu nome ao RH. Se você tiver alguma dúvida, pode me perguntar.
Como candidato não queria interromper a conversa, por isso fico perguntando sobre os projetos que estaria realizando se fosse selecionado e quais são as outras vagas na empresa. Sem falar que a rodada de RH não foi difícil de resolver e eu tive a oportunidade.
Também gostaria de agradecer a Avishek e Ravi (de quem sou amigo há muito tempo) por dedicarem seu tempo para documentar minha entrevista.
Amigos! Se você tivesse dado alguma entrevista desse tipo e gostaria de compartilhar sua experiência com milhões de leitores da Tecmint em todo o mundo? em seguida, envie suas perguntas e respostas para [email ou envie sua experiência de entrevista usando o formulário a seguir.
Obrigado! Mantenha-se conectado. Informe também se eu poderia ter respondido a uma pergunta mais corretamente do que respondi.