iptables-block-todo-entrada-e-saída, exceto dns (porta 53), porta teamviewer (5938) e ip do meu servidor (porta 80)

0

Estou tentando bloquear todo o tráfego usando iptables , mas tenho algumas exceções:

  • DNS
  • meu próprio servidor (estou usando apenas a porta 80)
  • Teamviewer (porta 5938)
  • porta 5555 para permitir conexões adb

No momento, eu tenho essas linhas de código, mas não está funcionando como eu preciso:

// Allow my own server - this seems to work
iptables -A INPUT -s 1.1.1.1 -j ACCEPT
iptables -A OUTPUT -d 1.1.1.1 -j ACCEPT

// Allow DNS requests - dont know if it´s correct
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

// Allow Teamviewer - same as above - dont know if it´s correct
iptables -A INPUT -p tcp --dport 5938 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5938 -j ACCEPT
iptables -A OUTPUT -p udp --dport 5938 -j ACCEPT
iptables -A INPUT -p udp --dport 5938 -j ACCEPT

// Allow ADB - same as above - dont know if it´s correct
iptables -A INPUT -p tcp --dport 5555 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5555 -j ACCEPT
iptables -A OUTPUT -p udp --dport 5555 -j ACCEPT
iptables -A INPUT -p udp --dport 5555 -j ACCEPT

// Block all other requests
iptables -P INPUT DROP
iptables -P OUTPUT DROP

O Teamviewer não se conecta, nem a resolução de nomes funciona; o adb também não se conecta. Há algo errado lá, realmente não sei o quê. A única coisa que funciona é a conexão com o meu próprio servidor se eu codificar o domínio em /etc/hosts .

Um dos iptables gurus pode me ajudar?

    
por Curious Mind 16.07.2018 / 14:21

1 resposta

0

O que não está funcionando? Na verdade, a primeira entrada do iptable permitiria todo o tráfego tcp / udp se eu estivesse certo. Então os outros ACEs não vão acertar nenhum dos dois. Se você quer apenas o tráfego HTTP, você deve permitir apenas a porta TCP 80.

IPtables estão funcionando de cima para baixo. Seu servidor obteve o endereço IP 1.1.1.1 e todos os pacotes receberão uma fonte de 1.1.1.1. Caso contrário, todo o tráfego de entrada recebeu a origem x.x.x.x e o destino 1.1.1.1, portanto, as duas primeiras entradas corresponderão a todo o tráfego. Para as suas necessidades, você deve configurá-lo sem as duas primeiras regras. O tráfego de DNS será permitido com isso:

iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 -j ACCEPT

Tráfego HTTP / HTTPS para o seu servidor, você deve definir com:

iptables -A OUTPUT -p tcp --sport 1024:65535 -m multiport --dports 80,443 -j ACCEPT

O Teamviewer é prioridade para obter uma conexão TCP através do 5938, então deve ficar assim:

iptables -A OUTPUT -o eth0 -p tcp --dport 5938 -m state --state NEW -j ACCEPT

Para o ADB, não tenho certeza porque nunca toquei nele. Mas se é um fluxo TCP você deve fazer:

iptables -A OUTPUT -p tcp --dport 5555 -j ACCEPT
    
por 16.07.2018 / 14:27

Tags