O que impede que meu servidor seja contatado pela Internet?

0

Eu tenho 3 dispositivos na minha rede doméstica; um Netgear ReadyNAS, um Raspberry Pi [Pi1] rodando o Debian Raspbian e um Raspberry Pi [Pi2] rodando o XBMC que eu acho que também é baseado no Debian.

Eu configurei três regras de encaminhamento de porta no roteador e agora posso conectar-me ao ReadyNas & Pi1 sem problemas na Web.

Pi2 não pode ser contatado, a conexão foi recusada. Eu re-indiquei a regra que funciona para o ReadyNas para Pi2, e ainda não funciona, levando-me a acreditar que é um problema no Pi. Eu tentei a porta 22 (SSH) & 8001 (servidor da web)

Internamente, posso conectar-me ao Pi2 sem problemas.

O serviço que mais me preocupa é o SSH na porta 22, que tem sido usado na maioria dos meus testes. Por fim, estarei querendo encaminhar também as portas do servidor da Web.

O que poderia estar errado?

    
por G-. 22.09.2014 / 17:55

1 resposta

1

Você deve verificar suas regras de firewall no XMBC Pi. A razão é que, fora das lojas de segurança, algumas caixas pré-configuradas barram todas as conexões originadas de fora da própria LAN.

O comando para fazer isso é

  iptables -t filter -L -n -v

e da mesma forma para as outras tabelas, nat e mangle . Se você puder agir de acordo com essas regras, então esta é a solução mais simples.

Como alternativa, se o seu roteador executa software como dd-wrt, OpenWrt, Tomato e assim por diante, a seguinte regra no roteador

 iptables -t nat -A POSTROUTING -o LAN_IFACE -s ! 192.168.0.0/24 -d 192.168.0.15 -p tcp --dport 22 -j MASQUERADE

Isto assume que sua rede doméstica é 192.168.0.0/24, que o recalcitrante Pi é 192.168.0.15 e que a interface LAN do roteador é chamada LAN_IFACE. A regra simplesmente reescreve a origem do pacote como proveniente do próprio roteador (192.168.0.1 sob as suposições acima), enganando assim o XMBC para pensar que as conexões são iniciadas de forma local, em vez de remotamente.

Por último, se o seu roteador não permitir o que precede, se você tiver alguma outra máquina Linux (como, presumo, o primeiro Pi), você pode

  1. porta encaminha as conexões para o Pi2 para algumas portas de numeração alta de Pi1

  2. redirecione esses pacotes, após o mascaramento, para Pi2 e sua porta apropriada.

Desta vez, por porta, você precisa de dois comandos: vamos considerar novamente o ssh, e digamos que o roteador tenha conexões ssh encaminhadas pela porta para a porta 51111 do Pi2 para o Pi1 (192.168.0.10:51111). Então:

  iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 51111 -j DNAT --to 192.168.0.15:22
  iptables -A FORWARD -p tcp -d 192.168.0.15 --dport 22 -j ACCEPT

Apenas certifique-se de ter permitido o encaminhamento no Pi1,

  sysctl net.ipv4.conf.eth0.forwarding=1
    
por 22.09.2014 / 19:59