Назад | Перейти на главную страницу

Вопросы безопасности удаленного доступа MySQL

Я всегда использовал MySQL локально, используя сокеты. Теперь мне нужно получить удаленный доступ к базе данных. Насколько это безопасно и что мне нужно учитывать? Достаточно ли просто использовать адрес привязки или я должен также настроить брандмауэр для блокировки трафика?

Вам следует настроить правила брандмауэра, чтобы разрешить только тем хостам, которым необходим доступ к хосту, и заблокировать все остальные. Вы можете сделать что-то вроде следующего, но это всего лишь фрагмент ...

trusted_hosts="1.2.3.4 5.6.7.8 7.8.9.1"
for host in $trusted_hosts; do
    iptables -A INPUT -p tcp -s $host --dport 3306 -j ACCEPT
done

Это предполагает, что вы установили политику отбрасывания по умолчанию с iptables -P INPUT DROP. Не забудьте добавить правила для удаленного доступа, такие как ssh, с помощью iptables -A INPUT -p tcp --dport 22 -j ACCEPT.

Вы всегда должны устанавливать брандмауэр на сервере базы данных. Нет смысла позволять неавторизованным людям даже пытаться подключиться к вашей базе данных. После этого убедитесь, что вы используете надежные пароли (в конце концов, вам не нужно запоминать пароль).

Протокол MySQL не зашифрован по сети, поэтому, если вы не доверяете своей сети, вы можете туннелировать ее через SSH или использовать какой-либо тип VPN.