Aspectos de instalación/configuración
- La utilidad de instalación es llamada "Anaconda", mientras que la instalación automatizada se llama "kickstart".
- A la hora de instalar, si posee algun otro SO, RHEL trata de automaticamente detectarlo y configurar su arranque tambien.
- Si la computadora/servidor es parte de un dominio, podria verificar que el dominio sea agregado por el DHCP, si no deberá colocarlo manualmente.
- Es sugerible cambiar los "paths" como por ejemplo el "/dev/sda" con etiquetas de FileSystem o utilizar UUIDs.
- UEFI secure boot technology requiere que un kernel de SO este firmado con una llave privada reconocida para ser capaz de arrancar el sistema. En cada version Beta de RHEL, el kernel es firmado con un Red Hat Beta-specific private key el cual es diferete a los mas comunes "non-beta" releases.
- En cuanto a la actualizacion automatica de drivers, cuando comienza la instalacion Anaconda detecta los dispositivos conectados. Si coloca la etiqueta "OEMDRV" en algun dispositivo de almacenamiento entonces tratará de considerarlo como un disco que contiene drivers.
- Durante la instalacion, RHEL usa "tmux" (terminal multiplexer) para desplegar y controlar las ventanas de instalacion/configuracion, Cada ventana sirve para un proposito. El terminal multiplexer corre sobre la consola virtual 1 para dirigirse a ella seleccione CTRL+ALT+F1. Para cambiar a la consola grafica, utilice CTRL+ALT+F6
La utilidad Tmux, tiene 5 ventanas disponibles;
Cuando se utiliza el modo texto para la instalacion del SO ocurre lo siguiente:
- Instalador siempre usará el lenguaje ingles y la configuracion del teclado tambien en ingles.
- No puede utilizar metodos avanzados de storage (LVM, RAID, FCoE, etc)
- No es posible configurar un particionamiento de discos de forma personalizada
- No es posible seleccionar ningun paquete "add-ons" para ser instalado.
La tarjeta de red podria ser tambien una configuracion:
- BOND
- BRIDGE
- TEAM
- VLAN
Todas las instalaciones RHEL incluyen lo siguiente en cuanto a servicios de red:
- Ryslog service
- Email a traves de SMTP
- NFS
- SSH
- mDNS
- RHEL utitliza GRUB2 como su "boot loader", el cual es el primer programa que se ejecuta cuando se inicia y el responsable de cargar y transferir el control al sistema operativo.
- Si posee otro SO instalado, RHEL tratará de automaticamente detectarlo y configurar GRUB2 para que arranque con este.
- El programa de instalacion coloca a GRUB2 ya sea en MBR o GPT del dispositivo con el filesystem de root.
- Si "/usr" o "/var" esta particionado de manera separada al volumen de "root", el proceso de arranque podría ser mas complejo porque estos directorios contienen componentes criticos para este proceso. En algunas situaciones, cuando directorios son colocados en un iSCSI o en un FCoE, el sistema no arranca o se ralentiza debido al mensaje "Device is busy".
Sumado a lo anterior, si crea una particion "/var" asegurese que sea mayor a 3GiB; ya que esta mantiene el contenido de varias aplicaciones, ademas de que el software de actualizacion PackageKit actualiza los paquetes en este folder.
Mientras que "/usr" mantiene la mayoria del contenido del software de un RHEL, coloque este espacio en al menos 5GiB.
Logs de instalacion:
BIOS System vrs UEFI systems
Si aun el disco no esta formateado o el usuario borró toda la informacion de los discos, Anaconda usará:
- MBR si el disco tiene menos que 2^32 sectores o el equivalente a 2TiB
Le permite crear 4 particiones primarias.
Puede particionar 1 particion logica en 11 particiones logicas. La particion primaria que contiene la particion logica es conocida com "particion extendida"
Utilice Fdisk para crear y administrar.
- GPT si el disco posee 2^32 (2TiB) sectores o mas
Le permite configurar 128 particiones sin el concepto de logica o extendida.
Utilice "parted" en vez de "fdisk".
Deberá crear una particion "biosboot" en un sistema donde el disco contenga al boot loader en GPT.
Solo GPT esta permitido en sistemas UEFI.
La opción LVM Thin provisioning
Permite expandirse dinamicamente cuando se necesite debido al costo y efectos de allocacion de espacio en el storage.
El instalador automaticamente reserva 20% de cualquier solicitud de espacio para un LVM thin pool en el VG que lo contiene.
Cuando configura LVM, la configuracion gráfica no le permite especificar el tamaño de los "extents" del Volume Group, el tamaño por defecto es de 4 MiB. Si desea cambiar esto deberá realizarlo manualmente.
Particiones
RHEL recomienda que cree filesystem separados para los siguientes puntos de montaje:
- /boot
- / (root)
- /home
- swap
/boot:
Contiene el kernel del SO, el cual le permite arrancar el sistema
Espacio recomendado: 1GiB.
En algunos ambientes se configuran 2 particiones para /boot.
En sistemas x86_x64, el sistema del BIOS puede acceder a solo los primeros 1024 "cylinders" del disco en el arranque.
En algunos ambientes se configuran 2 particiones para /boot.
En sistemas x86_x64, el sistema del BIOS puede acceder a solo los primeros 1024 "cylinders" del disco en el arranque.
/ (root)
Es donde se ubica el directorio raiz, el cual es el directorio principal del sistema operativo y de la estructura de carpetas. Por defecto todos los archivos son escritos en este FileSystem
Espacio minimo recomendado: 10GiB.
/home
Ayuda para almacenar la informacion de los usuarios de manera separada a la informacion del sistema.
Le permitira actualizar o reinstalar RHEL sin borrar informacion de los usuarios.
Espacio minimo recomendado: Si selecciona la opcion de particion automatica, es recomendado tener minimo 55 GiB disponible.
swap:
Afianza y soporta la memoria virtual, la informacion es escrita a swap si no hay suficiente memoria RAM para almacenar la informacion que el sistema esté procesando.
Cuando el sistema no tiene espacio en swap, el kernel termina los procesos. Configurar mucho swap podria generar que se asignen dispositivos de almacenamiento pero inactivos y es un mal uso de los recursos. A su vez, mucho espacio en swap puede "esconder" perdidas de memoria (memory leaks).
El particinamiento automatico asume que la hibernacion no esta en uso. El maximo tamaño de swap esta limitado al 10% del tamaño del disco.
En algunos ambientes, se configuran 2 particiones para swap.
KDUMP
Es un mecanismo que en caso de un "crash" del sistema, este captura informacion para determinar la causa de la caida.
Usuarios
Al proceso de instalacion, se requiere crear usuarios, ya sea el root o uno normal, uno de ellos debe ser creado al menos, si no elige el root, es recomendado que al crear el usuario normal le brinde los privilegios administrativos (que sea parte del wheel group)
Si selecciona la configuracion avanzada de usuarios, el rango de ID's para los usuarios normales comienza con el numero 1000. Sin embargo considere comenzar con el numero 5000, ya que el rango del 0 al 999 es para usuarios del sistema y grupos, ese rango podría incrementarse en un futuro y esto sobrescribira los ID's en caso de un upgrade.
SELINUX
- Provee una capa adicional al sistema de seguridad.
- Responde a la pregunta:
¿Podria el <sujeto> hacer <acccion> al <objeto>?, Por ejemplo: Podria el web server acceder a los archivos en el home del usuario xz?
- La politica de estandard de acceso basada en usuario, grupo y otros permisos (DAC-Discretionary Access Control) no permite a los administradores del sistema crear politicas de seguridad "fine-grained" o de grano fino. Por ejemplo, restringir a aplicaciones solamente trabajar con ciertos logs mientras otra aplicación más bien agrega información a los log files.
- SELINUX implementa MAC = Mandatory Access Control.
- Cada proceso y recurso de sistema tiene una etiqueta especial de seguridad llamada SELINUX context.
- SELinux y sus reglas son verificadas posterior a las reglas DAC. Por lo tanto SELinux no es utilizado si las reglas DAC ya fueron aplicadas anteriormente.
SELinux Context:
- Un SELinux context es un identificador el cual abstrae detalles a nivel de sistema y se enfoca en las propiedades de seguridad de la entidad.
- SELinux usa estos contextos en una serie de reglas las cuales definen como procesos pueden interactuar con otros procesos y recursos del sistema. Por defecto la politica no permite ninguna interacción si una regla no le permite el acceso.
Los contextos de SELinux, tienen diferentes campos:
- user
- role
- type (normalmente terminan en "_t")
- security level
Por ejemplo:
El type para el proceso web server es" httpd_t"
El type de contexto para archivos y directorios normalmente encontrados en "/var/www/html" es "httpd_sys_content_t"
El type de contexto para el puerto del web server es "http_port_t".
Entonces, debido a lo anterior normalmente hay una politica que permite al Apache (web server que corre con el proceso "httpd_t") acceder a los archivos y directorios a un folder llamado "/var/www/html" (el cual posee el contexto "httpd_sys_content_t") pero no hay una politica que permita el acceso al folder "/var/tmp" (el cual posee un contexto "tmp_t") por lo tanto el acceso no es permitido a ese folder y sus archivos.
Beneficios:
Procesos y archivos estan etiquetados. Las politicas definen como los procesos interactuan con archivos, a su vez, como los procesos interactuan con otros procesos.Mejora o mitiga de mejor manera el riesgo de ataques maliciosos.
Puede ser utilizado para mejorar la confidencialidad e integridad de los archivos y procesos.
Cabe destacar que no es un antivirus, no es un firewall ni mucho menos una solucion "todo en uno".
Arquitectura:
SELinux es un Modulo de Seguridad de Linux (LSM) el cual fue construído en el kernel. Así que todas las operaciones a nivel de Kernel en el sistema son interceptadas por SELinux y examinadas tambien en el contexto de la politica de seguridad.Las decisiones del SELinux son almacenadas en un "caché" llamado Access Vector Cache (AVC).
SELinux puede encontrarse o configurarse de 3 maneras:
- Deshabilitado
- Permisivo (Es como forzado, incluso registra las cosas en el log pero no deniega operaciones)
- Forzado
Es posible ajustar dominios individuales al modo permisivo mientras se ejecuta en el sistema el modo forzado, por ejemplo para que el web server (httpd_t) sea permisivo utilice el comando:
semanage permissive -a httpd_t
Más sobre Contextos de SELinux:
En RHEL, SELinux provee una combinacion de Role Bases Access Control (RBAC) este es usado para procesos no para archivos, Type Enforcement (TE), Multi-Level Security (MLS)
Los contextos son usados en procesos, usuarios y archivos.Utilizan la siguiente sintaxis:
user:role:type:level
Ejemplo de un "ls" a un archivo:
unconfined_u:object_r:user_home_t:s0
Los usuarios en SELinux:
Son una entidad conocida dentro de la politica que a la vez está autorizada para usar un grupo especifico de roles y rangos especificos (MLS/MCS). Entonces cada usuario es "mapeado" a un usuario SELinux usando una politica.
Debido a esto ultimo, el mapeo de usuarios SELinux es usado tambien en el contexto para los procesos de esa sesion, basicamente, el SELinux user limita cuales roles y niveles de los procesos son accedibles.
Por defecto todos los usuarios "corren" o son mapeados al contexto "unconfined".
Transiciones de dominios:
El ejecutable "passwd" requiere tambien hacer uso del archivo "/etc/shadow" el cual posee otro contexto.
Para realizar una transición de dominio, la politica SELinux, debe tener una entrada llamada "Entrypoint" en su configuración.
By default, both users and groups use shadow passwords, which are cryptographically hashed and stored in /etc/shadow and /etc/gshadow respectively. These shadow password files are readable only by the root user
Politica por Defecto de SELinux
La politica dirigida (Targeted policy) es la politica por defecto en RHEL. Cuando se usa esta politica los procesos corren en un "confined domain" y los procesos que no estan en esta politica corren en "unconfined domain".
Procesos confinados (Confined processes)
Tambien la mayoria de procesos que corren como root y aplican tareas a usuarios como el "passwd".
Cuando un proceso es confinado, corre en un dominio propio, como el "httpd" que corre en el dominio "httpd_t". Si un proceso confinado es comprometido el daño que puede sufrir es limitado
Procesos no confinados
Para procesos no confinados, las politicas de SELinux son aplicadas, pero existen reglas que permiten casi todos los accesos a los procesos que corren en dominios no confinados. Los procesos corriendo en dominios no confinados vuelven a usar las reglas DAC exclusivamente.
Oracle UEK
En setiembre del 2010, Oracle anuncia Unbreakable Enterprise Kernel para Oracle Linux como el kernel recomendado para Oracle Linux 5. Era y es posible elegir entre RHEL compatible Kernel o el UEK.La motivacion para crear el UEK era proveer un kernel mas moderno y con mejor rendimiento para los equipos Exadata y Exalogic. El kernel necesario para escalar a medida que aumentaba el número de CPU, memoria y conexiones InfiniBand.
A su vez, el ASMLib Kernel Module esta incluido en el UEK, sin embargo el OracleASMSupport debe ser instalado de manera manual.
The Unbreakable Enterprise Kernel (UEK), included as part of Oracle Linux, provides the latest open source innovations, key optimizations and security for enterprise cloud workloads.
Tomado de: https://www.oracle.com/technetwork/server-storage/linux/technologies/uek-overview-2043074.html
Con UEK puede descargar paquetes que no están incluídos en la distribucion original. Si desea utilizar ULN para administrar el sistema ebe registrarse a los canales ULN.
Canales ULN
latest
|
Provee todos los paquetes de una distribucion, incluyendo cualquier erradata que brinde el canal "patch".
Si no especifica la version del paquete este será el mas reciente y disponible.
Si hay vulnerabilidades, el paquete será el mismo de la distribucion original.
|
base
|
Proporciona los paquetes para cada versión principal y la menor actualizaciónde Oracle Linux
Este canal corresponde a la version ISO lanzada.
No se publican erradata ni bugfixes en este canal
|
patch
|
Provee solo los paquetes que han cambiado desde la ultima version brindada.
|
addons
|
Provee paquetes que no están incluidos en la distribución base
|
Oracle
|
Provee RPM’s descargables como el ASMLIb y el Oracle Instant Client
|
optional
|
Provee paquetes adicionales, incluyendo los paquetes de desarrollo (-devel)
|
Software Erradata
Oracle publica cambios importantes como actualizaciones en paquetes individuales conocidos como "erradata", estos estan disponibles para descarga en ULN antes de que sean recolectados en un release o distribuidos por el canal "patch".Pueden contener:
Security Advisors
|
ELSA-* y OVMSA-*
|
Bug Fix Advisors
|
ELBA-* y OVMBA-*
|
Feature enhancement advisor
|
ELEA-* Y OVMEA-*
|
CRON vrs ANACRON
Anacron, a diferencia de CRON, asume que la maquina no estará encendida todo el tiempo, como laptops o desktops. Por ejemplo una tarea de backup a la 1:00pm cuando el equipo esta apagado. Anacron realizara el respaldo apenas el usuario encienda el computador.
YUM
Descarga los paquetes que estan disponibles en el repositorio de Oracle Linux YUM Server, pero el administrador puede configurar sus propios repositorios.
Si se ha registrado al ULN puede usar YUM con los canales ULN para mantener el software del sistema.
KSPLICE
Ksplice uptrack, puede actualizar un Linux Kernel sin requerir un reinicio inmediato del sistema.Puede aplicar Ksplice ya sea al UEK o al RHEL compatible kernel. Oracle crea cada Ksplice patch a partir de una actualizacion de kernel que se origina desde Oracle o la comunidad de Linux Kernel.
Le permite aplicar las ultimas actualizaciones "security erradata" para "Common Vulnerabilities and Exposures (CVEs)" sin detener o reiniciar las aplicaciones. Lo hace haciendo una pausa de unos milisegundos en background.
Para habilitar la instalacion automatica de actualizaciones cambie el parametro de configuracion "/etc/upgrack/uptrack.conf" en autoinstall=yes.
To make Ksplice Uptrack install all updates automatically as they become available, set the following entry:
autoinstall = yesPara instalar actualizaciones automaticamente a la hora del arranque:
install_on_reboot = yes
Parches KSPlice son almacenados en "/var/cache/uptrack". Lo siguiente a un "reboot" es re-aplicar automaticamente los parches antes de que la red sea configurada, así el sistema es asegurado antes de que las conecciones remotas se establezcan.
GRUB BOOTLOADER
GRUB permite cargar varios sistemas operativos ya que entiende los formatos de los FileSystems, y los Kernel ejecutables. GRUB requiere solo el nombre y las particiones donde cargar el kernel.Una porcion del GRUB es escrita en el MBR, y la otra en la particion "/boot".
El GRUB Bootloader es modular:
STAGE 1
|
Codigo es almacenado en MBR.
Codigo contiene punteros a la proxima etapa de GRUB.
La etapa siguiente puede ser “STAGE1_5” o “STAGE2” dependiendo del tipo de File System
|
STAGE 1_5
|
Permite a GRUB interpretar diferentes tipos de file system.
Algunos GRUB no requieren cargar esta etapa.
|
STAGE 2
|
Lee el codigo “/boot/grub/grub.conf’ para determinar cual kernel cargar
|
Los parametros de arranque (boot parameters) que fueron usados en el ultimo reinicio son "grabados" en el archivo "/proc/cmdline".
Entendiendo opciones de configuración del sistema
"/etc/sysconfig":
Contiene los directorios que controlan la configuracion del sistema. El contenido de este directorio depende a su vez, de los paquetes que ha instalado.
"/proc - Virtual File System":
Contiene informacion sobre su hardware y los procesos que corren en el sistema. Con el tiempo este directorio se volvio muy desordenado por eso se ha creado el directorio filesystem "sysfs".
Los archivos sobre este directorio, soon archivos virtuales, que el Kernel crea en demanda de la estructura y la informacion del sistema. Debido a que son archivos virtuales su tamaño se muestra en 0 bytes pero contienen mucha cantidad de informacion.
Archivos virtuales como "/proc/meminfo", "/proc/partititions" brindan una vista del hardware del sistema.
Los archivos bajo "/proc/sys/" proveen información de la configuración del sistema y
esta configuración puede ser modificada. Utilice "SYSCTL" para ver o modificar valores bajo el directorio "/proc/sys"
"/sys - Virtual File System":
El kernel exporta informacion a "/sys" o "sysfs". Programas como el "Dynamic device manager (udev)" usan /sys para acceder a dispositivos o drivers.
La mayoria de la informacion del hardware se encuentra en este virtual filesystem.
Modulos de Kernel
El bootloader (GRUB2, en el caso de OEL) carga el Kernel en memoria,, es posible agregar nuevo codigo al kernel incluyendo los archivos de raiz, en el arbol raiz del kernel y recompilandolo.
Para evitar el desperdicio de memoria en drivers de dispositivos que no se utilizan, Oracle Linux soporta loadable kernel modules (LKM), los cuales permiten al sistema ejecutar el driver del dispositivo y el codigo kernel que se requiera cargar en memoria.
El comando "modprobe" carga modules de kernel y permite visualizar si el paquete primero requiere de alguna dependencia.
Cambiar parámetros de Kernel
Cambios configuraciones del kernel hasta que exista un reinicio:
- sysctl -w
Para realizar cambios de configuracion persistentes posterior a un reinicio, debe agregarlos al archivo:
- /etc/sysctl.conf
Cualquier cambio realizado en este archivo permanecerá despues de reiniciar o ejecutar: sysctl -p
Administración de dispositivos
El directorio "/dev" contiene los archivos que contienen los dispositivos del sistema.
Estos archivos poseen el numero "major" y "minor" asociados, los cuales permiten identificar un dispositivo en el sistema.
Tipos:
- b=bloque o "type"
Ej: Discos duros, CD-ROM drives, memoria flash u otros dispositivos
El kernel escribe y/o lee informacion desde los dispositivos de tipo bloque con una cantidad de bytes.
- c=character
Ej: Teclados, dispositivos de cinta, conexiones a terminal.
Soportan la transmision de datos desde o hacia un dispositivo, los datos generalmente no se almacenan en búfer ni se permite el acceso aleatorio en un dispositivo.
El kernel escribe y/o lee informacion un byte a la vez.
Udev device manager
Dinamicamente crea o remueve dispositivos en el arranque. O si agrega/remueve un dispositivo a partir de la version de Kernel 2.6
Cuando crea un "nodo" dispositivo, UDEV lee el directorio "/sys" por atributos como:
label (etiqueta)
serial number (numero de serie)
bus device number (numero de bus)
UDEV puede utilizar nombres persistentes para garantizar la consistencia de nombres de los dispositivos.
UDEV usa reglas y determina como identificar dispositivos y crear los nombres de los dispositivos. El demonio (udevd) lee las reglas al arranque y almacena las reglas en memoria.
Consultando UDEV y SYSFS:
Utilice el comando "udevadm" para consultar la base de datos UDEV y sysfs.Apache Virtual Host
El Apache HTTP server, soporta host virtuales, este puede responder a solicitudes que son direccionadas al multiples direcciones IP o nombres de hosts que correspondan a la misma maquina.
Es posible configurarlo de 2 maneras:
- Basado en IP:
Cada host virtual posee su propia combinacion de IP y puerto. El servidor responde a la IP en la cual el nombre de host resuelve. Host por IP, es requerido cuando se realizan solicitudes a HTTPS por las restricciones SSL.
- Basado en nombre
Los host virtuales comparte una IP. Apache responde a la solicitud solicitando un mapeo entre el nombre del host y lo verificado en "servername" y "serveralias", las cuales son directivas en la configuracion del host virtual.
Oracle Linux, ofrece 2 "MTA's" (Mail Transfer Agents) usando SMTP, llamados PostFix y SendMail, tambien incluye 1 de proposito especial llamado Fetchmail para uso con SLIP y PPP.
PostFix es configurado por defecto como el MTA de Oracle Linux. Si desea usar reglas o filtrar utilice SendMail, sin embargo si usa SendMail deshabilite PostFix para evitar problemas con el puerto y uso de la red.
Configuracion de PostFix:
Access
|
Especifica cuales host son permitidos conectarse a Postfix
|
Main.cf
|
Contiene la configuracion global
|
Master.cf
|
Especifica como el demonio master y otros procesos interactuan
|
Transport
|
Mapeo entre direcciones destino y “relay hosts:
|
Configuracion de SendMail:
Access
|
Configura un host relay que procesa mail de salida hacia otros sistemas
|
Mailertable
|
Reenvio de email de un dominio a otro
|
VirtuUserTable
|
Configura el envio de mail a diferentes dominios.
|
Filtro de paquetes - IPTABLES
Para la version Oracle Linux 6 el Kernel usa la caracteristica "NetFilter" que provee la funcionalidad de filtrar paquetes para IPv4 ademas de IPv6.
Consta de dos componentes:
- Un componente de kernel para netfilter, que consiste en un grupo de tablas en memoria para las reglas que se usan para el filtrado mismo.
- La utilidad IPTables, para crear, mantener, y desplegar las reglas que netfilter almacena.
Las tablas de NetFilter incluyen:
- Filtros = La tabla por defecto, aceptar o rechazar paquetes segun su contenido
- Mangle = Altera ciertos campos en el paquete
- NAT = "Network Address Translation" para encaminar paquetes a nuevas/diferentes conexiones.
Por tanto tenemos tres tipos de reglas en iptables:
− MANGLE
− NAT: reglas PREROUTING, POSTROUTING
− FILTER: reglas INPUT, OUTPUT, FORWARD
Las reglas son almacenadas en cadenas. El kernel aplica cada regla al paquete hasta que un "match" sea encontrado. Cada tabla del netfilter posee las siguientes cadenas:
- Forward = Paquetes que no son direccionados al sistema local pasan por esta cadena
- Input = Paquetes entrantes al sistema local pasan por esta cadena
- Output = Paquetes locales pasan sobre esta cadena
En resumen:
Para los paquetes (o datagramas, según el protocolo) que van a la propia maquina se aplican las reglas INPUT y OUTPUT.
Para filtrar paquetes que van a otras redes o maquinas se aplican simplemente reglas FORWARD.
Insertar una regla en la cadena "Input" para permitir acceso por TCP en el puerto 80:
iptables -I INPUT 4 -p tcp -m tcp --dport 80 -j Accept
- -I = Inserte nueva regla
- -4 = Entrada de IPtables fue insertada como la regla #4 (las anteriores a esta del 4 al 5 se acomodan de 5 a 10)
- -p = protocolo
- -m = match
- -dport = dynamic port
- -j = target (que hacer si el paquete hace "match")
NAT - Cambio de Origen ejemplo:
Cambiar la dirección de origen por 1.2.3.4 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
Cambiar la dirección de origen a 1.2.3.4, 1.2.3.5 o 1.2.3.6 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
Cambiar la dirección de origen por 1.2.3.4, puertos 1-1023 # iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023
NAT - Cambio destino ejemplo
Cambia la dirección de destino por 5.6.7.8 # iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8 Cambia la dirección de destino por 5.6.7.8, 5.6.7.9 o 5.6.7.10. # iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 5.6.7.8-5.6.7.10 Cambia la dirección de destino del tráfico web por 5.6.7.8, puerto 8080. # iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j DNAT --to 5.6.7.8:8080
Verificar: http://ipset.netfilter.org/iptables.man.html
OPENSSH
OpenSSH es una suite de herramientas de network, entre ellas:
- SCP = Copia segura de archivos
- SFTP = FTP seguro
- SSH = Shell seguro para loguearse y correr un comando en un sistema remoto
- SSH-Keygen = Crea llaves de autenticacion DSA o RSA
Archivos de configuracion mas importantes:
Moduli
|
Contiene la informacion del intercambio de llaves
|
Ssh_config
|
Contiene la configuracion del cliente.
Su informacion puede ser sobrescrita por la configuracion de un usuario en ~/.ssh/config.file
|
Sshd_config
|
Contiene la configuracion para el demonio sshd
|
OpenSSH crea el archivo "known_hosts" cuando por primera vez utiliza la utilidad OpenSSH para conectarse a un host remoto.
Al intentar conectarse por ssh la primera vez, el server solicita ingresar la contraseña con que se intenta acceder. Al brindar la contraseña y aceptar la conexion al servidor ocurre lo siguiente:
El servidor brinda al cliente la llave publica
El cliente agrega la llave publica al archivo ~/.ssh/known_hosts
Si intenta nuevamente acceder via ssh al servidor:
El cliente compara la llave publica del archivo ~/.ssh/known_hosts con la que nuevamente esta brindando el servidor.
En resumen:
Del lado del cliente:
El archivo ~/.ssh/known_hosts contiene las llaves publicas que OpenSSH ha obtenido de los servidores SSH. OpenSSH agrega una nueva entrada para cada equipo al que el usuario se conecta.A su vez, configura otros archivos no menos importantes.
Del lado del server:
El directorio ~/.ssh contiene el archivo:authorized_keys:
Contiene las llaves publicas autorizadas. El servidor usa la llave publica firmada para autenticarse con un cliente.
KeyGen:
- Genera una llave publica y una privada.
- Este sistema le permite conectarse de un equipo a otro sin tener que brindar el password cada vez que se conecta
- Cada usuario debe generar su propio par de llaves
- Utilice el script: ssh-copy-id para adjuntar la llave publica del archivo local=~/.ssh/id_rsa.pub al archivo del cliente ~/.ssh/authorized_keys
Sobre Software RAID
Oracle Linux usa el Multdisk Driver (MD) para soportar RAID creando dispositivos virtuales a partir de 2 o mas dispositivos fisicos.
Preset SHELL Variables
Variables para inicio de sesion:
$USER, $LOGNAME
|
Usuario actualmente conectado
|
$PATH
|
Lista de directorios que seran buscados para comandos externos
|
$TERM
|
Tipo de terminal en la cual se esta ejecutando actualmente
Usualmente “xterm” o “vt100”
|
$PAGER
|
Nombre del programa el cual prefiere utilizara para la visualizacion de archivos.
Usualmente “more”.
Actualmente esto ya no es usado
|
$EDITOR
|
Contiene el nombre del programa el cual el usuario prefiere la edicion de archivos de texto
|
Variables de configuracion interna:
$PWD
|
Directorio de trabajo actual
|
$OLDPWD
|
Directorio previo
|
$?
|
"Set to the exit status of the last command run, so you can test success or failure"
|
$-
|
"Set to the currently set options flags."
|
$!
|
Coloca el ID del ultimo comando iniciado en background
"Set to the process ID of the last command started in "background
|
$*
|
"contains all of the arguments in a single string, with one space separating them:
|
$$
|
Coloca el proceso ID actual
Set to the process ID of the current shell
|
$IFS
|
Internal Field Separators, grupo de caracters que normalmente se utilizan para analizar una línea de comandos en argumentos separados
|
SAN vrs NAS
- NAS
Opera como una extesion del file system del servidor, utilizado para archivos locales.
Lee y escribe como si el disco presentado fuera del servidor mismo.
- SAN
El almacenamiento es presentado de manera remota, separado del servidor local. El servidor debe operar con un protocolo para comunicarse con la SAN.