Posso usar o iptables para encaminhar solicitações de convidado da VM ao host

1

Isso é um pouco complicado, mas eu tenho um Windows 7 vm (virtualbox) e preciso criar uma conexão persistente com a instância do MySQL na minha máquina host.

Ligando ... Eu posso fazer isso usando mysql endereço de ligação no host my.cnf e mapeamento correspondente na vm, mas toda vez que eu mudar de redes (trabalho, casa, sem fio ou com fio) o endereço IP da minha máquina host muda e eu tenho que redefinir o endereço de ligação na máquina host e em qualquer outro lugar (tenho sites na minha máquina host, bem como na VM).

A VM do Windows possui um adaptador NAT (bem como uma ponte). Estou usando o NAT 'default gateway' 10.0.4.2 para direcionar minha máquina host. Eu confirmei isso adicionando '10 .0.4.2 asiteonmyhostmachine.net 'ao arquivo host na VM, e visitando o URL.

Eu tentei brincar com o aliasing de ip:

ifconfig lo:1 10.0.4.3 up

Eu tentei o iptables, baseado em alguns outros tópicos que li:

sudo iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 10.0.4.2 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT-p tcp -s 10.0.4.2 --sport 3306 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT

Eu não tive muita sorte e sinto que estou tateando no escuro. Usando nmap eu posso ver que a porta 3306 não é acessível a partir de 10.0.4.2 por isso parece que nenhum dos itens acima funcionou.

Todas as sugestões serão bem-vindas, mas inclua também um método para testar sua solução (proposta).

Obrigado!

    
por bfuzze 03.12.2014 / 22:22

2 respostas

0

iptables provavelmente não é a ferramenta para fazer o que você deseja. No entanto, você pode querer usar o iptables para bloquear o acesso da Internet.

O tráfego de rede no dispositivo lo não deve ser encaminhado para outro dispositivo, mesmo para um dispositivo virtual. É provável que o virtualbox tenha criado um br0 de dispositivos ou algum dispositivo com br no nome. O endereço IP deste dispositivo seria sua melhor escolha para se conectar ao mysql.

O servidor virtual deve ser capaz de se conectar diretamente ao servidor mysql, se estiver escutando em um endereço acessível. É comum que o mysql seja configurado para escutar o endereço de loopback (127.0.0.1) como uma medida de segurança. Use o comando sudo netstat -antp | grep mysql para determinar a quais endereços IP mysql está escutando. Se estiver apenas ouvindo 127.0.0.1 ou ::1 , você precisará ajustar a configuração do mysql. Se estiver escutando 0.0.0.0 , o mysql estará acessível em qualquer endereço público do seu servidor.

    
por BillThor 04.12.2014 / 01:31
0

Por motivos de segurança, o padrão Mysql não permite acesso remoto por root.

Para permitir o acesso, siga estas etapas:

Edite o arquivo de configuração "/etc/mysql/my.cnf" e remova a restrição de acesso remoto

Comente a seguinte linha:

#bind-address = 127.0.0.1

Conceder permissão para fazer o root de conexões de qualquer IP:

mysql -u root -pROOTPASSWORD
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'ROOTPASSWORD' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit

Porta aberta do Mysql com o Iptables:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

Após reiniciar o serviço, é possível conectar-se ao usuário root a partir da máquina virtual

Fontes:

https://www.virtualbox.org/
http://www.ubuntu.com/download/server
http://directory.apache.org/
http://www.mysql.com/products/workbench/
    
por kyodake 04.12.2014 / 01:32