Если кто-то удаленно изменяет файлы без авторизации, у вас очень серьезные проблемы с безопасностью.
Вы должны отключить машину от Интернета, сделать резервную копию только конфигурационных файлов и файлов данных, просмотреть их, чтобы убедиться, что ничего подозрительного нет, переустановить с нуля, убедиться что вы не запускаете никаких уязвимых программ (особенно написанных пользователем!), изменить все пароли на безопасные, запретить, например, парольные SSH-соединения. Почитайте о защите вашего дистрибутива, о том, как настроить подробное протоколирование и регулярно анализировать журналы .
Мои соболезнования.
Для такой задачи брандмауэр не нужен. Обратите внимание, что я не говорю, что брандмауэры бесполезны, но вам просто нужно отключить прослушивание всех адресов(0.0.0.0
). Наименьшая привилегия для адресов, по которым ваше программное обеспечение может ожидать подключения.
PostgreSQL и MySQL — это разные программы, поэтому они могут иметь разное поведение по умолчанию в отношении сети, доступа пользователей, пути установки, пути к файлам базы данных, поддерживаемых файловых систем и т. д. Вы не можете сопоставлять их только потому, что они являются базами данных. Другая вещь, которая может повлиять на конфигурацию по умолчанию, — это то, что ответственные за эти пакеты в вашем дистрибутиве решили, что программное обеспечение должно использовать по умолчанию.
По умолчанию MySQL прослушивает все сетевые адреса (0.0.0.0
), если дистрибутив не настроен иначе, как описано выше.
Возвращаясь к вашему вопросу, чтобы MySQL отвечал только на локальный хост, откройте его файл конфигурации (в большинстве случаев по адресу /etc/my.cnf
или/etc/mysql/my.cnf
)и добавьте или отредактируйте следующую строку:
bind-address = 127.0.0.1
После этого перезапустите службу mysql (зависит от дистрибутива, обычно systemctl restart mysql
илиsystemctl restart mysqld
)
Повторная проверка с помощью команды ss
:
ss -lntu | grep mysql