Configuración inicial del servidor y configuraciones en CentOS 7


Este tutorial le explicará los primeros pasos básicos que debe seguir después de instalar un sistema mínimo de CentOS 7 sin entorno gráfico para obtener información sobre el sistema instalado, el hardware sobre el que se ejecuta el sistema. y configure otras tareas específicas del sistema, como redes, privilegios de raíz, software, servicios y otros.

  1. CentOS 7 Minimal Installation

Actualización del sistema CentOS 7

El primer paso que debe realizar en un sistema CentOS recién instalado es asegurarse de que esté actualizado con los últimos parches de seguridad del sistema y del kernel, los repositorios de software y los paquetes.

Para actualizar completamente un sistema CentOS 7 , emita los siguientes comandos con privilegios de root.

# yum check-update
# yum upgrade

Una vez que se completa el proceso de actualización, para liberar espacio en el disco, puede eliminar todos los paquetes descargados que se usaron en el proceso de actualización junto con toda la información de los repositorios almacenados en caché ejecutando el siguiente comando.

# yum clean all

Instalar las utilidades del sistema en CentOS 7

Los siguientes paquetes de utilidades pueden resultar útiles para la administración diaria del sistema: nano (editor de texto para reemplazar el editor vi), wget, curl (utilidades utilizadas para descargar paquetes a través de la red en su mayoría) herramientas de red , lsof (utilidades para administrar redes locales) y bash-completed (línea de comando autocompletada).

Instálalas todas de una sola vez ejecutando el siguiente comando.

# yum install nano wget curl net-tools lsof bash-completion

Configuración de redes en CentOS 7

CentOS 7 tiene una amplia gama de herramientas que se pueden usar para configurar y administrar redes, desde la edición manual del archivo de configuración de red hasta el uso de comandos como ip, ifconfig, nmtui , nmcli o ruta .

La utilidad más sencilla que un principiante puede usar para administrar y cambiar las configuraciones de red es la línea de comando gráfico nmtui .

Para cambiar el nombre de host del sistema mediante la utilidad nmtui , ejecute el comando nmtui-hostname , configure el nombre de host de su máquina y presione OK para finalizar, como se ilustra En la captura de pantalla de abajo.

# nmtui-hostname

Para manipular una interfaz de red, ejecute el comando nmtui-edit , elija la interfaz que desea editar y seleccione editar en el menú de la derecha, como se muestra en la siguiente captura de pantalla.

# nmtui-edit

Una vez que esté en la interfaz gráfica proporcionada por la utilidad nmtui , puede configurar la configuración de IP de la interfaz de red como se ilustra en la siguiente captura de pantalla. Cuando termine, navegue hasta Aceptar usando la tecla [pestaña] para guardar la configuración y salir.

Para aplicar la nueva configuración de la interfaz de red, ejecute el comando nmtui-connect , seleccione la interfaz que desea administrar y presione la opción Desactivar/Activar para retirar el servicio y aumentar la interfaz con la configuración de IP, como se presenta en las capturas de pantalla a continuación.

# nmtui-connect

Para ver la configuración de la interfaz de red, puede inspeccionar el contenido del archivo de interfaz o puede emitir los siguientes comandos.

# ifconfig enp0s3
# ip a
# ping -c2 google.com

Otras utilidades útiles que se pueden usar para administrar la velocidad, el estado del enlace u obtener información sobre las interfaces de red de la máquina son ethtool y mii-tool .

# ethtool enp0s3
# mii-tool enp0s3

Un aspecto importante de la red de su máquina es enumerar todos los sockets de red abiertos para ver qué programas están escuchando en qué puertos y cuál es el estado de las conexiones de red establecidas.

Para enumerar todos los servidores que han abierto los sockets TCP o UDP en estado de escucha, emita los siguientes comandos. Sin embargo, el servidor UDP no mostrará ningún estado de socket debido a que UDP es un protocolo sin conexión que solo envía paquetes a través de la red y no establece conexiones.

# netstat -tulpn
# ss -tulpn
# lsof -i4 -6

Gestionar servicios en CentOS 7

CentOS 7 administra demonios o servicios a través de la utilidad systemctl. Para enumerar todos los servicios, emita el siguiente comando.

# systemctl list-units

Para verificar si un demonio o servicio está habilitado para iniciarse automáticamente cuando se inicia el sistema, ejecute el siguiente comando.

# systemctl list-unit-files -t service

Para enumerar los antiguos servicios SysV presentes en su sistema y deshabilitarlos, emita los siguientes comandos chkconfig.

# chkconfig --list
# chkconfig service_name off

5. Deshabilitar servicios no deseados en CentOS 7

Se recomienda, después de instalar CentOS 7 , enumerar los servicios que se ejecutan en el sistema ejecutando los comandos anteriores y deshabilitarlos y eliminarlos para reducir los vectores de ataques contra su sistema.

Por ejemplo, el demonio Postfix se instala y habilita de manera predeterminada en CentOS 7. Si su sistema no requiere la ejecución de un servidor de correo, es mejor detener, deshabilitar y eliminar el servicio de postfix emitiendo los siguientes comandos .

# systemctl stop postfix
# systemctl disable postfix
# yum remove postfix

Además de los comandos netstat, ss , lsof o systemctl, también puede ejecutar los comandos ps, top o pstree para descubrir e identificar qué servicios no deseados se están ejecutando en su sistema. y deshabilítalos o elimínalos.

De forma predeterminada, la utilidad pstree no está instalada en CentOS 7. Para instalarla, ejecute el siguiente comando.

# yum install psmisc
# pstree -p

Habilitar Firewall en CentOs 7

Para habilitar, iniciar y verificar el firewall en CentOS 7, ejecute los siguientes comandos.

# systemctl enable firewalld
# systemctl start firewalld
# systemctl status firewalld

Para abrir un servicio específico para conexiones entrantes, primero verifique si la aplicación ya está presente en las reglas de firewalld y luego, agregue la regla para el servicio, como se muestra en el siguiente ejemplo que permite SSH conexiones entrantes. Use el interruptor --permanent para agregar la regla de forma permanente.

# firewall-cmd --add-service=[tab]  #List services
# firewall-cmd --add-service=ssh
# firewall-cmd --add-service=ssh --permanent

En caso de que el servicio ya esté definido en las reglas de firewalld, puede agregar manualmente el puerto de servicio, como se muestra en el siguiente ejemplo.

# firewall-cmd --add-port=22/tcp --permanent
# firewall-cmd --reload     #Apply the rule on-fly

Habilitar permisos de Sudo en cuentas de usuario

Para otorgar permisos de root a un usuario normal, primero cree el usuario emitiendo el comando adduser, establezca la contraseña para el usuario y otorgue permisos de root al usuario ejecutando el siguiente comando que agrega al nuevo usuario al grupo administrativo de la rueda.

# adduser tecmint
# passwd tecmint
# usermod -aG wheel tecmint

Para probar si el nuevo usuario tiene privilegios de root, inicie sesión en el sistema con las credenciales del usuario y ejecute el comando yum con permisos sudo, como se muestra en el siguiente extracto.

# su - tecmint
# sudo yum update

Configure la autenticación de clave pública SSH en CentOS 7

Para asegurar SSH su servidor y configurar la autenticación de clave pública para aumentar la seguridad de su servidor con una clave SSH privada para iniciar sesión, primero genere un par de claves SSH con el siguiente comando.

No ingrese una contraseña en caso de que desee automatizar la administración del servidor a través de SSH.

# ssh-keygen -t RSA

Una vez que se hayan generado los pares de claves SSH, copie la clave en el servidor al que desea conectarse emitiendo el siguiente comando. Inicialmente, ingrese su contraseña de usuario de SSH remota para copiar la clave pública.

# ssh-copy-id [email protected]_SERVER_IP

Después de que la clave pública SSH se haya copiado al servidor remoto, inicie sesión en el servidor SSH remoto con el siguiente comando.

# ssh [email protected]_SERVER_IP

Finalmente, para asegurar el servidor SSH, asegúrese de no permitir el acceso remoto de SSH a la cuenta de root abriendo el archivo de configuración de SSH /etc/ssh/sshd_config con su editor de texto como root y cambiándolo. a No .

PermitRootLogin no

Para aplicar la configuración, debe reiniciar el servicio SSH para que use la nueva configuración.

# systemctl restart sshd

¡Eso es todo! Estas son solo algunas de las configuraciones y comandos básicos que todo administrador de sistema debe conocer y aplicar en un sistema CentOS instalado recientemente o para realizar tareas diarias en el sistema.

Para asegurar y fortalecer el servidor CentOS 7, consulte los siguientes artículos.

  1. The Mega Guide To Harden and Secure CentOS 7 – Part 1
  2. The Mega Guide To Harden and Secure CentOS 7 – Part 2

Si planea implementar sitios web en este sistema CentOS 7, aprenda cómo configurar y configurar la pila LAMP o la pila LEMP.