Instalar Centos 6.6

De Wiki Informatica Gobierno Regional
Ir a la navegación Ir a la búsqueda

Introducción

Este documento describe el procedimiento genérico de instalación y configuración inicial del sistema operativo CentOS Linux 6.6 para arquitectura x86_64.

Instalación

Se debe utilizar la imagen ISO de instalación “Minimal” de CentOS 6.6

El nombre del archivo tiene el formato CentOS-6.n-arch-minimal.iso, donde n representa la versión menor de CentOS y arch es la arquitectura (i386 para 32 bits o x86_64 para 64 bits). Este archivo debe ser grabado como imagen (no como un archivo normal) en un CD de instalación.

Inicio

Centos6-01.jpeg

Se debe insertar el disco de instalación de CentOS y luego iniciar (o reiniciar) el sistema. Cuando aparezca la pantalla de bienvenida, se debe seleccionar la opción "Install or upgrade an existing system" y luego presionar [ENTER].

Centos6-02.jpeg

A continuación aparecerá una pantalla preguntando si se desea realizar un chequeo del disco de instalación, a fin de detectar posibles errores. En caso de tener dudas, es mejor realizar el chequeo; de lo contrario, simplemente se debe seleccionar la opción "Skip".

Bienvenida

Archivo:Centos6-anaconda-1.png

Se debe presionar [Next].

Selección de idioma de la instalación

Archivo:Centos6-anaconda-2.png

Se debe seleccionar "Spanish" y luego presionar [Next].

Selección de idioma del teclado

Archivo:Centos6-anaconda-3.png

Se debe seleccionar "Español" y luego presionar [Siguiente].

Particionamiento

Archivo:Centos6-anaconda-4.png

Se debe seleccionar "Basic Storage Devices" y luego presionar [Siguiente].

Archivo:Centos6-anaconda-5.png

En caso de que el disco no haya sido particionado anteriormente, aparecerá un aviso como el que se muestra en la imagen superior. En este caso, se debe seleccionar "Sí, eliminar cualquier tipo de datos".

Definición del nombre del servidor

Archivo:Centos6-anaconda-6.png

Se debe definir el nombre FQN ("Fully Qualified Name") del servidor y luego presionar [Siguiente].

NOTA: la configuración de red se realizará después de haber completado la instalación.

Definición de zona horaria

Archivo:Centos6-anaconda-7.png

Se debe seleccionar "America/Santiago" y luego presionar [Siguiente].

Definición de la contraseña de root

Archivo:Centos6-anaconda-8.png

Se debe definir una contraseña segura (se recomiendan al menos 8 caracteres aleatorios) y luego presionar [Siguiente].

Selección de dispositivos de almacenamiento y creación de particiones

La selección del esquema de particionamiento varía de acuerdo al uso que se le pretenda dar al servidor. Sin embargo, como regla general se recomienda utilizar el siguiente esquema:

  • Una partición primaria de 500 MB para /boot, de tipo ext4.
  • Una partición primaria con el resto del espacio disponible, de tipo physical volumen (LVM). Dentro de ésta se debe crear un grupo de volúmenes LVM llamado vg_NombreDelServidor, donde NombreDelServidor es el nombre corto del servidor (NO el nombre FQDN). El grupo debe contener los siguientes volúmenes lógicos:
    • Un volumen llamado lv_swap de aproximadamente el mismo tamaño que la cantidad de memoria RAM disponible, de tipo SWAP. (Si el servidor tiene una gran cantidad de memoria RAM, se recomienda utilizar un máximo de 6 GB de SWAP).
    • Un volumen llamado lv_root con el resto del espacio disponible, de tipo ext4.

NOTA: los siguientes pasos eliminarán cualquier información almacenada previamente en el disco duro del servidor.

Archivo:Centos6-anaconda-9.png

Se debe seleccionar la opción "Use All Space", marcar la opción "Verifique y modifique el esquema de particiones" y luego presionar [Siguiente].

Archivo:Centos6-anaconda-11.png

Se debe modificar el nombre del grupo LVM a vg_NombreDelServidor, donde NombreDelServidor es el nombre corto del servidor. Además, se debe eliminar el volumen lv_home y luego ampliar el tamaño del volumen lv_root al máximo posible. Posteriormente se debe presionar [Siguiente].

Archivo:Centos6-anaconda-12.png

Se debe seleccionar "Write changes to disk" y luego presionar [Siguiente].

Configuración del gestor de arranque

Archivo:Centos6-anaconda-13.png

Se debe presionar [Siguiente].

Instalación de los paquetes

Archivo:Centos6-anaconda-14.png

No se requiere realizar ninguna modificación. El proceso de instalación de los paquetes suele demorar unos pocos minutos (dependiendo de las características del servidor).

Finalización de la instalación y reinicio del servidor

Archivo:Centos6-anaconda-15.png

Se debe presionar [Reiniciar].

Archivo:Centos6-03.jpeg

Al reiniciar el servidor, se presentará la pantalla de inicio de sesión de CentOS en modo texto. Se debe iniciar una sesión con el usuario root para continuar con la configuración.

Configuración

Para terminar la configuración, se debe ingresar usando la cuenta root y la contraseña definida durante la instalación.

Configuración de red

Se debe editar el archivo correspondiente a la interfaz de red que se utilizará. Por ejemplo: si se utiliza la interfaz eth0 se debe modificar el archivo /etc/sysconfig/network-scripts/ifcfg-eth0 de la siguiente forma:

DEVICE="eth0"
HWADDR="AA:BB:CC:DD:EE:FF"
NM_CONTROLLED="no"
ONBOOT="yes"
IPADDR="10.0.0.5"
NETMASK="255.255.255.0"
GATEWAY="10.0.0.4"
DNS1="10.0.0.4"

El nombre del servidor se debe definir en el archivo /etc/sysconfig/network, de la siguiente forma:

NETWORKING=yes
HOSTNAME=NombreDelServidor.example.com

Además se debe agregar el nombre del servidor como alias de la dirección IP 127.0.0.1 en el archivo /etc/hosts; por ejemplo:

127.0.0.1   nombreDelServidor.example.com nombreDelServidor localhost localhost.localdomain localhost4 localhost4.localdomain4

Si se desea habilitar una ruta adicional de salida (por ejemplo, para servidores que se conecten a una VPN), se debe crear el archivo /etc/sysconfig/network-scripts/route-eth0 con un contenido similar al siguiente:

GATEWAY0=10.0.0.4
NETMASK0=255.255.255.0
ADDRESS0=10.0.1.0

Posteriormente se debe reiniciar el servicio de red con el comando:

service network restart

Instalación de utilidades básicas

  • at: utilidad para ejecutar tareas una única vez en un tiempo determinado.
  • acl: utilidades para manipular listas de control de acceso.
  • cron: utilidad para manejar tareas programadas.
  • dmidecode: herramienta para analizar datos de la BIOS.
  • file: utilidad para identificar el tipo de un archivo.
  • iotop: visualizador de I/O.
  • mailx: utilidad para enviar correos desde consola.
  • man: manuales de varias aplicaciones.
  • mc: administrador de archivos para consola.
  • mlocate: utilidad para buscar archivos.
  • net-snmp: utilidades para utilizar el protocolo SNMP para monitorear el servidor.
  • ntp: cliente para Network Time Protocol.
  • openssh-clients: clientes para el servidor OpenSSH.
  • pciutils: utilidades para inspeccionar y configurar el bus PCI.
  • postfix: servidor de correo (MTA).
  • policycoreutils-python: utilidades para administrar un ambiente SELinux.
  • rsync: herramienta para sincronizar archivos y directorios.
  • screen: permite usar sesiones en consola.
  • setuptool: herramienta general de configuración de CentOS.
  • system-config-network-tui: utilidades para la configuración de la red.
  • system-config-services: utilidades para la configuración de la seguridad del sistema.
  • telnet: cliente para el protocolo Telnet.
  • tmpwatch: elimina archivos temporales que no se han accedido en un tiempo determinado.
  • tree: visualiza una estructura de directorios en forma de árbol.
  • vim-enhanced: add-ons para el editor Vi.
  • wget: utilidad de consola para descargar archivos.
  • xorg-x11-xauth: utilidad para manejar los accesos al servidor gráfico.
  • yum-fastestmirror: selecciona el mirror más rápido para las actualizaciones vía yum.
  • zip, unzip: utilidad para el manejo de archivos ZIP.

Para instalar estas utilidades se debe ejecutar la siguiente instrucción:

yum install mailx wget mc vim-enhanced postfix man man-pages-es \
setuptool system-config-services system-config-network-tui file \
iotop tree telnet rsync screen openssh-clients vixie-cron \
xorg-x11-xauth ntp crontabs at acl mlocate zip unzip tmpwatch \
yum-fastestmirror net-snmp net-snmp-utils dmidecode \
policycoreutils-python pciutils

Configuración de repositorios adicionales

CentOS CR

El repositorio "Continuous Release" de CentOS contiene paquetes RPMs que serán incluídos en la siguiente actualización de CentOS. Esto incluye actualizaciones de seguridad y corrección de errores, por lo que este repositorio debe estar activo en todos los servidores.

yum install centos-release-cr

EPEL

Para 64 bits:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

RPMForge

Para sistemas de 64 bits:

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

rm -f rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

sed -i s/"enabled = 1"/"enabled = 0"/g /etc/yum.repos.d/rpmforge.repo

NOTA: El repositorio RPMForge quedará deshabilitado, ya que puede producir conflictos con el repositorio EPEL. Para habilitarlo temporalmente se debe incluir el parámetro --enablerepo=rpmforge al usar yum.

Repositorio Lazos

El repositorio Lazos para CentOS 5 y 6 provee paquetes RPMs de distintos programas que no están disponibles en los repositorios oficiales de CentOS, o que han debido ser modificados o actualizados para satisfacer las necesidades propias del GORE.

Instalación de utilidades adicionales

  • apg: utilidad para generar contraseñas aleatorias.
  • fail2ban: permite bloquear las direcciones IP que realizan intentos fallidos de acceso SSH al servidor.
  • htop: visualizador de procesos interactivo.
  • lshw: utilidad para realizar un inventario del hardware de una máquina.
  • pigz: implementación en paralelo de gzip para máquinas multiprocesador.
  • rar, unrar: utilidades para el manejo de archivos RAR.
  • rdiff-backup: herramienta para realizar respaldos.
  • tmux: multiplexador de terminal.
  • trickle: utilidad para limitar ancho de banda utilizado por una aplicación.

Para instalar estas utilidades se debe ejecutar el comando:

yum --enablerepo=rpmforge install apg lshw rar rdiff-backup pyxattr \
unrar trickle fail2ban python-inotify tmux vlock pigz htop

Configuración del cortafuegos

Inicialmente se deben abrir sólo los siguientes puertos:

  • 22/TCP: para conexiones SSH sólo desde la red local (10.0.0.0/24) y desde la VPN (10.0.1.0/24).
  • 161/UDP: para monitoreo SNMP sólo desde el servidor 10.0.0.4.

Para ello, se debe modificar el archivo /etc/sysconfig/iptables de la siguiente forma:

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
# SSH
-A INPUT -m state --state NEW -m tcp -p tcp -s 10.100.0.0/24 --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -s 10.100.1.0/24 --dport 22 -j ACCEPT
# SNMP
-A INPUT -s 10.100.0.159/32 -p udp -m state --state NEW -m udp --dport 161 -j ACCEPT
# Default
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Finalmente es necesario reiniciar el servicio de la siguiente forma:

service iptables restart

Configuración de SSH

Se debe modificar el archivo /etc/ssh/sshd_config:

TCPKeepAlive no
ClientAliveInterval 900
ClientAliveCountMax 0

Luego se debe reiniciar el servicio:

service sshd restart

Configuración del servidor de correo

Es necesario activar el servidor de correo, de la siguiente forma:

chkconfig postfix on

service postfix start

Configuración del servicio de tareas automatizadas

Es necesario activar el servicio de tareas automatizadas, de la siguiente forma:

chkconfig crond on

service crond start

Configuración del servidor de tiempo de red

Se debe editar el archivo /etc/ntp.conf y comentar la siguientes líneas (anteponiendo el símbolo '#'):

server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org

Debajo de esas lineas se debe agregar la siguiente:

server ntp.shoa.cl

(NOTA: en caso de tratarse de un servidor que se encuentre fuera de Chile, se debe utilizar el servidor NTP público más cercano.)

Luego se debe activar la sincronización del reloj del hardware::

sed -i s/SYNC_HWCLOCK=no/SYNC_HWCLOCK=yes/ /etc/sysconfig/ntpdate

Finalmente es necesario activar el servicio de tiempo de red, de la siguiente forma:

chkconfig ntpd on

service ntpd start

Configuración de SNMP

Se debe descargar la configuración de ejemplo utilizada por LAZOS desde aquí:

wget http://lazos.cl/w/images/3/34/Snmpd.conf.txt -O /etc/snmp/snmpd.conf

Posteriormente se deben modificar las siguientes variables en el archivo /etc/snmp/snmpd.conf de acuerdo a la ubicación del servidor y al contacto técnico asociado al mismo:

syslocation GTD
syscontact Monitor <monitor@example.com>

Finalmente es necesario activar el servicio de la siguiente forma:

chkconfig snmpd on

service snmpd start

Configuración de fail2ban

En primer lugar se debe crear una copia del archivo de configuración:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Luego se debe editar el archivo /etc/fail2ban/jail.local:

[ssh-iptables]

	enabled  = true
	filter   = sshd
	action   = iptables[name=SSH, port=ssh, protocol=tcp]
	           sendmail-whois[name=SSH, dest=operaciones@example.com, sender=fail2ban@NombreDelServidor.example.com]
	logpath  = /var/log/secure
	maxretry = 3

Finalmente es necesario activar el servicio de la siguiente forma:

chkconfig fail2ban on

service fail2ban start

Configuración de tmux

Para iniciar automáticamente una sesión de tmux al ingresar por SSH como root, se debe modificar el archivo /root/.bashrc, agregando lo siguiente al final del archivo:

# TMUX
if [ "$PS1" != "" -a "${STARTED_TMUX:-x}" = x -a "${SSH_TTY:-x}" != x ]
then
        STARTED_TMUX=1; export STARTED_TMUX
        sleep 1
        if $(tmux has-session)
        then
                echo "Se encontraron las siguientes sesiones de TMUX:"
                tmux list-sessions
                echo "Ingrese el número de la sesión a la que desea conectarse o presione cualquier tecla para crear una nueva sesión."
                read -n 1 RESPUESTA
                ( tmux attach -t $RESPUESTA || tmux ) && clear && exit 0
        else
                tmux && clear && exit 0
        fi
fi

Luego se debe crear el archivo /root/.tmux.conf con el siguiente contenido:

# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
# Lock after 15 min
set -g lock-after-time 900
set -g lock-server on
set -g lock-command "vlock"

Desactivación de SELinux

NOTA: SELinux es una capa de seguridad adicional, por lo que se recomienda mantenerlo activado a menos que existan motivos de fuerza mayor que lo impidan.

Para desactivar SELinux, se debe modificar el archivo /etc/sysconfig/selinux:

SELINUX=disabled

SELinxux quedará desactivado en el siguiente reinicio del servidor. Para reiniciar inmediatamente, se debe ejecutar la siguiente instrucción:

reboot

Para verificar el estado actual de SELinux, se puede utilizar la siguiente instrucción:

sestatus

Actualización del sistema base

Para actualizar todos los paquetes instalados en el servidor, se debe ejecutar la siguiente instrucción:

yum update

En caso de que se haya aplicado una actualización del kernel, será necesario reiniciar el sistema:

reboot

Conclusión

Al terminar la instalación se obtendrá un sistema CentOS 6.x con las medidas básicas de protección y las utilidades fundamentales para el manejo del sistema.

Referencias