miércoles, 26 de septiembre de 2018

Cómo instalar el kernel más reciente en CentOS 7



Cómo instalar la última versión del kernel - ya pre-compilada - en un sistema operativo Linux distribución CentOS versión 7, paso a paso, desde un repositorio third-party.



Cuando instalamos CentOS 7 desde una imagen oficial, el sistema se instala con el Kernel 3.10, el cual está algo anticuado a día de hoy (el Kernel de Linux ya va por la rama 4), por lo que es recomendable instalar una versión superior del mismo en el sistema. Idealmente, se debería instalar la última versión liberada del Kernel, la cual podemos conocer accediendo a https://www.kernel.org.

Como decía, una opción para instalar un nuevo kernel es descargar su código fuente desde kernel.org y compilarlo, pero es una tarea larga y compleja. Para simplificar las cosas, podemos instalar un kernel pre-compilado desde un repositorio third-party como por ejemplo "ELRepo".

Para activar el repositorio "ELRepo" en CentOS 7:

[root@host ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org [root@host ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

Una vez instalado el repositorio, podemos buscar todos los kernels disponibles en él con:

[root@host ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available Complementos cargados:fastestmirror Loading mirror speeds from cached hostfile * elrepo-kernel: www.jules.fm Paquetes disponibles kernel-lt.x86_64 4.4.158-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 4.4.158-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 4.4.158-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 4.4.158-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 4.4.158-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 4.4.158-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 4.4.158-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 4.18.10-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 4.18.10-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 4.18.10-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 4.18.10-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 4.18.10-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 4.18.10-1.el7.elrepo elrepo-kernel perf.x86_64 4.18.10-1.el7.elrepo elrepo-kernel python-perf.x86_64

Ahora toca instalar la última versión estable:

[root@host ~]# yum --enablerepo=elrepo-kernel install kernel-ml

Cuando acabe la instalación, reiniciamos la máquina. Durante el inicio, en el menú de GRUB, deberíamos ver el nuevo kernel instalado. Lo seleccionamos y arrancamos el sistema:



Una vez en la consola, podemos configurar GRUB para que arranque el sistema con el nuevo kernel por defecto. Para hacer esto, editamos el archivo /etc/default/grub y configuramos el parámetro GRUB_DEFAULT cambiando el valor 1 por 0:

[root@host ~]# vi /etc/default/grub

GRUB_DEFAULT=0

Esto hará que el primer kernel de la lista de GRUB sea el kernel con el que el sistema arranque por defecto. Guardamos los cambios de configuración de arranque con el comando grub2-mkconfig:

[root@host ~]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.18.10-1.el7.elrepo.x86_64 Found initrd image: /boot/initramfs-4.18.10-1.el7.elrepo.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-862.14.4.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-862.14.4.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-862.11.6.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-862.11.6.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-d114c821418141b4989f03970795ddeb Found initrd image: /boot/initramfs-0-rescue-d114c821418141b4989f03970795ddeb.img done

Reiniciamos la máquina y verificamos que el sistema arranque con el nuevo kernel por defecto. Lo podemos comprobar con el comando uname una vez lleguemos a la consola:

[root@host ~]# uname -a Linux host 4.18.10-1.el7.elrepo.x86_64 #1 SMP Wed Sep 26 16:20:39 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux

Si detectamos que algo no funciona como debería, siempre podemos arrancar el sistema con el antiguo kernel eligiéndolo en la lista de GRUB.
0

miércoles, 19 de septiembre de 2018

La directiva de equipo no se puede actualizar



Cómo solucionar el problema "La directiva de equipo no se puede actualizar" al ejecutar gpupdate /force desde una línea de comandos o cmd de un PC Windows de una organización.



En una empresa u organización, los PCs suelen estar enrolados en un dominio, con directivas de grupo (GPO) que se despliegan en estos PCs para restringir funciones o aplicar configuraciones diversas. Hay veces que estas directivas tardan bastante en propagarse por la red, por lo que el administrador decide forzar su aplicación a un PC en concreto. Para forzar la aplicación de una directiva, se suele usar:

gpupdate /force

El problema que me he encontrado recientemente, es que al ejecutar este comando desde mi propio PC, el sistema (Windows 10) me devuelve el siguiente error:

C:\Users\usuario>gpupdate /force Actualizando directiva... La directiva de equipo no se puede actualizar correctamente debido a los siguientes errores: Error al procesar la directiva de grupo. Windows no pudo aplicar la configuración de directiva basada en el Registro para el objeto de directiva de grupo LocalGPO. La configuración de directiva de grupo no se podrá aplicar hasta que este evento se solucione. Consulte los detalles del evento para obtener más información acerca del nombre y la ruta de acceso del archivo que provocó el error. Se completó correctamente la Actualización de directiva de usuario. Para diagnosticar el error, revise el registro de eventos o ejecute GPRESULT /H GPReport.html para obtener acceso a la información sobre los resultados de la directiva de grupo.

Para solucionar este problema y volver a aplicar directivas, deberemos dirigirnos a estas dos rutas:

C:\Windows\System32\GroupPolicy\Machine
C:\Windows\System32\GroupPolicy\User


Y buscar en cada directorio un archivo llamado:

Registry.pol

Renombramos este archivo a, por ejemplo, Registry.old y volvemos a ejecutar gpupdate:

C:\Users\usuario>gpupdate /force Actualizando directiva... La actualización de la directiva de equipo se completó correctamente. Se completó correctamente la Actualización de directiva de usuario.

Ahora sí, al ejecutar gpupdate, las directivas se actualizan correctamente en el equipo y crean un nuevo archivo Registry.pol para almacenarse.
2

martes, 11 de septiembre de 2018

Cómo actualizar Ubuntu



Cómo actualizar el software instalado en un sistema operativo Ubuntu (o cualquiera de sus derivados) para aplicar parches a los programas y manetener el sistema al día.



Mantener el software de un sistema operativo al día - incluyendo sus componentes base - es una tarea básica de cualqueir administrador de sistemas. En el caso de Ubuntu (o Debian, Linux Mint, etc.) el gestor de paquetes que nos permite actualizar las versiones de los mismos es apt.

Para iniciar el proceso de actualización, usaremos el comando apt update (recordar que si usamos Ubuntu, debemos poner el comando sudo delante de cada comando para ejecutarlo como root):

usuario@host:~$ sudo apt update [sudo] password for usuario: Get:1 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB] Hit:2 http://es.archive.ubuntu.com/ubuntu bionic InRelease Get:3 http://es.archive.ubuntu.com/ubuntu bionic-updates InRelease [83.2 kB] Get:4 http://es.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB] ... Fetched 1,005 kB in 1s (937 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 5 packages can be upgraded. Run 'apt list --upgradable' to see them.

La opción update compara las versiones del software instaladas en local con las versiones del mismo software disponibles en los distintos repositorios del sistema operativo.

Para ver las nuevas versiones de cada programa que podemos instalar deberemos ejecutar apt list --upgradable (deberemos ejecutar esta opción solo después de haber ejecutado apt update). Este comando listará cada paquete y su nuevo número de versión disponible.

usuario@host:~$ apt list --upgradable Listing... Done libssl1.0.0/bionic-updates,bionic-security 1.0.2n-1ubuntu5.1 amd64 [upgradable from: 1.0.2n-1ubuntu5] libssl1.1/bionic-updates,bionic-security 1.1.0g-2ubuntu4.1 amd64 [upgradable from: 1.1.0g-2ubuntu4] networkd-dispatcher/bionic-updates,bionic-updates 1.7-0ubuntu3.2 all [upgradable from: 1.7-0ubuntu3] openssl/bionic-updates,bionic-security 1.1.0g-2ubuntu4.1 amd64 [upgradable from: 1.1.0g-2ubuntu4] update-notifier-common/bionic-updates,bionic-updates 3.192.1.1 all [upgradable from: 3.192.1]

Si quisieramos actualizar un solo paquete, por ejemplo openssl, usaremos sudo apt upgrade openssl:

usuario@host:~$ sudo apt upgrade openssl Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: linux-image-3.16.0-77-generic linux-image-extra-3.16.0-77-generic Use 'sudo apt autoremove' to remove them. The following packages will be upgraded: openssl 1 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade. Need to get 1,21 kB of archives. After this operation, 0,24 B of additional disk space will be used. Do you want to continue? [Y/n] y

Para actualizar todos los paquetes, usaremos sudo apt upgrade:

usuario@host:~$ sudo apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: linux-image-3.16.0-77-generic linux-image-extra-3.16.0-77-generic Use 'sudo apt autoremove' to remove them. The following packages will be upgraded: libssl1.0.0 libssl1.1 networkd-dispatcher openssl update-notifier-common 5 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade. Need to get 2,921 kB of archives. After this operation, 1,024 B of additional disk space will be used. Do you want to continue? [Y/n] y

Si disponemos de suficiente espacio en el disco, aceptamos la actualización:

Get:1 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 update-notifier-common all 3.192.1.1 [161 kB] Get:2 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libssl1.1 amd64 1.1.0g-2ubuntu4.1 [1,128 kB] Get:3 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 networkd-dispatcher all 1.7-0ubuntu3.2 [12.8 kB] Get:4 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 openssl amd64 1.1.0g-2ubuntu4.1 [532 kB] Get:5 http://es.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libssl1.0.0 amd64 1.0.2n-1ubuntu5.1 [1,087 kB] Fetched 2,921 kB in 1s (3,439 kB/s) Preconfiguring packages ... (Reading database ... 82066 files and directories currently installed.) Preparing to unpack .../update-notifier-common_3.192.1.1_all.deb ... Unpacking update-notifier-common (3.192.1.1) over (3.192.1) ... Preparing to unpack .../libssl1.1_1.1.0g-2ubuntu4.1_amd64.deb ... Unpacking libssl1.1:amd64 (1.1.0g-2ubuntu4.1) over (1.1.0g-2ubuntu4) ... Preparing to unpack .../networkd-dispatcher_1.7-0ubuntu3.2_all.deb ... Unpacking networkd-dispatcher (1.7-0ubuntu3.2) over (1.7-0ubuntu3) ... Preparing to unpack .../openssl_1.1.0g-2ubuntu4.1_amd64.deb ... Unpacking openssl (1.1.0g-2ubuntu4.1) over (1.1.0g-2ubuntu4) ... Preparing to unpack .../libssl1.0.0_1.0.2n-1ubuntu5.1_amd64.deb ... Unpacking libssl1.0.0:amd64 (1.0.2n-1ubuntu5.1) over (1.0.2n-1ubuntu5) ... Setting up libssl1.0.0:amd64 (1.0.2n-1ubuntu5.1) ... Setting up update-notifier-common (3.192.1.1) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... Setting up libssl1.1:amd64 (1.1.0g-2ubuntu4.1) ... Setting up openssl (1.1.0g-2ubuntu4.1) ... Processing triggers for man-db (2.8.3-2) ... Setting up networkd-dispatcher (1.7-0ubuntu3.2) ... Installing new version of config file /etc/default/networkd-dispatcher ... Processing triggers for libc-bin (2.27-3ubuntu1) ... usuario@host:~$

Una vez finalizado el proceso de upgrade, ya tendremos el sistema al día.
0

miércoles, 5 de septiembre de 2018

Cómo instalar PHP 7.2 en IIS



Cómo instalar PHP 7.2 en un servidor web IIS de un Windows Server.



Hoy en día, son muchas las aplicaciones web que requieren PHP 7.2 para funcionar correctamente. IIS, por defecto, no tiene PHP configurado y este debe ser instalado a parte.

Para instalar PHP 7.2 en un servidor Windows que use IIS, primero debemos descargarnos una herramienta oficial de Microsoft llamada Microsoft Web Platform Installer la cual nos permite añadir componentes como PHP o SQL a los IIS de forma sencilla.

Descargamos Microsoft Web Platform Installer, lo ejecutamos y nos vamos a la pestaña "Products". Nos dirigimos a "Frameworks" y bajamos hasta la opción "php 7.2.2 (x64)".



Clicamos "Add" y a continuación "Install". El programa seleccionará automáicamente otras utilidades (además de PHP 7.2) que deben instalarse obligatoriamente para poder usar PHP 7 en IIS.



Cuando haya terminado la instalación, creamos un archivo .php en la carpeta donde tengamos alojada nuestra página web con el siguiente código:

<?php phpinfo(); ?>

Reiniciamos IIS. Ahora, al acceder con el navegador a este archivo .php, comprobaremos cómo PHP 7.2 ha quedado instalado y está en ejecución:



Es recomendable eliminar este archivo una vez realizada esta comprobación, ya que este archivo revela información sobre el servidor que podría ser utilizada por un atacante para comprometer la máquina.
0