Nuestra base de datos MongoDB en Digital Ocean desapareció repentinamente. Cuando ejecuto mongod , dice:
MongoDB starting : pid=27161 port=27017 dbpath=/data/db 64-bit host=unifyhub-db 2017-01-07T17:36:06.617+0800 I CONTROL [initandlisten] db version v3.0.11 2017-01-07T17:36:06.617+0800 I CONTROL [initandlisten] git version: 48f8b49dc30cc2485c6c1f3db31b723258fcbf39 2017-01-07T17:36:06.617+0800 I CONTROL [initandlisten] build info: Linux ip-10-65-215-98 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49 2017-01-07T17:36:06.617+0800 I CONTROL [initandlisten] allocator: tcmalloc 2017-01-07T17:36:06.617+0800 I CONTROL [initandlisten] options: {} 2017-01-07T17:36:06.676+0800 E NETWORK [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017 2017-01-07T17:36:06.677+0800 E NETWORK [initandlisten] addr already in use 2017-01-07T17:36:06.677+0800 I STORAGE [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating 2017-01-07T17:36:06.677+0800 I CONTROL [initandlisten] dbexit: rc: 100¿Tienes alguna idea de lo que sucede aquí? En realidad, no hicimos nada, solo descubrimos que toda la aplicación no funcionaba porque no se podía encontrar la base de datos.
¡Creo que te secuestraron!
de acuerdo con http://thehackernews.com/2017/01/secure-mongodb-database.html y http://securityaffairs.co/wordpress/55018/cyber-crime/mongodb-hacked.html hay un hacker apuntando a la apertura bases de datos MongoDB, y pide un rescate para devolver sus datos.
Enfrenté exactamente el mismo problema que el tuyo. Pensé que era algo relacionado con el océano digital, pero después de leer esas publicaciones, revisé mi servidor y se confirmó que estaba secuestrado.
Abrí un caparazón mongo
mongo;enumeró las bases de datos
show dbs; Encontré una base de datos llamada READ1 . La revisé y encontré una colección con un solo registro, un mensaje del secuestrador.
use READ1; show collections; // found a collection called info db.info.find()encontre este documento:
{ "_id" : ObjectId("5877674456ae6684507ac017"), "mail" : "ha******@si*****.org", "text" : "ENVIAR 0.1 BTC A ESTA DIRECCIÓN **** * Y CONTACTE A ESTE CORREO CON LA IP DE SU SERVIDOR PARA RECUPERAR SU BASE DE DATOS!" }
desafortunadamente, no revisé el servidor por un tiempo y solo conservo las últimas cinco copias de seguridad, así que perdí mis datos. Pero afortunadamente todavía estamos en modo de desarrollo y no tenemos datos confidenciales.
de todos modos, encontré que mi versión Mongodb (distribución 2.4.10 Tokumx) permite el acceso remoto de forma predeterminada. ¡Intenté lo siguiente desde mi máquina local y está sorprendentemente conectado!
mongo server-ip:27017/database-nameFinalmente, realicé los siguientes pasos para deshabilitar el acceso remoto
ps aux | grep mongo //found path of the configuration file (/etc/tokumx.conf) luego, como se describe aquí , usé vim para agregar la línea bind_ip = 127.0.0.1 a los archivos de configuración y luego reinicié mi servicio tokumx (mongodb en su caso)
sudo service tokumx restartAhora el acceso remoto está deshabilitado.
Asegúrese de que su archivo de configuración esté cargado llamándolo explícitamente cuando ejecute mongod:
mongod --config /etc/mongod.confY en su archivo /etc/mongod.conf asegúrese de tener
bindIp: 127.0.0.1Ahora, después de reiniciar con este archivo de configuración, como dice Ahmed ElBayaa (no pude comentar debido a la baja reputación), intente conectarse desde una máquina remota usando:
mongo server-ip:27017/¡Si todo está configurado correctamente, esta conexión debería ser rechazada!