Iniciante no Iptables [RESOLVIDO]

1. Iniciante no Iptables [RESOLVIDO]

Mackristofer
macks

(usa Outra)

Enviado em 09/08/2012 - 11:33h

Colegas,
Mecho com ambiente windows a muito tempo, estou querendo prestar serviços diferentes para meus clientes, resolvi estudar a funda linux e suas ferramentas de administração de rede, estou lendo alguns artigos sobre iptables, li muito sobre o assunto e agora partir para a pratica, subi uma VM e estou brincando aqui com o iptables, eis a regra que crie:

# iptables -t filter -A INPUT -s minha_maquina -d servidor_linux -j DROP

bom no meu entendimento deveria bloquear somente o trafego que vai da minha_maquina para o servidor_linux correto? ele esta bloqueando o trafego inclusive do meu servidor para a maquina, vendo que ele se portava assim resolvi deixar explicito que a conexão do meu servidor para a maquina é permitido com a seguinte regra:

# iptables -t filter -A OUTPUT -s servidor_linux -d minha_maquina -j ACCEPT

mesmo assim não consigo pingar, alguém pode me explicar onde esta o problema?

vlw pessoal.


  


2. Re: Iniciante no Iptables [RESOLVIDO]

Renato Freitas
nanatinho

(usa Debian)

Enviado em 09/08/2012 - 12:54h

"Colegas,
Mecho com ambiente windows a muito tempo, estou querendo prestar serviços diferentes para meus clientes, resolvi estudar a funda linux e suas ferramentas de administração de rede, estou lendo alguns artigos sobre iptables, li muito sobre o assunto e agora partir para a pratica, subi uma VM e estou brincando aqui com o iptables, eis a regra que crie:

# iptables -t filter -A INPUT -s minha_maquina -d servidor_linux -j DROP

bom no meu entendimento deveria bloquear somente o trafego que vai da minha_maquina para o servidor_linux correto? ele esta bloqueando o trafego inclusive do meu servidor para a maquina, vendo que ele se portava assim resolvi deixar explicito que a conexão do meu servidor para a maquina é permitido com a seguinte regra:

# iptables -t filter -A OUTPUT -s servidor_linux -d minha_maquina -j ACCEPT

mesmo assim não consigo pingar, alguém pode me explicar onde esta o problema?

vlw pessoal."



Boa tarde.

Como você está acessando na própria máquina (INPUT e OUTPUT), não funciona muito bem da forma como está pensando.

Neste caso caso bloqueio apenas INPUT, consequentemente não conseguirá estabelecer nenhuma conexão mesmo que não tenha bloqueado a OUTPUT.

Porquê? Porque para estabelecer uma conexão, precisa tanto do tráfego de entrada quanto do de saída, caso bloqueie um dos dois, irá bloquear o outro, neste caso específico das regras que criastes.

Experimente, apenas mudar de idéia, ao invés de bloquear, libere, tipo:

Crie a política padrão como DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

E a partir daí começe a liberar tudo que precise.

# liberando ssh
iptables -A INPUT -p tcp -s IPouREDE -d IPINTERFACEFIREWALL --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -d IPouREDE -s IPINTERFACEFIREWALL --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT

Neste caso específico, quando aplicada estas regras, conseguirá apenas acesso ssh para este equipamento, e nada mais, pois tudo mais está bloqueado.

OBS: Ao aplicar a política padrão como DROP tudo será bloqueado, a menos que expressamente liberado (criado regra com ACCEPT).

Abraço e fique com DEUS!!!



3. Re: Iniciante no Iptables [RESOLVIDO]

Alex
alexhctp

(usa Linux Mint)

Enviado em 09/08/2012 - 13:03h

Oi amigo,

Recomendo que antes de mais nada, edite a politica padrão usando o argumento -P (Policy=Politica). Com esse procedimento, voce ta informado ao iptables que por padrao
ele vai negar todas as requisiçoes destinadas ao firewall.
Ex.: #iptables -P INPUT ACCEPT

Para só depois vc adicionar a regra com o argumento -A (Apend=adicionar)
Ex:. #iptables -A INPUT -s xxx.xxx.xxx/xx -j ACCEPT

Os xxx representam o IP da rede ou da(s) estações de frabalho e mascara que tu desejar usar.
As regras acima devem ser feitas quando os pacotes tem como alvo o firewall/filtro.
Caso queira que as regras tenha como destino outros computadores, use a Chain FORWARD.
Quando vc quer lidar com pacotes gerados no firewall/filtro com destino a outras maquinas, use a chain OUTPUT.

Por fim uma dica, nos casos das chains FORWARD, INPUT e OUTPUT não precisa declarar a tabela (-t filter), uma vez que essa é a tabela padrão do iptables.

Espero ter ajudado!!!


4. Re: Iniciante no Iptables [RESOLVIDO]

Mackristofer
macks

(usa Outra)

Enviado em 09/08/2012 - 15:00h

nanatinho escreveu:

"Colegas,
Mecho com ambiente windows a muito tempo, estou querendo prestar serviços diferentes para meus clientes, resolvi estudar a funda linux e suas ferramentas de administração de rede, estou lendo alguns artigos sobre iptables, li muito sobre o assunto e agora partir para a pratica, subi uma VM e estou brincando aqui com o iptables, eis a regra que crie:

# iptables -t filter -A INPUT -s minha_maquina -d servidor_linux -j DROP

