Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL: Ingeniería De
Sistemas
ASIGNATURA:
Administración de
Servidores
CICLO:
Octavo
DOCENTE TUTOR:
Ing. Bogar Mantilla Gordillo
PAGINA 1
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
PAGINA 2
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
4. Desinstalar software y deshabilitar servicios innecesarios
Seguramente no se utilizarán todos los servicios que están funcionando en el sistema
por ello es recomendable deshabilitar los servicios innecesarios ya que de esta forma
reduce fácilmente la probabilidad de acceder a través de un servicio o software
vulnerable.
PAGINA 3
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
7. Configurar software
PAGINA 4
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
8.1 Apache
Apache es uno de los servidores web más utilizados en todo el mundo y por tanto el
más atacado. Se pueden configurar varias directivas en su archivo de configuración
para protegerlo. El archivo de configuración se encuentra
en: ‘/etc/httpd/conf/httpd.conf’.
ServerTokens Prod: Usando esta directiva evitamos que Apache muestre
información innesesaria como su versión o la versión de PHP. Por defecto
estaría establecida en ‘Full’ y mostraría algo así en las cabeceras HTTP:
Server: Apache/2.2.15 (Unix) PHP/4.2.2 Mod/1.2
ServerSignature Off: Esta opción está activada por defecto y muestra el
nombre del servidor, la versión, el host virtual, el mail del administrador en los
mensajes de error producidos. Es recomendable desactivar esta opción para
ocultar está información ya que un atacante podría usarla a su favor para por
ejemplo búscando vulnerabilidades en la versión de Apache usada o enviando
archivos maliciosos al administrador por correo electrónico.
*Para que los cambios tengan efecto es necesario reiniciar el servicio
con ‘/etc/init.d/apache2 restart’ó ‘service apache2 restart’.
9. MySQL
MySQL es un potente motor de bases de datos que suele usarse en conjunto con
páginas web desarrolladas en PHP.
skip-networking: Por defecto MySQL permite conexiones desde fuera usando
el puerto 3306, pero en la gran mayoría de sistemas sólo se necesita conectar
PAGINA 5
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
desde dentro del servidor con lo cual es un gran agujero de seguridad permitir
que se pueda acceder a la base de datos desde conexiones remotas ya que se
podría realizar un ataque por fuerza bruta hasta lograr acceder a la base de
datos. Estableciendo esta directiva se desactiva el puerto para las conexiones
remotas.
*Para que los cambios tengan efecto es necesario reiniciar el servicio
con ‘/etc/init.d/mysql restart’ ó ‘service mysql restart’.
10.Bind
La mayoría de los servidores Linux usan Bind como servidor DNS, por defecto es
bastante seguro pero podemos mejorarlo. Su archivo de configuración se encuentra
aquí: ‘/etc/named.conf’.
version “BIND”: Dentro del archivo de configuración podemos configurar la
versión que se mostrará, podemos indicar ‘none’ o el valor que queramos, es
recomendable no mostrar la versión de Bind al igual que cualquier otro
software.
*Para que los cambios tengan efecto es necesario reiniciar el servicio
con ‘/etc/init.d/bind9 restart’ ó ‘service bind9 restart’ (también se puede
llamar named en lugar de bind9).
11.Registros de accesos
Una de las tareas más importantes para mantener la seguridad de un servidor
consiste en revisar los registros (logs) con cierta frecuencia para detectar si se intentó
acceder o explotar algún servicio activo. Si disponemos de otro servidor se
recomendaría enviar los registros a través SysLog ya que si se llegará a comprometer
un servidor y el atacante elimina los registros podríamos revisarlos igualmente en el
otro servidor que no fue comprometido.
Archivos de registros, ubicados en ‘/var/log/’:
messages: Registro del sistema.
kern.log: Registro del kernel.
cron.log: Registro del demonio crond.
maillog: Registro del servidor de correo del sistema.
boot.log: Registro del arranque del sistema.
mysqld.log: Registro de la bases de datos MySQL.
secure: Registro de autenticación (Red Hat, Fedora, CentOS).
auth.log: Registro de autenticación (Debian, Ubuntu, Linux Mint).
utmp ó wtmp: Registro de inicio de sesión.
PAGINA 6
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
12.1 Desactivar .bash_history
0001 rm ~/.bash_history # Eliminar historial del disco duro
0002 ln /dev/null ~/.bash_history -sf # Crear enlace simbólico del archivo de historial hacia NULL
*Es necesario cerrar la sesión y volver a iniciar sesión para que los cambios tengan
efecto.
Lo primero que hay que tener en cuenta es que el sistema debe estar actualizado: Lo mejor
que puedes hacer para mantener un sistema Linux seguro es tenerlo todo actualizado, y
mantener todos los paquetes del sistema de tu distribución de Linux en su última versión.
Sí has instalado Virtualmin, el propio programa, si lo has configurado, instalara las últimas
actualizaciones de tu distribución Linux.
Nos vamos a encontrar con “Software Package Updates” y “Virtualmin Package Updates” situados
en la pestaña System del menú Webmin. Podemos configurar ambas opciones para que todos los
días compruebe que si hay actualizaciones y las instale automaticamente.
2.-Añadir un nuevo usuario a tu servidor que no sea root – Utilizar SSH Keys
Para el administrar el día a día en nuestro servidor utilizaremos un usuario que no sea root.
PAGINA 7
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
En Linode hay un buen tutorial para realizar este pasó en CentOS y Ubuntu: Securing Your
Server.
Adicionalmente puedes deshabilitar la autenticación vía login/password y utilizar SSH Keys.
En el anterior link de Linode puedes encontrar la manera de hacerlo.
3.-Utilizaremos un Firewall
Si no te quieres complicar mucho con la iptables de Linux, puedes instalar CSF en tu servidor:
rm -fv csf.tgz
wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
y si has instalado Virtualmin, puedes instalar el modulo especifico de CSF para controlar
graficamente CSF:
También podemos instalar los siguientes programas y modulos para mejorar la seguridad
de nuestro servidor:
1. Crea particiones
Pero para esto tienes que asegurarte de instalar todas las aplicaciones de terceros en la
partición /opt y contar con las siguientes particiones:
/
/boot
/usr
/var
PAGINA 8
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
/home
/tmp
/opt
Asegúrate de que el archivo /var/log está funcionando correctamente, pues aunque Linux
normalmente hace circular los registros del kernel del servidor Web y de otras aplicaciones,
algunas veces esto no funciona correctamente.
Utilizando el comando “netstat” puedes ver la lista de todos los puertos abiertos posibles y
los programas asociados. Usa el comando “chkconfig” para desactivar todos los servicios de
red no deseados.
# netstat –tulpn
Configura la BIOS para deshabilitar el arranque desde CD/DVD, u otros dispositivos externos
en la BIOS. Posteriormente habilita la contraseña del BIOS y también protege el archivo
GRUB con contraseña para restringir el acceso físico al sistema.
¿Sabes qué protocolo emplear para el envío de información? Telnet y rlogin utilizan texto
plano para el envío de información, así que esto ya es un fallo en la seguridad. Sin embargo
existe Secure Shell (SSH) que es un protocolo seguro porque utiliza cifrado en la
comunicación con el servidor.
Te recomendamos que no entres directamente como root. Utiliza “sudo” para ejecutar los
comandos que requieren comandos administrativos. Se encuentra especificado sudo en el
archivo /etc/sudoers/ y puedes editarlo con el comando “visudo” a través de la interfaz del
editor Vi.
# vi /etc/ssh/sshd_config
PAGINA 9
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
PermitRootLogin no
AllowUsers username
Protocol 2
Port 50221
6. Actualiza el sistema
Otro consejo es que actualicees el software y más si hablamos de parches del kernel y
revisiones de seguridad.
# yum updates
# yum check-update
Una manera de aumentar la seguridad es restringir a los usuarios a que conecten sus
memorias USB. Para logarlo debes crear el archivo /etc/modprobe.d/no-usb y
posteriormente tienes que agregar la siguiente línea para que de esta forma no se detecten
los dispositivos USB.
Es muy recomendable que evites que los usuarios estén utilizando las mismas contraseñas
que ya han usado anteriormente. Para hacer esto debes de encontrar el archivo de
contraseñas que se ubica en /etc/security/ opasswd. Esto lo puedes hacer mediante el uso
del módulo PAM.
En los sistemas Red Hat Enterprise Linux, CentOS o Fedora se edita el archivo
/etc/pam.d/system-auth. Y en los sistemas Debian, Ubuntu o Linux Mint, debes editar el
archivo /etc/pam.d/common-password. Y posteriormente debes añadir la siguiente en la
sección auth:
Y en la sección password debes agregar la siguiente línea para evitar que el usuario utilice
las 5 últimas contraseñas usadas en el sistema:
PAGINA
10
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
password sufficient pum_unix.so nullok use_authtok md5 shadow remember=5
Referencias Bibliográficas
PAGINA
11
INGENIERÍA DE SISTEMAS ADMINISTRACION DE SERVIDORES
PAGINA
12