35
GNU/Linux Servicios en GNU/Linux Esteban De La Fuente Rubio

03 Servicios

  • Upload
    calins9

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 03 Servicios

GNU/Linux

Servicios en GNU/Linux

Esteban De La Fuente Rubio

Page 2: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

Índice de contenido 1  Introducción.............................................................................................................................................................4

 1.1 Objetivos...........................................................................................................................................................4 2  DHCP.......................................................................................................................................................................5

 2.1 Configuración básica........................................................................................................................................6 2.2 DHCP estático..................................................................................................................................................7 2.3 BOOTP.............................................................................................................................................................7

 2.3.1 CentOS.....................................................................................................................................................8 2.3.2 FreeDOS..................................................................................................................................................8 2.3.3 Utilidades..................................................................................................................................................9 2.3.4 Menú........................................................................................................................................................9

 2.4 Ejercicios.........................................................................................................................................................11 3  DNS........................................................................................................................................................................12

 3.1 Instalación.......................................................................................................................................................13 3.2 Configuración..................................................................................................................................................13

 3.2.1 Servidor maestro....................................................................................................................................13 3.2.2 Servidor esclavo.....................................................................................................................................17 3.2.3 Configuración de zonas en servidor maestro........................................................................................17

 3.3 Ejercicios........................................................................................................................................................19 4  Web........................................................................................................................................................................20

 4.1 Instalación.......................................................................................................................................................20 4.2 Configuración general....................................................................................................................................21 4.3 Módulos..........................................................................................................................................................21 4.4 Dominios virtuales..........................................................................................................................................21 4.5 PHP................................................................................................................................................................22 4.6 SSL.................................................................................................................................................................23

 4.6.1 Crear los certificados..............................................................................................................................23 4.6.2 Firmar el certificado...............................................................................................................................23 4.6.3 Agregar certificados...............................................................................................................................24 4.6.4 Múltiples dominios utilizando SSL.........................................................................................................24

 4.7 suPHP.............................................................................................................................................................24 4.8 Ejercicios........................................................................................................................................................25

 5  PAM.......................................................................................................................................................................26 5.1 Instalación.......................................................................................................................................................26 5.2 Base de datos MySQL...................................................................................................................................27

 5.2.1 Instalación...............................................................................................................................................27 5.2.2 Creación de base de datos....................................................................................................................27

 5.3 Configuración.................................................................................................................................................28 5.4 Ejercicios........................................................................................................................................................28

2012­03­25 Esteban De La Fuente Rubio 2/35

Page 3: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 6  FTP........................................................................................................................................................................29 6.1 Instalación.......................................................................................................................................................29 6.2 Configuración.................................................................................................................................................29

 6.2.1 PAM........................................................................................................................................................29 6.2.2 SELinux..................................................................................................................................................29

 6.3 Ejercicios........................................................................................................................................................29 7  SAMBA..................................................................................................................................................................30

 7.1 Instalación.......................................................................................................................................................30 7.2 Configuración..................................................................................................................................................31

 7.2.1 PAM.........................................................................................................................................................32 7.2.2 SELinux..................................................................................................................................................33 7.2.3 Auditoría.................................................................................................................................................33

 7.3 Pruebas...........................................................................................................................................................34 7.4 Ejercicios.........................................................................................................................................................34

 8  Recursos................................................................................................................................................................35

2012­03­25 Esteban De La Fuente Rubio 3/35

Page 4: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 1  IntroducciónEl curso de servicios esta diseñado para entregar una guía en la instalación y configuración de diversos 

servicios necesarios en la mayoría de las empresas, enfocándose, básicamente, en las áreas:

• Servicios web

• Intercambio de archivos

Los temas anteriores corresponden a servicios estándares que pueden ser necesarios en la mayoría de las empresas donde el administrador se encuentre trabajando.

Se recomienda al lector leer antes el curso de “Introducción a GNU/Linux” ya que en el se ven conceptos básicos  que  debe   tener  presente   todo  administrador  del   sistema  operativo  GNU/Linux.  Adicionalmente  para  aspectos relacionados con administración de usuarios y redes se recomienda leer el curso “Administración de GNU/Linux”.

Durante el desarrollo del curso se utilizará la distribución GNU/Linux CentOS (en su versión 6.2). Esta distribución es compilada por una comunidad de usuarios a partir del código que la empresa Red Hat Linux libera de su distribución Red Hat Linux Enterprise. Se utilizará esta distribución ya que es básicamente una versión de Red Hat sin los componentes comerciales de dicha compañía, compatible completamente con esta y con los productos que otras empresas ofrecen para dicha distribución.

El hardware a utilizar puede ser real o virtual, al igual que en los anteriores cursos. No existen requisitos  específicos en cuanto a disco duro, ni esquema de distribución del mismo o cantidad de interfaces de red. Sin embargo de considerarse necesario se indicarán consejos para mejorar el funcionamiento del sistema en cada  tema que se discuta. Adicionalmente se fija IPv4 para ser utilizado en las configuraciones de los servicios.

 1.1  Objetivos

• Realizar la instalación de diferentes servicios sobre plataforma GNU/Linux.

2012­03­25 Esteban De La Fuente Rubio 4/35

Page 5: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 2  DHCPEl protocolo DHCP (Dynamic Host Configuration Protocol) permite a los clientes de una red obtener sus 

parámetros   de   configuración   de   manera   automática.   Un   cliente   al   conectarse   a   la   red   enviará   solicitudes consultando por un servidor DHCP que pueda entregar las datos para que este pueda conectarse a la red. Los  parámetros básicos que son entregados por el servidor DHCP son  la IP y máscara de red de  la misma, sin embargo otros parámetros pueden ser entregados como rutas por defectos, servidores DNS o servidores NTP,  por ejemplo. Se utilizará la implementación ISC DHCP para proveer del servicio a la red en CentOS.

El esquema de conexión que se propone en la Topología 1 para el ejercicio considera la instalación del servicio DHCP en la máquina que cumple la función de proxy y firewall hacia Internet, sin embargo es importante considerar que el servicio puede estar instalado en cualquier máquina de la red, no necesariamente en esta. Sin embargo existen servicios en las empresas que se instalan en las mismas máquina para evitar tener una máquina por cada servicio que se esta implementando. Adicionalmente solo se esta mostrando la configuración para una interfaz de red, pero se debe considerar que la configuración de “n” interfaces será muy similar a la presentada.

