Actividad No. 5.5: Aseguramiento de servidores GNU/Linux
1. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Materia:
Seguridad
en
Redes
Tema:
Seguridad
en
los
servicios
Elaboró:
Francisco
Medina
López
2015-‐2
1
Actividad
No.
5.5:
Aseguramiento
de
servidores
GNU/Linux
Antecedentes
GNU/Linux
es
un
sistema
operativo
multiusuario
y
multitarea
compatible
con
UNIX,
liberado
bajo
la
licencia
GNU.
CentOS
(Community
ENTerprise
Operating
System)es
una
distribución
de
Linux
basada
en
los
fuentes
libremente
disponibles
de
Red
Hat
Enterprise
Linux.
Cada
versión
de
CentOS
es
mantenida
durante
7
años
(por
medio
de
actualizaciones
de
seguridad).
Objetivo
Fortificar
(hardening)
un
servidor
instalado
con
el
sistema
operativo
CentOS
6.
Instrucciones
1. Protege
el
gestor
de
arranque
GRUB:
a. Ejecuta
el
comando
/sbin/grub-‐md5-‐crypt
y
teclea
la
contraseña
deseada
para
proteger
el
gestor
de
arranque.
b. Realiza
una
copia
de
respaldo
del
archivo
/boot/grub/grub.conf
con
el
comando
cp
-‐var
/boot/grub/grub.conf{,.150413}
c. Edita
el
archivo
/boot/grub/grub.conf
y
agrega
la
siguiente
línea
después
de
la
directriz
timeout.
Password
–md5
<password-‐hash>
2. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Materia:
Seguridad
en
Redes
Tema:
Seguridad
en
los
servicios
Elaboró:
Francisco
Medina
López
2015-‐2
2
2. Configura
el
firewall
(Netfilter)
con
las
siguientes
reglas:
IP
SRC
IP
DST
Puerto
SRC
Puerto
DST
Protocolo
Acción
*
*
*
2222
tcp
Aceptar
*
*
*
80
tcp
Aceptar
*
*
*
*
icmp
Aceptar
a. Edita
el
archivo
/etc/sysconfig/iptables
y
agrega
el
siguiente
contenido:
#
Firewall
configuration
written
by
system-‐config-‐firewall
#
Manual
customization
of
this
file
is
not
recommended.
*filter
:INPUT
DROP
[0:0]
:FORWARD
ACCEPT
[0:0]
:OUTPUT
ACCEPT
[0:0]
-‐A
INPUT
-‐s
127.0.0.1
-‐i
lo
-‐j
ACCEPT
-‐A
INPUT
-‐d
127.0.0.1
-‐i
lo
-‐j
ACCEPT
-‐A
INPUT
-‐m
state
-‐-‐state
RELATED,ESTABLISHED
-‐j
ACCEPT
-‐A
INPUT
-‐p
tcp
-‐m
state
-‐-‐state
NEW
-‐m
tcp
-‐-‐dport
2222
-‐j
ACCEPT
-‐A
INPUT
-‐p
tcp
-‐m
state
-‐-‐state
NEW
-‐m
tcp
-‐-‐dport
80
-‐j
ACCEPT
-‐A
INPUT
-‐p
icmp
-‐j
ACCEPT
COMMIT
b. Reinicia
el
servicio
iptables
con
el
comando:
service
iptables
restart
3. Configura
la
elevación
de
privilegios
con
sudo
3. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Materia:
Seguridad
en
Redes
Tema:
Seguridad
en
los
servicios
Elaboró:
Francisco
Medina
López
2015-‐2
3
a. Crear
un
usuario
sin
privilegios
con
el
comando:
useradd
sysadmin
b. Asigna
una
contraseña
al
usuario
sysadmin
con
el
comando:
passwd
sysadmin
c. Crea
una
copia
del
archivo
/etc/sudoers
cp
-‐var
/etc/sudoers{,.150413}
d. Edita
el
archivo
/etc/sudoers
para
agregar
la
siguiente
línea
justo
debajo
de:
root
ALL=(ALL)
ALL
sysadmin
ALL=(ALL)
ALL
4. Instala
y
configura
la
contabilidad
del
sistema:
a. Instala
el
paquete
psacct
con
el
siguiente
comando:
yum
-‐y
install
psacct
b. Configura
el
inicio
automático
del
servicio
psacct
con
el
siguiente
comandos:
chkconfig
-‐-‐level
345
psacct
on
c. Inicia
el
servicio
psacct
con
el
comando:
service
psacct
start
d. Para
validar
el
correcto
funcionamiento
de
la
contabilidad
del
sistema
ejecutar
el
comando
lastcomm.
4. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Materia:
Seguridad
en
Redes
Tema:
Seguridad
en
los
servicios
Elaboró:
Francisco
Medina
López
2015-‐2
4
5. Limita
recursos.
a. Respalda
el
archivo
/etc/login.defs
cp
-‐var
/etc/login.defs{,.150413}
b. Edita
el
archivo
/etc/login.defs
y
modifica
la
directriz
PASS_MAX_DAYS
ajustando
el
valor
a
30
para
forzar
el
cambio
de
contraseña
cada
30
días.
c. Edita
el
archivo
/etc/security/limits.conf
para
permitir
una
y
solo
una
sesión
simultanea
al
usuario
syadmin
agregando
al
final
del
archivo
la
línea
siguiente:
sysadmin
-‐
maxlogins
1
6. Configura
la
rotación
de
bitácoras:
a. Respalda
el
archivo
de
configuración
/etc/logrotate.conf
con
el
comando:
cp
-‐var
/etc/logrotate.conf{,.150413}
b. Edita
el
archivo
/etc/logrotate.conf
y
modifica
el
valor
de
la
directriz
rotate
por
52.
7. Fortifica
el
servicio
ssh
a. Configura
el
repositorio
rpmforge:
wget
-‐c
http://pkgs.repoforge.org/rpmforge-‐
release/rpmforge-‐release-‐0.5.3-‐1.el6.rf.x86_64.rpm
rpm
-‐Uvh
rpmforge-‐release-‐0.5.3-‐1.el6.rf.x86_64.rpm
b. Instala
el
programa
fail2ban
usando
el
comando:
yum
-‐y
install
fail2ban
c. Respalda
el
archivo
de
configuración
/etc/fail2ban/jail.conf
con
el
siguiente
comando:
cp
-‐var
/etc/fail2ban/jail.conf{,.150413}
d. Realiza
las
siguientes
modificaciones
al
archivo
/etc/fail2ban/jail.conf:
[ssh-‐iptables]
enabled
=
true
filter
=
sshd
action
=
iptables[name=SSH,
port=ssh,
protocol=tcp]
5. Universidad
Nacional
Autónoma
de
México
Facultad
de
Contaduría
y
Administración
Materia:
Seguridad
en
Redes
Tema:
Seguridad
en
los
servicios
Elaboró:
Francisco
Medina
López
2015-‐2
5
sendmail-‐whois[name=SSH,
dest=you@example.com,
sender=fail2ban@example.com]
logpath
=
/var/log/secure
maxretry
=
5
e. Respalda
el
archivo
/etc/ssh/sshd_config
con
el
comando:
cp
-‐var
/etc/ssh/sshd_config{,.150413}
f. Edita
el
archivo
de
configuración
del
servicio
/etc/ssh/sshd_config
modificando
los
siguientes
valores:
Port
2222
PermitRootLogin
no
g. Reinicia
el
servicio
sshd
con
el
comando:
service
sshd
restart