You are on page 1of 20

Taller 11: Gestin de FileSystem Local y en Red

#############################################################################
Estableciendo los nombres de host del Host anfitrin y la mquina virtual
######################################################################
Ejecutar en el Host Anfitrin
----------------------------------------------------------------------Host Anfitrion
si ip es 192.168.130.101 --> pc1.adiestra.pe
si ip es 192.168.130.109 --> pc9.adiestra.pe
si ip es 192.168.130.111 --> pc11.adiestra.pe
$> hostnamectl set-hostname pcX.adiestra.pe
Agregar al final del /etc/hosts
----------------------------------------------------Ej: Ip mquina anfitrion 192.168.130.102
Ip mquina virtual 192.168.130.202
$> vim /etc/hosts
.
.
192.168.130.102 pc2.adiestra.pe pc2
192.168.130.202 server2.adiestra.pe server2
Cerramos el terminal grfico y abrimos uno nuevo y ejecutamos
$> hostnamectl
$> ping pc2
$> ping server2
Nos conectamos a la mquina virtual
$> ssh root@192.168.130.202 ---> ip de la mquina virtual
Ejecutar en la mquina virtual
------------------------------------------------------------------Mquina Virtual
si ip es 192.168.130.201 --> server1.adiestra.pe
si ip es 192.168.130.209 --> server9.adiestra.pe
si ip es 192.168.130.211 --> server11.adiestra.pe
$> hostnamectl set-hostname serverY.adiestra.pe
Agregar al final del /etc/hosts
-----------------------------------------------------Ej: Ip mquina anfitrion 192.168.130.102
Ip mquina virtual 192.168.130.202
$> vim /etc/hosts
.
.
192.168.130.102 pc2.adiestra.pe pc2
192.168.130.202 server2.adiestra.pe server2
Cerramos la sesin ssh y nos volvemos a conectar y ejecutamos
$> exit
$> ssh root@server2

$> hostnamectl
$> ping pc2
$> ping server2
Particionamiento de discos (fdisk)
################################################################################
######
Ejecutamos como root en el host anfitrion virt-manager
$> virt-manager
Con el asistente grfico asignamos un nuevo disco a la mquina
virtual (click en la mquina virtual y luego ir a Editar-> Detalles de la mquina vi
rtual)
Luego le damos click al icono del foco "Mostrar detalles de la mquina virtual"
Click en agregar hardware, Seleccionamos Storage; crear imagen de disco
de 2GB
Desmarcar "Alojar en este momento la totalidad del disco"
Tipo de Disco: Disco VirtIO
Reiniciamos la mquina virtual
Nos conectamos a la mquina virtual por ssh
$> ssh serverY
Utilidades de Discos:
------------------------fdisk,mkfs,fsck,mount,df
------------------------$> fdisk -l
Muestra todas las particiones de todos los discos incluidos los discos usb
de una tabla de particin DOS
$> parted -l
Muestra todas las particiones de todos los discos incluidos los discos usb
de una tabla de particin DOS o GPT
$> df -h
Muestra informacion de las particiones montadas y los espacios usados
$> mount
Muestra los dispoditivos montados y sus opciones de montaje
$> cat /etc/fstab
Muestra la configuracion de los puntos de los montajes de
las particiones de disco
$> blkid /dev/vda1
Muestra el UUID de una particin; esa informacin puede ser
usado en el fstab
Ejercicio Particionar el nuevo disco agregado a la mquina virtual:
------------------------------------------------------------------$> su $> fdisk -l
este comando verifica como se detecto el disco ej:/dev/vdb

ejecutar la utilidad de particiones de discos en el disco nuevo


(suponiendo que ha sido detectado como /dev/vdb)
$> fdisk /dev/vdb
m -->
p -->
d -->
w -->

muestra ayuda
imprime la lista de particiones
borra particion, si hay mas de una, se pide el numero
de particion
escribe los cambios de particiones en modo fisico

Creando una particion primaria:


------------------------------n
--> crea una nueva particion
p
--> crea una particion primaria
1
--> crea la primera particion primaria
Enter
--> elige el cilindro 1 como inicio
+1G Enter --> tamao de la particion 1G
w
--> escribe los cambios en el disco
$> fdisk -l
Si se equivoc en el particionamiento, entonces:
d
n
p

