Uma opção seria DNAT via netfilter na caixa A:
iptables -t nat -A PREROUTING -p tcp -d 77.37.194.101 --dport 80 -j DNAT --to-destination 10.1.1.16.
Isso expõe apenas a porta 80.
Como expor uma das minhas caixas de rede privada que possui um servidor da Web para a Internet?
Mais rigidamente, a caixa A tem duas interfaces: eth0
e tap1
. eth0
é usado para se conectar ao ISP, meu IP é 77.37.194.101
. A caixa B está conectada a tap1
, nesta caixa de sub-rede A tem IP 10.1.1.1
e caixa B 10.1.1.16
. Como tornar a caixa B acessível a partir da Internet com 77.37.194.101
?
Ambas as máquinas têm o Ubuntu.
As interfaces de toque são virtuais, geralmente usadas para virtualização. Se este for o caso, você deve criar outra interface de toque para uma DMZ. Atribuir a interface de toque DMZ ao servidor virtual. Não deve haver um IP atribuído ao host na interface DMZ e não deve haver uma rede interna atribuída a qualquer máquina na DMZ. Em seguida, use o roteamento NAT. Desta forma, se o servidor é hackeado, não há uma rede interna conectando o host e quaisquer outras máquinas ou virtuais que você possa ter. (Há ainda um pequeno risco de hacks de virtualização, mas você é muito mais seguro do que dar acesso externo à rede interna.)
Precauções de segurança e roteamento devem ser as mesmas em máquinas virtuais ou físicas. Dê uma rápida leitura a qualquer firewall padrão do Howto. (monowall, ipcop, etc.)
Se você apenas fizer o roteamento de NAT na rede interna, qualquer comprometimento em seu servidor da Web dará acesso total a toda a sua rede interna e máquina host, e a todos os virtuais na rede interna, se este for virtual.
O acesso ao shell e a transferência de arquivos devem ser feitos via SSH para o virtual, nunca para o acesso compartilhado internamente a arquivos (smb, nfs, etc.).