Я традиційно використовую тунелювання SSH для підключення до віддаленого сервера MySQL. Однак я вмикаю реплікацію на підлеглий екземпляр, і тому я намагаюся отримати пряме з'єднання з портом 3306, що працює з певних зовнішніх IP-адрес.
Я встановив MySQL прив’язувати до всіх адрес хоста і перевіряв це, працюючи через netstat, а також шляхом підключення до нього локально, використовуючи відкритий IP, а не localhost або 127.0.0.1. Я також просунув отвори в брандмауері (використовуючи ufw) для порту 3306 / tcp для конкретних віддалених IP-адрес, що цікавлять (замінено на 1.2.3.4 у ufw status verbose
висновку нижче).
To Action From
-- ------ ----
80,443/tcp (Nginx Full) ALLOW IN Anywhere
25/tcp ALLOW IN Anywhere
143 ALLOW IN Anywhere
110 ALLOW IN Anywhere
993/tcp (Dovecot Secure IMAP) ALLOW IN Anywhere
995/tcp (Dovecot Secure POP3) ALLOW IN Anywhere
25/tcp (Postfix) ALLOW IN Anywhere
465/tcp (Postfix SMTPS) ALLOW IN Anywhere
22 ALLOW IN Anywhere
3306/tcp ALLOW IN 1.2.3.4
80,443/tcp (Nginx Full (v6)) ALLOW IN Anywhere (v6)
25/tcp (v6) ALLOW IN Anywhere (v6)
143 (v6) ALLOW IN Anywhere (v6)
110 (v6) ALLOW IN Anywhere (v6)
993/tcp (Dovecot Secure IMAP (v6)) ALLOW IN Anywhere (v6)
995/tcp (Dovecot Secure POP3 (v6)) ALLOW IN Anywhere (v6)
25/tcp (Postfix (v6)) ALLOW IN Anywhere (v6)
465/tcp (Postfix SMTPS (v6)) ALLOW IN Anywhere (v6)
22 (v6) ALLOW IN Anywhere (v6)
iptables також повідомляє про таке:
# iptables -S | grep 3306
-A ufw-user-input -s 1.2.3.4/32 -p tcp -m tcp --dport 3306 -j ACCEPT
Однак спроби підключитися до нього з цих адрес просто вичерпані. Нічого не з'являється у файлах журналу помилок ufw, syslog, ядра або mysql при спробі підключення, тому я натрапив на цей момент. Що я пропустив?