Estou tentando acessar um servidor web rodando em um PC, que está atrás de um firewall não gerenciado por mim, usando uma conexão VPN (openvpn). Basicamente, quero usar o IP público do meu servidor VPN para acessar o servidor web no PC remoto atrás do firewall.
Conforme imagem,http://193.105.1.1:8085apresentará o site hospedado em 192.168.1.1:8080
Desculpe se esta questão já foi respondida. Tentei pesquisar algo semelhante, mas na verdade não sei o que pesquisar.
Responder1
É bastante fácil!
Para facilitar, vamos considerar a Máquina A - 193.105.1.1 e a Máquina B - 192.168.1.1
Instale o servidor OpenVPN na Máquina A
Eu prefiro Ubuntu 18.04 e Nyr OpenVPN Installer Script
Basta executar isso no terminal
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
Supondo que você já tenha configurado o Apache ou nginx na Máquina B, certifique-se de que ele ouça todas as interfaces.
Na Máquina B instale o cliente OpenVPN para conectar ao seu servidor!
Execute este código no terminal para instalar o OpenVPN Client
sudo apt-get install openvpn
Precisamos agora configurar a Máquina A para rotear o tráfego do IP público para o endereço IP interno do OpenVPN. A Máquina B receberá o endereço 10.8.0.2 se você usou o Nyr Script.
Vamos configurar o roteamento!
- Ativar firewall ufw
sudo ufw enable ssh && sudo ufw enable
sudo nano /etc/default/ufw
- Altere "DEFAULT_INPUT_POLICY" e "DEFAULT_FORWARD_POLICY" para ACCEPT. Salve e feche o arquivo.
sudo nano /etc/ufw/sysctl.conf
- Remova o comentário n"et/ipv4/ip_forward=1". Salve e feche o arquivo.
sudo nano /etc/ufw/before.rules
No final da linha após a linha ""COMMIT" adicione o seguinte
*nat
-F
:PRÉ-ROTE ACEITAR [0:0]
-A PREROUTING -i eth0 -d 193.105.1.1 -p tcp -m multiport --dports 23:65535 -j DNAT --to-destination 10.8.0.2
-A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j MASQUERADA
COMPROMETER-SE
Altere eth0 para o nome da sua interface de rede.
Salve e reinicie os dois servidores! Conecte a Máquina B à Máquina A pelo cliente OpenVPN.