Dicas, ajudas, conselhos... Sobre estrutura para Iptables

1. Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Patrick
Freud_Tux

(usa Outra)

Enviado em 29/12/2017 - 10:23h

Bem, meninos e meninas, é o seguinte!

Estou montando um script de iptables para doméstico, e estou um tanto perdido na questão da estrutura em si do iptables. Sim, estou enferrujadão nisso, e estou me re-atualizando outra vez. Mas ao ler um artigo do Buckminster, ele cita que o iptables começa de baixo pra cima, então... Estou meio perdido.

A ideia é simples, é fechar tudo e abrir/filtrar somente para as portas essências, algo como:

# Fechar portas:

# Abrir portas de saída:

# Abrir/permitir Interface lo:

# Bloquear Pings Externos:


É uma estrutura mais ou menos assim. Então, dicas, conselhos ...

Agradeço desde já ;)

T+


  


2. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Patrick
Freud_Tux

(usa Outra)

Enviado em 06/01/2018 - 10:03h

Alguém se habilita a dar uns pitacos ai?
As minhas dúvidas agorase resumem, se a coisa toda tem que ser feita debaixo pra cima, ou de cima pra baixo?
Agradeço desde já :D

T+ e valeus

-------------------------------------------------------------------------------------------------------------------------------------------------
Noob: "[...]Sou muito noob ainda usando o terminal, então preciso de ajuda "mastigada", pra operá-lo."
zhushazang: "Sou velho e meus dentes desgastados. Estude linux www.guiafoca.org";


3. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Perfil removido
removido

(usa Nenhuma)

Enviado em 06/01/2018 - 10:53h

Freud_Tux escreveu:

Bem, meninos e meninas, é o seguinte!

Estou montando um script de iptables para doméstico, e estou um tanto perdido na questão da estrutura em si do iptables. Sim, estou enferrujadão nisso, e estou me re-atualizando outra vez. Mas ao ler um artigo do Buckminster, ele cita que o iptables começa de baixo pra cima, então... Estou meio perdido.

A ideia é simples, é fechar tudo e abrir/filtrar somente para as portas essências, algo como:

# Fechar portas:

 3 


# Abrir portas de saída:

 1 


# Abrir/permitir Interface lo:
2
sim senão alguns programas não funciona 

# Bloquear Pings Externos:

sim. externo e local 



É uma estrutura mais ou menos assim. Então, dicas, conselhos ...

man iptables 


Agradeço desde já ;)

T+


Tem varias proteções que vc pode add no inicio do seu script não é só ping.





4. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Fernando
phoemur

(usa Debian)

Enviado em 06/01/2018 - 22:41h

Dá uma olhada aqui, talvez te dê umas idéias:

http://easyfwgen.morizot.net/gen/index.php


5. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Buckminster
Buckminster

(usa Debian)

Enviado em 07/01/2018 - 11:35h

Freud_Tux escreveu:

Bem, meninos e meninas, é o seguinte!

Estou montando um script de iptables para doméstico, e estou um tanto perdido na questão da estrutura em si do iptables. Sim, estou enferrujadão nisso, e estou me re-atualizando outra vez. Mas ao ler um artigo do Buckminster, ele cita que o iptables começa de baixo pra cima, então... Estou meio perdido.

A ideia é simples, é fechar tudo e abrir/filtrar somente para as portas essências, algo como:

# Fechar portas:

# Abrir portas de saída:

# Abrir/permitir Interface lo:

# Bloquear Pings Externos:


É uma estrutura mais ou menos assim. Então, dicas, conselhos ...

Agradeço desde já ;)

T+


Qual artigo em que eu digo que começa de baixo para cima?


6. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Patrick
Freud_Tux

(usa Outra)

Enviado em 08/01/2018 - 11:40h

Desculpem a demora!

meianoite!
Valeus, pelas dicas. Vou dar uma olhadinha melhor na estrutura. Eu deixei bem simples mesmo a ideia da estrutura, mas vou ir alterando ela.

phoemur!
Vou olhar o link, valeus. Depois eu reporto aqui.

Buck!
Foi mal. Eu na pressa escrevi errado. É de cima pra baixo:

"[...] O iptables lê as regras de cima para baixo, de acordo com cada tabela, ou seja, se uma regra bloquear tudo numa determinada tabela, as exceções (liberações) devem ser colocadas acima desta regra.[...]"
fonte: https://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras


Obrigado por ter me chamado a atenção nessa.

T+ e obrigado a todos pelas dicas ;)

-------------------------------------------------------------------------------------------------------------------------------------------------
Noob: "[...]Sou muito noob ainda usando o terminal, então preciso de ajuda "mastigada", pra operá-lo."
zhushazang: "Sou velho e meus dentes desgastados. Estude linux www.guiafoca.org";


7. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/01/2018 - 12:54h

Freud_Tux escreveu:


Buck!
Foi mal. Eu na pressa escrevi errado. É de cima pra baixo:


Esta querendo testar os conhecimentos dos usuários do vol também. rsrsrs :)

Só estava esperando alguém falar sobre esse detalhe.




8. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Patrick
Freud_Tux

(usa Outra)

Enviado em 09/01/2018 - 11:23h

meianoite escreveu:

Freud_Tux escreveu:


Buck!
Foi mal. Eu na pressa escrevi errado. É de cima pra baixo:


Esta querendo testar os conhecimentos dos usuários do vol também. rsrsrs :)

Só estava esperando alguém falar sobre esse detalhe.



É a idade >< rsrsrs

T+


-------------------------------------------------------------------------------------------------------------------------------------------------
Noob: "[...]Sou muito noob ainda usando o terminal, então preciso de ajuda "mastigada", pra operá-lo."
zhushazang: "Sou velho e meus dentes desgastados. Estude linux www.guiafoca.org";


9. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Buckminster
Buckminster

(usa Debian)

Enviado em 18/01/2018 - 12:36h

Bom, vamos lá.

O Iptables lê o script de cima para baixo e executa as regras de acordo com a ordem.
Porém, como está no artigo citado (tradução do Manual do Iptables), vê-se que ele é feito de chains (cadeias) e a ordem de execução das regras é de acordo com cada chain, por exemplo:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
iptables -A OUTPUT -p tcp --dport 443 -j DROP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

A primeira regra na chain INPUT libera e a segunda bloqueia, mas a primeira regra terá o privilégio, então o acesso à porta 443 na chain INPUT será liberado para todos, mesmo negando o acesso na regra subsequente.
O mesmo acontece nas duas regras da chain OUTPUT.
Lembrando que nas regras acima não foi determinada nenhuma tabela (-t), então, elas serão aplicadas somente na tabela padrão, a filter, e, no caso, somente nas chains INPUT e OUPUT.

O cuidado e o entendimento que se deve ter é que cada chain (INPUT, OUTPUT e FORWARD, chains básica, mas existem outras), age uma indepententemente da outra, ou seja, se tu liberar na chain INPUT (entrada) e bloquear na chain OUTPUT (saída) uma não interferirá na outra, mas os pacotes para a porta 443, no caso das regras acima, serão liberados para entrarem no servidor e serão liberados para a rede, mesmo bloqueados na chain OUTPUT, posto que a chain OUTPUT (veja abaixo) é para pacotes gerados pelo próprio servidor.
Ainda no mesmo caso acima, se tu bloquear a porta 443 na chain FORWARD, mesmo liberados na chain INPUT, eles não sairão para a rede independentemente se a regra da chain FORWARD estiver antes ou depois da chain INPUT.

INPUT - (entrada - para pacotes destinados a sockets locais, pacotes destinados para a própria máquina);
FORWARD - (para pacotes sendo roteados através da máquina, pacotes que passam pela máquina);
OUTPUT - (para pacotes gerados localmente, pacotes oriundos da própria máquina com destino para fora dela).
"Máquina" significa o servidor ou o desktop no qual o iptables estiver instalado e configurado.

Mais:
INPUT --> Refere-se a todos os pacotes destinados à máquina filtro.
OUTPUT --> Refere-se a todos os pacotes gerados na máquina filtro.
FORWARD --> Refere-se a todos os pacotes oriundos de uma máquina e destinados a outra. São pacotes que atravessam a máquina filtro, mas não são destinados a ela.

Basicamente é isso.

É logico que, para melhor organização e entendimento do script tu podes numerar as regras, por exemplo:

iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT <<< daí usa-se -I
iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --dport 443 -j ACCEPT
iptables -I OUTPUT 2 -p tcp --dport 80 -j ACCEPT

-A, --append chain rule-specification :: Anexa uma ou mais regras para o final da chain. Quando a origem e/ou nomes de destino resolverem mais de um endereço, uma regra será adicionada para cada combinação de endereços possíveis.

-I, --insert chain [rulenum] rule-specification :: Insire uma ou mais regras na chain especificada, pode ter um número para determinada regra. Assim, se o número da regra é um, a regra ou as regras serão inseridas no topo da chain. Este é o padrão se nenhum número de regra for especificado.

Link adicional para estudo:
http://eriberto.pro.br/iptables/3.html


10. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Patrick
Freud_Tux

(usa Outra)

Enviado em 04/03/2018 - 18:42h

Buckminster escreveu:

