SSh o no SSh para acceder a un mysql

 

 

Bueno hace poco que entre en el mundo de los servidores de linux. Antes usaba windows como servidor de un mmorpg pero este fin de semana dimos el paso al linux de la mano de debian. El tema es que tengo unas dudillas y como se que aqui tratais a diario con la seguridad queria ver si me echabais una mano con unas dudas.

Tengo en el servidor instalado ssh, nxserver y mysql entre otras cosas. El tema que me incumbe es que accedo al servidor mediante el nxclient. No me apaño aun solo por comandos aunque poco a poco me los voy aprendiendo. El tema es que para acceder al mysql uso Navicat en su version lite y accedo mediante ssh. Hasta ahi bien, pero el problema viene a la hora de acceder mediante una web y el php. El mysql no se puede acceder desde afuera, solo por un tunel ssh, el problema es que no se si dejar la ip de la web para que pueda entrar directamente sin ssh para hacer uso del sql o si deberia montar un archivo php o el que sea con la configuracion ssh. Mi problema es que si me ven o roban ese archivo ya tengo comprometido todo el sistema. Asi que no se que hacer.

Desde windows teniamos el mysql accesible desde fuera, aunque si no tienes un usuario creado con tu ip no puedes hacer nada, siempre te queda la duda de si hay algun exploit o algo y que te puedan pilar la bd. No es algo importante, es un juego, pero nos lo tomamos conseriedad y no nos gustaria tener k tirar de copias de seguridad porque un hacker entro a tu bd y se edito su personaje o toco algo.

Bueno me gustaria que me dierais vuestra opinion. Usar ssh en el php para acceder al mysql, o dejar el mysql abierto, mediante iptables o como este (aun no se como hacerlo :S) y confiar en que el mysql no tenga ningun exploit que permita a un atacante hacerse con el usuario root o similar.

Saludos y gracias por responder

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).
anónimo's picture

SSH o no SSH


Hola,

Como antes era un programador php tengo algo de experiencia en ambientes web con mysql.

Mi recomendacion es que cierres todo lo posible tu server. Si lo que quieres hacer lo puedes hacer con ssh, entonces hazlo.

Ademas, tampoco es necesario mantener los datos de accesos en un archivo .php, llegado el caso puedes ingresar los datos de acceso mediante un formulario que generes para este caso.

He visto varias web que dejan expuesto el puerto del mysql y me parece que son una invitacion a la catastrofe... sobre todo si es una web con gran cantidad de visitantes.

PD: para asegurar un poco mas el mysql, no consideraste utilizar sockets ?

Saludos

kraysak's picture

no capto


no entiendo bien lo que deseas pero tienes intalado el phpmyadmin?
http://es.wikipedia.org/wiki/PhpMyAdmin

es una aplicacion con la que puedes modificar la base de datos mysql via web.
es bastante segura pero hay que modificar un par de cosas
http://www.seguridad-informatica.cl/home/protegiendo-un-poco...

lo otro es k se puede acceder a la base de datos desde otro pc, eso si teniendo abierto un puerto (que no se cual es) con
mysql -u user -p (me parece que asi es), luego pide la password del user

otra cosa, tu dices

Mi problema es que si me ven o roban ese archivo ya tengo comprometido todo el sistema. Asi que no se que hacer.

eso primero que nada esta mal, ya que la clave del usuario root de mysql no debiera ser la misma que el root del sistema, aunke quedaria compometida la base de datos.

lo otro es cifrar la DB, en el segundo link explican algo de eso

saludos, espero que te sirva

anónimo's picture

No tengo el phpmyadmin


No tengo el phpmyadmin. Yo tengo un mysql en un servidor bajo linux. Y la pagina web en otro servidor distinto. El tema es que desde la web necesito hacer unas query´s, y no se que hacer, yo veo 2 opciones y queria saber vuestra opinion.

1.- Montar el php si se puede para que use ssh, de poderse si los datos estan en texto plano no me sierve.

2.- Abrirle el puerto al mysql y que pueda conectarse cualquier usuario con un host que yo cree.

Me gusta la primera opcion, pero no se si se puede hacer y si se puede no tienen que estar los datos en texto plano, por si me roban el archivo php lo digo, necesitaria poner la contraseña con md5 o algo asi. Sencillo pero eficaz. Estoy leyendo un poco de php, pero soy novatillo en php y el mundo del linux asi que se me junta todo un mundo nuevo. Leo la web desde hace bastante y se que aqui muchos saben de seguridad bajo linux asi que que mejor lugar para plantear mi duda/problema.

Como digo el mysql lo manejamos 2 personas desde nuestro pc mediante navicat, el programa tiene la opcion del tunel bajo ssh y luego logueamos en localhost asi que no hay problema. El problema es la web asi les puedo ofrecer a la gente info en tiempo real, de los asedios, rankin y demas cosillas.

Saludos y gracias por responder.

Fredi's picture

Bueno el tema es


Bueno el tema es que desde fuera del servidor no se puede acceder al mysql si no es mediante ssh, y necesito acceder desde un servidor donde esta la web. El tema es que nose si se puede configurar el php para que use ssh y de poderse si se quedan los datos del ssh en texto plano o se cifra con md5 la contraseña por ejemplo. O uso algo por php para conectar a travez de de ssh o le abro el puerto 3306 o lo cambio por otro al mysql.

Sobre los sokets el mysql lo instale mediante synaptic, asi que no toque nada que no venga por defecto, solo le puse contraseña al root del sql y cree 2 usuarios mas para acceder desde fuera pero por ahora no los uso. Vi un archivo de sokets donde arranca el mysql uno con opciones y otro que se llama socket pero no se nada del tema como es.

Por lo que voy viendo no me recomendais abrir el puerto. Asi que optaria por conectar desde el php mediante ssh. Alguno sabe como se hace y si se hace se encripta la contraseña o si se ven los datos en texto plano, sobre todo lo digo por si me comprometen el servidor web (que ese si que no lo manejo yo) y nos roban ese archivo.

Saludos y gracias por vuestras opiniones.