Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen—Asegurar cualquier servidor sin importar el sistema 2020 el 70% de los servidores a nivel mundial utiliza sistema
operativo con el que funcione es de suma importancia, debido operativo Linux para su funcionamiento. Para mantener el
al aumento de ataques cibernéticos que se presentan hoy en dı́a sistema operativo Linux lo más actualizado posible como un
con el fin de robar información, destruir información u obtener
acceso a datos que después pueden ser vendidos y adquirir algún sistema operativo Windows Server donde Microsoft empresa
tipo de beneficio económico o de otra ı́ndole. Este documento desarrolladora libera actualizaciones cada vez que se encuentra
es una guı́a sobre cómo proteger un computador o servidor una vulnerabilidad crı́tica, es una tarea que se debe realizar
con sistema operativo Linux, fortalecer y asegurar cualquier diariamente por el administrador de servidores o el usuario
distribución Linux, pretende acercar al lector un poco más al final. Se debe estar revisando foros de seguridad o estar
funcionamiento y estructura del Kernel Linux. Se debe conocer
que se quiere asegurar y por qué debemos asegurarlo. Mostrar suscrito a los boletines de cada distribución que se tenga
lo Seguro, confiable que puede ser un servidor con cualquier instalada, donde se informan las vulnerabilidades encontradas
distribución Linux instalada donde se apliquen correctamente las y la forma de remediarlas. Es una medida poco efectiva
técnicas para su aseguramiento y mantenimiento que se ejecutan pero necesaria, ya que mientras se actualiza el boletı́n de
por el administrador del servidor diariamente para garantizar seguridad, se recibe y analiza la vulnerabilidad el impacto
que la información y aplicaciones estén salvaguardadas.
que pueda, posteriormente se aplica el parche de seguridad
Abstract—Securing any server regardless of the operating o se corrige la vulnerabilidad puede pasar demasiado tiempo
system with which it works is of utmost importance, due to the y mientras tanto nuestro servidor o equipo puede ser vulnerado
increase in cyber-attacks that occur today to steal information,
destroy information or gain access to data that can later be por un atacante. Adicionalmente de las vulnerabilidades que
sold and acquired. some type of economic or other benefit. This se debe cubrir del Sistema Operativo, se debe también
document is a guide on how to protect a computer or server mantener actualizados los paquetes a aplicativos que se tienen
with a Linux operating system, strengthen and secure any Linux instalados en el servidor. Lo ideal serı́a parchear cada nueva
distribution, it aims to bring the reader a little closer to the vulnerabilidad inmediatamente después de que sea descubierta.
operation and structure of the Linux Kernel. You must know
what you want to insure and why we should insure it. Show how En la vida real esto es casi imposible; un administrador de
safe, reliable a server can be with any Linux distribution installed sistemas responsable de la gestión de parcheo de los sistemas
where the techniques for its assurance and maintenance are operativos Linux se enfrentan a múltiples inconvenientes
correctly applied, which are executed by the server administrator para poder aplicar parches, incompatibilidad con aplicaciones
daily to guarantee that the information and applications are ya instaladas, falta de documentación. En el caso de los
safeguarded
sistemas operativos Linux por ser un sistema operativo
Index Terms—Kernel, Hardering, VPN, Backup libre la liberación de parches puede demorar mientras la
comunidad documenta y corrige el error en la distribución
I. INTRODUCCI ÓN correspondiente.
Casi el 99% de los sistemas de cómputo se encuentran
L OS servidores y equipos de escritorio instalados con
Sistemas Operativos Linux cada dı́a van en aumento, las
distribuciones Linux se encuentran en un estado de madurez
conectados a Internet, y en el momento que un equipo esté
conectado a Internet ya lo convierte en un equipo vulnerable.
y robustez importante que permite que se puedan utilizar para En el caso de las distribuciones Linux están entre los productos
cualquier ambiente de trabajo. Los entornos se han vuelto con más vulnerabilidades encontradas en los últimos 10 años.
más amigables para el usuario, su facilidad de instalación, Para lograr que cualquier Sistema Operativo sea seguro
su practicidad al momento de usar el sistema operativo y uno de los primeros pasos que se debe realizar es conocer
la gran cantidad de paquetes que el usuario puede instalar el sistema operativo, sus componentes, su funcionamiento, no
para administrarlo a hecho que el porcentaje en el mercado se puede asegurar algo de lo cual no se conoce, no se sabe
aumente cada dı́a más; y la brecha con los equipos que cuentan administrar.
con sistema operativo Windows sea cada vez menor. Existen
comunidades que se dedican exclusivamente a desarrollar y II. DISTRIBUCIONES LINUX
dar soporte en aplicaciones para sistemas operativos Linux.
Sin nombrar la gran cantidad de distribuciones que existen Una distribución de Linux es una versión personalizada
de acuerdo con la necesidad de los usuarios y las funciones del sistema operativo, en la actualidad existen demasiadas
que esta distribución realizara; Según estadı́sticas del año distribuciones Linux las cuales serán imposibles de enumerar
algunas ya desaparecidas o absorbidas por otras distribuciones
Documento Creado para optar al grado de Especialista en Seguridad u otras empresas. Otras solo conocidas en una comunidad muy
Informática de la Universidad Piloto de Colombia. Alexander Urrego Morera, pequeña y por supuesto las grandes y populares distribuciones
Ingeniero de Sistemas de la Escuela Colombiana de Carreras Industriales
’ECCI’, Estudiante de la especialización en Seguridad Informática en la que abarcan el mercado. Hay un equipo de trabajo que regula
Universidad Piloto de Colombia (alexander-urrego@upc.edu.co) el código que se integra en cada versión del Kernel de Linux.
UNIVERSIDAD PILOTO DE COLOMBIA, URREGO MORERA ALEXANDER, SEGURIDAD EN SISTEMAS OPERATIVOS LINUX. 2
B. Niveles de seguridad del Common Criteria • Nivel E4: Plan de seguridad. El control de acceso es
El estándar o norma que ha conseguido unificar la seguridad obligatorio y un responsable de seguridad debe decidir
de los productos informáticos a nivel internacional es la qué cierta información solo puede ser accedidas por
ISO/IEC 15408, más conocida como Common Criteria. Esta personas de confianza.
norma inicio en 1990 por la Organización Internacional de • Nivel E3: Sistemas en los que se exige palabras de acceso
Estandarización – ISO y es reconocida por los 27 paı́ses y se verifica con auditorı́as.
firmantes del Common Criteria Recognition Agreement. El • Nivel E2: Medidas discrecionales para proteger los datos
objetivo de esta norma es evaluar las funciones de seguridad de los intrusos.
y el nivel de confianza de un producto IT. • Nivel E1: Sistema que no ha implementado ningún nivel
Un concepto clave de este estándar son los perfiles de de seguridad.
protección, que definen un conjunto de requerimientos y
objetivos de seguridad para una categorı́a de productos, con IV. EL KERNEL
similares necesidades por parte del usuario. Además, se EL Kernel de Linux o núcleo del sistema operativo es
definen objetivos de seguridad para los distintos productos el componente más importante del sistema operativo se
y sistemas informáticos que van a ser evaluados. Además, encuentra cargado en la RAM al iniciar el sistema. Trabaja
Common Criteria define una escala de siete niveles de en modo privilegiado del procesador, no tiene ninguna
confianza (EAL – Evaluation Assurance Levels) para medir restricción a la hora de ejecutar cualquier proceso. Utiliza
los perfiles de protección y los objetivos de seguridad. todas las instrucciones del procesador, direcciona la memoria,
• EAL1: funcionalidad probada accede directamente al hardware, al modificar el Kernel
• EAL2: estructuralmente probado erróneamente o realizar cualquier actividad puede ser fatal
• EAL3: probado y verificado metódicamente para el funcionamiento del sistema operativo. Que es lo que
• EAL4: diseñado, probado y revisado metódicamente. conocemos como “Kernel Panic” equivalente a la pantalla azul
• EAL5: diseñado y probado semi formalmente en los sistemas operativos Windows.
• EAL6: diseñado, verificado y probado semi formalmente Su estructura puede separarse en una serie de componentes,
• EAL7: diseñado, verificado y probado formalmente o módulos de gestión orientados a:
Estos niveles se han diseñado para ser compatibles con los
estándares previos, como el TCSEC e ITSEC. • Gestión de procesos: qué tareas se van a ejecutar y
en qué orden y prioridad. Un aspecto importante es la
planificación de la CPU.
C. Niveles de Seguridad del TCSEC • Intercomunicación de Procesos y sincronización.
ITSEC o “White Book” es un esfuerzo conjunto de la • Gestión de entrada/salida (E/S): control de periféricos y
Unión Europea (UE) para generar un criterio de evaluación gestión de recursos asociados.
de seguridad estandarizado para la región. La ITSEC evalúa • Gestión de memoria: optimización del uso de la memoria,
productos y sistemas; Concede a los productos que se evalúan sistema de paginación y memoria virtual.
satisfactoriamente niveles de seguridad de E1 hasta el E6, • Gestión de ficheros: cómo el sistema controla y organiza
siendo el nivel E1 el nivel más bajo. los ficheros presentes en el sistema, y accede a los
El ITSEC se aplica a un TOE (target of evaluation), que mismos. [2]
es el sistema o producto que se someterá a un análisis y
evaluación en cuanto a su seguridad. El TOE contiene dos
elementos:
y explotarlos. Pero es una tarea demasiado larga y tediosa; Y • LoginGraceTime: Tiempo de espera para introducir la
mientras alguien está leyendo el código fuente con el fin de contraseña evitando que el atacante pueda pensar mucho
vulnerarlo existen personas que están leyendo el código fuente la contraseña a introducir.
con el fin de repararlo y generar parches de seguridad con el • MaxAuthTries: Numero de intentos permitidos al
fin de minimizar esa brecha de seguridad. introducir la contraseña errónea antes de desconectar la
El Kernel de Linux está diseñado para ser multiusuario, lo sesión.
que nos indican que varios usuarios pueden ejecutar programas • AllowUsers: Es crear una lista blanca de usuarios
en paralelo. Y cualquier usuario puede ejecutar cualquier permitidos para acceder al servidor. Una medida muy
comando sin importar lo que estén realizando los demás restrictiva, pero a la vez muy segura ya que bloqueara
usuarios. El kernel también tiene como función proporcionar todas las conexiones de los usuarios que no estén en el
mecanismos de control de acceso para evitar que varios listado.
usuarios o procesos pueden ejecutar un mismo proceso varias • MaxStartups: Numero de logins simultáneos desde una
veces. IP, para evitar que se presente un ataque de fuerza bruta
con varias sesiones a la vez desde una misma ip.
• DenyUsers: Se crea una lista negra de usuarios que no
V. HARDERING EN SISTEMAS OPERATIVOS
les está permitido la conexión remota.
LINUX
• AllowGroups/DenyUsers: Exactamente igual a la
El hardering consiste en el endurecimiento del sistema anterior, pero en lugar de crear una lista blanca/negra de
operativo, con el fin de reducir y evitar amenazas a los que usuarios, es de grupos de usuarios.
está expuesto. El proceso de reducción de vulnerabilidades Otra buena practica es restringir el rango de direcciones
se consigue estableciendo medidas y polı́ticas de seguridad IP que puedan acceder al servidor por SSH. Permitiendo
con el objetivo de estar preparados a un ataque informático únicamente conexiones de redes de confianza, como a la red
de cualquier tipo u daño en el mismo sistema operativo, local o direcciones IP Publicas conocidas.
garantizando la integridad, disponibilidad y confidencialidad Una forma de restringir desde que IP’s se puede acceder
de la información. A continuación, se mencionarán un el servidor es configurando TCP Wrappers. En el archivo
conjunto de buenas prácticas, con el fin de que nuestro sistema hosts.allow se indica las redes con acceso. Se debe editar el
operativo Linux sea más seguro: siguiente archivo:
/etc/hosts.allow donde se indica desde cuál o cuáles redes se
tiene acceso:
A. Conexión remota SSH
sshd : 10.72.18.0/24,172.16.48.0/24
SSH o Secure Shell, es un protocolo de administración remota Se Utiliza la coma (,) para separar varias redes.
que permite a los usuarios controlar y modificar un servidor La conexión con clave publica para realizar una conexión
de forma remota a través de Internet o de una red local. ssh es un método aun más seguro , En el cual los usuarios
Proporciona un mecanismo para autenticar un usuario remoto, no necesitan recordar la contraseña. Funciona con dos claves
el servicio se creó como reemplazo seguro para el telnet sin una publica y otra privada. El servidor permitirá la conexión
cifrar y utilizar técnicas criptográficas con el fin de garantizar cuando la llave coincida con la del servidor.
que toda la comunicación desde y hacia el servidor se realizan Para realizar esta configuración en los sistemas operativos
de manera encriptada. Linux se deben generar las claves en el equipo cliente de la
Por defecto el servicio SSH utiliza el puerto 22 para siguiente manera:
establecer la conexión. Es recomendable cambiar este número # ssh-keygen, con la opción “-b” indica el numero de bits de
de puerto para evitar que ciberdelincuentes puedan intentar la llave, y la opción -t el tipo de cifrado que deseamos (rsa,
iniciar sesión, o pasar desapercibidos a un escaneo de puertos dsa,)
que se pueden realizar desde internet o desde cualquier red
LAN. En el fichero de configuración debemos modificar
el parámetro port y asignarle un puerto que deseemos que
escuche diferente al puerto 22, por ejemplo: “Port 64280”.
Se debe bloquear el acceso al usuario root en las conexiones
remotas, siempre que alguien intenta atacar un servidor por
defecto utiliza el puerto 22 y el usuario root, Desactivando
el usuario root y utilizando el comando “sudo” para elevar
privilegios a superusuario nos permitirá dotar de mayor
seguridad al servidor. El parámetro que se debe modificar es:
“PermitRootLogin no”. De esta manera las conexiones remotas
con el usuario root quedaran bloqueadas por defecto evitando
ataques de fuerza bruta contra el servidor SSH intentando
adivinar el password del usuario root. Fig. 3: Creación de llaves.
Otros parámetros de configuración que se pueden
recomendar aplicar a la configuración del servidor SSH son: Después de generar las llaves , se generan 2 archivos:
UNIVERSIDAD PILOTO DE COLOMBIA, URREGO MORERA ALEXANDER, SEGURIDAD EN SISTEMAS OPERATIVOS LINUX. 5
• id rsa es la clave privada, la que permanecerá en la • Polı́tica por defecto Aceptar todo: Por defecto Acepta
máquina local. todo el tráfico que entra y sale del servidor, solo se
• id rsa.pub es la clave pública, la que se debe copiar al denegara lo que se especifique en las reglas que se cree.
servidor remoto al que se quiere acceder. • Polı́tica por defecto Denegar: Todo es denegado, y solo
En el servidor al cual se va acceder remotamente se debe se permitirá pasar por el firewall lo que se acepte
copiar el contenido del archivo id rsa.pub dentro del archivo explı́citamente en las reglas que se cree . Esta Polı́tica
“authorized keys”. Este fichero en muchas ocasiones no se es la más utilizada, para bloquear todo excepto [Reglas].
encuentra, se puede crear manualmente. Si deseamos que Se puede especificar la dirección IP de origen, dirección IP
todos los equipos se conecten al servidor por este medio de destino, protocolo TCP/UDP. Iptables gestiona, mantiene e
y no por medio de una contraseña se debe modificar la inspecciona las reglas de filtrado de paquetes IPv4 a través
configuración en el archivo “/etc/ssh/sshd config” y en el de tablas. Estas tablas clasifican y organizan las reglas de
parámetro “PasswordAuthentication” y cambiamos su valor a acuerdo con el tipo de decisiones que se deben tomar sobre los
no, lo cual el servidor no aceptara ninguna contraseña para paquetes. Cada tabla contiene un numero de cadenas (chains),
recibir conexiones. Se pueden agregar tantas llaves publicas algunas predeterminadas y otras escritas por el administrador
como deseemos dependiendo de la cantidad de usuarios que del servidor o del firewall, las cadenas representan los eventos
accedan al servidor. Los usuarios que se conecten remotamente que disparan o inician a cada regla (hooks de netfilter). De
a nuestro servidor también se podrán restringir las tareas y esta manera, las cadenas determinan cuando las reglas son
comandos que podrán ejecutar en el servidor. evaluadas (cuando un paquete ingresa al sistema, cuando un
paquete sale del sistema, cuando un paquete se debe reenviar
hacia otro sistema, etc.).
B. Listar puertos abiertos Los diferentes hooks presentes en el framework netfilter
Se debe realizar un listado de todos los puertos que se coinciden con las siguientes cadenas de iptables:
encuentran abiertos en el servidor y depurar que puertos se • PREROUTING: Trafico entrante, las reglas de esta
necesitan dejar abiertos y que puertos no necesitamos que cadena son procesadas antes de tomar cualquier decisión
estén abiertos. En los sistemas operativos Linux cada puerto de ruteo respecto hacia donde enviar el paquete
se habilita dependiendo del proceso que está ejecutando y el • INPUT: Trafico entrante luego de haber sido ruteado y
acceso al puerto depende del servicio que preste. destinado al sistema local.
Para listar los puertos que se encuentran escuchando o se • FORWARD: Trafico entrante luego de haber sido ruteado
encuentran abiertos en el servidor para recibir peticiones se y destinado hacia otro host (reenviado).
debe ejecutar el comando “netstat -tupln”. • OUTPUT: Trafico saliente originado en el servidor.
• POSTROUTING: Trafico saliente originado en el
servidor o reenviado, luego de haber sido ruteado.
La forma de contrarrestar los tipos de ataques Dos más – Reducción de reintentos syn ack, Ajustar el
comunes es la siguiente: parámetro de Kernel tcp synack retries para
• ICMP Attack: Este tipo de ataque permite agotar el que el Kernel cierre las conexiones de estado
ancho de banda de la vı́ctima. Consiste en enviar una SYN RECV, el valor predeterminado es 5.
gran cantidad de información enviando paquetes ICMP net.ipv4.tcp synack retries = 3
Echo Request. – Configurar el tiempo de espera de SYN RECV ,
ayudara a reducir el ataque de inundación SYN. El
valorpredeterminado es 60, lo podemos reducir a 30.
net.ipv4.netfilter.ip contrack tcp timeout syn recv
= 30
– Prevención de falsificación de la dirección IP. Nos
ayudara a proteger el servidor de suplantación de
direcciones IP.
net.ipv4.conf.all.rp filter = 1
Después de la instalación de cualquier Sistema Operativo, la respecto a la necesidad de cambiar las contraseñas.
• nombreUsuario: el nombre de usuario Linux que estamos
primera actividad que se debe ejecutar es actualizar todos los
repositorios para que al momento de instalar cualquier paquete gestionando.
se esté asegurando que es la última versión liberada. Las Como regla general, debe nunca reutilice contraseñas antiguas.
actualizaciones se deben realizar utilizando el manejador de Puede restringir fácilmente a los usuarios el uso de sus
paquetes nativo de la distribución de Linux que se utilizó. El contraseñas antiguas en la misma máquina.
comando ”Yum” para distribuciones basadas en Red Hat y el Se debe modificar el archivo de contraseñas anterior el cual
comando “apt-get” para distribuciones basadas en Debian. Se es: /etc/security/opasswd . Esto solo se puede cambiar usando
pueden programar las actualizaciones automáticamente para el módulo PAM en Linux.
que se ejecuten un dı́a y hora especifica en la semana, se Para RHEL (Red Hat Enterprise Linux), CentOS y Fedora
podrán recibir notificaciones por correo electrónico cuando modifique el archivo “/etc/pam.d/system-auth”
existan actualizaciones crı́ticas para el Sistema Operativo. Para Debian y Ubuntu modifique el archivo
Muchas de estas actualizaciones abordan las vulnerabilidades “/etc/pam.d/common-password”.
de seguridad encontradas por la comunidad de Linux, por En la sección “auth” se debe agregar la siguiente lı́nea: “auth
lo que mantener los sistemas operativos lo más actualizados enough pam unix.so likeauth nullok”
posible es esencial. Si se desea permitir que un usuario reutilice su
Manteniendo nuestro Sistema Operativo con las ultimas contraseña de una serie de contraseñas que se usaron por
actualizaciones y parches de seguridad, no solo estamos última vez, se agrega la siguiente lı́nea en la sección
mejorando funcionalidades y rendimiento del Sistema “contraseña” “contraseña suficiente pam unix.so nullok
Operativo, también corrigen bugs y vulnerabilidades para que use authtok md5 shadow recordar = 3”. Después de realizar
no sean explotadas por ningún atacante. estos procedimientos, mostrar un error al usuario que este
intentando utilizar una de las 3 ultimas contraseñas utilizadas
en este servidor. [3]
G. Password Aging
Hay un comando que permite cambiar el número de dı́as H. Encriptación Disco Duro
entre cambios de contraseñas y la fecha del último cambio de
contraseña. Este comando es el change. Básicamente, lo que Hoy en dı́a las distribuciones Linux más usadas permite
se logra con este comando es determinar cuando un usuario encriptar los discos duros antes de la instalación. Con el fin
deberı́a cambiar su contraseña. Es decir, cuanto tiempo tiene de de proteger la información almacenada en caso de pérdida el
vigencia determinada contraseña establecida por el usuario en dispositivo. La persona que intente acceder a la información
cuestión: Este comando nos permite deshabilitar el Password conectando el disco duro en otro equipo no va a poder tener
Aging: acceso a los archivos almacenados porque no tiene la llave
para desencriptar el disco duro.
Para los sistemas operativos que no permite realizar la
encripción del disco duro antes de la instalación, existen
Fig. 9: Password Aging. muchos paquetes que nos permite realiza la encripción de los
UNIVERSIDAD PILOTO DE COLOMBIA, URREGO MORERA ALEXANDER, SEGURIDAD EN SISTEMAS OPERATIVOS LINUX. 8
algo de riesgo porque habilita los privilegios de root. • Browsable: permite a los clientes de Windows examinar
• all squash : Realiza la acción roo squash para todos los el directorio compartido utilizando el Explorador de
usuarios, incluido los usuarios root. Windows.
• no all squash : Habilita la autorización del usuario. • Guest ok: permite a los clientes conectarse al recurso
compartido sin proporcionar una contraseña.
La instalación NFS en el cliente es la siguiente:
• read only: determina si el recurso compartido es de sólo
• yum install nfs-utils - Sistemas operativos Red lectura o si se conceden privilegios de escritura. Los
Hat/Fedora. privilegios de escritura sólo se permiten cuando el valor
• yum install rpcbind - Sistemas operativos Red es no, como se ve en este ejemplo. Si el valor es sı́, el
Hat/Fedora. acceso al recurso compartido es sólo lectura.
• apt-get install nfs-common - Sistemas operativos basados • create mask: determina los permisos que tendrán los
en Debı́an. nuevos archivos cuando se creen.
Para realizar un montaje de red permanente se edita el Se debe reiniciar el servicio Samba para que tome los
archivo “/etc/fstab” y adicionamos la ruta que deseamos añadir cambios.
a nuestro sistema de archivos de la siguiente manera:
• 192.168.0.10:/path servidor /carpeta compartida nfs M. Habilitar SUDO
defaults 0 0 SUDO es una herramienta de los sistemas operativos
Después de añadir esta lı́nea en el archivo se debe Linux, la cual permite a los usuarios realizar la ejecución de
reiniciar el equipo para que al iniciar monte la carpeta comandos como super-usuario u otro usuario de acuerdo con
sin necesidad de realizarlo manualmente.: mount -t nfs las especificaciones en el archivo /etc/sudoers.
192.168.8.114:/compartido /compartido-centos/ Por seguridad el comando SUDO requiere que los usuarios
Si se quiere definir qué hosts pueden y cuales no se autentiquen primero a sı́ mismos. Es decir, con su propia
pueden utilizar los recursos compartidos por NFS, se editan clave de acceso, El comando Sudo es necesario ejecutarlo
los siguientes archivos adicionando las direcciones ips o desde una terminal de trabajo en Linux.
segmentos de red a los cuales se les permite o restringe el Por defecto el paquete SUDO viene preinstalado en varias
acceso: distribuciones Linux, en caso de ser necesario la instalación
• hosts.deny del paquete, se podrá instalar con los siguientes comandos:
• hosts.allow • yum install sudo - Sistemas operativos Red Hat/Fedora.
UNIVERSIDAD PILOTO DE COLOMBIA, URREGO MORERA ALEXANDER, SEGURIDAD EN SISTEMAS OPERATIVOS LINUX. 10
• apt-get install sudo - Sistemas operativos basados en para hacer backups. Podemos crear scripts simples
Debian. para usar, en conjunto con cron, puedes crear backups
El archivo /etc/sudoers maneja la siguiente sintaxis para su automatizados. El paquete rsync esta disponible en todas
configuración y manejo de permisos. las distribuciones Linux, y se puede complementar con
• root ALL=(ALL:ALL) ALL : Esta lı́nea nos indica que el
los archivos con extensión .tar para su comprensión y
usuario root tiene privilegios ilimitados y puede ejecutar almacenamiento.
cualquier comando del sistema.
• % admin ALL=(ALL) ALL : El signo “%” especifica – yum install rsync - Sistemas operativos Red
que es un grupo . Cualquier usuario que pertenece a este Hat/Fedora.
grupo de administradores que tiene los mismos privilegios – apt-get install rsync - Sistemas operativos basados en
que el usuario root. Debian.
• %sudo ALL=(ALL) ALL : Todos los usuarios del grupo • Bacula es una herramienta de copia de seguridad de
sudo tienen privilegios para ejecutar cualquier comando. código abierto de nivel empresarial. Su funcionamiento
y configuración es un poco compleja. Es un sistema
cliente-servidor que puede ejecutarse en un sistema
doméstico pequeño o en una implementación de
respaldo de una gran empresa. Su tarea no requiere
la intervención de ningún operador informático o
administrador del sistema. Bacula utiliza una base
de datos como back end para almacenamiento, por
defecto viene configurada con Postgresql , pero también
soporta MySQL y Maria DB. Para su instalación se
debe realizar un registro previo en el siguiente enlace:
https://blog.bacula.org/bacula-binary-package-download/
Después se ejecutan los siguientes comandos en una
terminal:
Fig. 12: Contenido del archivo /etc/sudoers
– wget -c https://www.bacula.lat/wp-content/uploads/2018/09/bacul
-O /usr/local/bin/ bacula community install.sh
La configuración del archivo sudo es necesario en un
– chmod a+ /usr/local/bin/ bacula community install.sh
servidor donde se conectan varios usuarios. No compartir
– /usr/local/bin/ bacula community install.sh
la contraseña root es una medida de seguridad necesaria,
adicional que cada persona trabaje con su propio usuario deja • Amanda permite a un administrador hacer un backup
registro de las actividades que realizan los diferentes usuarios individual a un servidor y también a múltiples hosts. Es
sobre el sistema operativo. [5] robusto, confiable, y flexible. Amanda usa dumps nativos
de Linux y/o archivos con extensión tar para facilitar el
proceso de hacer copias de seguridad. También puede
N. Copias de respaldo usar Samba para hacer backups a los clientes Windows.
Prevenir la perdida de datos o información en cualquier La configuración de Amanda se maneja en 2 aplicaciones
sistema operativo, bases de datos o carpeta compartida es una una para el servidor y otra aplicación para el cliente. Los
tarea esencial de un administrador de cualquier infraestructura paquetes para instalar son:
tecnológica. Se deben tener polı́ticas establecidas de copias Server
de respaldo, como que información se va a respaldar, con que – yum install amanda-server - Sistemas operativos Red
periodicidad se va a respaldar y en donde se almacenara esta Hat/Fedora.
información. – apt-get install amanda-server - Sistemas operativos
Los sistemas operativos Linux permiten el manejo de varias basados en Debian.
herramientas para el manejo de las copias de seguridad. Se Client
debe tener conocimientos previos en la creación de scripts para
– yum install amanda-client - Sistemas operativos Red
configurar algunas de ellas. Las herramientas más utilizadas
Hat/Fedora.
ya que son de fácil implementación son las siguientes:
– apt-get install amanda-client - Sistemas operativos
• Rsync es una de las herramientas más usadas en basados en Debian.
Linux para realizar backups. Permite hacer copias
incrementales, tanto local como remotamente. Rsync
tiene la capacidad de actualizar sistemas de archivos O. Manejo de Logs
completos; preservando los enlaces, dueños, permisos Conocer donde se encuentran los registros del
y privilegios. Rsync es una herramienta de lı́nea de sistema operativo nos pueden ayudar a conocer más del
comandos, aunque hay varios front ends disponibles funcionamiento de este y poder solucionar vulnerabilidades
(como Grsync) pero estos anulan la flexibilidad de las cuales no se pueden encontrar a simple vista por el
tener una simple herramienta de lı́nea de comandos administrador del sistema. Los logs se encargan de almacenar
UNIVERSIDAD PILOTO DE COLOMBIA, URREGO MORERA ALEXANDER, SEGURIDAD EN SISTEMAS OPERATIVOS LINUX. 11
los mensajes generados por los programas, aplicaciones • Asegurar cualquier sistema operativo es una tarea que
y demonios y enviarlos a un destino predefinido. Las debe ser realizada por una persona experta, que conozca
distribuciones Linux almacenan los registros del sistema en el funcionamiento del sistema operativo, que debe
la ruta /var/log/, algunos de los logs que un administrador de asegurar.
servidores Linux debe conocer son los siguientes: • Una distribución Linux puede ser tan segura como
• /var/log/messages - Log General del sistema Linux. el administrador lo desee, aplicando los parches de
• /var/log/auth.log - Log donde lista todos los intentos de seguridad correctos de acuerdo con los paquetes
autenticación al sistema operativo (Sistemas basados en instalados, medidas de control de acceso eficientes, con
Debian). el fin de mitigar el acceso no autorizado.
• /var/log/secure - Log donde lista todos los intentos de • Se debe tener claro el servicio que va a prestar el servidor,
autenticación al sistema operativo (Sistemas basados en para instalar únicamente los paquetes necesarios con el fin
Red Hat y Fedora). de minimizar la cantidad de puestos abiertos y servicios
• /var/log/utmp - Log donde registra los usuarios ejecutándose en el servidor.
conectados en un periodo de tiempo en el sistema • Se deben tener polı́ticas de seguridad claras, con el fin
operativo. de que sean cumplidas por todo el personal que accede o
• /var/log/wtmp - Log donde registra todos los usuarios que utiliza un servidor sin importar la actividad que realice.
se han logueado y deslogueado del Sistema Operativo.
• /var/log/kern.log - Log donde se almacena información R EFERENCES
del Kernel del Sistema Operativo. [1] Remo Suppi Boldrito and Josep Jorba Esteve,” Administración avanzada
• /var/log/boot.log - Log donde que contiene información del sistema operativo GNU/Linux” Pag 14, GNUFDL PID 00212464
y mensajes de los inicios del Sistema Operativo. [2] James Turnbull Hardering Linux Pag 60 Edt. Apress
[3] James Turnbull Hardering Linux Pag 238 Edt. Apress
[4] Donald A. Tevault, Mastering Linux Security and Hardering Pag 22 Edt.
P. Particionamiento Disco Duro PACK
[5] Donald A. Tevault, Mastering Linux Security and Hardeing Pag 247 Edt.
Crear particiones al momento de instalar el Sistema PACK
Operativo permite minimizar el impacto de perdida de
información en caso de que se presente algún daño en
el sistema o Disco duro, se perderá la información de la
partición que presenta el error si es que no se pudiera reparar.
Realizar el particionamiento da un mejor rendimiento y
seguridad adicional mantendrá la información más organizada
aprovechando el tamaño del disco duro al máximo. El esquema
de particionamiento recomendado es el siguiente:
• / la barra / sola representa la raı́z del árbol del filesystem.
• /boot Contiene todos los archivos que son necesarios para
el proceso de arranque.
• swap La partición de intercambio es donde se extiende
la memoria del sistema al dedicar parte del disco duro a
esta.
• /usr Contiene los archivos ejecutables y los recursos
compartidos que no son crı́ticos del sistema.
• /home Contiene los archivos ejecutables y los recursos
compartidos que no son crı́ticos del sistema.
• /tmp Este es un lugar para archivos temporales. Los tmpfs
que se montan en él o en los scripts durante el inicio,
generalmente, eliminan esto en el arranque.
• /var Esto significa variable y es un lugar para los archivos
que están en un estado cambiante. Por ejemplo, el tamaño
que aumenta y disminuye.
• /opt Contiene software de complemento, los programas
más grandes se pueden instalar aquı́ en vez de la partición
/usr .
VI. CONCLUSIONES
• La instalación correcta del Sistema Operativo es el
primer paso para garantizar el correcto funcionamiento
del servidor o equipo de cómputo y que tan seguro pueda
ser.