--> borra
--> nuevamente crea particion
--> lista las particiones

observacion: Se pueden crear hasta 4 particiones primarias


Bloques: Muestra el numero de bytes ocupados por una particion
Ejercicio creando dos particiones primarias en el disco nuevo de 2 GB
--------------------------------------------------------------------$> fdisk /dev/vdb
Primero borro la particin existente
d
Luego imprimo la tabla de particiones
p
Crear una nueva particin
n
--> crea una nueva particion
(consulta si se quiere crear una
particion primaria o extendida)
p
--> aqui sale el nmero de particion que quiero crear
1
Primer cilindro: Enter
last cilindro: +1G
p
--> lista mi tabla de particiones
n
p
2
primer cilindro: Enter
Ultimo cilindro: Enter
p

--> graba las modificaciones

$> fdisk -l
Ejercicio: Crear 5 particiones (2 primarias, 1 extendida y 2 lgicas)
---------------------------------------------------------------------$> fdisk /dev/vdb
p
d
1
d
n
p
1
Enter
+512M
n
p
2
Enter
+512M
n
e ---> crea una particion extendida
3 ---> numero de particion 3
Enter
Enter
p ---> Tenemos 2 primarias y 1 extendida
n
l ---> Crea una logica
Enter
+512M
n
l
Enter
Enter
p --> Tenemos 2 primarias, una extendida y 2 logicas
w
$> fdisk -l
Con las particiones creadas, se formatear de la siguiente forma:
/dev/vdb1 ------------> ext3
/dev/vdb2 ------------> ntfs
/dev/vdb5 ------------> ext4
/dev/vdb6 ------------> swap
Formatear particin en ext3
$> mkfs.ext3 /dev/vdb1
Formatear particin en ntfs
* Le vamos a dar primero soporte de ntfs a rhel
Instalamos epel
$> yum -y install epel-release
$> yum -y install fuse-ntfs-3g
$> yum -y install ntfsprogs
$> mkfs.ntfs /dev/vdb2

Formatear particin en ext4


$> mkfs.ext4 /dev/vdb5
Formatear como disco swap una particin
$> mkswap /dev/vdb6
Ahora crear directorios para montar las particiones
$> mkdir /data1
$> mkdir /data2
$> mkdir /data3
Montar las particiones
$> mount -t ext3 /dev/vdb1 /data1
$> mount /dev/vdb2 /data2
(si no se le pone -t autodetecta el tipo)
$> mount /dev/vdb5 /data3
$>
$>
$>
$>
$>

mkdir /data1/prueba
ls /data1
df -h
yes > /data2/archivo
df -h

Desmontar el /data2
$> umount /data2

$> umount /dev/vdb2


Definir un punto de montaje permanente, que se monte automticamente
##########################################################################
al reiniciar el equipo (montar /data1)
$> blkid /dev/vdb1 (me va a mostrar el UUID)
$> vim /etc/fstab (Agregar al final del archivo)
UUID=XXXXXXXXX /data1 ext3 defaults 0 0
Ampliar el disco swap
--------------------------Verifico el tamao del swap actual
$> free
Verifico el UUID de la nueva particin swap
$> blkid /dev/vdb6
Agrego la definicin de swap al /etc/fstab
$> vim /etc/fstab
UUID=YYYYYYYY swap swap defaults 0 0
Deshabilito todas las particiones swap
$> swapoff -a
Habilito ahora todas las particiones swap, para que se lea la nueva
particin
$> swapon -a
Verificar el nuevo tamao del swap
$> free
Comentar las 2 ltimas lineas agregadas al fstab

$> vim /etc/fstab


#
#
$> swapoff -a
$> swapon -a
$> cat /etc/mtab
Muestra informacion de las particiones montadas y sus logs (sistema
de archivos,permisos)
Verificar errores en una particin
--------------------------------------Se debe primero desmontar la particin
$> umount /dev/vdb1
Luego se comprueba los errores de acuerdo al tipo de sistema de archivos
$> fsck.ext3 /dev/vdb1
Particionar con Parted
##########################################################################
Borrar todos los puntos de montaje agregados en /etc/fstab con fdisk
/data1
swap
Ej
UUID=d6b368fd-0009-450b-90ae-88a27e467e2b /data1 ext3 defaults 0 0
UUID=151acef4-d21c-487e-8a0f-008367142bdc swap swap defaults 0 0
Borrar esas lneas
$>
$>
$>
$>
$>

umount /data1
umount /data2
umount /data3
swapoff -a
swapon -a

Particionando el disco con parted


$> parted /dev/vdb
Ayuda de parted
(parted) help
Imprimir tabla de particiones actual
(parted) print
Definiendo el tipo de tabla de particiones (gpt, msdos)
(parted) mklabel gpt
Borrar todas las particiones: Yes
Crear una particion (todas las crear como primarias)
(parted) mkpart
Nombre de la particin? []? data1
Tipo de sistema de ficheros? [ext2]?
Inicio? 1
Fin? 512
(parted) mkpart
Nombre de la particin? []? data2

Tipo de sistema de ficheros? [ext2]?


Inicio? 512
Fin? 1024
(parted) mkpart
Nombre de la particin? []? data3
Tipo de sistema de ficheros? [ext2]?
Inicio? 1024
Fin? 2147 (se ve en el detalle del disco)
(parted) quit
$> parted -l
Luego se formatean con mkfs.xxx y se definen los puntos de montaje permanente
en el /etc/fstab como en el anterior laboratorio.
Gestion de Volmenes Lgicos LVM
################################################################################
######
Conectarse a la mquina virtual por ssh
$> ssh IPdetumaquinaVirtual
Listar los discos de la VM
$> parted -l
Instalar las utilidades de lvm
$> yum -y install lvm2
Si la instalacin de CentOS es minima y no se definieron particiones en LVM
reiniciar
$> reboot
Visualizar los Volmenes Fsicos y a que grupo de volumen estan asignados
$> pvscan
Visualizar los Grupos de Volumenes existentes
$> vgscan
Visualizar los Volmenes Lgicos existentes
$> lvscan
Particionar el nuevo disco y crear 1 particion primaria de 1024M en un disco gpt
################################################################################
#
Borramos primero las particiones anteriores
$> parted /dev/vdb
(parted) rm 3
(parted) rm 2
(parted) rm 1
(parted) print
(parted) mkpart
Nombre de la particin? []? home
Tipo de sistema de ficheros? [ext2]?
Inicio? 1
Fin? 1024
(parted) print

(parted) quit
$> parted -l
Crear un Volumen Fsico
$> pvcreate /dev/vdb1
warning ..... : y
Ver los volmenes fsicos existentes
$> pvscan
Crear un grupo de Volumen
$> vgcreate VolGroup /dev/vdb1
Ver los VG existentes
$> vgscan
Mostrar informacin de un Grupo de volumen creado
$> vgdisplay VolGroup
Crear un nuevo volumen lgico
$> vgdisplay VolGroup (me da info del espacio libre)
$> lvcreate VolGroup -n home -L 972M
Borrar un volumen logico (No ejecutar)
$> lvscan (me da info de los volumenes lgicos)
$> lvremove /dev/VolGroup/home
Montar el nuevo volumen lgico en un directorio
$> cd /
$> mv home home.old
$> mkdir home
Formateamos el nuevo volumen lgico con ext4 y lo montamos en home
$> mkfs.ext4 /dev/mapper/VolGroup-home
$> mount /dev/mapper/VolGroup-home /home
$> df -h (vemos que el home tiene 1 GB)
Movemos todo lo del home antiguo al nuevo home
$> mv /home.old/* /home
Restaurar contextos de selinux
$> restorecon -FRvv /home
Agregamos el nuevo punto de montaje para el home
$> vim /etc/fstab (Agregar al final)
/dev/mapper/VolGroup-home /home ext4 defaults 0 0
Creamos una nueva particin para definirlo como PV y anexarlo
al VG existente
###################################################################
$> parted /dev/vdb
(parted) print
(parted) mkpart
Nombre de la particin? []? home2
Tipo de sistema de ficheros? [ext2]?
Inicio? 1024
Fin? 2147
(parted) print

(parted) quit
Redimensionar el volumen lgico para darle mas espacio
-----------------------------------------------------creamos el volumen fsico
$> pvcreate /dev/vdb2
Verificamos los pv asociados a un VG
$> pvscan
agregamos el volumen fsico al grupo de volumenes
$> vgextend VolGroup /dev/vdb2
$> pvscan
verificamos el nuevo espacio libre
$> vgdisplay VolGroup
desmontamos el home
$> umount /home
agregamos el espacio libre del VolGroup al volumen lgico y redimensionamos el fil
esystem
$> lvextend /dev/mapper/VolGroup-home -L 1,99G
Verificamos que no haya errores en el filesystem
$> e2fsck -f /dev/mapper/VolGroup-home

$> fsck.ext4 -f /dev/mapper/VolGroup-home


Redimensionamos el filesystem a su mximo tamao posible
$> resize2fs /dev/mapper/VolGroup-home
montamos nuevamente el home y comprobamos el nuevo espacio libre
$> mount /home
$> df -h
Gestion Visual
----------------Para esto se necesita tener el entorno grfico instalado,
instalar el paquete system-config-lvm y ejecutar
$> yum -y install system-config-lvm
$> system-config-lvm
Quotas de Disco
################################################################################
Nos conectamos al servidor virtual como root
Instalamos el paquete quota
$> yum -y install quota
Para habilitar la opcion de quotas en las particiones
donde se a definir las quotas de usuarios
Agregar en las opciones de montaje usrquota y grpquota
Agregaremos el soporte de quotas al directorio /home creado con LVM
$> vim /etc/fstab

/dev/mapper/VolGroup-home /home ext4 defaults,usrquota,grpquota 0 0


Montar nuevamente la particin para que se habiliten las opciones de quota
$> mount -o remount /home
Verificar que la particion tenga habilitada la opcion de quota
$> mount | grep quota
Generar el chequeo preliminar de quotas
$> quotacheck -auvgm
Habilitar el uso de quotas en todas las particiones con opciones de quotas
$> quotaon -a
Ver el reporte de uso de quotas de todos los usuarios
$> repquota -a
Ver las quotas definidas de un usuario
$> quota -u root
Crear una definicin de quotas para un usuario
$> edquota -u alumno
Antes
-----------------------------------------------------------------------------------------Disk quotas for user alumno (uid 1000):
Filesystem
blocks
soft
hard
inodes
soft
hard
/dev/mapper/VolGroup-home
0
0
0
0
0
0
Despues
-----------------------------------------------------------------------------------------Disk quotas for user alumno (uid 1000):
Filesystem
blocks
soft
hard
inodes
soft
hard
/dev/mapper/VolGroup-home
0
1000000
1000000
0
0
0
Loguearse como alumno
y crear un archivo que vaya creciendo hasta llegar al limite de quota
$> su - alumno
$> yes > crece
En otra consola ver los reportes de quota
$> su repquota -a
$> rm -f /home/alumno/crece
Ver la quota de un grupo (ej: grupo alumno)
$> quota -g alumno
Editar la quota de un grupo determinado (La quota de un grupo son la suma de esp
acios de
disco ocupados por todos los usuarios del grupo)
$> edquota -g alumno

Crear usuarios tuxito y linuxero


$> useradd -md /home/tuxito tuxito
$> passwd tuxito
$> useradd -md /home/linuxero linuxero
$> passwd linuxero
Aplicar quotas por Plantilla (asignar al usuario tuxito y linuxero la misma quot
a definida
en el usuario alumno)
$> edquota -p alumno tuxito linuxero
Aplicar la quota a todos los usuarios con uid mayor a 999
$> edquota -p alumno `awk -F: '$3 > 999 {print $1}' /etc/passwd`
NFS Server (la mquina virtual)
################################################################################
#
Instalamos los paquetes necesarios
$> yum -y install rpcbind nfs-utils
Habilitar servidor NFS
$> systemctl start rpcbind
$> systemctl start nfs-lock
$> systemctl start nfs-server
$> systemctl enable nfs-lock
$> systemctl enable nfs-server
$> systemctl enable rpcbind
Crear un
$> mkdir
$> chmod
$> touch

recurso compartido
/compartir
777 /compartir
/compartir/notas

Definir un recurso compartido


$> vim /etc/exports
/compartir *(rw)
---> se esta compartiendo el directorio /compartir
a todo el mundo (*) en modo lectura y escritura
/media

192.168.130.0/24(ro) --> se esta compartiendo el directorio


media a la red 192.168.130.0/0 en modo
solo lectura
$> systemctl restart nfs-server
$> exportfs ----> visualiza los recursos compartidos definidos
Definir puertos del NFS (agregando al final)
-----------------------------------------------$> vim /etc/sysconfig/nfs
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020
Habilitacin de Puertos en el Firewall
------------------------------------------------tcp 111

tcp
tcp
tcp
tcp
tcp
tcp
udp
udp
udp
udp
udp
udp
udp

662
875
892
2049
20048
32803
111
662
875
892
2049
20048
32769

Firewall de la mquina virtual


$> yum -y install iptables-services
$> vim firewall-bastion
-----------------------------------------------------------------------#!/bin/bash
# Firewall Bastion Adiestra
# 2014
echo "limpiando todas las reglas, deshabilitando firewalld"
systemctl stop firewalld
systemctl disable firewalld
systemctl stop iptables
echo "Estableciendo la politica por defecto a DROP"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo "configurando INPUT y OUTPUT"
echo "dando acceso total al loopback"
# todo lo que entra y sale desde el loopback se acepta
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
################ Nuestro host como SERVIDOR ###################################
###################3
echo "permitiendo acceso al servidor SSH (protocolo tcp, puerto 22) desde cualqu
ier origen "
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACC
EPT
echo "permitiendo acceso a los puertos de NFS"
iptables -A INPUT -p tcp -m multiport --dports 111,662,875,892,2049,32803,20048
-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 111,662,875,892,2049,32803,20048
-m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 111,662,875,892,2049,32769,20048
-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --sports 111,662,875,892,2049,32769,20048
-m state --state ESTABLISHED,RELATED -j ACCEPT
############### Nuestro host como cliente
#########################

####################################

echo "habilitando navegacion a internet desde nuestro host hacia los puertos SSH
,FTP,HTTP y HTTPS"
iptables -A OUTPUT -p tcp -m multiport --dports 20,21,22,80,443,8080,389,25,110,
143,993,995,465 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --sports 20,21,22,80,443,8080,389,25,110,1
43,993,995,465 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "habilitando las consultas DNS desde nuestro host"
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCE
PT
############### Reglas de Ping ################################################
#########################
echo "permitiendo el ping desde la LAN a nuestro host"
iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.130.0/24 -m stat
e --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -d 192.168.130.0/24 -m state
--state ESTABLISHED,RELATED -j ACCEPT
echo "haciendo ping desde nuestro host a la cualquier destino"
iptables -A OUTPUT -p icmp --icmp-type echo-request -m state --state NEW,ESTABLI
SHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m state --state ESTABLISHED,R
ELATED -j ACCEPT
#Guardando permanente las reglas
/usr/libexec/iptables/iptables.init save
--------------------------------------------------------------------------------$> chmod 755 firewall-bastion
$> ./firewall-bastion
$> systemctl restart iptables
$> iptables -S
Reiniciar NFS
$> systemctl restart nfs-server
Verificar los puertos que est haciendo el NFS
$> rpcinfo -p

NFS cliente (el host anfitrion)


#########################################################################
Editar el script de firewall del cliente
$> vim firewall-bastion
-----------------------------------------------------------------------#!/bin/bash
# Firewall Bastion Adiestra
# 2014
echo "limpiando todas las reglas, deshabilitando firewalld"
systemctl stop firewalld

systemctl disable firewalld


systemctl stop iptables
echo "Estableciendo la politica por defecto a DROP"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo "configurando INPUT y OUTPUT"
echo "dando acceso total al loopback"
# todo lo que entra y sale desde el loopback se acepta
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
################ Nuestro host como SERVIDOR ###################################
###################3
echo "permitiendo acceso al servidor SSH (protocolo tcp, puerto 22) desde cualqu
ier origen "
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACC
EPT
# ejemplo permitir SSH solo a la LAN
# iptables -A INPUT -i eth0 -p tcp -s 192.168.130.0/24 --dport 22 -m state --sta
te NEW,ESTABLISHED,RELATED -j ACCEPT
# iptables -A OUTPUT -o eth0 -p tcp -d 192.168.130.0/24 --sport 22 --m state --s
tate ESTABLISHED,RELATED -j ACCEPT
############### Nuestro host como cliente ####################################
#########################
echo "habilitando navegacion a internet desde nuestro host hacia los puertos SSH
,FTP,HTTP, HTTPS, SMTP, POP, IMAP"
iptables -A OUTPUT -p tcp -m multiport --dports 20,21,22,80,443,8080,389,25,110,
143,993,995,465,111 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --sports 20,21,22,80,443,8080,389,25,110,1
43,993,995,465,111 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "habilitando navegacion a internet desde nuestro host hacia los puertos NFS
"
iptables -A OUTPUT -p tcp -m multiport --dports 662,875,892,2049,32803,20048 -m
state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --sports 662,875,892,2049,32803,20048 -m s
tate --state ESTABLISHED,RELATED -j ACCEPT
echo "habilitando las consultas DNS y acceso NFS desde nuestro host"
iptables -A OUTPUT -p udp -m multiport --dports 53,111,662,875,892,2049,32769,20
048 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m multiport --sports 53,111,662,875,892,2049,32769,200
48 -m state --state ESTABLISHED,RELATED -j ACCEPT
############### Reglas de Ping ################################################
#########################
echo "permitiendo el ping desde la LAN a nuestro host"
iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.130.0/24 -m stat
e --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -d 192.168.130.0/24 -m state
--state ESTABLISHED,RELATED -j ACCEPT

echo "haciendo ping desde nuestro host a la cualquier destino"


iptables -A OUTPUT -p icmp --icmp-type echo-request -m state --state NEW,ESTABLI
SHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m state --state ESTABLISHED,R
ELATED -j ACCEPT
#Guardando permanente las reglas
/usr/libexec/iptables/iptables.init save
----------------------------------------------------------------------------------------------$> chmod 755 firewall-bastion
$> ./firewall-bastion
$> systemctl restart iptables
$> iptables -S
Instalar el paquete de cliente NFS
$> yum -y install nfs-utils
Verificar los recursos compartidos de un servidor NFS
$> showmount -e 192.168.130.X
Montar un recurso compartido del servidor NFS a un directorio local
$> mkdir /compartidoremoto
$> chmod 777 /compartidoremoto
$> mount -t nfs 192.168.130.X:/compartir /compartidoremoto
Verificar los dispositivos montados
$> mount
$> df -h
$> mkdir /compartidoremoto/prueba
En el servidor remoto ejecutar
$> ls -la /compartir
Desmontar el recurso nfs
$> umount /compartidoremoto
Caso Prctico
##################################################################
(Compartir un iso de instalacion por NFS, para instalar por red), esto se usa co
n un net-install o para mquinas Virtuales.
En el servidor nfs descargar el iso Ej: /root/centos7.iso
Luego montar el iso en un directorio que se va a compartir por NFS
$> mkdir /centos7
$> mount -o loop /root/centos7.iso /centos7
Ahora compartir el directorio /centos7 a todo el mundo en modo solo lectura
$> vim /etc/exports
/centos7
*(ro)
$> service nfs restart
Cuando pongamos la url de instalacin ser:
nfs://192.168.130.X:/centos7

* ISCSI Server
################################################################################
###########################
Vamos a configurar un servidor de storage en la mquina virtual compartiendo disco
s
a travs de iscsi
Apagamos el servidor y con Virt-Manager creamos un disco virtual de 2 GB (VirtIO
Disk) y se lo agregamos a
nuestra mquina virtual
Iniciamos el servidor y nos logueamos como root
Listamos los disco reconocidos
$> parted -l (nos muestra los disco; ejemplo nuestro nuevo disco es /dev/vdc)
Ahora creamos la tabla de particin GPT
$> parted /dev/vdc
(parted) mklabel gpt
(parted) quit
Instalacin de ISCSI server
----------------------------------------------------------------------------------------------------------$> yum -y install scsi-target-utils
Editamos la configuracin de iscsi (Agregamos al final)
$> vim /etc/tgt/targets.conf
--------------------------------------------------------------------------# Identificador del disco (LUN)
<target iqn.2014-10.server:target0>
# Disco en red a compartir
backing-store /dev/vdc
# Ip del servidor que puede montar este disco (iscsi initiator)
# en clase es la Ip de la mquina anfitrin
initiator-address 192.168.130.Y
# usuario y contrasea de autenticacion
incominguser pepito pepito
</target>
--------------------------------------------------------------------------$> systemctl start tgtd
$> systemctl enable tgtd
Verificacin de LUNs compartidas
$> tgtadm --mode target --op show
Opciones de iptables (puerto 3260 tcp)
$> vim firewall-bastion
------------------------------------------------------------------------------#!/bin/bash
# Firewall Bastion Adiestra
# 2014
echo "limpiando todas las reglas, deshabilitando firewalld"
systemctl stop firewalld

systemctl disable firewalld


/usr/libexec/iptables/iptables.init stop
echo "Estableciendo la politica por defecto a DROP"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo "configurando INPUT y OUTPUT"
echo "dando acceso total al loopback"
# todo lo que entra y sale desde el loopback se acepta
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
################ Nuestro host como SERVIDOR ###################################
###################3
echo "permitiendo acceso al servidor SSH (protocolo tcp, puerto 22) desde cualqu
ier origen "
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACC
EPT
echo "permitiendo acceso a los puertos de NFS"
iptables -A INPUT -p tcp -m multiport --dports 111,662,875,892,2049,32803,20048
-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 111,662,875,892,2049,32803,20048
-m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 111,662,875,892,2049,32769,20048
-m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --sports 111,662,875,892,2049,32769,20048
-m state --state ESTABLISHED,RELATED -j ACCEPT
echo "permitiendo acceso al host anfitrion al ISCSI server"
iptables -A INPUT -p tcp --dport 3260 -s 192.168.130.X -m state --state NEW,EST
ABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3260 -d 192.168.130.X -m state --state ESTABLI
SHED,RELATED -j ACCEPT
############### Nuestro host como cliente ####################################
#########################
echo "habilitando navegacion a internet desde nuestro host hacia los puertos SSH
,FTP,HTTP y HTTPS"
iptables -A OUTPUT -p tcp -m multiport --dports 20,21,22,80,443,8080,389,25,110,
143,993,995,465 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --sports 20,21,22,80,443,8080,389,25,110,1
43,993,995,465 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "habilitando las consultas DNS desde nuestro host"
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCE
PT
############### Reglas de Ping ################################################
#########################
echo "permitiendo el ping desde la LAN a nuestro host"

iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.130.0/24 -m stat


e --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -d 192.168.130.0/24 -m state
--state ESTABLISHED,RELATED -j ACCEPT
echo "haciendo ping desde nuestro host a la cualquier destino"
iptables -A OUTPUT -p icmp --icmp-type echo-request -m state --state NEW,ESTABLI
SHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m state --state ESTABLISHED,R
ELATED -j ACCEPT
#Guardando permanente las reglas
/usr/libexec/iptables/iptables.init save
-----------------------------------------------------------------------------------------$> ./firewall-bastion
$> iptables -S
* ISCSI cliente (Host Anfitrion)
################################################################################
#################################
Opciones de iptables como cliente(puerto 3260 tcp)
$> vim firewall-bastion
------------------------------------------------------------------------------------------#!/bin/bash
# Firewall Bastion Adiestra
# 2014
echo "limpiando todas las reglas, deshabilitando firewalld"
systemctl stop firewalld
systemctl disable firewalld
/usr/libexec/iptables/iptables.init stop
echo "Estableciendo la politica por defecto a DROP"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo "configurando INPUT y OUTPUT"
echo "dando acceso total al loopback"
# todo lo que entra y sale desde el loopback se acepta
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
################ Nuestro host como SERVIDOR ###################################
###################3
echo "permitiendo acceso al servidor SSH (protocolo tcp, puerto 22) desde cualqu
ier origen "
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACC
EPT
# ejemplo permitir SSH solo a la LAN
# iptables -A INPUT -i eth0 -p tcp -s 192.168.130.0/24 --dport 22 -m state --sta
te NEW,ESTABLISHED,RELATED -j ACCEPT

# iptables -A OUTPUT -o eth0 -p tcp -d 192.168.130.0/24 --sport 22 --m state --s


tate ESTABLISHED,RELATED -j ACCEPT
############### Nuestro host como cliente ####################################
#########################
echo "habilitando navegacion a internet desde nuestro host hacia los puertos SSH
,FTP,HTTP, HTTPS, SMTP, POP, IMAP, NFS"
iptables -A OUTPUT -p tcp -m multiport --dports 20,21,22,80,443,8080,389,25,110,
143,993,995,465,111 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --sports 20,21,22,80,443,8080,389,25,110,1
43,993,995,465,111 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 662,875,892,2049,32803,20048 -m
state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --sports 662,875,892,2049,32803,20048 -m s
tate --state ESTABLISHED,RELATED -j ACCEPT
echo "habilitando las consultas DNS y acceso NFS desde nuestro host"
iptables -A OUTPUT -p udp -m multiport --dports 53,111,662,875,892,2049,32769,20
048 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -m multiport --sports 53,111,662,875,892,2049,32769,200
48 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "permitiendo a nuestro host conectarse a servidores ISCSI"
iptables -A OUTPUT -p tcp --dport 3260 -m state --state NEW,ESTABLISHED,RELATED
-j ACCEPT
iptables -A INPUT -p tcp --sport 3260 -m state --state ESTABLISHED,RELATED -j AC
CEPT
############### Reglas de Ping ################################################
#########################
echo "permitiendo el ping desde la LAN a nuestro host"
iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.130.0/24 -m stat
e --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -d 192.168.130.0/24 -m state
--state ESTABLISHED,RELATED -j ACCEPT
echo "haciendo ping desde nuestro host a la cualquier destino"
iptables -A OUTPUT -p icmp --icmp-type echo-request -m state --state NEW,ESTABLI
SHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m state --state ESTABLISHED,R
ELATED -j ACCEPT
#Guardando permanente las reglas
/usr/libexec/iptables/iptables.init save
-------------------------------------------------------------------------------------------$> ./firewall-bastion
Ahora que hemos configurado el servidor, en la mquina cliente (host anfitrin), ins
talaremos el cliente iscsi
y montaremos el disco en red
Instalacin de ISCSI cliente
$> yum -y install iscsi-initiator-utils
Configuracin
$> vim /etc/iscsi/iscsid.conf
------------------------------------------------------------------------

41:node.startup = automatic
54:node.session.auth.authmethod = CHAP
58:node.session.auth.username = pepito
59:node.session.auth.password = pepito
-----------------------------------------------------------------------$> systemctl enable iscsid
Autodescubriendo los LUNs y montndolos
$> iscsiadm --mode discovery -t sendtargets --portal 192.168.130.X --login
Verificando que se inicio el servicio
$> systemctl status iscsid
Verificando si el kernel detecto el disco
$> dmesg
Verificando los LUNs montados
$> iscsiadm --mode session --op show
Obteniendo informacin detallada del LUN montado
$> iscsiadm --mode session -P 3
Listando los discos locales (ya se puede visualizar el disco en red)
$> parted -l
Ahora vamos a particionar el nuevo disco detectado (ej: en el host anfitrion se
ve como sdb)
$> parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart
Nombre de la particin? []? data
Tipo de sistema de ficheros? [ext2]?
Inicio? 1
Fin? 2147
Aviso: The resulting partition is not properly aligned for best performance.
Descartar/Ignore/Cancelar/Cancel? Ignore
(parted) print
(parted) quit
$>
$>
$>
$>
$>
$>
$>

parted -l
mkfs.xfs /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
yes > /data/boom
df -h
mount

Definiendo el punto de montaje de forma permanente (NO EJECUTAR EN CLASE)


$> vim /etc/fstab (agregar al final)
/dev/sdb1 /data xfs _netdev,rw,seclabel,relatime,attr2 0 0

You might also like