usando o iptables para testar o aplicativo

0

Estou testando meu aplicativo da web que se conecta a dois bancos de dados. Eu não posso pará-los, mas eu quero simular a interrupção de um deles.

Então eu abri um terminal onde estou pingando o servidor de banco de dados:

 ping 172.21.7.188

No segundo terminal que fiz:

sudo iptables -A INPUT -s 172.21.7.188 -j DROP
sudo iptables -A OUTPUT -d 172.21.7.188 -j DROP

Mas não vejo nenhuma mudança - pings ainda retornam. O que estou fazendo errado?

    
por mnowotka 17.10.2013 / 09:24

2 respostas

0

Enquanto você pode estar usando o Ubuntu, esta questão não é específica do Ubuntu, mas específica do Linux, então eu acho que seria melhor perguntar no ServerFault.

Responda à pergunta original (antes de OP editá-la)

Sua regra na cadeia INPUT está correta, mas a regra na cadeia OUTPUT está errada. Você quer deixar lá os pacotes endereçados ao IP mencionado, não os que vêm dele (o que é inútil nessa cadeia).

É por isso que você precisa alterar -s ( --source ) para -d ( --destination ) na regra:

# iptables -A OUTPUT -d 172.21.7.188 -j DROP

Mas mesmo quando você estava perdendo apenas pacotes de entrada, era meio que suficiente, pode-se dizer. É verdade que o ping estava retornando (a resposta de eco do ICMP estava chegando ao seu host) sem a linha acima, e consultar tcpdump ou wireshark mostraria datagramas relacionados a ping (ou seja, enviados e recebidos), mas o aplicativo ping não estava recebendo datagramas de entrada, porque eles foram descartados.

Obviamente, é bastante imprudente descartar apenas pacotes de entrada na maioria dos casos, porque isso leva a um estado diferente em ambas as extremidades da conexão (no nível da conexão ou no nível do aplicativo).

Responda à pergunta editada

Se, após a correção, ele ainda não funcionar, suspeito que seu firewall já tenha algumas regras que tornem suas novas regras inacessíveis. A maneira como você adicionou suas regras as torna anexadas no final da cadeia. Você deve remover suas novas regras primeiro (os mesmos comandos usados para anexar, mas altere -A para -D ).

Agora, adicione suas regras ao início das cadeias (ou seja, insira-as na regra número 1) para as quais elas são adequadas (os mesmos comandos para acrescentar, altere -A para -I ):

# iptables -I INPUT  -s 172.21.7.188 -j DROP
# iptables -I OUTPUT -d 172.21.7.188 -j DROP

Agora deve funcionar.

    
por przemoc 18.10.2013 / 13:43
0
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Isso bloqueará o ping

Estou usando este script para o Iptables no nosso servidor

#!/bin/bash 

#This Script was Used for Only Setting up Iptables in ubuntu 12.04 server
#uncomment the Lines With # Which u don't need to use 
#if u going to use this script in remote VPS Test it in local systems before applying it in remote VPS .
#final line will be commented with # cos it will save the iptables if its not commented with #


#0. Flush every Rules what ever there already 

iptables -F

#1. This enable traffic for (lo) loopback interface(-i) 


iptables -A INPUT -i lo -j ACCEPT


#2. This Will Keep the rules for Which service currently Established  eg : ssh


iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


#3. This Will Enable the Port Number 22 for ssh which i we have defined 


iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT


#4.This Will Enable the Port Number 80 for http 


iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT


#5.This Will Enable the Port Number 443 for httpd 


iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT


#6. Allow rsync from a specific network


iptables -A INPUT -i eth0 -p tcp --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT


iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT


#7. Blow ICMP PING Request 

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP


#11. This Will Block Other connections 


iptables -A INPUT -j DROP



#saving the iptables 


#sudo apt-get install iptables-persistent
#sudo service iptables-persistent save
#sudo service iptables-persistent restart
    
por Babin Lonston 17.10.2013 / 09:28