Diferencia entre revisiones de «Instalar Centos 6.6»
| Línea 219: | Línea 219: | ||
'''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. | '''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. | ||
'''NOTA 2:''' El repositorio RPMForge está descontinuado, se desaconseja su uso!. | |||
== Instalación de utilidades adicionales == | == Instalación de utilidades adicionales == | ||
Revisión del 19:30 5 sep 2016
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
- Para sistemas de 64 bits se puede descargar desde el siguiente enlace: http://vault.centos.org/6.6/isos/x86_64/
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
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].
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].
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
Se debe comentar con # al principio el localhost para ipv6.
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.
NOTA 2: El repositorio RPMForge está descontinuado, se desaconseja su uso!.
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
- 80/TCP
- 5432/TCP
- 6082/TCP
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 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 6082 -j ACCEPT -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 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=soporte@gorearaucania.cl, sender=fail2ban@geonodo3.araucania] 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.