martes, 26 de enero de 2016

Reset MariaDB root Password en Linux CentOS 7

Resetear password del root MariaDB en Linux CentOS 7

Some times if you forgot MariaDB root account password, You can simply change it using following steps. For you information MariaDB root user is different that Linux system root account.
mariadb-banner
Follow the step by step guide to reset MariaDB root user password in Linux systems.

Step 1: Stop MariaDB Service

First we need to stop MariaDB service using following command.
# systemctl stop mariadb
Shutting down MySQL.                [  OK  ]

Step 2: Start MariaDB in Safe Mode

Now connect to MariaDB in safe more using skip grant and run this command in background.
# mysqld_safe --skip-grant-tables &

[1] 6218
140118 22:27:09 mysqld_safe Logging to '/var/lib/mysql/localhost.localdomain.err'.
140118 22:27:09 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Step 3: Login to MariaDB and Change Password

After starting MariaDB in safe more connect to MariaDB and run following commands to change root password.
# mysql

MariaDB [(none)]> use mysql;
MariaDB [mysql]> UPDATE user SET password=PASSWORD("new_password") WHERE User='root';
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaDB [mysql]> quit;

Step 4: Stop and Start MariaDB

After changing password, stop the MariaDB service and start it again in normal mode using following commands.
# systemctl stop mariadb
# systemctl start mariadb

Step 5: Login to MariaDB using New Password

At this stage you have successfully updated you root MariaDB password, Lets connect to MariaDB using new password.


# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 1
Server version: 5.5.34-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

jueves, 12 de noviembre de 2015

Guía de Instalación GNU/Linux CentOS 7

Guía de instalación GNU/Linux CentOS 7





Una vez disponible la ISO, arrancamos el equipo a instalar con ella como primer elemento de arranque. De momento es sencillo, seleccionamos “Install CentOS 7“. Para los curiosos, en la sección de Troubleshooting tenemos lo siguiente (de utilidad en momentos de pánico):
  • Rescue a CentOS system
  • Run a memory test
  • Boot from local drive


Comenzamos la instalación y lo primero que vemos es una interfaz ligeramente distinta a la que estábamos acostumbrados para Red Hat 7 y CentOS 7. Lo primero es seleccionar el idioma, personalmente siempre me gusta instalar los sistemas en inglés, pero cuestión de gustos:
En esta pantalla puedes seleccionar con las flechas arriba y abajo Instalar CentOS 7 o Realizar un test a la integridad del DVD y después instalar CentOS 7. Es muy recomendable verificar el medio de instalación para evitar cualquier sorpresa desagradable a la mitad de la instalación y evitar un mensaje de error desconocido.

Cuando se arranca la interfaz gráfica, la primera pantalla que aparece es para seleccionar el idioma que se mostrará durante toda la instalación.




En este caso he seleccionado “Español” y “Perú” como región. Al hacer esto se configura de forma automática la distribución del teclado, así como las configuraciones de monedas, fechas, etc.
La siguiente pantalla es en donde seleccionarás todos los detalles de la instalación con botones interactivos.


Configurar fecha y hora. Es aquí donde puedes seleccionar la región en donde vives haciendo clic en el mapa. Puedes elegir que la hora se tome desde la red o hacerlo manualmente. Cuando todos los datos estén correctos, haz clic sobre el botón azul que dice “Listo”.



Soporte de idioma. Aquí puedes agregar idiomas extras si es que te gusta cambiarlos cuando estás trabajando con el sistema.





Fuente de instalación. Por lo general no necesitarás cambiar nada en esta pantalla. Aquí puedes elegir que el medio de instalación sea un servidor FTP o un repositorio HTTP, por ejemplo.





Selección de software. Aquí vas a seleccionar el tipo de instalación que deseas para tu sistema operativo, así como los componentes extras. Es decir, si deseas que el servidor en realidad funcione como una computadora de escritorio, o si quieres que sea un servidor con interfaz gráfica, o que sea un servidor web, o si quieres una instalación mínima sin interfaz gráfica.

