Я могу использовать iptables для передачи vm гостевых запросов для хостинга

Это немного сложно, но у меня есть Windows 7 vm (virtualbox), и я должен создать постоянное соединение к экземпляру MySQL на моей хост-машине.

Привязка... Я могу сделать это использование mysql привязка по адресу в хосте my.cnf и соответствующее отображение на vm, но каждый раз я изменяю сети (работа, домой, беспроводная связь, или соединенный проводом) IP-адрес моих изменений хост-машины, и я еще должен сбросить связывать адрес на хост-машине и везде (у меня есть сайты на моей хост-машине, а также VM).

Windows VM имеет адаптер NAT (а также соединенный мостом). Я использую NAT определенный 'шлюз по умолчанию' 10.0.4.2 для предназначения для моей хост-машины. Я подтвердил это путем добавления '10.0.4.2 asiteonmyhostmachine.net' к файлу хоста на VM и посещения URL.

Я попробовал играемый вокруг с IP искажением:

ifconfig lo:1 10.0.4.3 up

Я попробовал iptables, на основе некоторых других потоков, которые я считал:

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

У меня не было большой удачи, и я чувствую, что вожусь вокруг в темноте. Используя nmap I видят, что порт 3306 не доступен от 10.0.4.2, таким образом, кажется, что ни одно из вышеупомянутого не работало.

Любые предложения ценились бы, но также включайте метод для тестирования (предложенного) решения.

Спасибо!

1
задан 3 December 2014 в 14:22

2 ответа

iptables вероятно не инструмент, чтобы сделать то, чего Вы желаете. Однако можно хотеть использовать iptables для блокирования доступа из Интернета.

Сетевой трафик на lo устройство не должно быть направлено к другому устройству, даже виртуальному устройству. Вероятно, что virtualbox создал br0 устройства или некоторое устройство с br на имя. IP-адрес этого устройства был бы Вашим лучшим выбором соединиться с mysql на.

виртуальный сервер должен быть в состоянии соединиться непосредственно с mysql сервером, если это слушает на достижимом адресе. mysql свойственно быть настроенным для слушания на обратной петле (127.0.0.1) адрес как меры безопасности. Используйте команду sudo netstat -antp | grep mysql для определения, на каких IP-адресах mysql слушает. Если это только послушает на 127.0.0.1 или ::1, необходимо будет скорректировать mysql конфигурацию. Если это послушает на 0.0.0.0, то mysql будет достижим на любом общедоступном адресе Вашего сервера.

0
ответ дан 6 October 2019 в 08:29

Из соображений безопасности значение по умолчанию Mysql не предоставляет удаленный доступ корнем.

Для предоставления доступа выполняют эти шаги:

Редактирование конфигурационный файл "/etc/mysql/my.cnf" и удаляют ограничение удаленного доступа

Комментарий следующая строка:

#bind-address = 127.0.0.1

Дают разрешение поддержать соединения от любого IP:

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

открытый порт Mysql с Iptables:

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

После перезапуска сервиса, возможно соединиться с пользователем root от виртуальной машины

Источники:

https://www.virtualbox.org/
http://www.ubuntu.com/download/server
http://directory.apache.org/
http://www.mysql.com/products/workbench/
0
ответ дан 6 October 2019 в 08:29

Другие вопросы по тегам:

Похожие вопросы: