Facebook Fanpage


domingo, 29 de septiembre de 2024

Descifrando la Seguridad: El Fascinante Mundo de los Criptosistemas de Clave Pública

Entrada 1: La Revolución de la Criptografía Asimétrica

¿Alguna vez te has preguntado cómo puedes enviar información confidencial a través de internet sin que nadie más pueda leerla? La respuesta está en los criptosistemas de clave pública, también conocidos como criptosistemas asimétricos. Pero, ¿qué son exactamente?

Un criptosistema de clave pública es un método de cifrado que utiliza dos claves diferentes: una clave pública para cifrar los mensajes y una clave privada para descifrarlos. Esta dualidad de claves es lo que lo hace "asimétrico", a diferencia de los sistemas tradicionales de clave simétrica que usan la misma clave para cifrar y descifrar.

La belleza de este sistema radica en su simplicidad conceptual y su robustez práctica. Imagina que tienes una caja fuerte con dos llaves: una para cerrarla (la clave pública) que puedes distribuir libremente, y otra para abrirla (la clave privada) que mantienes en secreto. Cualquiera puede usar tu clave pública para enviarte un mensaje seguro, pero solo tú, con tu clave privada, podrás leerlo.

Esta innovación, introducida en la década de 1970, revolucionó el campo de la criptografía y sentó las bases de la seguridad en la era digital.



Entrada 2: El Funcionamiento y los Titanes del Cifrado Asimétrico

¿Cómo funciona realmente un criptosistema de clave pública? El proceso puede parecer complejo, pero se basa en principios matemáticos fascinantes.

  1. Generación de claves: El usuario crea un par de claves matemáticamente relacionadas.
  2. Distribución de la clave pública: Esta clave se comparte abiertamente.
  3. Cifrado: El remitente usa la clave pública del destinatario para cifrar el mensaje.
  4. Descifrado: El destinatario usa su clave privada para descifrar el mensaje.

Entre los algoritmos más representativos de este sistema encontramos:

  1. RSA (Rivest-Shamir-Adleman): Basado en la factorización de números primos grandes.
  2. ElGamal: Fundamentado en el problema del logaritmo discreto.
  3. Curvas Elípticas: Ofrece seguridad comparable al RSA con claves más cortas.

Cada uno de estos algoritmos tiene sus particularidades, pero todos comparten el principio fundamental de la asimetría en el cifrado y descifrado.

[Insertar video: Animación del proceso de cifrado y descifrado con RSA]

Entrada 3: La Balanza de la Criptografía: Pros y Contras del Cifrado Asimétrico

Como toda tecnología, los criptosistemas de clave pública tienen sus ventajas y desventajas. Analicemos cómo se comparan con los sistemas simétricos tradicionales:

Ventajas:

  1. No requiere un canal seguro para intercambiar claves.
  2. Mejor gestión de claves en redes grandes.
  3. Permite la firma digital, autenticando el origen del mensaje.
  4. Proporciona no repudio en transacciones digitales.

Desventajas:

  1. Proceso de cifrado/descifrado más lento que en sistemas simétricos.
  2. Requiere claves más largas para el mismo nivel de seguridad.
  3. Mayor consumo de recursos computacionales.

Diferencias con el criptosistema simétrico:

  1. Uso de dos claves vs una sola clave.
  2. Distribución pública de claves vs necesidad de canal seguro.
  3. Mejor escalabilidad en redes grandes.
  4. Capacidad de firma digital y no repudio.

[Insertar infografía: Comparativa visual de cifrado simétrico vs asimétrico]

Entrada 4: Del Laboratorio al Mundo Real: Aplicaciones Prácticas

Los criptosistemas de clave pública no son solo teoría; son la columna vertebral de muchas de nuestras interacciones digitales diarias. Veamos un caso práctico:

Caso: Secure Sockets Layer (SSL) / Transport Layer Security (TLS)

Algoritmo: RSA (comúnmente usado)

Dónde: En la mayoría de los sitios web seguros (https://)

Cómo se usa:

  1. El servidor web tiene un par de claves RSA.
  2. Cuando un navegador se conecta, el servidor envía su certificado con la clave pública.
  3. El navegador genera una clave de sesión simétrica y la cifra con la clave pública del servidor.
  4. El servidor descifra la clave de sesión con su clave privada.
  5. Ambas partes usan ahora la clave de sesión para una comunicación simétrica rápida.

Este híbrido de criptografía asimétrica y simétrica proporciona tanto seguridad como eficiencia en nuestras conexiones web diarias.



Proceso de establecimiento de conexión SSL/TLS

Entrada 5: Navegando las Aguas de la Implementación

Implementar un criptosistema de clave pública puede ser desafiante. Aquí algunas observaciones y recomendaciones clave:

  1. Gestión de claves: La seguridad del sistema depende de la protección de las claves privadas. Implementa medidas robustas de almacenamiento y backup.
  2. Longitud de claves: Usa longitudes de clave recomendadas por estándares actuales. Por ejemplo, para RSA, 2048 bits es el mínimo recomendado actualmente.
  3. Generación de números aleatorios: Utiliza generadores de números aleatorios criptográficamente seguros (CSPRNG) para la generación de claves.
  4. Actualizaciones y parches: Mantén el software de criptografía actualizado para protegerte contra vulnerabilidades conocidas.
  5. No reinventes la rueda: Usa bibliotecas criptográficas bien establecidas y auditadas en lugar de implementar algoritmos desde cero.
  6. Considera el futuro cuántico: Investiga y considera la implementación de algoritmos resistentes a la computación cuántica.
  7. Cumplimiento normativo: Asegúrate de que tu implementación cumple con las regulaciones relevantes (por ejemplo, GDPR, HIPAA).
  8. Educación del usuario: Proporciona guías claras a los usuarios sobre cómo proteger sus claves privadas.

Recuerda, la seguridad es un proceso continuo, no un estado final. Mantente informado y actualiza tus sistemas regularmente.


El Mundo Secreto de los Criptosistemas de Clave Pública

Entrada 1: La Revolución Silenciosa: Desvelando el Criptosistema de Clave Pública

En el vasto universo de la seguridad informática, pocas innovaciones han tenido un impacto tan profundo como el criptosistema de clave pública. Pero, ¿qué es exactamente este sistema que ha revolucionado la forma en que protegemos nuestra información digital?

El criptosistema de clave pública, también conocido como criptosistema asimétrico, es un método de cifrado que utiliza dos claves diferentes pero matemáticamente relacionadas: una clave pública y una clave privada. Esta dualidad es lo que lo distingue de los sistemas de cifrado tradicionales y lo que lo hace tan poderoso.

Imaginemos una caja fuerte con dos llaves especiales. Una llave (la clave pública) puede cerrar la caja, pero no puede abrirla. La otra llave (la clave privada) es la única que puede abrir la caja. Ahora, imagina que distribuyes copias de la llave que cierra la caja a todo el mundo. Cualquiera puede enviar un mensaje seguro poniéndolo en la caja y cerrándola, pero solo tú, con tu llave privada, podrás abrirla y leer el mensaje.

Este sistema, introducido en la década de 1970 por Whitfield Diffie y Martin Hellman, resolvió uno de los problemas más antiguos de la criptografía: cómo intercambiar claves de forma segura sobre un canal inseguro. Antes de esta innovación, las partes que querían comunicarse de forma segura necesitaban acordar previamente una clave secreta, lo cual era problemático en muchas situaciones, especialmente en el mundo digital.

Las características clave de este sistema son:

  1. Asimetría: Utiliza dos claves diferentes para cifrar y descifrar.
  2. Distribución pública: La clave de cifrado puede ser compartida abiertamente.
  3. Seguridad matemática: Se basa en problemas matemáticos considerados computacionalmente difíciles de resolver.
  4. Versatilidad: Permite no solo el cifrado, sino también la firma digital y el intercambio seguro de claves.

El criptosistema de clave pública ha transformado la seguridad digital, permitiendo comunicaciones seguras a través de internet, firmas digitales para documentos electrónicos, y formando la base de protocolos de seguridad como SSL/TLS que usamos cada día al navegar por sitios web seguros.

En esencia, el criptosistema de clave pública es como un lenguaje secreto universal, donde todos pueden escribir mensajes, pero solo el destinatario previsto puede leerlos. Esta capacidad ha sido fundamental para el desarrollo de la economía digital y la protección de la privacidad en la era de la información.


Figura 1: Diagrama simplificado del funcionamiento de un criptosistema de clave pública

En la próxima entrada, profundizaremos en cómo funciona este fascinante sistema y exploraremos algunos de sus algoritmos más representativos. ¡No te lo pierdas!

Entrada 2: Bajo el Capó: El Funcionamiento y los Gigantes del Cifrado Asimétrico

Ahora que entendemos qué es un criptosistema de clave pública, sumerjámonos en su funcionamiento y conozcamos a los titanes que hacen posible esta magia digital.

El Proceso Básico

El funcionamiento de un criptosistema de clave pública se puede resumir en cuatro pasos principales:

  1. Generación de claves: El usuario genera un par de claves matemáticamente relacionadas.
  2. Distribución de la clave pública: Esta clave se comparte abiertamente.
  3. Cifrado: El remitente usa la clave pública del destinatario para cifrar el mensaje.
  4. Descifrado: El destinatario usa su clave privada para descifrar el mensaje.

Pero, ¿cómo es posible que dos claves diferentes puedan trabajar juntas de esta manera? La respuesta está en las matemáticas avanzadas y en problemas computacionalmente difíciles.

Los Algoritmos Representativos

Varios algoritmos han surgido para implementar criptosistemas de clave pública. Cada uno tiene sus propias fortalezas y se basa en diferentes problemas matemáticos. Veamos los más prominentes:

  1. RSA (Rivest-Shamir-Adleman):
    • Base matemática: Factorización de números grandes
    • Funcionamiento: Utiliza el producto de dos números primos grandes para generar las claves
    • Uso: Ampliamente utilizado para cifrado y firmas digitales
  2. ElGamal:
    • Base matemática: Problema del logaritmo discreto
    • Funcionamiento: Se basa en la dificultad de calcular logaritmos discretos en un campo finito
    • Uso: Popular en aplicaciones de firma digital
  3. Criptografía de Curva Elíptica (ECC):
    • Base matemática: Problema del logaritmo discreto en curvas elípticas
    • Funcionamiento: Utiliza propiedades de curvas elípticas sobre campos finitos
    • Uso: Ofrece seguridad comparable a RSA con claves más cortas, ideal para dispositivos con recursos limitados
  4. Diffie-Hellman:
    • Base matemática: Problema del logaritmo discreto
    • Funcionamiento: Permite el intercambio seguro de una clave secreta sobre un canal inseguro
    • Uso: Ampliamente utilizado para el establecimiento de claves en protocolos de seguridad

Profundizando en RSA

Dado que RSA es uno de los algoritmos más utilizados, vale la pena examinar su funcionamiento más de cerca:

  1. Generación de claves:
    • Se eligen dos números primos grandes, p y q
    • Se calcula n = p * q
    • Se calcula φ(n) = (p-1) * (q-1)
    • Se elige un número e, coprimo con φ(n)
    • Se calcula d, el inverso multiplicativo de e módulo φ(n)
    • La clave pública es (n, e), la clave privada es d
  2. Cifrado:
    • Para un mensaje m, el texto cifrado c se calcula como: c = m^e mod n
  3. Descifrado:
    • Para recuperar el mensaje, se calcula: m = c^d mod n

La seguridad de RSA se basa en la dificultad de factorizar n para obtener p y q. Con números lo suficientemente grandes, esta tarea se vuelve computacionalmente inviable con la tecnología actual.



Figura 2: Animación del proceso de cifrado y descifrado RSA

El Futuro del Cifrado Asimétrico

Con el avance de la computación cuántica, algunos de estos algoritmos (especialmente RSA) podrían volverse vulnerables. Esto ha llevado al desarrollo de algoritmos "post-cuánticos" que se cree que resistirán incluso a los ataques de computadoras cuánticas.

En la próxima entrada, examinaremos las ventajas y desventajas de estos sistemas asimétricos en comparación con los sistemas de clave simétrica tradicionales. ¡Sigue con nosotros para descubrir más sobre este fascinante mundo de la criptografía!

Entrada 3: La Balanza Criptográfica: Pros y Contras de los Sistemas Asimétricos

En el mundo de la seguridad digital, no existe una solución única para todos los problemas. Los criptosistemas de clave pública, a pesar de su revolucionario impacto, no son la excepción. En esta entrada, analizaremos las ventajas y desventajas de estos sistemas, y los compararemos con sus contrapartes simétricas.

Ventajas de los Criptosistemas de Clave Pública

  1. Distribución segura de claves:
    • No se requiere un canal seguro para intercambiar claves.
    • Elimina la necesidad de compartir secretos antes de la comunicación.
  2. Mejor gestión de claves:
    • En una red de n personas, solo se necesitan n pares de claves, en lugar de n(n-1)/2 claves en sistemas simétricos.
    • Facilita la escalabilidad en redes grandes.
  3. Autenticación y no repudio:
    • Permite la implementación de firmas digitales.
    • El remitente no puede negar haber enviado un mensaje firmado.
  4. Confidencialidad sin secreto compartido:
    • Permite el envío de mensajes confidenciales sin necesidad de compartir una clave secreta previamente.
  5. Integridad de datos:
    • Las firmas digitales aseguran que el mensaje no ha sido alterado en tránsito.

Desventajas de los Criptosistemas de Clave Pública

  1. Velocidad:
    • Los algoritmos asimétricos son significativamente más lentos que los simétricos.
    • No son prácticos para cifrar grandes volúmenes de datos.
  2. Tamaño de las claves:
    • Requieren claves mucho más largas para el mismo nivel de seguridad que los sistemas simétricos.
    • Por ejemplo, RSA con 2048 bits es comparable en seguridad a AES con 128 bits.
  3. Consumo de recursos:
    • Demandan más poder de procesamiento y memoria.
    • Pueden ser problemáticos en dispositivos con recursos limitados.
  4. Complejidad:
    • La implementación y gestión de sistemas de clave pública es más compleja.
    • Requiere una infraestructura adicional (como PKI) para la gestión de certificados.
  5. Vulnerabilidad a ataques de intermediario:
    • Sin autenticación adicional, son susceptibles a ataques de "hombre en el medio".

Comparación con Criptosistemas Simétricos

AspectoCriptosistema SimétricoCriptosistema Asimétrico
ClavesUna sola clave compartidaPar de claves (pública y privada)
VelocidadRápidoLento
Longitud de claveCorta (ej. 128-256 bits para AES)Larga (ej. 2048-4096 bits para RSA)
Distribución de clavesRequiere canal seguroPuede hacerse sobre canal inseguro
EscalabilidadDifícil en redes grandesMejor en redes grandes
AutenticaciónLimitadaFuerte (mediante firmas digitales)
Uso típicoCifrado de grandes volúmenes de datosIntercambio de claves, firmas digitales


Figura 3: Comparación visual de criptosistemas simétricos y asimétricos

El Enfoque Híbrido: Lo Mejor de Ambos Mundos

Dadas estas características, muchos sistemas de seguridad modernos optan por un enfoque híbrido:

  1. Usan criptografía asimétrica para intercambiar de forma segura una clave de sesión.
  2. Luego utilizan esta clave de sesión con un algoritmo simétrico para la comunicación principal.

Este enfoque aprovecha la seguridad en la distribución de claves de los sistemas asimétricos y la velocidad de los simétricos.

En la próxima entrada, exploraremos un caso práctico de aplicación de criptosistemas de clave pública. ¡No te lo pierdas!

Entrada 4: Del Papel al Bit: Un Caso Práctico de Criptografía Asimétrica

Hasta ahora, hemos explorado los fundamentos teóricos de los criptosistemas de clave pública. Pero, ¿cómo se aplican estos conceptos en el mundo real? En esta entrada, examinaremos un caso práctico que demuestra el poder y la utilidad de estos sistemas en nuestra vida digital cotidiana.

Caso Práctico: Secure Sockets Layer (SSL) / Transport Layer Security (TLS)

Uno de los usos más omnipresentes de la criptografía de clave pública es en el protocolo SSL/TLS, que asegura gran parte de nuestras comunicaciones en Internet.

¿Qué es SSL/TLS?

SSL (Secure Sockets Layer) y su sucesor TLS (Transport Layer Security) son protocolos criptográficos diseñados para proporcionar comunicaciones seguras a través de una red de computadoras, típicamente Internet. Cuando ves "https://" en la barra de direcciones de tu navegador, estás utilizando este protocolo.

Algoritmo Utilizado

Aunque SSL/TLS utiliza una combinación de algoritmos, RSA es uno de los más comúnmente empleados para el intercambio de claves y la autenticación en este protocolo.

Dónde se Usa

SSL/TLS se utiliza en una variedad de contextos, incluyendo:

  1. Navegación web segura (HTTPS)
  2. Correo electrónico seguro (SMTPS, POP3S, IMAPS)
  3. Mensajería instantánea
  4. Conexiones VPN
  5. Transferencias de archivos seguras (FTPS)

Cómo Funciona

Veamos paso a paso cómo SSL/TLS utiliza la criptografía de clave pública:

  1. Inicio de la conexión:
    • El cliente (por ejemplo, tu navegador) se conecta al servidor y solicita una conexión segura.
  2. Intercambio de certificados:
    • El servidor envía su certificado digital, que contiene su clave pública y está firmado por una Autoridad de Certificación (CA) confiable.
  3. Verificación del certificado:
    • El cliente verifica la autenticidad del certificado utilizando la clave pública de la CA.
  4. Generación de la clave de sesión:
    • El cliente genera una clave simétrica aleatoria (clave de sesión).
  5. Cifrado de la clave de sesión:
    • El cliente cifra esta clave de sesión utilizando la clave pública del servidor (aquí es donde entra en juego RSA).
  6. Transmisión de la clave cifrada:
    • El cliente envía la clave de sesión cifrada al servidor.
  7. Descifrado de la clave de sesión:
    • El servidor utiliza su clave privada para descifrar la clave de sesión
  8. Establecimiento de la comunicación segura:
    • Ambas partes ahora tienen la misma clave de sesión simétrica, que utilizarán para cifrar y descifrar la comunicación subsiguiente.
  9. Este proceso combina la seguridad de la criptografía asimétrica para el intercambio inicial de claves con la eficiencia de la criptografía simétrica para la comunicación continua.

    Beneficios de este Enfoque

    1. Autenticación: El certificado del servidor proporciona una forma de verificar su identidad.
    2. Confidencialidad: Toda la comunicación está cifrada.
    3. Integridad: Los mensajes no pueden ser alterados sin detección.
    4. Eficiencia: Usa criptografía asimétrica solo para el intercambio inicial de claves, luego cambia a la más rápida criptografía simétrica.

Visualización del Proceso



Figura 4: Diagrama del proceso de establecimiento de una conexión SSL/TLS

Implicaciones en el Mundo Real

Este caso práctico ilustra cómo la criptografía de clave pública hace posible el comercio electrónico seguro, la banca en línea, y la protección de datos personales en Internet. Sin esta tecnología, muchas de las actividades en línea que damos por sentado serían demasiado arriesgadas.

En la próxima y última entrada, discutiremos algunas observaciones clave y recomendaciones para la implementación de criptosistemas de clave pública. ¡No te lo pierdas!

Entrada 5: Navegando las Aguas de la Implementación: Observaciones y Recomendaciones

En nuestro viaje por el mundo de los criptosistemas de clave pública, hemos explorado su naturaleza, funcionamiento, ventajas y aplicaciones prácticas. Ahora, en nuestra entrada final, nos centraremos en las consideraciones clave y las mejores prácticas para implementar estos sistemas de manera efectiva y segura.

Observaciones Críticas

  1. La seguridad depende de la privacidad de la clave privada:
    • Todo el sistema se basa en mantener la clave privada... privada.
    • Una clave privada comprometida puede llevar al colapso de todo el sistema de seguridad.
  2. La longitud de la clave importa:
    • Las claves más largas generalmente proporcionan más seguridad, pero a costa de un mayor uso de recursos.
    • La longitud de clave adecuada depende del algoritmo y del nivel de seguridad requerido.
  3. Los algoritmos no son eternos:
    • Lo que es seguro hoy puede no serlo mañana debido a avances en criptoanálisis o poder computacional.
    • La amenaza de la computación cuántica está impulsando la investigación en criptografía post-cuántica.
  4. La implementación es tan importante como el algoritmo:
    • Un algoritmo sólido implementado incorrectamente puede ser tan inseguro como un algoritmo débil.
  5. La criptografía es solo una parte de la seguridad:
    • Un sistema criptográfico fuerte no puede compensar otras debilidades en la seguridad general.

Recomendaciones para la Implementación

  1. Gestión robusta de claves:
    • Utiliza generadores de números aleatorios criptográficamente seguros (CSPRNG) para la generación de claves.
    • Implementa políticas estrictas para el almacenamiento y la rotación de claves.
    • Considera el uso de módulos de seguridad de hardware (HSM) para proteger las claves privadas.
  2. Selección apropiada de algoritmos y parámetros:
    • Utiliza algoritmos bien establecidos y ampliamente revisados.
    • Sigue las recomendaciones de longitud de clave de organismos como NIST o ENISA.
    • Para RSA, usa claves de al menos 2048 bits. Para ECC, considera curvas de 256 bits o más.
  3. Mantén el software actualizado:
    • Aplica parches de seguridad regularmente.
    • Mantente informado sobre vulnerabilidades descubiertas en los algoritmos o implementaciones que utilizas.
  4. Implementa correctamente los protocolos:
    • Sigue las especificaciones del protocolo al pie de la letra.
    • Utiliza bibliotecas criptográficas bien establecidas y auditadas en lugar de implementar algoritmos desde cero.
  5. Considera la criptografía híbrida:
    • Combina criptografía asimétrica y simétrica para obtener lo mejor de ambos mundos.
  6. Prepárate para el futuro cuántico:
    • Comienza a planificar la transición a algoritmos resistentes a la computación cuántica.
    • Considera implementaciones que permitan una fácil transición entre algoritmos (agilidad criptográfica).
  7. No olvides la gestión de certificados:
    • Implementa procesos robustos para la emisión, renovación y revocación de certificados.
    • Utiliza infraestructuras de clave pública (PKI) bien diseñadas.
  8. Educa a los usuarios:
    • La seguridad del sistema depende en parte de los usuarios. Edúcalos sobre la importancia de proteger sus claves privadas y reconocer posibles amenazas.
  9. Auditoría y monitoreo:
    • Implementa sistemas de auditoría para detectar y responder a actividades sospechosas.
    • Realiza auditorías de seguridad regulares de tu implementación criptográfica.
  10. Cumplimiento normativo:
    • Asegúrate de que tu implementación cumple con las regulaciones relevantes (por ejemplo, GDPR, HIPAA).

Visualización de Mejores Prácticas



Figura 5: Infografía de mejores prácticas en la implementación de criptosistemas de clave pública

Conclusión

La implementación de criptosistemas de clave pública es un desafío complejo pero crucial en el mundo digital actual. Requiere un equilibrio cuidadoso entre seguridad, rendimiento y usabilidad. Al seguir estas observaciones y recomendaciones, puedes construir sistemas más robustos y seguros que protejan eficazmente la información sensible.

Recuerda, la seguridad es un proceso continuo, no un estado final. Mantente informado, actualiza tus sistemas regularmente y siempre está preparado para adaptarte a nuevas amenazas y tecnologías emergentes.

Con esto concluimos nuestro viaje por el fascinante mundo de los criptosistemas de clave pública. Esperamos que este blog te haya proporcionado una comprensión profunda y práctica de esta tecnología fundamental. ¡Gracias por acompañarnos en esta aventura criptográfica!

sábado, 13 de julio de 2019

Cómo configurar un servidor FTP sobre CentOS 7

Instalación y puesta en marcha de vsftpd

Instalar vsftpd en CentOS 7 es sencillo, en esta versión todavía se sigue usando Yum, el gestor de paquetes del universo de Red Hat. Además vsftpd no tiene dependencias, así que no hay riesgos de alterar otras partes del sistema.
Para instalar vsftpd hay que ejecutar el siguiente comando, y luego aceptar la instalación sugerida:
yum install vsftpd
Instalado el servicio de FTP, tenemos una serie de comandos básicos para poder manejar el servicio. Hay que recordar que CentOS 7 utiliza systemd en vez de Upstart, así que los comandos para poder activar, reiniciar y accionar el servicio durante el arranque del sistema cambian.
Para iniciarlo:
systemctl start vsftpd.service
Para pararlo:
systemctl stop vsftpd.service
Para reiniciarlo:
systemctl restart vsftpd.service
Para que arranque junto con el sistema:
systemctl enable vsftpd.service
Para quitarlo del arranque del sistema:
systemctl disable vsftpd.service
El fichero de configuración de vsftpd es /etc/vsftpd/vsftpd.conf, Para los que anden perdidos, es un fichero llamado vsftpd.conf localizado en la subcarpeta /etc/vsftpd. En él solo vamos a tocar dos opciones.
anonymous_enable=YES
local_enable=YES

Abrir el puerto en el firewall

Abrir el puerto en el firewall es muy importante, ya que si no lo hacemos todos los intentos de conectarse al servidor de FTP serán rechazados. Para esto hay que abrir el puerto en el firewall y para que los efectos sean permanentes hay que ejecutar estos dos comandos.
Para abrir el puerto en el firewall:
firewall-cmd --permanent --add-service=ftp
Una vez abierto el puerto, hay que refrescar el firewall, para lo cual se necesita reiniciar su servicio:
systemctl restart firewalld.service

Configurar vsftpd para el acceso anónimo

Con figurar vsftpd para el acceso anónimo es bien sencillo, ya que esto lo hace por defecto, aunque se puede cambiar la opción de local_enable=YES a local_enable=NO en el fichero vsftpd.conf, para así asegurarnos de alguna manera que no se está ejecutando lo que no se debe, pero es un paso totalmente prescindible.
Para usar el acceso anónimo al FTP solo hay que iniciar el servicio como hemos indicado en el punto anterior, abrir un cliente de FTP, introducir la IP del servidor y conectarse.
Ahora surge la pregunta de cómo obtener la IP del servidor. En caso de el servidor esté en el mismo ordenador físico que el cliente la respuesta el clara, localhost o 127.0.0.1, siendo lo segundo más efectivo que lo primero. Sin embargo puede que el servidor haya sido instalado en una máquina virtual, o bien se disponga de máquinas extra y se haya montado una red con ordenadores conectados mediante cable o Wi-Fi. En esas situaciones solo queda usar este comando para obtener la IP en CentOS 7:
ip -d addr

Cambiar la carpeta del acceso anónimo

La carpeta por defecto del acceso anónimo al FTP es /var/ftp, sin embargo puede interesar cambiarla.
Para ello hay que dirigirse al fichero vsftpd.conf en /etc/vsftpd y añadir al final la siguiente opción, teniendo que poner de forma obligatoria la ruta absoluta:
anon_root=/rutaperonalizada
En /rutapersonalizada se pone la ruta que se crea conveniente, siempre y cuando no coincida con otra que resulta crítica para el sistema, siendo conveniente crear una a través de mkdir, dentro de la carpeta /home o /mnt, que no suelen contener nada crítico a nivel de sistema en su interior.
Cambiada ya la ruta del acceso anónimo, en teoría reiniciando el servicio ya se tendrían que aplicar los cambios, sin embargo al acceder al FTP vemos que no nos da permiso, y es que hemos topado con la segunda gran “barrera” de los sistemas basados en tecnologías Red Hat, SeLinux. En este tutorial vamos a ser un poco más sutiles y no se va a desactivar, teniendo que jugar con él un poco para que deje hacer aquello que pretendemos.
Para que SeLinux acepte la nueva carpeta del acceso anónimo hay que indicarle que es de acceso público, introduciendo el siguiente comando:
chcon -R -t public_content_t /rutapersonalizada
Introducido este comando ya debería de dejar acceder al nuevo directorio asignado para el acceso anónimo.

Configurar usuarios locales en el servidor

Para poder usar usuarios locales en el servidor, con su correspondiente contraseña, hay que tener los usuarios locales permitidos en vsftpd.conf, con la opción local_enable=YES. Si teníamos esta opción en NO anteriormente, hay que reiniciar el servicio para que los cambios surtan efecto.
Ahora queda crear el usuario, que no tiene ningún misterio para aquellos que acostumbran a crearlos desde la consola de comandos, ya que el proceso cambia poco:
useradd -g ftp -d /home/usuario usuario
Descomponemos la línea de comando:
  • useradd: Indica que queremos añadir un nuevo usuario.
  • -g: Indica el grupo al que va a pertenecer el usuario, en este caso ftp.
  • -d: Es el directorio del usuario, su home, en este caso /home/usuario.
  • usuario: Es el nombre del usuario.
El usuario ya está creado, sin embargo hay que asignarle una contraseña, para lo cual se utiliza el clásico passwd:
passwd usuario
Ahora queda indicarle a SeLinux que permita a los usuarios locales acceder su home a través del FTP:
setsebool -P ftp_home_dir on
Ahora solo queda abrir el cliente, poner la IP del servidor, el usuario y la contraseña y ya tendría que permitir el acceso, pudiendo subir contenidos, ya que se ha iniciado sesión con el usuario que es el propietario de la subcarpeta.

Hacer que un usuario local y el acceso anónimo compartan carpeta

El acceso anónimo, tal y como lo hemos mostrado, se muestra un poco corto, difícil de darle utilidad, al menos que se configure el acceso anónimo al FTP desde un ordenador de escritorio en producción, en el cual se puede copiar y pegar los contenidos al directorio a golpe de ratón. Sin embargo si quien tiene que suministrar los contenidos no usa su desktop como servidor de FTP, sino un ordenador aparte, empieza a ser complicado poder compartir contenidos, ya que el usuario local y el acceso anónimo no pueden compartir carpeta debido a que SeLinux lo impide.
Para poder compartir una carpeta de usuario con el acceso anónimo en primer lugar hay que ir al fichero vsftpd.conf y en la opción anon_root poner la ruta absoluta del directorio del usuario local, siguiendo  con este ejemplo:
anon_root=/home/usuario
Después hay que reiniciar el servicio y, además, indicar a SeLinux que permita acceso total en el servicio de FTP a través de la siguiente línea de comando:
setsebool allow_ftpd_full_access on
Después hay que dar permisos a los usuarios ajenos al propietario para que puedan ver los contenidos de su carpeta, ya que por defecto los sistemas de tecnología Red Hat utilizan una umask de 077 en la creación de las carpetas de usuario, así que solo el propietario tiene permisos sobre su carpeta personal. Para arreglar esto hay que otorgarle permisos de lectura y ejecución a los demás con chmod:
chmod -R 755 /home/usuario
Con esto ya el usuario local y el acceso anónimo ya comparten directorio, y lo que es subido por el usuario local puede ser descargado por las personas que acceden de forma anónima al FTP.




Fuente Original: www.muylinux.com

viernes, 7 de junio de 2019

Oracle Dumpdir – Import, Export y el uso de Directorios.

Oracle Dumpdir 

Import, Export y el uso de Directorios.


Cuando tenemos diferentes objetos de la base, ya sea una tabla, datos, etc y queremos transportalos a otra base, existe en oracle una utilidad llamada  expdp, con la cual nos llevaremos los datos y los objetos de nuestra base a otra donde tenga la misma estructura de datafiles y usuarios o no. El proceso generará un archivo con extención .dmp
Con impdp podremos importar datos facilmente generados mediante una exportación, que generalmente es un archivo .dmp
Cuando tenemos que exportar datos de la base o importarlos mediante impdp y expdp tenemos que tener en cuenta:
  1. Que exista un usuario con privilegios para realizar el export, en el caso de no ser sys o system.
  2. Que exista en la base de datos un DIRECTORY, con su relación en el SO.
  3. Que haya espacio suficiente en el filesystem.
Es que por ello que basados en los puntos anteriores daremos un breve ejemplo:
1. Creamos el Usuario y asignamos privilegios
SQL> create user DANADMIN
identified by XXXXXXX
default tablespace USERS;

SQL> grant connect, resource to DANADMIN;
SQL> SELECT * FROM DBA_DIRECTORIES;
SQL> alter user DANADMIN quota 100M on USERS;
Con esto podemos decir que tenemos el usuario creado, entonces ahora habria que darle los privilegios para que el usuario pueda exportar e importar los datos.
Como a mi me gusta tener todo en orden, en mi caso particular voy a crear un ROL y voy a Grantear ese ROL al Usuario.
Nos es preciso hacer esto, ya que podemos Grantear los permisos diractamente al Usuario, pero pienso que en el futuro podría existir otros usuarios con algunos con este tipo de privilegios.
1.1 Creamos el ROL.
SQL>create rol ROL_EXP_IMP;
1.2 Asignamos los permisos al ROL y luego al Usuario.
SQL> grant EXP_FULL_DATABASE to ROL_EXP_IMP;
SQL> grant IMP_FULL_DATABASE to ROL_EXP_IMP;
SQL> grant ROL_EXP_IMP to DANADMIN;
1.3 Consultamos si los cambios se aplicaron
SQL> SELECT grantee, granted_role, default_role
FROM dba_role_privs
WHERE grantee IN ('DANADMIN', 'PUBLIC') ORDER BY 1,2;
GRANTEE          GRANTED_ROLE          DEF
---------------- --------------------  ------
DANADMIN         CONNECT                YES
DANADMIN         RESOURCE               YES
DANADMIN         ROL_EXP_IMP            YES
2. Consultamos los directorios existentes.
SQL> col OWNWER format a20
SQL> col OWNWER format a10
SQL> col DIRECTORY_NAME format a20
SQL> col DIRECTORY_PATH format a65
SQL> select * from dba_directories;
OWNER          DIRECTORY_NAME         DIRECTORY_PATH
-------------- ---------------------- ----------------------------------------------------------------
SYS            DUMPDIR_MANU           /u03/rman_database_backup/manu
SYS            DATA_PUMP_DIR          /u01/app/oracle/product/10.2.0/db_asm/rdbms/log/
SYS            XMLDIR                 /u01/app/oracle/product/10.2.0/db_asm/demo/schema/order_entry/
SYS            DUMPDIR_T2             /u03/rman_database_backup
SYS            MEDIA_DIR              /u01/app/oracle/product/10.2.0/db_asm/demo/schema/product_media/
SYS            LOG_FILE_DIR           /u01/app/oracle/product/10.2.0/db_asm/demo/schema/log/
SYS            WORK_DIR               /ade/aime_10.2_lnx_push/oracle/work
SYS            DATA_FILE_DIR          /u01/app/oracle/product/10.2.0/db_asm/demo/schema/sales_history/
SYS            ADMIN_DIR              /ade/aime_10.2_lnx_push/oracle/md/admin
9 rows selected.
2.1 En el caso que el directorio que nos asignaron en el filesytem no esta en la lista, donde tenemos permisos de lectura escritura podriamos crearlo.
SQL> create directory DUMPDIR_DESA as '/u03/DUMPDIR/DESA';
Directory created.

SQL> grant read,write on directory DUMPDIR_DESA to DANADMIN;
Grant succeeded.
3. Podemos Realizar el export o el import.
expdp danadmin/passwd directory=DUMPDIR_DESA tables=JAM.COMPRAS_EXTERIOR dumpfile=COMPRAS_EXTERIOR_20090101
impdp danadmin/passwd directory=DUMPDIR_DESA dumpfile=COMPRAS_EXTERIOR_20090101 tab


Tomado de juanmercadoit