Академический Документы
Профессиональный Документы
Культура Документы
Table of Contents
Introducción 0
Indice 1
Network administration. Configurar servicios de red para su inicio automático. 2
Network administration. Implementar filtrado de paquetes. 3
Network filesystems & file services. Introducción. 4
Network filesystems & file services. Configurar sistemas para montar bajo demanda
sistemas de ficheros estándar, encriptados y de red. 5
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 6
Network filesystems & file services. Proveer / configurar discos compartidos de red
mediante NFS. 7
Network filesystems & file services. Transferir ficheros de forma segura por la red. 8
Network filesystems & file services. Actualizar paquetes desde la red, un repositorio o el
sistema de archivos local. 9
HTTP Services. Instalar y configurar un servidor web Apache 10
HTTP Services. Configurar un cliente para usar automáticamente un servidor proxy.
HTTP Services. Restringir acceso a una página web con Apache. 12 11
Network security. Configurar acceso remoto usando pares de claves público/privada
basado en SSH. 13
Network security. Configurar el firewall con iptables / firewalld. 14
Email services. Instalar y configurar un servidor SMTP. 15
2
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Algunos supuestos.
Implicaciones de la versión de Centos
En el momento de escribir esta documentación solo es posible examinarse para la versión 7
de Centos. Dicha versión de Centos tiene muchos cambios importantes que afectan a lo
que tenemos que saber en el examen. Hay que tener cuidado además ya que muchos
documentos que podemos encontrarnos por Internet a propósito del examen hacen
referencia a versiones 6 de Centos y algunas cosas cambian. Algunos de los cambios son:
Sistemd sustituye a init. Esto implica cambios muy importantes, basicamente nos
afectará a la gestión de los servicios (comando systemctl ) aunque casi todos
podremos seguir gestionandolos con service ya que existen alias para que sigan
funcionando.
Selinux
Dado que en ninguna parte en las competencias de la certificación se menciona SELinux
damos por hecho que no se usa y por tanto no es necesario controlarlo. Imaginamos que en
los sistemas que usemos para el examen estará desactivado.
Algunos consejos
Introducción 3
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Algunos consejos a seguir que son útiles siempre en general pero mucho más en el
examen.
1.- Copia previamente cualquier fichero que tengas que modificar. Siempre, siempre,
siempre copia el ficherro antes de modificarlo. Si te molestan en la ubicación general o ni
tienes claro que puedan ser interpretada las copias create un directorio p.e. $HOME/Copias
y los vas copiando en este.
2.- Uso del editor VI / VIM. Debes controlar el mínimo el uso de VIM. No es necesario que
seas un crack pero muevete rápido por ficheros.
3.- Uso de la ayuda del sistema man y ficheros adicionales de ayuda. Desintoxicate de
googl. Durante el examen solo podrás usar la ayuda del sistema así que habituate a
manejarte adecudadmente por ella y navega por la ayuda de las utilidades / comandos más
importantes para familiarizarte como te dan la ayudas contienen o no ejemplos. No es
necesario estudiar algo que eres consciente vas a localizar rapidamente en la ayuda.
Introducción 4
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Network administration
80% Configure network services to start automatically at boot
Implement packet filtering
Monitor network performance
Produce and deliver reports on system use, outages and user requests
Route IP traffic statically and dynamically
Troubleshoot network issues
Network security
Configure Apache log files
90% Configure the firewall with iptables / firewalld
Install and configure SSL with Apache
90% Configuring SSH-based remote access using public/private key pairs
Remote access
R Configure the firewall with iptables / firewalld!
Indice 5
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
HTTP services
99% Configure an http client to automatically use a proxy server
40% Install and configure an Apache web server
Install and configure the Squid proxy server
2% Restrict access to a web page with Apache
Restrict access to the Squid proxy server
Setting up name-based virtual web hosts
Email services
Configure email aliases
Install and configure an IMAP and IMAPS service
Install and configure an smtp service
Restrict access to an smtp server
warqwr
Indice 6
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Introducción
Comentaremos en esta sección como configurar el inicio automático genérico de servicios
en Redhat / Centos 7. Los paquetes y servicios necesarios para cada aplicación se verán
en cada apartado de instalación y configuración correspondiente (apache, nfs,…).
En Redhat 7 / Centos 7 se ha sustituido SysVinit por Systemd por tanto cambia la forma
de gestionar el inicio de los servicios. Si usamos los antiguos comandos “service” veremos
que la mayoría funcionaran ya que el sistema se encarga de enlazarlos a comandos
Systemd y nos avisa al respecto pero no tenemos garantía de que todos funcionen y cuanto
antes nos acostumbremos a Systemd mejor.
NOTA: Cuando trabajamos con servicios sería más correcto añadir “.service” tras el nombre
de este en la forma systemctl enable httpd.service . El comando systemctl interpreta que si
no especificamos nada (unidad) por defecto será un servicio, por eso funciona
correctamente.
activo.
También podemos desactivar servicios de forma que no se puedan iniciar de forma manual.
Es una funcionalidad disponible para asegurarse de que no es posible iniciar un servicio de
forma manual, automática o semiautomática sin reactivarlo de nuevo. Se hace mediante
mask / unmask
Verificamos como siempre si el puerto está abierto con ss -tnlp | grep puerto
Referencias. RHEL7: How to get started with Systemd. Overview of systemd for RHEL 7
http://www.linuxtopia.org/Linux_Firewall_iptables/
Competencias.
Esta sección del examen de certificación LFCE se compone de las siguientes secciones /
competencias.
Configure systems to mount standard, encrypted and network file systems on demand
Create, mount and unmount standard Linux file systems
Provide/configure network shares via NFS
Transfer files securely via the network
Update packages from the network, a repository or the local file system
Aclaraciones.
Esta es una de las secciones que mas dudas introduce en cuanto a las competencias
exactas que es necesario conocer además de mezclar un tanto los temas.
En este caso parece que hay que decantarse por la utilidades scp y sftp. Parece lo que
tiene más sentido y es lo que interpretan en general para este tema otros sitios sobre esta
certificación. También veremos por encima rsync y como hacer X forwarding .
Actualización de paquetes
Este punto es también un tanto confuso. Este es uno de esos temas que no sabes como
enfocar exactamente. Como estamos con repositorios descartamos utilidades como rpm
que además son más de LFCA y nos centramos en yum pero sin entrar mucho. Veremos la
configuración de repositorios de yum y como modificar el origen de nuestros repositorios.
Por otro lado veremos como configurar un repositorio "local" en un servidor y como usarlo
desde el propio sistema o/y configurar Apache para que pueda ser accedido mediante http.
Orden de lectura.
El orden de lectura de estos capítulos afecta sobre todo a dos de ellos, el resto da igual
realmente:
1. Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux.
2. Configurar sistemas para montar bajo demanda sistemas de ficheros estándar,
encriptados y de red.
Introducción.
En el capítulo "Network filesystems & file services. Crear, montar y desmontar Sistemas de
ficheros estándar de Linux." ya habiamos repasado como se montan sistemas de ficheros
"estándar" tanto manualmente mediante comandos como de forma automática en el inicio
(no confundir con "bajo demanda"??)
Network filesystems & file services. Configurar sistemas para montar bajo demanda
sistemas de ficheros estándar, encriptados y de red. 13
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Siguiendo con el ejemplo del caṕitulo previo vamos a encriptar una partición estandar xfs.
Nos tenemos que asegurar primero de que no esté ni montada ni disponible en /etc/fstab
inicialmente.
Encriptamos el sistema de archivos em formato LUKS en su forma más sencilla:
ATENCIÓN la respuesta YES debe ser así en mayúsculas (Type uppercase yes).
Podriamos cambiar distintas opciones de encriptación relativas a los algoritmos usados (ver
la ayuda del comando). Para ver las opciones que usa por defecto.
[]# ll /dev/mapper/disco_encriptado
/dev/mapper/disco_encriptado -> ../dm-2
Network filesystems & file services. Configurar sistemas para montar bajo demanda
sistemas de ficheros estándar, encriptados y de red. 14
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Creamos el sistema de archivos. Una vez abierto y accesible el disco podemos crear el
sistema de archivos necesario y montarlo. p.e.
mkfs.xfs /dev/mapper/disco_encriptado
mount /dev/mapper/disco_encriptado /mnt/midisco
Cerrar el disco Para cerrar el disco se usa la acción 'luksClose' aplicado al nombre del
disco pero tenemos que desmontar la partición previamente
1.- Configuramos el mapeo de nombre fijo para nuestro dispositivo. Lo hacemos añadiendo
una línea a /etc/crypttab . Nos aseguramos de poner la opción "noauto" para que no nos
pida la password durante el inicio ya que ante cualquier problema no iniciará el sistema.
En este caso podemos optar por no poner "noauto" para que en el inicio nos pida la clave
de acceso y monte el volumen. Tampoco conviene en general. Es mejor usar automount
como veremos posteriormente para que el disco se monte y nos pida la clave cuando lo
usemos.
Network filesystems & file services. Configurar sistemas para montar bajo demanda
sistemas de ficheros estándar, encriptados y de red. 15
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
En otros capitulos hemos visto como configurar NFS para servio directorior por red. Ahora
echaremos un ojo rápido a como montarlos. Realmente no se diferencia especialmente de
montar cualquier sistema de ficheros pero si que tendremos que dedicarle algo más de
tiempo a las utilidades de verificación y exploración para evitar problemas.
[]# exportfs -v
/var/mi_share 192.168.122.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_roo
Luego desde el cliente podemos verificar ya que vemos los recursos compartidos del
servidor.
Usaremos como siempre mount para montar el sistema de ficheros nfs desde el equipo
cliente. La sintaxis es:
Montamos nuestra unidad en un directorio local, sin opciones (usará opciones por defecto) y
verificamos con df y con mount además vemos que opciones ha usado para montarlo.
Network filesystems & file services. Configurar sistemas para montar bajo demanda
sistemas de ficheros estándar, encriptados y de red. 16
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
[]# df -h
S.ficheros Tamaño Usados Disp Uso% Montado en
/dev/xvda1 20G 4,9G 16G 25% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 13M 484M 3% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
tmpfs 100M 4,0K 100M 1% /run/user/1001
tmpfs 100M 0 100M 0% /run/user/0
172.31.18.4:/var/mi_share 20G 4,9G 16G 25% /mnt/dir1
timeo=n Establece el tiempo (en décimas de segundo) que el cliente de NFS esperará
por la respuesta a una petición. El valor predefinido vemos que es 600 (6 segundos).
Lo que pase después depende de si usa la opción hard o soft.
soft Monta lógicamente (como opuesto al montaje físico) el controlador. Esta opción
causa un error de E/S a ser informado al proceso que intenta poner en funcionamiento
un fichero cuando expira el tiempo de operación.
intr Permite una señal para interrumpir una llamada a NFS. Es útil parar abortar
cuando el el servidor no responde.
nfsvers=version Especifica que versión del protocolo NFS usará (2,3 o 4). Es útil por
si el Host soporta varias versiones y nos interesa usar una concreta. Si no se especifica
usa la versión más alta que soporte el kernel y el comando mount .
udp / tcp Especifica que protocolo ser usará para montar el sistema de ficheros (si el
servidor lo soporta).
Network filesystems & file services. Configurar sistemas para montar bajo demanda
sistemas de ficheros estándar, encriptados y de red. 17
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Para que se monten los Sistemas de ficheros NFS en el inicio del sistema se configuraran
en /etc/fstab igual que cualquier otro sistema de ficheros.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
Referencias.
How to Setup Encrypted Filesystems and Swap Space Using ‘Cryptsetup’ Tool in Linux
https://www.linux-geex.com/centos-7-how-to-setup-your-encrypted-filesystem-in-less-
than-15-minutes/
Redhat 7 doc - AutoFS
Cryptsetup
Cryptsetup FAQ
https://geekpeek.net/disk-encryption-on-centos-linux/ *Redhat 7 doc - nfs client
Network filesystems & file services. Configurar sistemas para montar bajo demanda
sistemas de ficheros estándar, encriptados y de red. 18
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Introducción.
En este tema no haremos mucho hincapié ya que entiendo que es algo superado en LFCS.
Imagino que la finalidad es repasar para controlar luego bien el tema de los Sistemas de
ficheros encriptados. Los temas a controlar serian:
Crear particiones estándar de disco (no LVM en principio) ya que serán necesarias para
crear los Sistemas de ficheros.
Crear sistemas de ficheros estándar (ext3, ext4 y xfs)
Montar y desmontar mediante comandos sistemas de ficheros.
Montar sistemas de ficheros de forma automática mediante fstab.
El clásico fdisk
El llamado a suceder al anterior por su capacidad de gestionar particiones GPT, gdisk.
La alternativa gparted
El consejo es que uses mejor fdisk. Si por un casual en el examen hablan de discos GPT o
de particiones mayores de 2 Tb (no creo) puedes usar gdisk que si se usa para particionar
un disco nuevo es prácticamente igual en su uso que fdisk. Si usas gdisk probablemente
tengas que instalarla primero.
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 19
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
[]# fdisk -l
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 20
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p <-------- PARTICION PRIMARIA (p)
Número de partición (1-4, default 1): 1 <-------- PARTICION 1
Primer sector (2048-2097151, valor predeterminado 2048):
Se está utilizando el valor predeterminado 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, valor predeterminado 2097151):
Se está utilizando el valor predeterminado 2097151
Partition 1 of type Linux and of size 1023 MiB is set
NOTA: En versiones previas de fdisk era habitual usar los parámetros -c (desactivar
compatibilidad DOS) y -u (mostrar tamaño de disco en sectores). Estos dos flags han
cambiado la forma de uso en recientes versiones de fdisk y, sobre todo, además ambas
opciones son ya por defecto. Por defecto las nuevas particiones empezarán en el sector
2048 lo que nos permite un correcto alineamiento con cualquier tipo de disco en cualquier
tipo de almacenamiento.
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 21
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Excepto el comienzo al ejecutar la utilidad el resto es muy similar a fdisk por lo que no
vamos a profundizar mucho. Basicamente cambia algo la presentación en cuanto al análisis
y la información mostrada del disco pero las opciones de partición son iguales que con
fdisk.
Si cambian completamente por ejemplo los codigos del tipo de partición (L). En cualquier
caso es sencillo localizar el adecuado y nos ofrece por defecto el código 8300 que equivale
a "Linux filesystem".
Ojo: No usar fdisk en un disco ya particionado con gdisk. Para evitar problemas seguir
usando gdisk.
Actualmente todas las utilidades para crear sistemas de ficheros se suelen encontrar en
/sbin y empiezan por mkfs (make filesystem).
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 22
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
A partir de ahí es sencillo. Es obvio cual tendrás que usar en función del tipo de filesystem a
usar. Sin o está el que necesitas probablemente tendrás que instalar el paquete adecuado
para que instale el binario.
La sintaxis basica es:
mkfs.typo /dev/particion
Por ejemplo:
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 23
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
No hay mucho más sobre la creación de sistemas de ficheros salvo repasar parámetros
habituales de estas utilidades que son un móntón de ellos realmente pero que no es
habitual su uso y sobre todo no deben ser objeto de este tema:
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 24
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Algunas de estas opciones no tienen mucho sentido para el montaje manual de sistemas de
ficheros. Por defecto usará los parámetros de defaults si no especificamos otros.
mkdir /mnt/midisco
mount /dev/sdb1 /mnt/midisco
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 25
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Mediante lsblk podemos ver con una presentación muy cómoda los discos, particiones y
puntos de montaje.
[]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19,5G 0 part
├─centos-swap 253:0 0 1G 0 lvm [SWAP]
└─centos-root 253:1 0 18,5G 0 lvm /
sdb 8:16 0 2G 0 disk
└─sdb1 8:17 0 2G 0 part /mnt/midisco
sr0 11:0 1 1024M 0 rom
Para ver todos los sistemas de ficheros actualmente montados usamos mount a secas. En
Centos7 / REHL7 nos saldrán un montón de ellos que nos pueden confundir, resumimos:
En últimas ditribuciones de linux lo normal ya será que incluso no sea necesario especificar
los parámetros y detecte automaticamente lo que tiene que hacer.
umount /dev/sdb1
umount /mnt/midisco
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 26
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Si nos diera un error por estar ocupado lo primero será salirnos del directorio :-D, lo
segundo si no es eso será echar un ojo a ver que ficheros hay en uso en el punto de
montaje para intentar tener más datos de quien / que lo está usando con fuser -m
directory , p.e.:
fuser -m /mnt/midisco
El dispositivo a montar. Bien por nombre de udev (mapper), LABEL, o por identificador
único UUID (podemos usar blkid para localizar el UUID de los discos). /boot lo
encontramos habitualmene montado por UUID.
El punto de montaje
El sistema de archivos del dispositivo.
Las opciones de montaje (defaults = async,auto,dev,exec,nouser,rw,suid). Lás básicas
las hemos visto previamente.
dump - Usado por la utilidad dump para saber si debe hacer backup de este sistema de
fichersos (0 = no, 1 = si). No se suele usar dumpo actualmente.
pass - Usado por fsck al inicio para saber el orden de revisión de esta partición en
busca de errores al inicio (0 = no se revisa, 1 = prioritario, 2 = menos prioritario)
El formato del fichero /etc/fstab es algo muy delicado dado que un pequeño error de sintaxis
en este no solo puede suponer que no se monte un sistema de ficheros concreto si no que
por error de lectura en el fichero no se monte nada en el inicio. Por eso debemos extremar
la precaución al añadir entradas. Lo mejor es probar cada nueva entrada que añadamos
con mount -a que leerá el fichero /etc/fstab y montará todas las particiones que aún no
estén montadas Si funciona funcionará correctamente al iniciar. én montadas.
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 27
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Buscariamos primero el UUID de nuestra partición con la utilidad blkid que nos muestra el
de todos los "discos". Podriamos usar el "dev" pero no es aconsejable ya que este podría
llegar a cambiar. Vemos que el resto de discos tienen una ruta en /dev/mapper
proporcionada por udev ya que son particiones LVM (que no parece asunto de este
examen, si de LFCS).
[]# blkid
/dev/sdb1: UUID="1d1b6227-5024-414b-beea-e42b70071578" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUU
/dev/sda1: UUID="dbbcd8cb-30e1-4d7c-b425-43ffab4e018a" TYPE="xfs"
/dev/sda2: UUID="TyzPPb-WNya-cRao-JdnB-hs6T-VWie-cdmMtj" TYPE="LVM2_member"
/dev/mapper/centos-swap: UUID="e542d710-558b-410c-84ad-58c21f30c31a" TYPE="swap"
/dev/mapper/centos-root: UUID="9b40fb10-17f1-484b-9e58-271081677c5d" TYPE="xfs"
Verificamos que no está. Lo montamos con mount -av y volvemos a verificar. Añadimos el
parámetro -v / verbose para tener más datos ya que si no solo nos dará información en
caso de error.
Recursos
Redhat 7 doc - Using de mount command..
Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros
estándar de Linux. 28
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Introducción.
Centos 7 / RHEL 7 usa una combinación de procesos y soporte a nivel de kernel para
proporcionar ficheros compartidos mediante NFS. Todas las versiones NFS dependen de
RPC (Remote Procedure Calls) entre cliente y servidor. En Centos7 esta comunicación la
gestiona el servicio rpcbind. Los servicios usados por NFS son:
Instalación
En este capítulo veremos como instalar y configurar un servidor NFS. Entiendo que la
configuración cliente forma parte más de otros temas de esta sección.
Echamos un ojo siempre primero al estado inicial de los servicios, si están activados para
su inicio automático y si están o no iniciados.
Network filesystems & file services. Proveer / configurar discos compartidos de red
mediante NFS. 29
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
ATENCIÓN.
RPCNFSDARGS=" 8 -N 3"
Ahora si podriamos iniciar el servicio nfs-server sin tener iniciado rpcbind y verificar
Network filesystems & file services. Proveer / configurar discos compartidos de red
mediante NFS. 30
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Firewall ????
mkdir /var/mi_share
chmod 777 /var/mi_share/
Configuramos en /etc/exports el servidor NFS para que "exporte" dicho directorio a mi red
192.168.122.162/24:
/var/mi_share 192.168.122.0/24(rw,sync,no_root_squash,no_all_squash)
Donde:
Network filesystems & file services. Proveer / configurar discos compartidos de red
mediante NFS. 31
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
[]# exportfs -v
/var/mi_share 192.168.122.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_roo
NOTAS
Ver más opciones de montaje.
selinux ???? Funciona si monto en otra ruta ???
Referencias
https://www.howtoforge.com/nfs-server-and-client-on-centos-7
http://www.unixmen.com/setting-nfs-server-client-centos-7/
https://access.redhat.com/documentation/en-
US/Red_Hat_Enterprise_Linux/7/html/Storage_Administration_Guide/ch-nfs.html#s2-nfs-
how-daemons http://www.certdepot.net/rhel7-provide-nfs-network-shares-specific-clients/
Network filesystems & file services. Proveer / configurar discos compartidos de red
mediante NFS. 32
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Introducción.
Actualmente las herramientas más usadas para transferir ficheros de forma segura por la
red (excluyendo montaje de sistemas de ficheros remotos) son scp y sftp. Adicionalmente
podemos usar también para tareas concretas rsync especificándole que use ssh.
Utilidad scp
Scp se puede usar para tranferir ficheros entre servidores sobre una conexión segura y
encriptada. La sintaxis es sencilla:
Origen o destino será una rutal local o bien otro servidor que tendremos que especificarlo
en el modo clásico de ruta a otro sistema.
usuario@servidor:/ruta/fichero
Algunos ejemplos:
Network filesystems & file services. Transferir ficheros de forma segura por la red. 33
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Utilidad sftp
La utilidad sftp se puede usar para abrir una sesión segura e interactiva con un servidor
FTP. Si puedes conectarte con un sistema usando ssh puedes conectarte por sftp ya que
este está basado en ssh (forma parte de hecho del mismo grupo / paquete de utilidades:
openssh-clients). En Centos 7 está configurado por defecto en /etc/ssh/sshd_config
mediante la línea:
sftp usuario@servidor
Una vez conectados el juego de comandos a usar es el clásico de ftp: help, ls, cd directorio,
mkdir directorio, rmdir directorio y put y get para transferir ficheros, exit para cerrar la
conexión…
sftp usuario@sistema_remoto
El comando más útil que debemos conocer es help , que nos mostrará todos los
comandos disponibles.
sftp> help
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
....
Network filesystems & file services. Transferir ficheros de forma segura por la red. 34
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Algunos ejemplo de los comandos más habituales para ver en que directorio estamos y
listar ficheros. IMPORTANTE: para referirnos a nuestro equipo local basta con
anteponer una “l” de local al comando como vemos:
sftp> pwd
Remote working directory: /root
sftp> ls
anaconda-ks.cfg scripts
sftp> lpwd
Local working directory: /home/javier
sftp> lls
all.csv hosts.csv proyectos
Biblioteca de calibre Imágenes Público
sftp> rm test01
Removing /root/test01
Network filesystems & file services. Transferir ficheros de forma segura por la red. 35
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Para copia de local a remoto usaremos el comando put que trabaja exactamente igual
que get .
sftp> lpwd
Local working directory: /home/javier/Documentos
sftp> lls
ebooks
web2py_manual_5th.pdf
sftp> put web2py_manual_5th.pdf
Uploading web2py_manual_5th.pdf to /root/web2py_manual_5th.pdf
web2py_manual_5th.pdf 100% 6582KB 6.4MB/s 00:01
Podemos ejecutar un comando en una shell local sin salirnos de sftp con “!”
sftp> python -V
Invalid command.
sftp> !python -V
Python 2.7.9
Utilidad rsync
Rsync no parece que sea una cuestión de examen, se puede obviar.
Rsync tiene una sintaxis muy similar a scp pero con un amplio abanico de parámetros. La
especialidad de rsync es su habilidad de analizar los ficheros y copiar solo los que tienen
cambios entre origen y destino. Esto puede suponer reducir mucho tiempo y uso de la red
en copias habituales recursivas entre sistemas. Basicamente el interés aquí es saber que
puede usarse con ssh para transferir archivos de forma segura. Se instala como siempre:
La sintaxis sería:
Ejemplo:
Network filesystems & file services. Transferir ficheros de forma segura por la red. 36
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
En la ayuda del comando vienen muchos ejemplos pero estos son los que se usan
habitualmente.
X11 Forwarding.
X11 Forwarding no parece que sea una cuestión de examen, se puede obviar.
ssh -Y usuario@servidor
Firefox &
Ayuda local.
Las páginas de man de los comandos nos ofrecerán la ayuda necesaria.
Network filesystems & file services. Transferir ficheros de forma segura por la red. 37
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
NOTAS SOLAMENTE
Todo esto viene para que te acuerdes de que para obtener la ayuda de man para configurar
estos ficheros deberás buscarla con man yum.conf . Puede serte muy importante en el
examen.
Un vistazo a una instalación de Centos 7 nos mostrará una serie de fichero de configuración
de repositorios
Cada uno de ellos puede incluir uno o más repositorios. Deben acabar en .repo si no el
sistemas los obvia (ya sabemos una forma de desactivarlos). Si echamos un ojo a uno. p.e.
"Centos-Base.repo" nos encontramos con varias secciones que definen repositorios. Por
ejemplo:
Network filesystems & file services. Actualizar paquetes desde la red, un repositorio o el
sistema de archivos local. 38
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Network filesystems & file services. Actualizar paquetes desde la red, un repositorio o el
sistema de archivos local. 39
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
$releasever = 7.2.1511
$basearch = x86_64
$infra = Este parece que no se usa de momento.
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=
Si listamos los repositorios con yum nos mostrará los configurados entre ellos el que
acabamos de ver:
Network filesystems & file services. Actualizar paquetes desde la red, un repositorio o el
sistema de archivos local. 40
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Un servidor http con una configuración adecuada. Apache en este caso pero podría ser
otro
Directorios con los paquetes en el formato adecuado y una BBDD asociada.
La utilidad para crear / actualizar la BBDD del repositorio, createrepo .
Creamos un directorio en la ruta por defecto que usa Apache para hacerlo más sencillo. La
estructura del directorio será conforme a Version / Release para poder crear más
repositorios posteriormente con la misma sintaxis.
mkdir -p /var/www/html/repos/centos/7/2/
Normalmente no será necesario hacer nada más ya que en la configuración por defecto de
Apache en Centos 7 dejará navegar por dichas rutas -> http://host/repos/... En el examen no
tendremos un navegador así que para probarlo usamos lynx que digo yo para algo lo hemos
instalado.
lynx http://localhost/repos
Esto nos informará del directorio que estamos usando y nos dejará movernos por estos. Si
da algún tipo de error algo está mal.
Network filesystems & file services. Actualizar paquetes desde la red, un repositorio o el
sistema de archivos local. 41
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Para obtener los paquetes tenemos varias opciones. Un par de ellas que combinadas son
las mejores probablemente. Copiar los paquetes de una ISO y/o sincronizarlos con un
repositorio.
Esto es tan sencillo como bajar la ISO adecuada de los repositorios correspondientes,
montarla y copiar los ficheros.
mkdir -p /var/www/html/repos/centos/7.2.1511/os/x86_64/
mount -t iso9660 CentOS-7-x86_64-DVD-1511.iso /media/
cp -R /media/* /var/www/html/repos/centos/7.2.1511/os/x86_64/
¿Por que hemos creado directorios adicionales? Para no limitarlos. Si navegamos por los
mirror de Centos vemos que el equivalente a la ISO base cuando bajas un DVD es ese
mismo directorio "../os/x86_64". Podemos tener solo este repositorio pero si queremos crear
el resto de repositorios adicionales que no incluye el DVD base como extras, updates,
cloud,... también podremos hacerlo. Podríamos no haberlo hecho y servir el "base"
directamente en "../7.2.1511/". Sería correcto pero nos limitaríamos.
Para probar nuestro repositorio en red local lo mejor es desactivar el resto. Lo más rápido
es renombrar los ficheros (.repo.NO p.e.) o los moverlos a un directorio de Backup.
Creamos un fichero p.e. CentOS-Base-local.repo con una configuración nuestra que apunte
Network filesystems & file services. Actualizar paquetes desde la red, un repositorio o el
sistema de archivos local. 42
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
[base_local]
name=CentOS-7.2 Base -LOCAL-
baseurl=http://localhost/repos/centos/7.2.1511/os/x86_64/
gpgcheck=0
Sin complicaciones como variables y sin gpg key (podemos apuntar esta igual a local como
estaba en los otros ficheros repo). Lo probamos ahora de forma sencilla con yum repolist
Veremos que el nos resuelve dependencias y nos informa que el repositorio de instalación
es el nuestro "base_local". Si lo instalamos y hacemos un "yum info git" nos informará que
está instalado desde nuestro repositorio.
Network filesystems & file services. Actualizar paquetes desde la red, un repositorio o el
sistema de archivos local. 43
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Ayudas.
man yum.conf y buscas por "name=" para ir directo a la sección de definiciones de repos.
Network filesystems & file services. Actualizar paquetes desde la red, un repositorio o el
sistema de archivos local. 44
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
yum -y update
yum -y install httpd httpd-manual
Verificamos que puertos tiene abiertos el sistema. Olvídate ya de netstat (cuanto antes
mejor, aunque puedes instalarlo). El comando a usar y aprender ya es “ss”. Para ver los
puertos TCP abiertos con número de puerto p.e. “ss -tan”
[]# ss -tan
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
ESTAB 0 0 192.168.122.215:22 192.168.122.1:37731
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
Vemos que no están abiertos los puertos de Apache porque aún no está iniciado este.
Si miramos ahora los puertos abiertos p.e. con “ss -tan” veremos que está abierto ya el
puerto 80 (aun no tenemos configurado SSL para HTTPS)
Podemos desde otra máquina a abrir con la IP / nombre de nuestro equipo la página de
Apache y nos debe aparecer la página de Testing de este. Es interesante probar también
que funcione el manual en http://ip_servidor/manual. Verificar que podemos conectar al
menos localmente y acceder al manual: lynx http://localhost/manual
La mayoría de navegadores nos dejarán configurar el proxy para “todo” o separar algunas
configuraciones concretas (ssl, ftp, …) y excluir direcciones para su acceso directo sin que
intente acceder a estas a través del proxy.. En general todos nos dejarán tambien maracar
autorderección y/o una URL para una configuración automática a través de protocolos
específicos para tal efecto.
Linux shell.
En Linux podemos configurar el proxy del sistema mediante variables de entorno. La
mayoría de aplicaciones y utilidades tendrán en cuenta dichas variables si están presentes
aunque muchas de ellas dejan configurarlo como opciones en sus ficheros de configuración
y/o parámetros.
Mediante las siguientes variables podemos establecer un proxy para nuestro shell que
usarán la mayoría de las aplicaciones. Ejemplos:
http_proxy="http://myproxy:3128"
https_proxy="https://myproxy:3128"
ftp_proxy="ftp://myproxy:3128"
no_proxy=".mylan.local,.domain1.com,host1,host2"
export http_proxy="http://myproxy:3128"
En el caso de Redhat / Centos que se usa Yum como gestor de paquetes este usará
también el proxy del sistema si está establecido en la variable http_proxy, pero si queremos
configurar un proxy específico para YUM podemos hacerlo en su archivo de configuración
/etc/yum.conf mediante la línea:
proxy=http://webserv.domain.com:8080
Ejecutamos luego
http_proxy=http://proxy.yourdomain.com:8080/
proxy_user=user
proxy_password=password
Network security.
Ficheros de configuración.
Normalmente, tanto en Centos como en la mayoría de sistemas Linux con pocas
variaciones la configuración de SSH con certificados será similar en cuanto a ficheros y
ubicación. El fichero principal de configuración del servicio servidor ssh es
/etc/ssh/sshd_config. Algunos parámetros importantes de configuración en
“/etc/ssh/sshd_config” relacionados con acceso mediante pares de claves:
PasswordAuthentication yes/no - Nos permite deshabilitar el acceso al servidor SSH
mediantes password. Solo nos permitirá acceso mediante certificados.
Ficheros de configuración utilidades ssh. Desde el usuario que nos conectaremos a otros
sistemas con servidor SSH debemos conocer los siguientes ubicaciones / ficheros
importantes en el Home del usuario:
Network security. Configurar acceso remoto usando pares de claves público/privada basado
en SSH. 51
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Fichero Descripción
Utilidades ssh.
ssh-keygen – Se usa inicialmente para generar los certificados.
ssh-copy-id – Se usa para simplificar la copa de certificados públicos entre sistemas ya
que simplifica la tarea copiando el certificado en el sitio correcto sin que tengamos
necesidad de saber más.
Como vemos durante el proceso nos pregunta donde almacenar el certificado privado (y
luego almanca el público también en la misma ruta). También nos da la posibilidad de
introducir una “passphrase” que nos preguntará cada vez que usemos el certificado.
Podemos también no darle una passphrase para generar un certificado de uso directo.
Verificamos que los permisos son bastante restrictivos para el directorio y fichero con
certificado de clave privada.
Network security. Configurar acceso remoto usando pares de claves público/privada basado
en SSH. 52
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Es muy importante que solo el usuario concreto pueda ver y manipular el certificado de
clave privada.
ssh-copy-id root@192.168.110.135
OJO con el usuario, copiaremos la clave ssh para ese usuario exclusivamente.
REVISAR
ssh -l usuario SERVER ssh usuario@SERVER
Network security. Configurar acceso remoto usando pares de claves público/privada basado
en SSH. 53
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Referencias
https://access.redhat.com/documentation/en-
US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/s1-ssh-
configuration.html#s2-ssh-configuration-keypairs
https://linuxcode.wordpress.com/2009/08/08/autentificacion-mediante-claves-publicas-en-
ssh/
https://access.redhat.com/documentation/en-
US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/s1-ssh-
configuration.html#s2-ssh-configuration-keypairs
http://www.itzgeek.com/how-tos/linux/centos-how-tos/ssh-passwordless-login-centos-7-rhel-
7.html
http://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/
Network security. Configurar acceso remoto usando pares de claves público/privada basado
en SSH. 54
Linux Foundation Certified Engineer (LFCE) - Guía de estudio
Introducción.
Si manejas habitualmente iptables y pensabas que sabias algo de configuración de
Firewalls en Redhat / Centos… se fastidió. Con Centos 7 cambian las utilidades de
configuración del Firewall y toca aprendérselas de nuevo. Firewalld sustituye a iptables (al
servicio). Sigue existiendo la posibilidad de instalar iptables mediante yum y desactivar
firewalld pero no se recomienda
man firewall-cmd
firewall-cmd --help
Zonas.
Cuando configuramos firewalld lo primero que tendremos que hacer es asignar nuestro/s
interface/s a una Zona. Una Zona es básicamente un conjunto de reglas que definen que
tráfico estará permitido dependiendo del nivel de confianza que se tenga en la red a la que
se está conectado.
Existen una serie de Zonas predefinidas y listas para usar en /etc/firewalld/. Dichas Zonas
son las siguientes:
drop – Cualquier paquete de red entrante será eliminado. No hay replica. Solo
conexiones de red de salida son posibles.
block – Cualquier conexión de red de entrada será rechazada con el mensaje “icmp-
host-prohibited” para IPv4 y “icmp6-adm-prohibited” para IPv6. Solo se permiten
Ver la configuración de una zona (sin indicarle una concreta mostrará la zona por defecto ->
public)
Si no tuvieramos en public ningún interface nos echa una mano para que nos centremos.
firewall-cmd --list-all-zones
¿Y como sabe si un interface está o no en una zona? La forma más efectiva debería ser:
firewall-cmd --set-default-zone=work
Servicios.
En firewalld existe el concepto de servicio y una serie de servicios predefinidos con el
propósito de facilitar la configuración de acceso de las aplicaciones. Los servicios no solo
son listas de puertos locales y destino si no que pueden añadir listas de módulos “firewall
helpers” que se activan automáticamente al activar el servicio. La idea es hacer la vida del
administrador más fácil. Los servicios son configuraciones en ficheros de configuración
individuales XML (service-name.xml) tal como se describe en el man firewalld.service(5). La
ubicación de los ficheros será:
Para crear un nuevo servicio lo mejor será copiar uno de los servicios predefinidos en la
nueva ubicación y modificar el fichero XML.
Por tanto cuando habilitemos el acceso a las aplicaciones con firewalld lo haremos
normalmente habilitando servicios predefinidos. Podemos echar un ojo a la definición XML
de un servicio sencillo (puerto básicamente) como HTTP.
vim /usr/lib/firewalld/services/http.xml
La forma de activar por tanto de forma permanente el acceso a Apache sería activando
el/los servicios correspondientes y recargando la configuración.
Vemos que nos muestra los interfaces pertenecientes a la zona, servicios habilitados (que
vemos en un segundo), puertos habilitados,...
Modo pánico
Podemos de forma rápida conmutar el firewall a modo pánico para bloquear TODO el tráfico
entrante / saliente. Los comandos que activan / desactivan / visualizan el modo pánico son:
firewall-cmd --panic-on
firewall-cmd --panic-off
firewall-cmd --query-panic
Un comando normal de estado no nos mostrará si está en este estado así que si entrás en
pánico ten cuidado no te vuelvas loco después.
Ficheros de configuración.
Ya hemos ido viendo donde están los ficheros de configuración. Hacemos un repaso
interesante: Todos los valores por defecto (predefinidos) están en: /usr/lib/firewalld .
Tenemos en directorios valores para las zonas predefinidas, servicios por defecto y tipos de
comandos icmp
Ficheros logs.
El fichero log por defecto para el servicio Firewalld está en /var/log/firewalld
Referencias.
RHEL7 Doc. Using Firewalls
How to Configure ‘FirewallD’ in RHEL/CentOS 7 and Fedora 21
EMAIL SERVICES
Introducción.
PENDIENTE XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Condiguración previa.
Asegurarse lo primero que nuestro host tiene definida su dirección IP y nombre corto y de
dominio en el fichero /etc/hosts. Nos evitaremos problemas con Postfix.
Instalación de Postfix
Postfix es el MTA por defecto en Centos 7. Lo normal incluso en una instalación mínima es
que esté siempre instalado. Si no lo estuviera se instala como siempre.
Configuración.
El fichero de configuración principal de postfix es:
/etc/postfix/main.cf
Párametros importantes.
Los parámetros de uso más habitual y que debermos revisar en toda nueva instalacíón de
Postfix son los siguientes:
mynetworks - Especifica las redes de confianza que pueden mandar emails a través
de Postfix.
inet_interfaces - Especifica los interfaces de red en los que aceptará correo. Valores
habituales son all , localhost que será lo normal en cualquier hosts que solo usa el
correo local o el interface concreto donde queremos que escuche.
inet_protocols - Si no vamos a usar IPV6 conviene sustituir el valor por defecto all por
el valor ipv4 para evitar warnings molestos.
Ejemplo de configuración
Probar un ejemplo con usuarios locales / externos (con acceso desde otras máquinas)
[~]# reboot
[~]# hostname
centos7.localdomain.net
myhostname = centos7.localdomain.net
mydomain = localdomain.net
myorigin = $myhostname
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = subnet
inet_interfaces = all
inet_protocols = ipv4
Realizaremos unas pruebas rápidas para verificar el funcionamiento del correo. Para ello
instalaremos mutt , un sencillo cliente de correo que nos facilitará la labor.
[~]# su - test01
[~]# mutt
/home/test01/Mail no existe. ¿Crearlo? ([sí]/no):
Las acciones de menú para enviar correo son muy sencillas y bien descritas. Componemos
un correo. Nos abrirá el editor vim para escriber el cuerpo del correo. Acabamos guardando
y saliendo de vi. Luego nos ofrece el menu para enviarlo.
m Nuevo correo.
To: test02
Subject: Prueba desde test01 a test02
Prueba de envio de correo de usuario test01 a usuario test02
:wq
y mandar
i salir
q salir
[~]# su - test02
[~]# mutt
/home/test01/Mail no existe. ¿Crearlo? ([sí]/no):
Nos mostrará en una "lista" el correo enviado desde el usario test01 con los datos de
cabecera de nuestros usuarios y dominios que es una de las configuraciones que nos
interesa verificar..
Ayuda.
PENDIENTE XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Referencias.
Setting Up Email Services (SMTP, Imap and Imaps) and Restricting Access to SMTP
Mutt – A Command Line Email Client to Send Mails from Terminal