Questão Sintaxe iptables para encaminhar solicitações de área de trabalho remota para uma máquina virtual no host CentOS


Eu posso fazer o rdesktop em uma VM executando o Windows XP hospedado em minha máquina CentOS 5.4 da máquina de hospedagem e trabalhar muito bem usando o endereço privado (192.168.122.65), mas agora preciso permitir acesso remoto à área de trabalho de outros computadores (não apenas a máquina hospedagem da VM).

Eu só preciso permitir o acesso por um dia ou mais, então não quero adicionar um NIC (por razões de ativação do XP).

Alguém poderia me ajudar com o iptables sintaxe?

A VM está em uma rede privada / virtual: 192.168.122.65 e minha máquina CentOS está em uma rede física, em 10.1.3.38 (e 192.168.122.1 como o GW para a rede virtual).

Achei um pergunta sobre regras iptables para encaminhar uma conexão de desktop remoto do Windows, mas nenhuma das respostas parecia para trabalhar e eu sou um pouco tímido em tentar cegamente variações. Minhas regras FORWARD são as listadas.

# iptables -L FORWARD
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             192.168.122.0/24    state RELATED,ESTABLISHED 
ACCEPT     all  --  192.168.122.0/24     anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 
RH-Firewall-1-INPUT  all  --  anywhere             anywhere

Se eu jogar "cegamente", existe uma maneira simples de redefinir as configurações no CentOS (a uma reinicialização da rede de serviços)?


1


origem


Quero deixar o sistema de trabalho como está e fornecer acesso remoto à VM por um dia. Inicialmente pensei em colocar a VM na sub-rede externa, mas, exceto por essa necessidade de curto prazo, ela não está quebrada. E tê-lo na rede virtual elimina a necessidade de qualquer firewall no WXP. - NVRAM


Respostas:


Antes de fazer qualquer coisa, faça um service iptables save. Isso copia todas as suas regras de iptables para /etc/sysconfig/iptables. A partir daqui você pode copiar esse arquivo e, em seguida, testar o conteúdo do seu coração. Para restaurar o conjunto de regras que você salvou, certifique-se de que o conjunto de regras esteja no mesmo arquivo (se você não salvou nenhum outro iptables, então você deve ser bom) e faça um service iptables resart. O conjunto de regras que você tinha quando salvou está agora de volta ao lugar.

Atualize agora que tenho tempo: Sintaxe, acredito que funcionará: iptables -t nat -A PREROUTING -p tcp --dport 3389 --to-destination 192.168.122.65 ; echo 1 > /proc/sys/net/ipv4/ip_forward. Observe que isso significa que qualquer tráfego RDP que chega a esse host será encaminhado.


1





Deve funcionar muito bem com o exemplo na postagem que você vinculou. Tem que ser feito no nat tabela de iptables, assim:

iptables -t nat -I PREROUTING -p tcp -d 10.1.3.38 --dport 3389 -j DNAT --to-destination 192.168.122.65

Então, REMOTAMENTE, conecte-se à porta 10.1.3.38 3389 com o seu cliente RDP.


1





Prefiro vincular a placa de rede na VM com a do host, para que a VM obtenha um endereço IP no intervalo 10.1.3.X do servidor DHCP que atende ao host (ou, se você estiver usando endereços IP estáticos) , defina o seu próprio).

Se isso é aceitável depende da sua situação, mas se você estiver usando uma máquina física separada em vez de uma VM, se você simplesmente colocar isso na sua rede, faça o mesmo com sua VM.


0



Para expandir essa resposta, seu gerenciador de MV deve fornecer algumas opções diferentes para o tipo de conexão de rede que a NIC virtual usará. É comum que o adaptador seja configurado no modo NAT (conversão de endereço de rede). Isso essencialmente coloca a VM em outra sub-rede do host, como se estivesse atrás de um roteador virtual. Você deve ser capaz de configurar a NIC para o modo em ponte, o que faz com que a VM compartilhe a NIC do host na mesma sub-rede que o host. Isso tornará a VM visível para todos nessa sub-rede sem a necessidade de roteamento adicional. - Joe Internet
Obrigado por esclarecer, mas eu sabia disso (eu era um usuário pesado VMWare 5-10 anos atrás). No entanto, eu não queria alterar a VM e é por isso que pedi especificamente iptables sintaxe. - NVRAM
Como eu disse, depende da sua situação, e é mais fácil apenas ligar a placa de rede ... Enfim, mydebian.blogdns.org/?p=111 explica como fazer isso com o iptables (assim como usando o Virtualbox embutido), então isso pode te ajudar. - Neal