Como opinión personal, deberían elegir la instalación minima para evitar instalar paquetes innecesarios. Es decir, si el sistema operativo se va a comportar como verdadero servidor, es completamente inútil instalarle una GUI o la nueva interfaz Plasma de KDE. No obstante, para fines didácticos, vamos a seleccionar la opción “Escritorio Gnome” para los que estamos acostumbrados a las ventanitas.







Destino de la Instalación. Es en donde debes indicar en qué disco duro vas a instalar CentOS. Aquí también puedes personalizar el tipo de particiones que necesitas para el servidor y el tipo de sistema de archivos el cual da un salto del ext3 que se ha usado desde hace 10 años al xfs que soporta archivos de gran tamaño. Si queremos definir una por una las particiones hay que ir presionando en el botón “+”, en esta ocasión voy a dejar la opción “Configurar automáticamente”.

Cuando esté lista la configuración del disco duro, solo da clic en el botón “Listo” para continuar con la instalación de CentOS.
Red y nombre del Host. Esta opción la configuramos hasta que esté listo todo el sistema operativo, por lo que no cambiamos nada aquí.
Cuando todos los elementos ya están listos se activa el botón “Continuar instalación” en la parte inferior derecha, debes dar clic en el para iniciar la instalación.




 Al iniciar la barra de progreso de la instalación, podrás indicar la contraseña del usuario root y la de un usuario estándar.


Es muy importante crear una contraseña segura para el usuario root, y por el momento anotarla en un papel hasta que la hayas memorizado, ya que no podrás resetearla después si la llegas a olvidar.



Una vez que la contraseña de root se ha establecido y los archivos se terminaron de copiar debemos hacer clic en el botón “Reiniciar.”






Reiniciando la Instalación de Centos 7

Cuando se inicia por primera vez el nuevo servidor puedes observar que ya no necesitas el medio de instalación, ya sea un DVD, USB o un ISO virtual, por lo que puedes retirarlo sin miedo.
Ahora solo debes aceptar el contrato de licencia.






Casi para finalizar, se mostrará la última configuración en el entorno gráfico (si es que lo haz instalado), donde seleccionarás el idioma, el tipo de teclado y crearás forzosamente un usuario estándar.












Por último, solo te queda disfrutar del entorno de escritorio, si es que lo haz instalado.


Actualizar a CentOS 7.x?

Esta pregunta es algo subjetiva y la respuesta es depende. Depende de varias cosas: ¿Te generará downtime? ¿Es VITAL para ti alguna de las nuevas características? ¿Tienes hardware de 32 bits? Responder a estas preguntas te permitirá darte una idea de si debes o no actualizar a la nueva versión.

Guía de post instalación

Si decidiste instalar CentOS 7.x en tu servidor aquí hay algunas cosas que te podría interesar hacer justo después:

NOTA: Estas instrucciones también son válidas para deployments de Red Hat Enterprise Linux 7.x

1) Instalar nano y wget
        
Personalmente me hallo más con éstos 2 que con vi y curl; Si también es tu caso, ejecuta:

1. su -
2. yum -y install nano wget

2) Repositorios Extra (Necesarios)

EPEL & Remi:

1. su -
2. wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
3. wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
4. sudo rpm -Uvh remi-release-7*.rpm epel-release-7*.rpm

El Repo:


1. su -
2. rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
3. rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Habilitando Remi:

1. su - 
2. nano /etc/yum.repos.d/remi.repo




3) Actualizar

Para actualizar todo tu sistema, corre:

su -c 'yum -y update'

4) Configurar Firewall

Primero necesitamos obtener la(s) zona(s) activas:

su -c 'firewall-cmd --get-active-zones'

Este comando nos devolverá el nombre de la(s) zona(s) activa(s) (ej. public) y las interfaces de red que están ligadas a ella(s) como podrían ser eth0,p16p1, wlan0 etc.

Es recomendable también listar los puertos y servicios permitidos en la(s) zona(s) activas para hacer personalizaciones, esto se hace con:

su -c 'firewall-cmd --zone=myzone --list-all'

Obviamente usando el nombre de la zona indicada en lugar de myzone.

Luego para abrir y cerrar puertos podemos usar:

1. su -c 'firewall-cmd --zone=public --add-port=xxxx/tcp'
2. su -c 'firewall-cmd --zone=public --remove-port=xxxx/udp'

Respectivamente, cambiando xxxx por el número de puerto deseado y especificando el protocolo (tcp/udp) según corresponda.

5) Tweaks para rendimiento

Habilitar Tuned:

1. su -
2. yum -y install tuned
3. tuned-adm profile selected_profile

Más información sobre los perfiles disponibles acá: http://red.ht/1ppyozF

Habilitar ZRAM:

1. su -
2. yum -y install bc

3. wget https://spideroak.com/share/PBSW433EMVZXS43UMVWXG/78656e6f6465/srv/CDN/xenodecdn/zram -O /etc/init.d/zram
 
4. chmod 755 /etc/init.d/zram
5. chkconfig --add zram && chkconfig zram on

Reiniciamos y luego podremos checar que zRAM está corriendo con:

su -c 'service zram status'

Puedes checar más tips para mejora de rendimiento en: http://bit.ly/1hoo5XR

Habilitar Ksplice:

Ksplice es un gestor de paquetes de seguridad del que ya hablamos anteriormente y básicamente permite instalar actualizaciones de seguridad en tu servidor sin necesidad de reiniciar. La versión para RHEL se puede probar por 30 días (con una acces key de trial) y luego se requiere pagar aprox 4 USD/mo por usar el producto (con hasta 20 servidores, a partir de 20 en adelante el costo reduce a 3 USD/mo).

1. su -
2. wget https://www.ksplice.com/yum/uptrack/centos/ksplice-uptrack.repo -O /etc/yum.repos.d/ksplice-uptrack.repo
3. sudo yum -y install uptrack ksplice-uptrack-release
4. nano /etc/uptrack/uptrack.conf

En el archivo del comando #4, requeriremos insertar nuestra clave de acceso como nos lo pide:






Configurar IP Virtual única:

SELinux Permisivo:

SELinux es una buena utilidad de seguridad para sistemas CentOS/RHEL, sin embargo su activación puede traer problemas al momento de implementar ciertas cosas en tu servidor. Es por esto que, (al menos en algunos CentOS 7.x de VPS) SELinux viene deshabilitado por defecto y en instalaciones normales viene activado. Personalmente prefiero "algo en medio" y suelo ponerlo en modo "permisivo" esto quiere decir que seguirá funcionando sin conflictuar con otras cosas y en lugar de proteger como tal únicamente nos mostrará advertencias relevantes para que nosotros nos encarguemos de la situación. Poner entonces a SELinux en modo permisivo se hace con:

1. su -
2. nano /etc/selinux/config
Y en el archivo que abrirá cambiamos el status de disabled y/o enforcing apermissive. Guardamos los cambios, reiniciamos y listo.



jueves, 15 de octubre de 2015

Configuración de red en CentOS 7

Configuración de red en CentOS 7

Para configurar la red en CentOS 7 hay dos formas: utilizano asistente gráfico, o bien utilizando la línea de comandos.
Configurar la red a través de un asistente
Lo primero es ejecutar el comando nmcli d para la identificación rápida de las interfaces de red instaladas en el sistema


[milton@localhost ~]$ nmcli d
DISPOSITIVO  TIPO      ESTADO       CONNECTION
enp0s3       ethernet  conectado    enp0s3    
lo           loopback  sin gestión  --    

Al ejecutar este comando, podemos ver que tenemos una interfaz de red llamada "enp0s3".
A partir de aquí, los pasos son los siguientes:
Configuración por DHCP
  1. Ejecutar el comando nmtui y aparecerá un asistente dando varias opciones. Elegimos la opción "Edit a connection".


  1. A continuación, podremos ver los nombres de todas la interfaces. En nuestro caso, solamente hay una. Seleccionarla.
  2. Seleccionar la opción "Automatically connect"
  3. Hacer clic en "Ok" para cerrar el asistente.
  4. Reiniciar el servicio de red mediante el comando siguiente:

# systemctl restart network

  

NOTA: Si después de reiniciar el servicio de red comprobamos que no se ha actualizado la configuración de red, entonces reiniciaremos la interfaz. Por ejemplo, si la interfaz se llamase "eth0", “enp0s3” entonces los comandos a ejecutar serían los siguientes:

# ifdown eth0
# ifup eth0

# ifup enp0s3
# ifdown enp0s3

Actividad 1. Configura la interfaz de red de tu sistema por DHCP, empleando la interfaz gráfica. Después reinicia el servicio de red y comprueba que se ha asignado una dirección a tu interfaz.


# systemctl restart network


Jan  7 14:01:09 localhost NetworkManager: DHCPREQUEST on enp0s3 to 255.255.255.255 port 67 (xid=0x297925c2)
Jan  7 14:01:09 localhost NetworkManager: DHCPACK from 10.0.2.2 (xid=0x297925c2)
Jan  7 14:01:09 localhost dhclient[9318]: bound to 10.0.2.15 -- renewal in 39804 seconds.
Jan  7 14:01:09 localhost NetworkManager: bound to 10.0.2.15 -- renewal in 39804 seconds.
Jan  7 14:01:09 localhost NetworkManager[650]:  (enp0s3): DHCPv4 state changed preinit -> reboot
Jan  7 14:01:09 localhost NetworkManager[650]:    address 10.0.2.15
Jan  7 14:01:09 localhost NetworkManager[650]:    plen 24 (255.255.255.0)
Jan  7 14:01:09 localhost NetworkManager[650]:    gateway 10.0.2.2
Jan  7 14:01:09 localhost NetworkManager[650]:    server identifier 10.0.2.2
Jan  7 14:01:09 localhost NetworkManager[650]:    lease time 86400
Jan  7 14:01:09 localhost NetworkManager[650]:    nameserver '10.0.2.3'
Jan  7 14:01:09 localhost NetworkManager[650]:  Activation (enp0s3) Stage 5 of 5 (IPv4 Configure Commit) scheduled...

Configuración estática
  1. Ejecutar el comando nmtui y aparecerá un asistente dando varias opciones. Elegimos la opción "Edit a connection".


  1. A continuación, podremos ver los nombres de todas la interfaces. En nuestro caso, solamente hay una. Seleccionarla.

  1. Elegir la configuración manual en la sección "IPv4 CONFIGURATION".

  1. Insertar una dirección IP, una subred, un gateway y DNS.
  2. Seleccionar "Automatically connect".
  3. Presionar Ok y cerrar el asistente.
  4. Finalmente reiniciar el servicio de red con el siguiente comando:


# systemctl restart network

Actividad 2. Elige un direccionamiento IP adecuado para el segmento en el que se encuentra tu sistema. Después, configura la red de forma manual, y comprueba que tienes acceso a la red haciendo ping a tu puerta de enlace.

Configuración de red desde la línea de comandos
Configurar la red desde la línea de comandos supone conocer bien el archivo

de configuración de la interfaz de red. Dicho archivo
es /etc/sysconfig/network-scripts/ifcfg-enp0s3 (en mi caso). El contenido puede ser algo parecido a lo siguiente:

# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 


HWADDR="08:00:27:F7:77:FF"
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="00a49dbf-26ca-4fbf-8be0-7e1ca6e5645e"
ONBOOT="yes"

Para configurar por DHCP
Para configurar la interfaz por DHCP, es preciso fijarse en las opciones BOOTPROTO y ONBOOT. Deben quedar del siguiente modo:


BOOTPROTO=”dhcp”
ONBOOT=”yes”

Después reiniciamos el servicio de red:


# systemctl restart network

Actividad 3. Asegúrate de que la interfaz de red está configurada por DHCP consultado el archivo correspondiente a la interfaz en el directorio /etc/sysconfig/network-scripts. Abre dicho archivo, y si la configuración no es por DHCP, entonces modifícalo para lo sea. Después reinicia el servicio.
Para configuración estática
De nuevo debemos encontrar las opciones BOOTPROTO y ONBOOT. Deben quedar del siguiente modo:


BOOTPROTO=static
ONBOOT=yes

A continuación debemos añadir las opciones IPADDRNETMASKGATEWAY y DNS1, como en el siguiente ejemplo:


IPADDR=192.168.1.40
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=80.58.61.250

Finalmente reiniciamos el servicio de red:


# systemctl restart network

Actividad 4. Asegúrate de que interfaz de red está configurada manualmente consultado el archivo correspondiente a la interfaz en el directorio /etc/sysconfig/network-scripts. Abre dicho archivo, y si la configuración no es estática, entonces modifícalo para lo sea. Después reinicia el servicio.

Nombrado de las interfaces de red

Tradicionalmente, las interfaces de red han sido nombradas como eth[0123...]. El inconveniente que tienen estos nombres es que no necesariamente tienen que ver con la tecnología del hardware instalado. Esto supone un problema en cuanto a averiguar que interfaz de red es cual cuando hay más de un tipo de hardware instalado. CentOS/RHEL 6 introdujo un nuevo esquema de nombrado, que con CentOS/RHEL 7 se aplica por defecto. Este esquema de nombrado determina el nombre de las interfaces de red con la idea de diferenciar fácilmente las interfaces, y que permanezcan consistentes en los diferentes arranques*
Las convenciones de nombrado son las siguientes:
Los dos primeros caracteres del nombre de la interfaz
  • en -- ethernet
  • sl -- línea serie
  • wl -- wlan
  • ww -- wwan
El resto del nombre de la interfaz:
  • o<número> - Número de interfaz integrada en la placa base.
  • s<número_ranura>[f<función>][d<id_dispositivo>] - Número de ranura de conexión en caliente.
  • x<MAC> - Direción MAC
  • p<bus>s<ranura>[f<función>][d<dev_id>] - Ubicación PCI
  • p<bus>s<ranura>[f<función>][u<puerto>][...][c<config>][i<interfaz>] - cadena de nombre de puerto USB


El inconveniente de este esquema de nombrado, es que a veces se vuelve más difícil de leer que los nombres tradicionales. Por ello puede aparecer el deseo o necesidad de cambiar el nombre de una interfaz, aplicando el esquema de nombrado tradicional.
Nombres de interfaces persistentes con reglas de nombrado UDEV
A continuación veremos cómo se utilizan las reglas UDEV de nombrado persistente de interfaces. Entender esto es necesario para poder renombrar las interfaces, tal y como se explica más adelante. Se puede consultar este punto en nombres-ifaces-persistentes.php
Cambiando el nombre de la interfaz
En primer lugar vamos a desactivar el esquema de nombrado predecible de CentOS/RHEL 7. Para ello, debemos pasar el parámetro net.ifnames=0 al kernel durante el arranque. Para hacer esto, editamos el archivo /etc/default/grub y añadimos la cadena "net.ifnames=0" en la línea correspondiente a GRUB_CMDLINE_LINUX. Debe quedar como se muestra a continuación:


GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=es crashkernel=auto  vconsole.font=latarcyrheb-sun16 net.ifnames=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

Para que esta nueva configuración tenga efecto en el próximo reinicio, recreamos el archivo grub.cfg:


 # grub2-mkconfig -o /boot/grub2/grub.cfg

Posteriormente, creamos una regla de nombrado de red en el archivo /etc/udev/rules.d/70-persistent-net.rules, añadiendo la siguiente línea:


SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:5b:39:e6:aa:df", ATTR{type}=="1", KERNEL=="eth*", NAME="redlocal0"

Para terminar, supongamos que el script de configuración de CentOS se llamaba ifcfg-enp0s8. Entonces, si hemos llamado a nuestra interfaz "redlocal0", lo que haremos será renombrar dhcio archivo a ifcfg-redlocal0. Además, debemos editar dicho archivo y modificar los parámetros NAME y DEVICE. Es decir, internamente el archivo (ahora renombrado a) ifcfg-redlocal0 contendrá algo como lo siguiente:


HWADDR="08:00:27:F7:77:FF"
DEVICE="redlocal0"
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="redlocal0"
UUID="00a49dbf-26ca-4fbf-8be0-7e1ca6e5645e"
ONBOOT="yes"

Finalmente, reiniciamos el sistema y el nombre de la interfaz debería haber cambiado.
Una vez cambiado el nombre de la interfaz
Es importante tener en cuenta que si el nombre anterior de la interfaz se emplea en algún archivo de configuración, debería ser actualizado al nuevo nombre. De este modo, el script para la interfaz en /etc/sysconfig/network-scripts/ debería ser modificado en este sentido.