bom no meu entendimento deveria bloquear somente o trafego que vai da minha_maquina para o servidor_linux correto? ele esta bloqueando o trafego inclusive do meu servidor para a maquina, vendo que ele se portava assim resolvi deixar explicito que a conexão do meu servidor para a maquina é permitido com a seguinte regra:

# iptables -t filter -A OUTPUT -s servidor_linux -d minha_maquina -j ACCEPT

mesmo assim não consigo pingar, alguém pode me explicar onde esta o problema?

vlw pessoal."



Boa tarde.

Como você está acessando na própria máquina (INPUT e OUTPUT), não funciona muito bem da forma como está pensando.

Neste caso caso bloqueio apenas INPUT, consequentemente não conseguirá estabelecer nenhuma conexão mesmo que não tenha bloqueado a OUTPUT.

Porquê? Porque para estabelecer uma conexão, precisa tanto do tráfego de entrada quanto do de saída, caso bloqueie um dos dois, irá bloquear o outro, neste caso específico das regras que criastes.

Experimente, apenas mudar de idéia, ao invés de bloquear, libere, tipo:

Crie a política padrão como DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

E a partir daí começe a liberar tudo que precise.

# liberando ssh
iptables -A INPUT -p tcp -s IPouREDE -d IPINTERFACEFIREWALL --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -d IPouREDE -s IPINTERFACEFIREWALL --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT

Neste caso específico, quando aplicada estas regras, conseguirá apenas acesso ssh para este equipamento, e nada mais, pois tudo mais está bloqueado.

OBS: Ao aplicar a política padrão como DROP tudo será bloqueado, a menos que expressamente liberado (criado regra com ACCEPT).

Abraço e fique com DEUS!!!


Muito obrigado pela explicação, vou mudar a politica default e trabalhar dessa forma.

nanatinho, fiz a mudança da minha politica para DROP, como vc falo la em cima eu preciso criar a regra tanto de INPUT e OUTPUT para haver conexão, então fiz o seguinte:

#iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#iptables -P FORWARD DROP

#iptables -A INPUT -s minha_computador -d meu_servidor -j ACCEPT
#iptables -A OUTPUT -s meu_servidor -d minha_computador -j ACCEPT

foi criado as regras de entrada e saída e mesmo assim a maquina não pinga no servidor e o servidor não pinga na maquina, onde estou errando?????

Obrigado!!!


5. Re: Iniciante no Iptables [RESOLVIDO]

Mackristofer
macks

(usa Outra)

Enviado em 09/08/2012 - 15:03h

alexhctp escreveu:

Oi amigo,

Recomendo que antes de mais nada, edite a politica padrão usando o argumento -P (Policy=Politica). Com esse procedimento, voce ta informado ao iptables que por padrao
ele vai negar todas as requisiçoes destinadas ao firewall.
Ex.: #iptables -P INPUT ACCEPT

Para só depois vc adicionar a regra com o argumento -A (Apend=adicionar)
Ex:. #iptables -A INPUT -s xxx.xxx.xxx/xx -j ACCEPT

Os xxx representam o IP da rede ou da(s) estações de frabalho e mascara que tu desejar usar.
As regras acima devem ser feitas quando os pacotes tem como alvo o firewall/filtro.
Caso queira que as regras tenha como destino outros computadores, use a Chain FORWARD.
Quando vc quer lidar com pacotes gerados no firewall/filtro com destino a outras maquinas, use a chain OUTPUT.

Por fim uma dica, nos casos das chains FORWARD, INPUT e OUTPUT não precisa declarar a tabela (-t filter), uma vez que essa é a tabela padrão do iptables.

Espero ter ajudado!!!


Cara so para confirmar vou usar #iptables -P INPUT DROP ao invés de #iptables -P INPUT ACCEPT certo? obrigado pela dica!


6. Re: Iniciante no Iptables [RESOLVIDO]

Alex
alexhctp

(usa Linux Mint)

Enviado em 09/08/2012 - 15:11h

macks escreveu:

alexhctp escreveu:

Oi amigo,

Recomendo que antes de mais nada, edite a politica padrão usando o argumento -P (Policy=Politica). Com esse procedimento, voce ta informado ao iptables que por padrao
ele vai negar todas as requisiçoes destinadas ao firewall.
Ex.: #iptables -P INPUT ACCEPT

Para só depois vc adicionar a regra com o argumento -A (Apend=adicionar)
Ex:. #iptables -A INPUT -s xxx.xxx.xxx/xx -j ACCEPT

Os xxx representam o IP da rede ou da(s) estações de frabalho e mascara que tu desejar usar.
As regras acima devem ser feitas quando os pacotes tem como alvo o firewall/filtro.
Caso queira que as regras tenha como destino outros computadores, use a Chain FORWARD.
Quando vc quer lidar com pacotes gerados no firewall/filtro com destino a outras maquinas, use a chain OUTPUT.

Por fim uma dica, nos casos das chains FORWARD, INPUT e OUTPUT não precisa declarar a tabela (-t filter), uma vez que essa é a tabela padrão do iptables.

Espero ter ajudado!!!


Cara so para confirmar vou usar #iptables -P INPUT DROP ao invés de #iptables -P INPUT ACCEPT certo? obrigado pela dica!


Isso mesmo macks, coloquei ACCEPT ao invés do DROP na hora de definir a regra padrão... falha minha ;D. Mas enfim, a regra com a politica padrão fica assim:

#iptables -P INPUT DROP

Espero ter ajudado. Abraço!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts