
Pesquisei e procurei e não consigo encontrar nenhuma informação sobre como os parâmetros do iptables são combinados.
Se eu quiser combinar o tráfego de ou para um endereço IP, posso fazer isso -s a.b.c.d -d a.b.c.d
? Ou seja, os parâmetros -s
e são -d
combinados comoou(pacote corresponde a qualquer) oue(pacote corresponde a todos)?
Um tanto relacionado, como -m iprange
e -s
e -d
interagem? Ou seja, posso usar -m iprange --src-range 10.0.0.1-10.0.0.8
para especificar um intervalo e depois adicionar -s !10.0.0.5
para abrir uma exceção?
Responder1
A melhor maneira de aprender é testando. Sim, você pode combinar -s
and -d
, porém se faz sentido depende de qual tabela você usa a regra.
Todos os parâmetros de uma regra são AND
. Se desejar OR
, você pode criar uma tabela para a qual enviar tráfego.
Algumas combinações irão gerar erros, novamente o melhor é tentar.
Digamos que sua política seja aceita e você só queira fazer a correspondência se uma regra corresponder. Adicione a regra iptables -A OUTPUT -s x.x.x.x -d x.x.x.x -j ACCEPT
, pois o alvo será igual ao padrão, não tem nenhum impacto, mas aparecerá iptables -vnL
e terá contadores.
Há registros mais avançados, etc., mas esta é uma maneira rápida e fácil de testar regras rapidamente. (e claro, tcpdump é seu amigo)
Em relação a iprange
eu diria novamente que o melhor é testar. Na pior das hipóteses, tentar adicionar a regra causará um erro. (espero que outra pessoa possa lhe dar respostas melhores sobre esta parte da sua pergunta)