Topología 1: Ejercicio DHCP

Se asume eth0  ya  configurado   (ya  sea  por  DHCP o  bien   IP  estática,  a  continuación se   indican   la configuración para la interfaz eth1 y el acceso hacia la red de Internet desde la LAN.

Configurar interfaz eth1

# ip addr add 10.0.0.1/24 brd + dev eth1

Habilitar forward de paquetes

echo 1 > /proc/sys/net/ipv4/ip_forward

Instalación del servicio

# yum install dhcp

2012­03­25 Esteban De La Fuente Rubio 5/35

Page 6: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 2.1  Configuración básicaConfiguración del servicio (ejemplo del archivo en /usr/share/doc/dhcp*/dhcpd.conf.sample)

# /etc/dhcp/dhcpd.conf

# configuración común a todas las redes

log-facility local0; # logs

default-lease-time 600; # asignación en segundos

max-lease-time 7200; # máxima asignación en segundos

authoritative; # este servidor es el principal servidor dhcp

option domain-name "sasco.cl"; # nombre de dominio

option domain-name-servers 208.67.220.220, 208.67.222.222; # dns

ntp-servers ntp.shoa.cl; # ntp

# configuración de la red 10.0.0.0/24

subnet 10.0.0.0 netmask 255.255.255.0 {

range 10.0.0.100 10.0.0.254;

option routers 10.0.0.1;

}

Iniciar servicio

# service dhcpd start

Agregar el servicio para que sea ejecutado al inicio del sistema

# chkconfig dhcpd on

Conectar un cliente (ejemplo bart) y verificar asignación de ip

# ip addr show eth0

Verificar rutas

# ip route show

Verificar servidores DNS

# cat /etc/resolv.conf

Ping hacia la puerta de enlace

# ping 10.0.0.1

Ping hacia e servidor DNS de OpenDNS

# ping 208.67.222.222

2012­03­25 Esteban De La Fuente Rubio 6/35

Page 7: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 2.2  DHCP estático# configuración dhcp estático

host bart {

hardware ethernet 0:0:c0:5d:bd:95;

fixed-address 10.0.0.2;

}

 2.3  BOOTPBOOTP (Bootstrap protocol) es un protocolo de red UDP que permite a computadores que están iniciando 

arrancar desde la red. Esto permite, por ejemplo, arrancar terminales para conectarse a un mainframe o bien para  procesos de instalación del sistema operativo por red. El servidor ISC DHCP permite mediante DHCP el uso de BOOTP, entregando a los equipos la posibilidad de arrancar por red. Para utilizar esta funcionalidad se requiere  aparte del servidor DHCP un servidor TFTP que contendrá   los ficheros para arrancar la máquina, y claro se necesitan dichos ficheros (kernel, configuraciones, etc).

# archivo para bootear en red (ubicado en /var/lib/tftpboot)

filename "/pxelinux.0";

Ya que lo anterior es ubicado en el área global permitirá  bootear a cualquier equipo que se conecte al servidor DHCP utilizando el menú de syslinux. No olvidar que esta configuración (al igual que otras de la sección global) puede ser especificada por red o incluso por host (hasta usando IP estática).

Instalación servidor TFTP

# yum install tftp-server

El servidor TFTP instalará (de no existir) el servicio xinetd el cual es utilizado para arrancar el servicio TFTP, por lo cual ambos deben ser activados al inicio del sistema para la correcta ejecución del servidor TFTP.

# chkconfig xinetd on

# chkconfig tftp on

Reiniciar servicio xinetd

# service xinetd restart

Instalación de syslinux (esto incluye lo necesario para utilizar PXE)

# yum install syslinux

2012­03­25 Esteban De La Fuente Rubio 7/35

Page 8: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

El directorio para los archivos del servidor TFTP es /var/lib/tftpboot y en el se deben copiar los siguientes archivos  para poder arrancar con PXE:

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

# cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/

# cp /usr/share/syslinux/memdisk /var/lib/tftpboot/

# cp /usr/share/syslinux/mboot.c32 /var/lib/tftpboot/

# cp /usr/share/syslinux/chain.c32 /var/lib/tftpboot/

 2.3.1  CentOSCrear directorio para imágenes CentOS y copiarlas (respetar el formato: distribución/versión/arquitectura)

# mkdir -p /var/lib/tftpboot/images/centos/6.2/i386

# cd /var/lib/tftpboot/images/centos/6.2/i386

# wget http://ftp.inf.utfsm.cl/pub/Linux/CentOS/6.2/os/i386/\

images/pxeboot/initrd.img

# wget http://ftp.inf.utfsm.cl/pub/Linux/CentOS/6.2/os/i386/\

images/pxeboot/vmlinuz

# mkdir -p /var/lib/tftpboot/images/centos/6.2/x86_64

# cd /var/lib/tftpboot/images/centos/6.2/x86_64

# wget http://ftp.inf.utfsm.cl/pub/Linux/CentOS/6.2/os/x86_64/\

images/pxeboot/initrd.img

# wget http://ftp.inf.utfsm.cl/pub/Linux/CentOS/6.2/os/i386/\

images/pxeboot/vmlinuz

 2.3.2  FreeDOSCrear directorio para imágenes FreeDOS y copiarlas

# mkdir -p /var/lib/tftpboot/images/dos

# cd /var/lib/tftpboot/images/dos

# wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/\

distributions/1.0/fdboot.img

2012­03­25 Esteban De La Fuente Rubio 8/35

Page 9: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 2.3.3  UtilidadesCrear directorio para utilidades y agregarlas

# mkdir /var/lib/tftpboot/images/utils

# cd /var/lib/tftpboot/images/utils

memtest86+

# wget http://ftp.inf.utfsm.cl/pub/Linux/centos/6.2/os/x86_64/\

isolinux/memtest

 2.3.4  MenúSe mostrará a continuación como crear las opciones de menú para las imágenes antes explicadas, si 

alguna no se utilizará no es necesario declararla en el menú.

Crear directorio para los menús PXE

# mkdir /var/lib/tftpboot/pxelinux.cfg

Por defecto se buscará el archivo  default  dentro del directorio anterior (en realidad es la última opción buscada, ver recursos “PXE detallado”), este archivo contendrá las opciones para la ejecución al cargar por red, lo cual puede ser directamente cargar una imagen o,  lo que se hace en este ejemplo, desplegar un menú  con diversas opciones.

El uso de un menú permitirá generar todas las opciones que sean necesarias para poder arrancar los  equipos de la red. Las opciones a utilizar en el menú son bastantes, las cuales permiten personalizar bastante el  menú para PXE, se recomienda ver en los recursos el enlace a menu.c32

Descargar imagen para el fondo del menú (debe ser JPG o PNG de 640x480px)

# wget http://i76.photobucket.com/albums/j37/Moeppe/\

pxe_bootscreen01.png -O /var/lib/tftpboot/splash.jpg

Crear archivo con el mensaje de ayuda

# /var/lib/tftpboot/help.msg

== AYUDA ==

Elija una opcion del menu para arrancar el sistema

2012­03­25 Esteban De La Fuente Rubio 9/35

Page 10: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

Crear el menú, en la Imagen 1 verá el resultado de esta configuración

# /var/lib/tftpboot/pxelinux.cfg/default

DEFAULT vesamenu.c32

PROMPT 0

TIMEOUT 300

ONTIMEOUT local

MENU TITLE PXE boot menu

MENU BACKGROUND splash.jpg

F1 help.msg

LABEL linux

MENU LABEL GNU/Linux:

MENU DISABLE

LABEL centos_i386

MENU LABEL CentOS 6.2 i386

MENU INDENT 1

KERNEL images/centos/6.2/i386/vmlinuz

APPEND initrd=images/centos/6.2/i386/initrd.img ip=dhcp

LABEL centos_amd64

MENU LABEL CentOS 6.2 x86_64

MENU DEFAULT

MENU INDENT 1

KERNEL images/centos/6.2/x86_64/vmlinuz

APPEND initrd=images/centos/6.2/x86_64/initrd.img ip=dhcp

MENU SEPARATOR

LABEL utils

MENU LABEL Utilidades:

MENU DISABLE

LABEL memtest

MENU LABEL ^Memtest86+ 4.10

MENU INDENT 1

KERNEL images/utils/memtest

2012­03­25 Esteban De La Fuente Rubio 10/35

Page 11: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

MENU SEPARATOR

LABEL dos

MENU LABEL DOS:

MENU DISABLE

LABEL freedos

MENU LABEL ^FreeDOS 1.0

MENU INDENT 1

KERNEL memdisk

APPEND initrd=images/dos/fdboot.img

Imagen 1: Menú de arranque con las opciones definidas

 2.4  Ejercicios1. ¿Por qué el servicio DHCP falla si es iniciado inmediatamente después de la instalación?

2. ¿Por qué se puede realizar ping a la puerta de enlace pero no a la IP de OpenDNS?

3. ¿Cuales son las ventajas de utilizar PXE para arrancar por red?

4. La configuración para arrancar el instalador de CentOS está incompleta, corregirla.

5. ¿Cómo arrancar una imagen ISO de GNU/Linux mediante PXE?

6. Utilizar TCOS para arrancar un sistema operativo para terminales tontas.

2012­03­25 Esteban De La Fuente Rubio 11/35

Page 12: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 3  DNSEl servicio de DNS (Domain Name Server)  permite realizar   la  traducción de direcciones en  lenguaje 

humano (nombre de host y nombre de dominio) a direcciones IP. Existen diferentes conceptos relacionados con DNS que se explicarán a lo largo de este capítulo como resolución normal resolución inversa, zonas y vistas. La implementación de DNS que se utilizará para trabajar corresponde a la patrocinada por la ISC denominada Bind  (Berkeley Internet Name Domain) el cual es la versión más utilizada en sistemas operativos like Unix1.

La Imagen 2 es una situación hipotética que involucra los conceptos que se deben manejar para poder comprender la configuración del servicio de DNS utilizando BIND.

Imagen 2: Conceptos relacionados con DNS

Una configuración sencilla del servicio de DNS solo requerirá de un servidor maestro sin vistas y al menos una zona definida para cada tipo de resolución (normal e inversa). A pesar del o anterior se recomienda siempre utilizar vistas, ya que de hacerlo y requerir en el futuro cambios que las consideren el trabajo a realizar será menor y habrá menos riesgos de dañar la configuración ya funcional.

Considerando un esquema similar al presentado en la Topología 1 del ejercicio de DHCP (página 5), se realizará el siguiente ejercicio: Se creará un servidor de DNS con dos vistas, una para la red 10.0.0.0/24 y otra para la red externa, el servicio deberá estar espejado en un DNS esclavo y los servidores para consultas serán lo de OpenDNS. No se

1La aplicación se encuentra disponible para múltiples sistemas operativos, incluyendo Microsoft Windows, por lo cual las explicaciones realizadas serán aplicables en dicha plataforma.

2012­03­25 Esteban De La Fuente Rubio 12/35

Page 13: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

considerará delegación de zonas de un DNS a otro, se asume que todas las zonas son manejadas por un mismo servidor DNS. Las zonas a configurar se pueden apreciar en la Tabla 1.

Vista A (red interna) Vista B (red externa)

0.0.10.in­addr.arpasasco.clfacebook.com

1.16.172.in­addr.arpa (asumiendo esta como red externa)sasco.cl

Tabla 1: Zonas ejercicio DNS

Cada zona normal definida deberá contener al menos dos subdominios (diferentes a www) y se deberá determinar que direcciones se resolverán en el caso de cada zona. Además en el caso de la red local se deberá  determinar que nombres de host y dominio utilizar en la resolución inversa.

 3.1  InstalaciónExisten dos paquetes de BIND en CentOS, bind y bind­chroot, el segundo es la misma implementación 

que la primera, pero enjaulada. Esto provee un nivel extra de seguridad, sin embargo aqu í se utilizará la versión no enjaulada para permitir que los archivos de configuración de zonas puedan existir en los directorios de los usuarios, no donde por defecto debieran ser almacenados. Notar que ambos paquetes corresponden a la versión 9 del servicio.

# yum install bind bind-utils

Iniciar servicio

# service named start

Activar al inicio

# chkconfig named on

 3.2  ConfiguraciónEl archivo principal de configuración del servicio de DNS se encuentra en /etc/named.conf, el cual por 

defecto viene configurado para funcionar como un servidor de caché local solamente. A continuación se presenta la estructura de directorio a utilizar y las configuraciones necesarias para el ejercicio propuesto.

 3.2.1  Servidor maestroEl servidor maestro será aquel que poseerá la configuración de las zonas del servidor, a él se conectará 

el esclavo para conseguir las actualizaciones. La estructura de directorios a utilizar será:

/var/named/zones/master/<vista>/<zona>

Así se tendrá por ejemplo

2012­03­25 Esteban De La Fuente Rubio 13/35

Page 14: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

/etc/named/zones/master/internal/sasco.cl

Notar que no se utilizará el la estructura de directorios definida por defecto, sino que se usará una propia.

Respaldar archivo de configuración principal por defecto

# cp /etc/named.conf /etc/named.conf.bak

Archivo de configuración principal

# /etc/named.conf

// Clientes de la red local

acl clients {

127.0.0.1;

::1;

10.0.0.0/24;

};

// opciones generales del servicio

options {

listen-on { any; };

listen-on-v6 { any; };

allow-query { any; };

recursion yes;

allow-recursion { clients; };

forwarders { 208.67.222.222; 208.67.220.220; };

// directorios y archivos

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

// opciones de la configuración por defecto

dnssec-enable yes;

dnssec-validation yes;

dnssec-lookaside auto;

2012­03­25 Esteban De La Fuente Rubio 14/35

Page 15: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

bindkeys-file "/etc/named.iscdlv.key";

};

// configuración de logging por defecto

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

// vista para la red interna

view "internal" {

match-clients { clients; };

// Zonas estándares

zone "." IN {

type hint;

file "named.ca";

};

include "/etc/named.rfc1912.zones";

// Zonas del ejercicio

zone "0.0.10.in-addr.arpa" {

type master;

file "zones/master/internal/0.0.10";

notify yes;

also-notify { 10.0.0.2; };

allow-transfer { 10.0.0.2; };

};

zone "sasco.cl" {

type master;

file "zones/master/internal/sasco.cl";

notify yes;

also-notify { 10.0.0.2; };

2012­03­25 Esteban De La Fuente Rubio 15/35

Page 16: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

allow-transfer { 10.0.0.2; };

};

zone "facebook.com" {

type master;

file "master/internal/facebook.com";

notify yes;

also-notify { 10.0.0.2; };

allow-transfer { 10.0.0.2; };

};

};

// vista para la red externa

view "external" {

match-clients { any; };

// Zonas del ejercicio

zone "1.16.172.in-addr.arpa" {

type master;

file "zones/master/internal/1.16.172";

notify yes;

also-notify { 10.0.0.2; };

allow-transfer { 10.0.0.2; };

};

zone "sasco.cl" {

type master;

file "master/external/sasco.cl";

notify yes;

also-notify { 10.0.0.2; };

allow-transfer { 10.0.0.2; };

};

};

Notar que cada una de las zonas, de ambas vistas, permite ser transferida al servidor 10.0.0.2 el cual  actuará como servidor esclavo de este.

2012­03­25 Esteban De La Fuente Rubio 16/35

Page 17: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 3.2.2  Servidor esclavoLa configuración del archivo named.conf para el servidor esclavo es casi idéntica al del servidor maestro, 

con la excepción de las zonas, lo cual se detalla más adelante. La estructura de directorios a utilizar será:

/var/named/zones/slave/<vista>/<zona>

Así se tendrá por ejemplo

/etc/named/zones/slave/internal/sasco.cl

En el caso de las configuraciones de las zonas estas variaran para poder solicitar al servidor maestro las actualizaciones, se muestra a continuación el ejemplo de las modificaciones para la zona sasco.cl, otras zonas deberán ser similares.

zone "sasco.cl" {

type slave;

file "zones/slave/internal/sasco.cl";

masters { 10.0.0.1; };

};

Para probar el servidor esclavo se deberá  cambiar a la red externa. En un ambiente real el  servidor esclavo deberá poder ser accedido desde la red externa utilizando algún mecanismo, como NAT.

 3.2.3  Configuración de zonas en servidor maestro

   Zonas internas

Zona 0.0.10.in­addr.arpa

; /var/named/zones/master/internal/0.0.10

$TTL 3600

@ IN SOA sasco.cl. root ( ; Autoridad para la zona

2011111301 ; Serial

3H ; Cada cuanto consultará

1H ; Cada cuanto reintentará

1W ; Cuando dejara de preguntar

1D ) ; Tiempo mínimo en el cache

@ IN NS sasco.cl.

1 IN PTR ns1.sasco.cl.

2012­03­25 Esteban De La Fuente Rubio 17/35

Page 18: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

Zona sasco.cl

; /var/named/zones/master/internal/sasco.cl

$TTL 3600

$ORIGIN sasco.cl.

@ IN SOA sasco.cl. root (

2011111401

3H

1H

1W

1D )

IN NS sasco.cl.

IN A 10.0.0.1

IN MX 1 aspmx.l.google.com.

IN MX 2 alt1.aspmx.l.google.com.

IN MX 2 alt2.aspmx.l.google.com.

IN MX 3 aspmx2.googlemail.com.

IN MX 3 aspmx3.googlemail.com.

IN MX 3 aspmx4.googlemail.com.

IN MX 3 aspmx5.googlemail.com.

* IN CNAME sasco.cl.

mail IN CNAME ghs.google.com.

docs IN CNAME ghs.google.com.

calendar IN CNAME ghs.google.com.

; subdominios

$ORIGIN clientes.sasco.cl.

@ IN CNAME sasco.cl.

* IN CNAME sasco.cl.

$ORIGIN dev.sasco.cl.

@ IN CNAME sasco.cl.

* IN CNAME sasco.cl.

2012­03­25 Esteban De La Fuente Rubio 18/35

Page 19: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

Zona facebook.com

; /var/named/zones/master/internal/facebook.com

$TTL 3600

$ORIGIN facebook.com.

@ IN SOA facebook.com. root (

2011111401

3H

1H

1W

1D )

IN NS facebook.com.

IN A 10.0.0.1

* IN CNAME facebook.com.

 3.3  Ejercicios1. ¿Qué puerto utiliza DNS? ¿TCP o UDP?

2. ¿Qué relación existe entre resolución normal e inversa?

3. Si tengo 3 zonas normales en una vista, ¿cuántas zonas inversas se requieren?

4. ¿Cuál es la relación entre una zona “type: master” y una zona “type: slave”?

5. ¿Cuáles son las diferencias al declarar la zona si se esta utilizando un subdominio?

6. ¿Por qué el detalle de las zonas se configura solo en el servidor maestro?

7. ¿Por qué el no publicar una zona o servicio no representa una medida de seguridad?

8. ¿Por qué en la zona inversa interna se utiliza sasco.cl como dominio para resolver las direcciones IP?  ¿Se podría utilizar otro dominio? ¿cuál?

9. ¿Cuál es la importancia del serial y su formato?

10. ¿Qué registro se utiliza para indicar una traducción a IPv4?

11. ¿Cuál es la ventaja de utilizar CNAME?

12. ¿Qué significa el usar ORIGIN?

13. ¿Cuál es la diferencia entre que el dominio termine en punto y que no lo haga?

14. ¿Cómo se configuran las zonas externas?

2012­03­25 Esteban De La Fuente Rubio 19/35

Page 20: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 4  WebUn servidor web entrega la posibilidad de hospedar páginas web en el servidor GNU/Linux. Para esta 

sección se utilizará el servidor Apache, el cual es el servidor más utilizado en sistemas operativos like Unix2. Las configuraciones expuestas en esta sección incluirán dominios virtuales y seguridad mediante SSL.

 4.1  InstalaciónSe instalara la versión 2 de Apache, adicionalmente se instalará PHP como módulo del servidor web para 

ser utilizado como lenguaje de programación de páginas web dinámicas en el servidor.

# yum install httpd php

Iniciar servicio

# service httpd start

Activar al inicio

# service httpd on

Una vez realizada la instalación se puede ingresar a la página por defecto del servidor web mediante la IP de este. La página por defecto se puede apreciar en la Imagen 3, para cambiar su contenido se debe crear, al menos, un archivo index.html en el directorio /var/www/html

Imagen 3: Página por defecto de Apache

Si lo que desea revisar la configuración de PHP crear el archivo /var/www/html/phpinfo.php y abrirlo.

<?php phpinfo(); ?>

2La aplicación se encuentra disponible para múltiples sistemas operativos, incluyendo Microsoft Windows, por lo cual las explicaciones realizadas serán aplicables en dicha plataforma.

2012­03­25 Esteban De La Fuente Rubio 20/35

Page 21: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 4.2  Configuración generalEl archivo de configuración corresponde al ubicado en /etc/httpd/conf/httpd.conf, el cual por defecto viene 

preparado funcionar out of the box, un cambio a realizar en dicho archivo es definir el nombre del servidor, para  evitar una advertencia al iniciar el servicio, esto se logra agregando lo siguiente al archivo (donde corresponda).

ServerName localhost:80

Adicionalmente mencionar que archivos ubicados en conf.d/*.conf se cargarán de forma automática.

 4.3  MódulosEl servidor web Apache posee un conjunto de características en su sistema central, y además posee la 

posibilidad de ampliarse mediante la utilización de módulos. En CentOS los módulos disponibles se encuentran en el directorio /etc/httpd/modules

Activar módulo rewrite (por defecto viene activado)

# /etc/httpd/conf/httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so

Notar la sintaxis corresponde al nombre del módulo extraído del archivo ubicado en el directorio modules/ más “_module”, si queremos desactivarlo basta comentar o eliminar la línea.

 4.4  Dominios virtualesSi queremos hospedar más de un dominio en el servidor deberemos recurrir al uso de dominios virtuales, 

estos permitirán en un mismo servidor almacenar cuantos dominios queramos. Personalmente se recomienda utilizarlos siempre, aunque solo se aloje un dominio, ya que cuando eventualmente se requiera uno nuevo los  cambios a realizar serán mínimos.

Para utilizar dominios virtuales estos se pueden agregar al final del archivo, se deberá descomentar la siguiente configuración

NameVirtualHost *:80

En caso de acceder directamente a la IP del servidor o bien a cualquier dominio que apunte a la IP del  servidor y que no este definido dentro de los dominios virtuales dará como resultado el despliegue del primer  dominio virtual, para evitar esto se recomienda crear como primer dominio virtual uno que apunte al directorio  /var/www/html como se indica a continuación.

<VirtualHost *:80>

ServerName localhost

DocumentRoot /var/www/html

</VirtualHost>

2012­03­25 Esteban De La Fuente Rubio 21/35

Page 22: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

El formato de la configuración de un dominio virtual se describe, de forma básica, a continuación.

<VirtualHost *:80>

ServerAdmin [email protected]

ServerName example.com

ServerAlias www.example.com

DocumentRoot /var/www/vhosts/example.com /htdocs

ErrorLog logs/example.com-error_log

CustomLog logs/example.com-access_log common

</VirtualHost>

La configuración mostrada para dominio virtual implica que los dominios son almacenados todos bajo  /var/www/vhosts, sin embargo puede resultar interesante que sean los usuarios del sistema los que tengan una carpeta /home/usuario/www donde dentro definan  los dominios virtuales, adicionalmente dicha carpeta puede  servir para guardar la configuración de sus zonas de DNS. Personalmente recomiendo esta alternativa, sobre todo si el sistema hospedará sitios que serán administrados por diferentes usuarios.

Lo anterior implicará cambios en la configuración del dominio virtual donde en vez de ir directamente en el archivo de configuración de Apache se podrá incluir a este de la siguiente forma:

Include /home/usuario/www/example.com/virtualhost.conf

El problema detectado con esta solución es que si un usuario tiene su archivo mal formado, o con una configuración incorrecta (directorios que no existen) el proceso de carga del servicio Apache caerá, por lo cual se recomienda utilizar con cuidado.

 4.5  PHPPHP por defecto viene sin algunos componentes que pueden resultar útiles, la instalación de los mismos 

dependerá de los requerimientos del servidor web, específicamente del lenguaje de programación PHP.   En la Tabla 2 se adjunta una lista con los paquetes recomendados, la instalación de estos se hace con la herramienta yum..

Paquete Descripción

php­gd Soporte para biblioteca gráfica GD

php­mysql Soporte MySQL

php­pgsql Soporte PostgreSQL

php­pear Repositorio de extensiones y aplicaciones

Tabla 2: Paquetes PHP recomendados

2012­03­25 Esteban De La Fuente Rubio 22/35

Page 23: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 4.6  SSLLa utilización de SSL permite realizar una conexión segura entre el servidor y el cliente, esto se logra  

mediante la utilización de certificados digitales. Cada certificado es firmado por una entidad certificadora que  valida   la  veracidad  de  estos.  A  continuación se  describen   los  pasos para  crear   los  certificados,   firmarlos  y utilizarlos.

Instalar paquetes necesarios

# yum install openssl mod_ssl

 4.6.1  Crear los certificadosCrear directorio para guardar los certificados del servidor

# mkdir -p /var/www/vhosts/example.com/ssl

# cd /var/www/vhosts/example.com/ssl

Generar clave: RSA, sin contraseña y de 2048 bits

# openssl genrsa -out example.com.key 2048

Generar certificado para ser firmado, archivo CSR (Certificate Signing Request)

# openssl req -new -key example.com.key -out example.com.csr

Se preguntarán diferentes campos, donde el más importantes es el  Common Name, el cual debe ser idéntico al nombre de dominio que utilizará el certificado SSL en sus conexiones. Lo otro importante es dejar la clave en blanco.

Ya que la clave no esta siendo guardada de forma encriptada es muy importante que solo el usuario root (en realidad, el usuario dueño de la clave) puedan leerla.

 4.6.2  Firmar el certificadoEl archivo CSR generado anteriormente debe ser firmado por una entidad certificado, por ejemplo una 

como Verisign,  la cual verificará   la autenticidad del mismo. Sin embargo en este caso se muestra como auto firmar el certificado para efecto de pruebas o uso interno. Esto generará un error en el navegador indicando que el certificado que utiliza el servidor esta firmado por una entidad certificadora desconocida o no confiable.

# openssl x509 -req -days 365 -in example.com.csr -signkey \

example.com.key -out example.com.crt

Si  pretendemos  firmar  nosotros  mismos  todos   los  certificados que  se  generan  para   la  empresa,  es recomendable generar una clave separada de la usada por el dominio (example.com.key) una que sea propia del  servidor, y con dicha clave firmar los archivos CSR.

2012­03­25 Esteban De La Fuente Rubio 23/35

Page 24: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

Otra forma de crear la llave y el certificado firmado por nosotros mismos en una sola línea es:

# openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj \

"/C=CL/ST=Metropolitana/L=Santiago/O=Example/CN=example.com" \

-keyout example.com.key -out example.com.crt

 4.6.3  Agregar certificadosLos dominios virtuales deben ser definidos para utilizar el puerto 443 y no el 80, además se debe agregar 

dentro de la configuración del dominio lo siguiente:

SSLEngine on

SSLCertificateFile /var/www/vhosts/example.com/ssl/example.com.crt

SSLCertificateKeyFile /var/www/vhosts/example.com/ssl/example.com.key

SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

 4.6.4  Múltiples dominios utilizando SSLPor defecto no se puede utilizar más de un dominio con SSL, y por defecto ya viene definido uno en 

/etc/httpd/conf.d/ssl.conf.

Para habilitar  múltiples dominios se debe agregar   la siguiente opción al  archivo de configuración de Apache:

NameVirtualHost *:443

Personalmente recomiendo utilizar esta configuración, ya que permitirá que múltiples dominios puedan utilizar HTTPS.

 4.7  suPHPUn problema común al ejecutar programas escritos en PHP es que todos estos (al utilizar el módulo para 

Apache de PHP) se ejecutan bajo el usuario Apache. Como alternativa a esto, podemos ejecutar  los scripts  utilizando la CLI de PHP (o sea, no usando el módulo para Apache), al hacer esto podremos utilizar el módulo suPHP que permitirá ejecutar el código PHP con los permisos del propietario del fichero que contiene el código.

A continuación se indican los pasos para instalar y configurar el módulo.

Descargar paquete

# wget http://pkgs.repoforge.org/mod_suphp/mod_suphp-0.7.1-1.el6.rf.i686.rpm

Instalar

# rpm -ivh mod_suphp-0.7.1-1.el6.rf.i686.rpm

2012­03­25 Esteban De La Fuente Rubio 24/35

Page 25: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

Editar el archivo de configuración de suPHP

# /etc/suphp.conf

[global]

# [...]

min_gid=100

# [...]

[handlers]

[...]

application/x-httpd-php="php:/usr/bin/php-cgi"

En el archivo del módulo, comentar todas las líneas dejando solo la que carga el mismo

# /etc/httpd/conf.d/suphp.conf

LoadModule suphp_module modules/mod_suphp.so

En la configuración del VirtualHost donde se quiere usar suPHP agregar:

php_admin_flag engine off

suPHP_Engine on

AddHandler application/x-httpd-php .php

suPHP_AddHandler application/x-httpd-php

suPHP_UserGroup <usuario> <grupo>

Reiniciar apache

# service httpd restart

Para probar el módulo, crear el siguiente programa y ejecutarlo vía web:

<?php system('/usr/bin/id'); ?>

En caso de problemas del   tipo  “Internal  Server Error”   revisar el   registro  de error  de apache para el  VirtualHost, en este existirá información que podrá ayudar a resolver el problema.

 4.8  Ejercicios1. ¿Para qué es utilizada la opción ­subj en openssl?

2. Implementar los dominios para las zonas definidas en el ejercicio de DNS (sasco.cl y facebook.com) con  todos sus subdominios definidos. Adicionalmente dos de los subdominios debe utilizar SSL.

3. ¿Por qué aparece el mensaje de certificado SSL no válido? ¿significa que la conexión no es encriptada?

2012­03­25 Esteban De La Fuente Rubio 25/35

Page 26: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 5  PAMPAM (Pluggable authentication module) corresponde a un módulo de autenticación que se ubica entre la 

aplicación y el sistema contra el que se esta autenticando. De esta forma una aplicación en vez de soportar “n” sistema de autenticación, puede soportar solo autenticarse contra PAM, y este realizará la autenticación contra el sistema que corresponda. Obviamente PAM debe tener soporte para el sistema contra el que se desea autenticar,  actualmente existe soporte para una gran cantidad de fuentes.

El  objetivo  de  este  curso  no es  cubrir  de  forma  teórica  PAM,  ni   tampoco  todas  las configuraciones posibles, sino la situación puntual descrita en el Dibujo 1, donde se muestra como utilizar una base de datos para almacenar los usuarios y sus contraseñas y mediante PAM autenticar aplicaciones (como ftp o samba) contra ella.

Dibujo 1: PAM utilizando una base de datos como fuente

 5.1  InstalaciónSe utilizará una base de datos MySQL como backend de PAM, por lo cual se debe instalar la biblioteca 

pam_mysql, sin embargo esta no esta disponible en el sistema ni es instalable mediante YUM.

Instalación de dependencias para compilar soporte para MySQL

# yum install pam-devel mysql-devel

2012­03­25 Esteban De La Fuente Rubio 26/35

vsftpd

PAM

Base de datos

samba

Page 27: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

Descarga paquete pam_mysql, compilación e instalación

# wget http://prdownloads.sourceforge.net/pam-mysql/\

pam_mysql-0.7RC1.tar.gz

# tar xvzf pam_mysql-0.7RC1.tar.gz

# cd pam_mysql-0.7RC1

# ./configure –with-pam-mods-dir=/lib64/security --with-openssl

# make install

Lo anterior creará los archivos

/lib64/security/pam_mysql.la

/lib64/security/pam_mysql.so

 5.2  Base de datos MySQL

 5.2.1  InstalaciónInstalación de la base de datos MySQL

# yum install mysql-server

Iniciar servicio

# service mysqld start

Activar al inicio

# chkconfig mysqld on

Ejecutar asistente para inicializar nueva base de datos (clave de root de MySQL: centos)

# mysql_secure_installation

Eliminar usuario anónimo, eliminar base de datos de pruebas y no permitir conexión remota del usuario root.

 5.2.2  Creación de base de datosCrear base de datos y usuario para acceder a la misma

# mysql -u root -p

mysql> CREATE DATABASE pam;

mysql> GRANT ALL PRIVILEGES ON pam.* TO 'pam'@'localhost' \

IDENTIFIED BY 'centos';

mysql> FLUSH PRIVILEGES;

2012­03­25 Esteban De La Fuente Rubio 27/35

Page 28: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

Conectar a la base de datos pam con el usuario pam y crear tablas

# mysql -u pam -p pam

mysql> CREATE TABLE users (username VARCHAR(30) NOT NULL PRIMARY KEY, password VARCHAR(32) NOT NULL);

Insertar usuarios de prueba

mysql> INSERT INTO users VALUES ('pepito', md5('pepito'));

mysql> INSERT INTO users VALUES ('juanito', md5('juanito'));

Crear usuarios en el sistema

# useradd pepito

# useradd juanito

 5.3  ConfiguraciónDatos de conexión y tabla de MySQL

# /etc/pam-mysql.conf

users.host = localhost

users.database = pam

users.db_user = pam

users.db_passwd = centos

users.where_clause = 1

users.table = users

users.user_column = username

users.password_column = password

users.password_crypt = md5

verbose = 1

Configuración para que el servicio use MySQL

# /etc/pam.d/<servicio>

auth requisite pam_mysql.so config_file=/etc/pam-mysql.conf

account required pam_unix.so

 5.4  Ejercicios1. ¿Qué consideraciones se deben tomar al utilizar una base de datos de alguna aplicación ya existente?

2012­03­25 Esteban De La Fuente Rubio 28/35

Page 29: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 6  FTPFile Transfer Protocol fue de los primeros protocolos para la transferencia de archivos por la red. En esta 

sección se explicará  como montar  un servidor  FTP utilizando vsftpd  (Very Secure FTP Daemon) el  cual  es  recomendado  para   ser   utilizado  en  Red  Hat  Linux  Enterprise  y  el   disponible  en   repositorios.  Existen  otras  soluciones como proftpd y pureftpd, las cuales no están por defecto en los repositorios de CentOS.

 6.1  InstalaciónInstalación

# yum install vsftpd

Iniciar servicio

# service vsftpd start

Activar al inicio

# chkconfig vsftpd on

Por  defecto  se  permite  una  conexión en  modo anónimo al   servidor  FTP accediendo a   los  archivos alojados en /var/ftp.

 6.2  ConfiguraciónEl archivo de configuración del servicio corresponde a /etc/vsftpd/vsftpd.conf, el cual por defecto permite 

las conexiones como anónimos y con usuarios del sistema.

 6.2.1  PAMConfigurar según indicaciones disponibles en la sección 5.3, el archivo /etc/pam.d/vsftpd

 6.2.2  SELinux# setsebool -P ftp_home_dir on

# setsebool -P ftpd_connect_db on

 6.3  Ejercicios1. ¿Cómo deshabilitar el acceso de un usuario anónimo?

2. Configurar para permitir que puedan entrar usuarios con clave en el sistema y/o MySQL.

3. ¿Cómo utilizar SSL con el servidor vsftp?

2012­03­25 Esteban De La Fuente Rubio 29/35

Page 30: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 7  SAMBASamba es el servicio en sistemas  like  Unix que permite, entre otras tareas, compartir  ficheros con el 

sistema operativo Microsoft Windows a través del protocolo CIFS (ex SMB). Igualmente permite el intercambio entre sistemas operativos GNU/Linux.

Utilizando PAM y aprovechando los usuarios creados en la sección 5.2.2, se propone el ejercicio descrito en   la  Tabla  3  de   intercambio  de  archivos,  donde se  debe compartir   tres  carpetas  con  diferentes  permisos.  Adicionalmente se requiere llevar auditoría de lo que se realiza en el servicio SAMBA.

/var/samba/carpeta1 /var/samba/carpeta2 /var/samba/carpeta3

juanito readwrite

readwrite ­

pepito read readwrite

readwrite

Tabla 3: Ejercicio SAMBA

Crear carpetas

# mkdir -p /var/samba/carpeta1

# mkdir -p /var/samba/carpeta2

# mkdir -p /var/samba/carpeta3

 7.1  InstalaciónInstalación

# yum install samba

Iniciar servicio

# service smb start

Activar al inicio

# chkconfig smb on

Por defecto el servicio permite la conexión a los directorios principales de los usuarios creados en el  sistema. Esto significa que al habilitar PAM los usuarios definidos en la base de datos MySQL (caso presentado  en la sección de PAM) también podrán acceder a sus directorios principales.

2012­03­25 Esteban De La Fuente Rubio 30/35

Page 31: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 7.2  ConfiguraciónEl archivo de configuración de SAMBA corresponde a /etc/samba/smb.conf, y a continuación se muestran 

las configuraciones a agregar para lograr lo planteado anteriormente (agregar al final)

# /etc/samba/smb.conf

# […]

[carpeta1]

comment = Carpeta 1

path = /var/samba/carpeta1

browseable = yes

public = no

guest ok = no

read list = juanito, pepito

write list = juanito

create mask = 0660

directory mask = 0770

force group = smbusers

[carpeta2]

comment = Carpeta 2

path = /var/samba/carpeta2

browseable = yes

public = no

guest ok = no

read list = juanito, pepito

write list = juanito, pepito

create mask = 0660

directory mask = 0770

force group = smbusers

2012­03­25 Esteban De La Fuente Rubio 31/35

Page 32: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

[carpeta3]

comment = Carpeta 3

path = /var/samba/carpeta3

browseable = yes

public = no

guest ok = no

read list = pepito

write list = pepito

create mask = 0660

directory mask = 0770

force group = smbusers

Reiniciar servicio

# service smb restart

Creación de grupo y añadir a usuarios al mismo

# groupadd smbusers

# usermod -a -G smbusers pepito

# usermod -a -G smbusers juanito

Asignación de permisos

# chgrp smbusers /var/samba/ -R

# chmod 770 /var/samba/ -R

 7.2.1  PAMConfigurar según indicaciones disponibles en la sección 5.3, el archivo /etc/pam.d/samba

Adicionalmente para utilizar PAM se deben modificar/asignar  las siguientes opciones en el archivo de  configuración de SAMBA, en la sección global:

encrypt passwords = no

obey pam restrictions = no

client lanman auth = yes

client plaintext auth = yes

2012­03­25 Esteban De La Fuente Rubio 32/35

Page 33: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 7.2.2  SELinuxPermitir acceso a directorios principales de usuarios

# setsebool -P samba_enable_home_dirs on

Permitir acceso a directorio /var/samba

# chcon -t samba_share_t /var/samba/carpeta1

# chcon -t samba_share_t /var/samba/carpeta2

# chcon -t samba_share_t /var/samba/carpeta3

Crear política personalizada para conexión a base de datos

# yum install policycoreutils-python

# grep smbd /var/log/audit/audit.log | audit2allow -M smbd_mysql

# semodule -i smbd_mysql.pp

Lo pasos utilizados para la política personalizada están fuera del contexto de este curso, sin embargo se muestran para evitar tener que poner SELinux en modo permisivo por no contar con una pol ítica que por defecto permita el acceso a MySQL.

 7.2.3  AuditoríaEn la sección global del archivo de configuración de SAMBA agregar lo siguiente:

vfs objects = full_audit

full_audit:prefix = %u|%I|%m|%S

full_audit:success = mkdir rename unlink rmdir pwrite pread connect \

disconnect

full_audit:failure = none

full_audit:facility = LOCAL6

full_audit:priority = NOTICE

Agregar a /etc/rsyslog.conf

local6.* /var/log/samba/audit.log

Reiniciar servicios

# service smb restart

# service rsyslog restart

2012­03­25 Esteban De La Fuente Rubio 33/35

Page 34: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 7.3  PruebasPara probar los directorios compartidos utilizar el comando smbclient.

Instalación

# yum install samba-client

Conexión con usuario juanito

# smbclient //localhost/carpeta1 -U juanito

Crear carpeta

smb: \> mkdir c1

Conexión con usuario pepito

Crear carpeta

smb: \> mkdir c2

Revisar registros

tail /var/log/samba/audit.log

 7.4  Ejercicios1. ¿Qué problema de seguridad se presenta con las contraseñas en la configuración de este ejercicio?

2. ¿Se podría tener una configuración más segura de las carpetas compartidas?

3. ¿Por qué se colocan a los usuarios dentro del mismo grupo?

4. Acceder a carpeta1 con los dos usuarios y crear una carpeta, revisar audit.log

5. Montar carpeta en una ubicación del sistema de ficheros.

6. ¿Cómo montar un directorio compartido en una máquina remota? ¿cambios en SELinux?

2012­03­25 Esteban De La Fuente Rubio 34/35

Page 35: 03 Servicios

SASCO ­ http://sasco.cl GNU/Linux ­ Servicios en GNU/Linux (licencia GFDL)

 8  Recursos• PXE

◦ Configuración: http://wiki.centos.org/HowTos/PXE/PXE_Setup

◦ Más detalles: http://pxe.dev.aboveaverageurl.com/index.php/PXE_Booting

• menu.c32: http://www.syslinux.org/wiki/index.php/Comboot/menu.c32

• bind: http://en.wikipedia.org/wiki/BIND

• OpenSSL: http://slacksite.com/apache/certificate.php

• Múltiple   SSL   en   una   IP:  http://www.techrepublic.com/blog/opensource/configure­apache­to­support­multiple­ssl­sites­on­a­single­ip­address/987

• PAM: http://sopa.dis.ulpgc.es/ii­aso/portal_aso/leclinux/seguridad/pam/pam_doc.pdf

• vsftpd

◦ SELinux: http://beginlinux.com/blog/2008/11/vsftpd­and­selinux­on­centos/

◦ SSL: http://wiki.vpslink.com/Configuring_vsftpd_for_secure_connections_(TLS/SSL/SFTP   )  

• Audit: http://chicheblog.wordpress.com/2011/01/21/como­auditar­la­actividad­de­los­usuarios­en­samba/

2012­03­25 Esteban De La Fuente Rubio 35/35