
En el post anterior, explicaba cómo podíamos cargarnos el usuario root de mysql para crear otro usuario que fuese el administrador general. Con esto con seguíamos que el posible atacante necesitase adivinar, además de la clave, el nombre de usuario. Esto también puede plantearnos a nosotros un problema, que es que no nos acordemos del nombre de usuario que habíamos puesto.
Es lo que me ha pasado a mi hoy, que he ido a acceder y no me acordaba, no se si de la clave o del nombre de usuario. Pero no es para alarmarse, gracias a estos sencillos pasos es posible acceder a MySQL con todos los privilegios sin especificar contraseña.
Lo único que necesitamos es ser root, para poder detener el servicio MySQL y arrancarlo con la opción –skip-grant-tables:
spurs:~# /etc/init.d/mysql stop
Stopping MySQL database server: mysqld.
spurs:~# mysqld –skip-grant-tables -user=root &
[1] 11875
spurs:~# 081120 18:47:21 [Warning] Ignoring user change to ’ser=root’ because the user was set to ‘mysql’ earlier on the command line
081120 18:47:21 InnoDB: Started; log sequence number 0 43655
081120 18:47:21 [Note] mysqld: ready for connections.
Version: ‘5.0.32-Debian_7etch8-log’ socket: ‘/var/run/mysqld/mysqld.sock’ port: 3306 Debian etch distribution
spurs:~#
spurs:~# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.32-Debian_7etch8-log Debian etch distribution
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>UPDATE mysql.user SET Password=PASSWORD(’nuevoclave’) WHERE user=’root’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> exit
Bye
spurs:~# /etc/init.d/mysql stop
Stopping MySQL database server: mysqld081120 18:48:40 [Note] mysqld: Normal shutdown
081120 18:48:42 InnoDB: Starting shutdown…
081120 18:48:44 InnoDB: Shutdown completed; log sequence number 0 43655
081120 18:48:44 [Note] mysqld: Shutdown complete
.
[1]+ Done mysqld –skip-grant-tables -user=root
spurs:~# /etc/init.d/mysql start
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
Como veis, lo único que hemos hecho es detener el servicio y arrancarlo en un modo no seguro el tiempo justo para poder cambiarle la clave al usuario y luego, volverlo a detener y arrancar en modo normal.
Noviembre 20th, 2008 in
General |
No Comments

Lo cierto es que la instalación de MySql en Debian no merece escribir un artículo, porque es realmente sencilla. No obstante, voy a añadir un toque personal y voy a contar un forma de hacer MySQL un poquito más seguro. Además, al hacer esto me encontré con un problema cuya solución detallo también en este artículo.
En los repositorios de Debian existen varios paquetes relacionados con MySQL que pueden llevar a confusión. Uno de ellos, en concreto mysql-server, es un paquete que enlaza a la última ver
sión estable de MySQL en los repositorios de Debian. Lo que esto significa es que solo tendremos que ejecutar la siguiente orden para tenerlo instalado:
# apt-get install mysql-server
Y ya está, ya lo tienes instalado, con los scripts de inicio generados y todo configurado con las garantías de seguridad de Debian…
Si quieres saber qué hice para hacerlo un poquito más seguro y cual fue el problema que me encontré y la solución que le di….
Leer el resto de la entrada »
Noviembre 14th, 2008 in
General |
No Comments
En esta entrega de la serie, vamos a instalar y configurar OpenSSH para permitirnos el acceso desde cualquier ordenador y administrar nuestro servidor.
Además, añadiremos algunas configuraciones esenciales para mejorar la seguridad de nuestro sistema:
En este artículo, veremos:
- Instalación de OpenSSH en Debian.
- Configuración inicial. Denegar acceso a root. Cambiar el puerto.
- Desactivar el inicio de sesión interactivo por teclado. Solo permitiremos el inicio de sesión usando un par de clave pública/clave privada.
- Instalación de denyhosts para bloquear IPs cuando se registren una serie de fallos consecutivos.
Para realizar estas tareas, me he apoyado en el siguiente artículo:
http://thinkhole.org/wp/2006/10/30/five-steps-to-a-more-secure-ssh/
Leer el resto de la entrada »
Ahora mismo estoy enfrascado programando una pequeña aplicación que, a grandes rasgos, lo que tiene que hacer es encontrar ficheros en una carpeta y subirlos a la correspondiente Biblioteca de Documentos de MOSS 2007.
Para ello, utilizo los servicios Web que Sharepoint brinda por defecto. En concreto, uso Copy.asmx. Pero bueno, en un artículo posterior contaré todo lo referente a esta aplicación. El problema que me tenía partido en dos es que, cada vez que intentaba usar el servicio web obtenía el siguiente error en tiempo de ejecución:
La solicitud HTTP no está autorizada con el esquema de autenticación de cliente ‘Anonymous’. El encabezado de autenticación recibido del servidor era ‘NTLM’.
Y claro, por más que intentaba autentificar con mi usuario de Windows, con usuario y clave…. de cualquier forma, nada funcionaba.
Descubrí que el problema no es de uso de ese servicio concreto sino de configuración por defecto de Visual Studio. Cuando usas el GUI de Visual Studio para enlazar con el Servicio Web, este es el bloque que te añade en app.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="CopySoap" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address=http://myserver/_vti_bin/Copy.asmx binding="basicHttpBinding"
bindingConfiguration="CopySoap" contract="MOSSCopyService.CopySoap"
name="CopySoap" />
</client>
</system.serviceModel>
He marcado de color la parte que nos interesa. Por defecto, usa el esquema de autentificación anónimo, que es lo que provoca el error. Cambiando esa configuración por ésta habremos solucionado el problema:
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
Claro, si es que el mensaje lo deja claro, pero a veces tenemos la solución delante de nuestras narices y no somos capaces de verla.
Como sistema operativo, por supuesto, hemos escogido Linux. Pero ahora hay que elegir entre una infinidad de distribuciones disponibles. Lo cierto es que esto va en gustos. Yo he barajado las siguientes opciones:
- Fedora Core. Fedora Core 9 incluye lo último en software libre y de código abierto. Basada en Red Hat, es la distribución que más me gusta para equipos de Escritorio. Sin embargo, todo hay que decirlo, mi opinión es que su facilidad de uso da demasiadas configuraciones por supuestas. En su opción de instalación mínima están incluidos bastantes paquetes y servicios.
- Ubuntu Linux. Basado en Debian, creo que es la distribución más de moda hoy en día. Lo cierto es que hay una versión Server muy interesante. La única razón de que no optase por esta distribución es simplemente cuestión de gustos.
- Debian. Para mí, la mejor distribución. La instalación mínima apenas consume unos cientos de megas, la facilidad de usar apt-get y la seguridad de que van retrasados en los paquetes porque se esfuerzan por la seguridad.
Leer el resto de la entrada »
Octubre 27th, 2008 in
Admin. Sistemas,
Sistemas Linux | tags:
apt,
debian,
fedora,
internet,
openssh,
red hat,
root,
Sistemas Linux,
ssh,
ubuntu,
virtualizacion,
vmware |
No Comments