ufw portforwarding para o virtualbox guest

1

Meu objetivo é conectar-se usando a área de trabalho remota na minha máquina desktop, para o windows xp em execução no virtualbox no meu servidor linux.

Minha configuração:

  • server = debian squeeze, de 64 bits, com um endereço IP público (host)
  • virtualbox-ose 3.2.10 (do debian repo)
  • o windows xp rodando dentro do VBox como convidado; modo de rede em ponte no VBox, ip = 192.168.1.100
  • ufw como o firewall no debian, 3 portas são abertas: 22 / ssh, 80 / apache e 3389 para desktop remoto

Meu problema: Se eu tentar usar a área de trabalho remota no meu computador doméstico, não consigo me conectar ao convidado do Windows. Se eu primeiro "ssh -X -C" no servidor Debian, então execute "rdesktop 192.168.1.100", eu posso me conectar sem problemas. O firewall do Windows foi configurado para permitir conexões de área de trabalho remota, e eu mesmo o desliguei (pois é redundante aqui) para ver se esse era o problema, mas não fazia diferença.

Como posso conectar-me de dentro da sub-rede local, suspeito que não configurei meu firewall debian corretamente para lidar com conexões de fora da LAN. Aqui está o que eu fiz ...

Primeiro meu status do ufw:

ufw status                                                                                                   
Status: active                                                                                                                          

To                         Action      From                                                                                             
--                         ------      ----
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
3389                       ALLOW       Anywhere

Eu editei /etc/ufw/sysctl.conf e adicionei:

net/ipv4/ip_forward=1

Editado / etc / default / ufw e adicionado:

DEFAULT_FORWARD_POLICY="ACCEPT"

Editado /etc/ufw/before.rules e adicionado:

# setup port forwarding to forward rdp to windows VM
*nat
:PREROUTING - [0:0]

-A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.100
-A PREROUTING -i eth0 -p udp --dport 3389 -j DNAT --to-destination 192.168.1.100

COMMIT

# Don't delete these required lines, otherwise there will be errors
*filter

<snip>

Reiniciou o firewall, etc., mas sem conexão.

Meus arquivos de log no host debian mostram isso (meu endereço IP público foi removido para esta postagem, mas está correto no log atual):

Feb  6 11:11:21 localhost kernel: [171991.856941] [UFW AUDIT] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27518 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 
Feb  6 11:11:21 localhost kernel: [171991.856963] [UFW ALLOW] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27518 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 
Feb  6 11:11:24 localhost kernel: [171994.856701] [UFW AUDIT] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27519 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 
Feb  6 11:11:24 localhost kernel: [171994.856723] [UFW ALLOW] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27519 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 
Feb  6 11:11:30 localhost kernel: [172000.856656] [UFW AUDIT] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27520 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 
Feb  6 11:11:30 localhost kernel: [172000.856678] [UFW ALLOW] IN=eth0 OUT=eth0 SRC=aaa.bbb.ccc.dd DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=27520 DF PROTO=TCP SPT=54201 DPT=3389 WINDOW=5840 RES=0x00 SYN URGP=0 

Embora esta seja a configuração / configuração atual, eu também tentei várias variações disso; Eu pensei que talvez o ISP estaria bloqueando 3389 por algum motivo e tentasse usar portas diferentes, mas novamente não havia conexão.

Alguma idéia ...? Eu esqueci de modificar algum arquivo em algum lugar?

    
por user85116 06.02.2012 / 17:20

4 respostas

3

Eu realmente não estou sendo snarky com isso, mas você precisa fazer o seu gerenciamento "firewall" IPTAbles com algo melhor do que UFW.

Está tudo bem para uso em computadores, mas foi projetado apenas para esse uso e não para "grau de servidor".

Eu sugiro que você se sente e passe algum tempo com qualidade aprendendo como o NetFilter / IPTables funciona e se sinta confortável em usar esses comandos diretamente. Se você tem medo de quebrar alguma coisa, fazer backups da configuração do seu IPTables antes de alterações ou até mesmo uma configuração básica de controle de versão do 'Git' ajudará você a experimentar e ganhar confiança.

    
por 24.03.2012 / 15:46
3

Isso resolveu para mim:

sudo ufw allow proto tcp from 192.168.1.100 to any port 22

O problema é que a resposta estava sendo bloqueada. Espero que ajude alguém.

    
por 18.08.2012 / 17:28
2

Não tenho certeza se você ainda precisa de ajuda aqui. Eu tive exatamente o mesmo problema e o problema foi bastante básico. O servidor de destino não tinha uma entrada de gateway padrão e não trouxe as respostas de volta ao gateway. Depois de definir o gateway padrão, tudo correu bem. Você pode verificar seu roteamento digitando route -n (com -n evitando a pesquisa de DNS demorada para cada entrada).

    
por 24.03.2012 / 14:54
-3

Eu simplesmente fiz: ufw allow to [Endereço IP da Máquina Virtual]

    
por 20.01.2016 / 05:12