Como fazer um pc agir como um roteador em alguma porta

0

Eu tenho um servidor linux no meu laboratório (daqui em diante chamado pc1), e eu tenho um windows pc2 onde eu tenho um servidor de jogo rodando. Mas como é uma rede privada, e o único computador que a internet pode acessar é o pc1. Mas eu quero que o servidor do jogo no pc2 seja visto por internet externa. Mas não tenho permissão de acesso ao roteador do nosso laboratório. Então eu quero que o pc1 funcione como um tipo de roteador que encaminha pc1: port1 para pc2: port2 e para trás. E, em seguida, a solicitação da Internet externa pode acessar o pc2: port2 e a resposta do pc2 também pode alcançar o exterior. Existe algum método para conseguir isso?

    
por Fat Cat 19.11.2013 / 06:22

1 resposta

1

Vamos chamar eth0 a interface (IF) na qual pc1 está vinculada ao roteador, e eth1 o IF em qual pc1 está vinculado a pc2. Você precisa desses comandos, emitidos como sudo, no pc1:

 service network-manager stop
 ifconfig eth0 down
 ifconfig eth0 up
 dhclient eth0
 ifconfig eth1 down
 ifconfig eth1 192.168.27.1 up
 route add default gw The_IP_Addres_of_Your_Router
 route add -net 192.168.27.0/24 dev eth1
 echo nameserver 8.8.8.8 >> /etc/resolv.conf
 echo nameserver 8.8.4.4 >> /etc/resolv.conf
 echo 1 >/proc/sys/net/ipv4/ip_forward
 iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
 iptables --append FORWARD --in-interface eth1 -j ACCEPT

Na máquina Windows, você terá que configurar um IP estático na faixa 192.168.27.0/24, por exemplo, 192.168.27.2, e definir 192.168.27.1 como seu gateway padrão.

Isso funciona em sistemas semelhantes ao Debian. Se você tiver outra distro, terá que adaptá-la às suas necessidades. Por exemplo, em Systemd-distros (Arch-Linux, Fedora, SuSE 19 ..), o primeiro comando é systemctl stop network-manager ).

O primeiro comando desativa o networkmanager, o que dificulta a maioria das operações personalizadas. Os 3 comandos a seguir conectam o pc1 ao seu roteador, e os outros comandos 5-6 conectam o pc1 ao pc2. Em seguida, os comandos 7-8 configuram a tabela de roteamento, os comandos 9-10 configuram o DNS, o comando 11 habilita o encaminhamento Ipv4 no kernel e os comandos 12-13 estabelecem regras para o iptables atuar como um encaminhador NAT e para aceitar conexões de pc2.

Isso pode ser facilmente roteirizado.

Se você quiser permitir a comunicação apenas em certas portas, substitua

  iptables --append FORWARD --in-interface eth1 -j ACCEPT

com

 iptables --append FORWARD --in-interface eth1  -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
 iptables --append FORWARD --in-interface eth1 -p Protocol_To_Be_Allowed --sport Port_To_Be_Forwarded -j ACCEPT
 iptables --append FORWARD --in-interface eth1 -j DROP
    
por 19.11.2013 / 08:14