Tenho um servidor executando várias VMs por meio de duas pontes e quero proteger o host por meio de iptables.
Portanto, tenho os padrões para IN/OUTPUT: drop e FORWARD: accept, e algumas regras IN/OUTPUT para me permitir acesso ssh.
Agora, o problema com esta configuração é que as sessões ssh aparentemente congelam quando um comando produz algumas linhas de saída. Por exemplo, date
funciona, mas iptables -L
ou top
ficará suspenso no meio da saída. Posso encerrar a sessão com ~.
, fazer login novamente, definir o iptables de volta ao padrão e tudo funciona novamente.
Além disso, depois de definir as regras do iptables, demora um pouco até que o problema surja. Não consegui determinar o prazo exato, acho que foi entre 5 e 20 minutos.
Alguma idéia do que poderia causar tal problema ou como alguém poderia diagnosticá-lo?
Responder1
Tente executar iptables -L -n
(adicione a opção -n). A resolução de nomes pode fazer com que o iptables -L trave.
Responder2
Você está bloqueando completamente o ICMP? Se sim, você pode ter criado umBuraco negro PMTU.
Responder3
Você tem uma regra iptable para permitir a passagem do tráfego estabelecido?
iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Também vi esse problema devido a um horizonte dividido na rede, mas isso não parece ser o seu problema, pois o problema desaparece quando você remove as regras do iptable
Responder4
Este poderia ser um problema de buraco negro da MTU.
MTU é a unidade máxima de transmissão; qual o tamanho do pacote que cada lado pode suportar. O padrão da Ethernet é 1.500 bytes, mas essa não é de longe a única possibilidade.
comandos curtos funcionam porque estão abaixo dos dois tamanhos de MTU. Os mais longos não o fazem porque não são.
Se ambas as extremidades da conexão não estiverem usando o mesmo MTU, ou se a rede intermediária tiver um MTU menor, seus sistemas precisarão descobrir isso de alguma forma; o processo é denominado Path MTU Discovery.
A maneira como isso acontece é com mensagens ICMP. Se você está bloqueando todo o ICMP, bem, você está bloqueando coisas úteis.
Mais informações aqui:Por que não bloquear o ICMP?
Observe também que se a rede de MTU pequena no meio for a camada 2 (por exemplo, as pontes que você configurou), a descoberta de MTU de caminho não funcionará; os pacotes serão descartados e aparecerão como erros no switch/ponte e/ou nas interfaces Ethernet.