Eu finalmente consegui instalar meu host de VM e agora estou mexendo com o iptables para criar, testar e aprender.
-
Será que importa se eu colocar o abaixo
regras no início ou no final de
minhas regras?
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
Eu testei e não houve diferença, mas gostaria de confirmar.
Resposta Eu escolhi até agora:
É uma boa ideia aplicar as suas políticas o mais cedo possível. Coloque-os no começo. As regras DROP no tráfego interno podem causar problemas.
-
Ter a regra abaixo seria considerada uma falha no firewall?
$IPT -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Sem essa regra, eu precisaria adicionar, por exemplo, uma regra OUTPUT para minha conexão ssh, por exemplo:
$IPT -A OUTPUT -p tcp --sport 2013 -j ACCEPT
Resposta:
Depois de mais testes e conversas com pessoas no # iptables @ freenode, cheguei à conclusão de que usar -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
para INPUT e OUPUT é uma boa abordagem e irá ajudá-lo a lidar com muitas coisas, como por exemplo o FTP e é uma boa abordagem. porque a menos que você tenha aquela porta aberta aberta e sendo aceita, não haverá conexão maliciosa.
Aqui está um exemplo normal sem usar o acima:
$IPT -A INPUT -p tcp --dport 20:21 -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
Agora, veja como a regra se parece com o uso acima:
$IPT -A INPUT -p tcp --dport 21 -m conntrack --ctstate NEW -j ACCEPT
Isso é tudo o que você precisa, porque assim que a conexão for ESTABELECIDA, a saída será acompanhada imediatamente e você não precisará criar regras para a porta de dados FTP.
-
Quais são as coisas ruins de ter a regra abaixo, você poderia dar um exemplo do porque não tê-la e, em vez disso, apenas definir qualquer coisa que você precise usar?
$IPT -P OUTPUT ACCEPT
Resposta Eu escolhi até agora:
Esta regra de política permite todo o tráfego de saída. Como política, permitir tudo é obviamente menos seguro do que permitir apenas tipos explícitos de tráfego. Portanto, se a segurança for sua maior prioridade, você deverá definir uma política DROP na cadeia de saída. Esteja ciente de que você terá que incluir um número de regras para permitir o tráfego de saída para um número possivelmente grande de coisas mundanas, como: DNS, SMTP, IMAP, POP3, HTTP, HTTPS, etc.
-
Qual é a diferença entre conntrack e state no contexto abaixo?
exemplo de estado:
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
exemplo de conntrack:
$IPT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Resposta:
Depois de algumas conversas de pesquisa com pessoas no # iptables @ freenode eu cheguei à conclusão que eu deveria estar usando conntrack daqui em diante.
Technically the conntrack match
supersedes - and so obsoletes - the
state match. But practically the
state match is not obsoleted in any
way.