Bom, vamos lá.

O Iptables lê o script de cima para baixo e executa as regras de acordo com a ordem.
Porém, como está no artigo citado (tradução do Manual do Iptables), vê-se que ele é feito de chains (cadeias) e a ordem de execução das regras é de acordo com cada chain, por exemplo:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
iptables -A OUTPUT -p tcp --dport 443 -j DROP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

A primeira regra na chain INPUT libera e a segunda bloqueia, mas a primeira regra terá o privilégio, então o acesso à porta 443 na chain INPUT será liberado para todos, mesmo negando o acesso na regra subsequente.
O mesmo acontece nas duas regras da chain OUTPUT.
Lembrando que nas regras acima não foi determinada nenhuma tabela (-t), então, elas serão aplicadas somente na tabela padrão, a filter, e, no caso, somente nas chains INPUT e OUPUT.

O cuidado e o entendimento que se deve ter é que cada chain (INPUT, OUTPUT e FORWARD, chains básica, mas existem outras), age uma indepententemente da outra, ou seja, se tu liberar na chain INPUT (entrada) e bloquear na chain OUTPUT (saída) uma não interferirá na outra, mas os pacotes para a porta 443, no caso das regras acima, serão liberados para entrarem no servidor e serão liberados para a rede, mesmo bloqueados na chain OUTPUT, posto que a chain OUTPUT (veja abaixo) é para pacotes gerados pelo próprio servidor.
Ainda no mesmo caso acima, se tu bloquear a porta 443 na chain FORWARD, mesmo liberados na chain INPUT, eles não sairão para a rede independentemente se a regra da chain FORWARD estiver antes ou depois da chain INPUT.

INPUT - (entrada - para pacotes destinados a sockets locais, pacotes destinados para a própria máquina);
FORWARD - (para pacotes sendo roteados através da máquina, pacotes que passam pela máquina);
OUTPUT - (para pacotes gerados localmente, pacotes oriundos da própria máquina com destino para fora dela).
"Máquina" significa o servidor ou o desktop no qual o iptables estiver instalado e configurado.

Mais:
INPUT --> Refere-se a todos os pacotes destinados à máquina filtro.
OUTPUT --> Refere-se a todos os pacotes gerados na máquina filtro.
FORWARD --> Refere-se a todos os pacotes oriundos de uma máquina e destinados a outra. São pacotes que atravessam a máquina filtro, mas não são destinados a ela.

Basicamente é isso.

É logico que, para melhor organização e entendimento do script tu podes numerar as regras, por exemplo:

iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT <<< daí usa-se -I
iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --dport 443 -j ACCEPT
iptables -I OUTPUT 2 -p tcp --dport 80 -j ACCEPT

-A, --append chain rule-specification :: Anexa uma ou mais regras para o final da chain. Quando a origem e/ou nomes de destino resolverem mais de um endereço, uma regra será adicionada para cada combinação de endereços possíveis.

-I, --insert chain [rulenum] rule-specification :: Insire uma ou mais regras na chain especificada, pode ter um número para determinada regra. Assim, se o número da regra é um, a regra ou as regras serão inseridas no topo da chain. Este é o padrão se nenhum número de regra for especificado.

Link adicional para estudo:
http://eriberto.pro.br/iptables/3.html


Desculpe a demora em retornar. Correria é osso...

É muita coisa, muitos detalhes que tem que prestar atenção. Eu estou olhando e tentando aperfeiçoar o meu script, mas preciso de mais tempo pra fazer algo melhor. Espero até o final de semana que vem, ter algo melhorzinho, ai crio um tópico de iptables comunitário.

Mas uma dúvida que me ocorreu. Por padrão, o iptables é para IPV4, para IPV6 tem que usar a regra própria para ele certo? Pois, acho que hoje em dia, não adianta ficar só no IPV4...

T+ e valeus, e desculpe a demora.

-------------------------------------------------------------------------------------------------------------------------------------------------
Noob: "[...]Sou muito noob ainda usando o terminal, então preciso de ajuda "mastigada", pra operá-lo."
zhushazang: "Sou velho e meus dentes desgastados. Estude linux www.guiafoca.org";


12. Re: Dicas, ajudas, conselhos... Sobre estrutura para Iptables

Patrick
Freud_Tux

(usa Outra)

Enviado em 08/03/2018 - 21:11h



Valeus!

Vou dar uma olhada.

T+

-------------------------------------------------------------------------------------------------------------------------------------------------
Noob: "[...]Sou muito noob ainda usando o terminal, então preciso de ajuda "mastigada", pra operá-lo."
zhushazang: "Sou velho e meus dentes desgastados. Estude linux www.guiafoca.org";



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts