Básico de Firewall

1. Básico de Firewall

Renato dos Santos
rensantos

(usa Ubuntu)

Enviado em 05/07/2013 - 15:25h

Boa tarde a todos.

Caros amigos, venho tentando entender, por conta própria, fóruns, sites, até comprei 2 livros, sobre o iptables, mais especificamente as CHAINS das tabelas mas não achei nada que pudesse fazer essa anta aqui compreender a diferença entre elas.
Por exemplo, quando que eu sei que devo usar INPUT ao invés de FORWARD na filter?

Vejam se meu raciocínio está certo (considerando SERVIDOR como meu Firewall).

Tabela filter:
INPUT: Tudo que ENTRAR da Internet no SERVIDOR?
OUTPUT: Tudo que SAI do SERVIDOR pra Internet?
FORWARD: Tudo que faz o q? Que vem da Internet, PASSA pelo SERVIDOR com destino a um DESKTOP na rede?

Tabela nat:
PREROUTING: Tudo que VEM da Internet, mas ANTES de ir pra algum lugar, que não sei se é o SERVIDOR ou DESKTOP?
POSTROUTING: Vem de onde pra cá? Do SERVIDOR? De um Desktop? Pra Internet?
OUTPUT: Tudo que sai do SERVIDOR? Porque OUTPUT aqui e OUTPUT no filter?? Posso tratar só na filter? Não é a mesma coisa ou ai diferencia o fato de ser filter (filtrar) e nat (traduzir)?

Eu realmente estou me sentindo muito burro (como dizem o Crach e Eddie)...

Aproveitando, porque que, em um link dedicado, eu posso liberar IP assim:
iptables -A FORWARD -s 10.1.1.15 -j ACCEPT
Enquanto que numa ADSL tem que ser assim:
iptables -t nat -A POSTROUTING -s 10.1.1.15 -j MASQUERADE
Obs. Tentei das 2 formas, na ADSL e só funcionou a segunda.

Abs,
Renato


  


2. Re: Básico de Firewall

Renato dos Santos
rensantos

(usa Ubuntu)

Enviado em 06/07/2013 - 10:10h

Bom dia galera,

Alguém sabe como isso funciona?

Abs,
Renato


3. Re: Básico de Firewall

Pedro
px

(usa Debian)

Enviado em 06/07/2013 - 11:29h

Bastante coisa em colega rs... vou te indicar um dos melhores tutos sobre iptables que já vi, o do guia da foca, basta você ir lendo e tirar um cado dessa montanha de duvidas

http://www.guiafoca.org/cgs/guia/avancado/ch-fw-iptables.html


4. Re: Básico de Firewall

Bruno L. Santos
brunnus

(usa Ubuntu)

Enviado em 17/07/2013 - 12:52h

Amigo, comecei a ler alguns artigos, tutoriais, fóruns com o objetivo de criar um firewall para administrar a rede aqui do meu trabalho e confesso que também não compreendi muito bem todas as chains, inclusive li bastante o guia foca que o outro amigo indicou.

O que entendi foi:

INPUT - tudo que entra na máquina(servidor firewall)

obs.: se eu quiser filtrar o que entra pela internet devo especificar a origem da conexão.

iptables -t filter -A INPUT -i eth0 -j ACCEPT

onde eth0 é a interface conectada diretamente à internet, desta maneira defino a origem por meio da nomeclatura da placa de rede -i

OUTPUT - acredito que seja a mesma coisa

FORWARD - Nesta me resta ainda dúvidas


==========================================
PREROUTING - Nesta, o que entendi é foi que será aplicado as regras antes do roteamento, ou seja, é possível fazer o tratamento da conexão como direcionar todo o tráfego para a porta 3128(squid) antes de rotear(distribuir a conexão) para as outras máquinas.

POSTROUTING - Não entendi na prática como isso funciona


Gostaria muito que os amigos aqui do fórum complementassem o que nos faltou e também puxasse a orelha se falei bobagem... Mas to começando também rs....


5. Firewall

André Romero Alves de Souza
arasouza

(usa Debian)

Enviado em 17/07/2013 - 17:26h

rensantos escreveu:

Boa tarde a todos.

Caros amigos, venho tentando entender, por conta própria, fóruns, sites, até comprei 2 livros, sobre o iptables, mais especificamente as CHAINS das tabelas mas não achei nada que pudesse fazer essa anta aqui compreender a diferença entre elas.
Por exemplo, quando que eu sei que devo usar INPUT ao invés de FORWARD na filter?

Vejam se meu raciocínio está certo (considerando SERVIDOR como meu Firewall).

Tabela filter:
INPUT: Tudo que ENTRAR da Internet no SERVIDOR?
OUTPUT: Tudo que SAI do SERVIDOR pra Internet?
FORWARD: Tudo que faz o q? Que vem da Internet, PASSA pelo SERVIDOR com destino a um DESKTOP na rede?

Tabela nat:
PREROUTING: Tudo que VEM da Internet, mas ANTES de ir pra algum lugar, que não sei se é o SERVIDOR ou DESKTOP?
POSTROUTING: Vem de onde pra cá? Do SERVIDOR? De um Desktop? Pra Internet?
OUTPUT: Tudo que sai do SERVIDOR? Porque OUTPUT aqui e OUTPUT no filter?? Posso tratar só na filter? Não é a mesma coisa ou ai diferencia o fato de ser filter (filtrar) e nat (traduzir)?

Eu realmente estou me sentindo muito burro (como dizem o Crach e Eddie)...

Aproveitando, porque que, em um link dedicado, eu posso liberar IP assim:
iptables -A FORWARD -s 10.1.1.15 -j ACCEPT
Enquanto que numa ADSL tem que ser assim:
iptables -t nat -A POSTROUTING -s 10.1.1.15 -j MASQUERADE
Obs. Tentei das 2 formas, na ADSL e só funcionou a segunda.

Abs,
Renato


Vamos lá.:

input: tudo que entra através das interfaces (lan ou wan) no equipamento, (lan ou wan, pacotes locais ou externos, exemplo requisições internas da lan, etc.) e output, tudo que esta saindo do equipamento seja na interface interna ou externa, e o forward, dados que atravessam o equipamento e suas interfaces, exemplos eth1 192.168.0.X --> eth2 10.10.20.0.X, (sendo o roteador o responsável pelo envio do(s) pacote(s) de origem para o seu respectivo destino.

com essa linha podemos desmistificar alguns pontos:


$iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 3128 -j REDIRECT --to-port 8081


qual a finalidade dela exatamente: veja que não há mudança de endereços (ip) nos pacotes, apenas das portas, recebo a requisição na porta 3128 e sem o cliente saber envio para a 8081, para um tratamento especifico, ou seja antes do roteamento (pacote sair ele recebe uma porta diferente apenas) é basicamente o inverso no mascaramento da POSTROUTING, que faz como um exemplo o SNAT de ips internos para um único ip público e vice versa.(claro que tem outras finalidades).
Bem rensantos, isso foi apenas uma tentativa de contribuir para sua compreensão. espero ter ajudado.


6. Re: Básico de Firewall

Pedro
px

(usa Debian)

Enviado em 17/07/2013 - 19:45h

É bem puxado o iptables, no sentido que parece a principio tudo igual, quando comecei com isso achava essas opções tudo coisa de doido kk' hoje entendo o uso razoavelmente bem (penso eu neh) bom aqui vai um cado dessa xp rsrs

No iptables existes 3 tabelas principais

Tabela FILTER que contém as CHAINs
INPUT - Tudo que entra na sua placa de rede passa por esta CHAIN (localhost)

OUTPUT - Tudo que sai da sua placa de rede passa por esta CHAIN (localhost)

FORWARD - Tudo que é destinado a outro micro na rede local, ou a outra placa de rede na maquina ou outra subrede (que é mais usado)


A tabela filter filtra (hahaha) o tráfego que passa pela sua rede local, por exemplo, ahh vou entrar no facebook, vou precisar de 3 coisas:

DNS - vai converter o nome facebook.com para um ip (linguagem chula)

Da CHAIN OUTPUT presente na tabela filter para sair o pedido de DNS (apesar de alguns modems fazerem isto, em redes corporativas não é assim que a banda toca) e após o linux saber o ip ele requisita através de um pacote SYN a conexão

Da CHAIN INPUT para receber todas as informações do DNS e dos pacotes do facebook e da CHAIN OUTPUT novamente para mandar o bendito do pacote ACK estabelecendo a conexão

Tabela NAT

A tabela NAT serve basicamente para roteamento dos pacotes, como assim? explica melhor...

por exemplo eu tenho uma maquina no ip 192.168.0.56 (firewall) e tenho outra maquina de servidor http no ip 192.168.0.23 (servidor) se eu quiser redirecionar os pacotes do firewall para o servidor na porta 80 por exemplo usaria esta regra:

iptables -t nat -A PREROUTING -p tcp -d 192.168.0.56 --dport 80 -j DNAT --to 192.168.0.23:80

A CHAIN PREROUTING presente na tabela NAT é responsável pelo processo antes do roteamento do pacote, ou seja, antes de aceitar ou descartar, ela somente envia para o ip de destino (DNAT, leia-se roteamento de destino) para tratar do pacote, no nosso caso a maquina firewall repassa os pacotes da porta 80 diretamente para nosso servidor (o servidor decidirá se aceita ou dropa a conexão)

A CHAIN OUTPUT - Consultado quando os pacotes gerados localmente precisam ser modificados antes de serem roteados. Este chain somente é consultado para conexões que se originam de IPs de interfaces locais.

A CHAIN POSTROUTING da tabela NAT é responsável por modificar o endereço de origem dos pacotes com o SNAT (leia-se roteamento de destino) regra com SNAT:

iptables -t nat -A POSTROUTING -s 192.168.0.56 -o eth1 -j SNAT --to 192.168.0.23

A regra acima modifica o endereço de origem do pacote, ou seja, se eu solicitar uma conexão para o nosso servidor http, primeiro o firewall vai redirecionar o pacote para nosso servidor, após isso nosso servidor responderá para o firewall e o firewall modificará o pacote com o ip do servidor, assim o próximo pacote chegará ao seu destino, ao invés de ficar preso no firewall


Tabela MANGLE

Esta [*****] contém todas as regras citadas acima, ela é responsável por priorizar o trafego em determinada conexão, pelo TOS seja de saída ou entrada em todas as redes, por enquanto esqueça esta tabela, raramente você a usará com as opções fora do normal.



Quaisquer dúvida ou erros meus me perdoem e comentem aqui, ficarei feliz em revisar, pois assim todos aprendem ou fixam mais facilmente o conteúdo

---
Atenciosamente, Pedro.

Já leu meu último artigo?
LINK:
http://www.vivaolinux.com.br/artigos/userview.php?login=px


7. Re: Básico de Firewall

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 06/11/2013 - 10:44h

Renato...

Também tinha muitas duvidas sobre firewall (e ainda tenho) rs...
dando uma lida aqui e ali... inclusive no foca que já acompanho a muito tempo...

segue uma síntese que eu achei muito boa!

http://johnnyroot.wordpress.com/2012/06/06/conhecendo-o-iptables-o-que-e-como-funciona-parte-1/

espero que ajude!
:D






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts