martes, 18 de diciembre de 2018

Linux / Docker / Kubernetes

Linux Ubuntu (18.04.1 LTS)

- Bajar Ubuntu, versión server de: https://www.ubuntu.com/download/server
- Durante la instalación ofrece una cantidad de paquetes para instalar, dentro de ellos estaba “Docker”, lo marcamos y se instaló a continuación del Linux.

Para probar que la instalación de Docker es correcta:
- $ sudo docker run hello-world

Kubernetes (microk8s)

- Sudo snap install microk8s –classic

Node.Js

- $ sudo apt update
- $ sudo apt install nodejs npm
- $ nodejs –version

martes, 11 de diciembre de 2018

Web API Rest con JWT

Ver estos artículos publicados sobre el tema.

Los artículos de Santi Macias tienen como premisas:

  • JWT es útil para autenticar y autorizar usuarios para consumir servicios REST API.
  • El cliente tiene la responsabilidad de almacenar el JWT en algún lugar seguro, para utilizarlo en las llamadas al API.
  • Siempre debemos publicar nustro API mediante un certificado SSL (HTTPS) para encriptar el contenido entre el servidor y el cliente.
Guía de referencia JWT: https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html
Proyecto completo en GitHub: https://github.com/santimacnet/WebAPI-Segura-JWT


Algunos otros ejemplos de código:


Para implementar JWT desde Angular

Exception Handling







martes, 2 de octubre de 2018

miércoles, 26 de septiembre de 2018

Linux básico / SSH / PuTTY



Habilitar Key-Based Authentication en SSH Server
https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh-keys/
  • Generar claves publica y privada
    • ssh-keygen
  • Guardar una copia de la clave privada en un lugar seguro.
  • Transferir contenido de la clave pública "id_rsa.pub" --> "authorized_keys"
    • cd /home/bitnami/.ssh
    • cat id_rsa.pub >> /home/bitnami/.ssh/authorized_keys
  • Editar "/etc/ssh/sshd_config"
    • sudo edit /etc/ssh/sshd_config
      • RSAAuthentication yes
      • PubkeyAuthentication yes
      • y también desabilitar ingreso x contraseña:
      • ChallengeResponseAuthentication no
      • PermitRootLogin no
      • PasswordAuthentication no
      • UsePAM no
  • Restart SSH
    • sudo /etc/init.d/ssh force-reload

Configurar Client Access desde Windows (PuTTY)
Se puede ver dentro de las instrucciones de cómo acceder a GitLab vía SSH.
  1. Convertir la clave privada (SSH) de Linux en formato .PEM a formato .PPK utilizando "puttygen.exe"
  2. Configurar PuTTY
    • Connection / SSH / Auth / Private Key File for Authentication
    • Connection / Data / Auto Login Name
    • Guardar configuración: Session / <Save>

Cómo copiar archivos de Linux a Windows
Luego de instalar PuTTY queda configurado el PATH para poder utilizar PSCP por línea de comando.
Ejemplo:
- pscp -pw xxxxxx bitnami@172.10.10.246:/home/bitnami/.ssh/id_rsa.pub c:/temp
Ver manual.


miércoles, 19 de septiembre de 2018

Sobre blockchain, smart contracts, ethereum y otros temas


ICO  - Crowdsale Contracts


Casos de uso
  • Real State: cualquiera compra tokens y se realiza un emprendimiento inmobiliario.
  • Bitcoin: terminará siendo el Swift de los bancos.
  • Estonia: sociedad digital. X-Road, KSI, Guardtime, digital identities, e-residency, Crypto token “estcoin”.
    • The X-Road is the open-source backbone upon which the country’s entire digital infrastructure runs. First put into practice in 2001 (it’s been upgraded and altered many times since), X-Road is rooted in a blockchain called K.S.I., which was developed by Guardtime, one of the biggest blockchain companies in the world. K.S.I. is incidentally used by both NATO and the US Department of Defense.
    • “This is all really about the mindset. It’s about the culture. It’s about the human relations – it’s about what it enables us to do.”
    • https://www.investinblockchain.com/estonia-blockchain-model/
    • http://www.tynmagazine.com/estonia-el-pais-100-digital/

Varios
  • ¿Cómo puedo auditar que un contrato realmente haga lo que dice que hace?
  • Hyperledger
    • BURRROW: Permissionable Smart contract machine (EVM)
    • Hyperledger Burrow is one of the Hyperledger projects hosted by The Linux Foundation. Hyperledger Burrow was originally contributed by Monax and co-sponsored by Intel. Hyperledger Burrow provides a modular blockchain client with a permissioned smart contract interpreter partially developed to the specification of the Ethereum Virtual Machine (EVM).
    • FABRIC: Permissioned with channel support
    • INDY: Descentralized identity
    • IROHA: Mobile application focus
    • SAWTOOTH: Permissioned & permissionless support; EVM transaction family
    • Hyperledger Sawtooth is a modular platform for building, deploying, and running distributed ledgers. Distributed ledgers provide a digital record (such as asset ownership) that is maintained without a central authority or implementation.
    • CALIPER: Blockchain framework benchmark platform
    • CELLO: As-a-service deployment
    • COMPOSER: Model and build blockchain networks
    • EXPLORER: View and explore data on the blockchain
    • QUILT: Ledger interoperability

Para estar informados:

Otros

Conceptos


Solidity – Mapping
- https://ethereum.stackexchange.com/questions/9893/how-does-mapping-in-solidity-work
- https://coursetro.com/posts/code/102/Solidity-Mappings-&-Structs-Tutorial


Federico Ast
- https://www.fastcompany.com/3066498/this-blockchain-thing-is-really-happening-time-to-learn-what-it-is-2016-in-review


Los avances de los próximos años según IBM
  • Crypto-anchors y blockchain unidos contra el fraude
    • Seguridad alimentaria.
    • Autenticidad de componentes fabricados.
    • Productos genéticamente modificados.
    • Detección de objetos falsificados.
    • Procedencia de artículos de lujo.
  • Criptografía reticular
    • Criptografía de lattice (reticulado). Ninguna computadora puede descifrarlo, ni siquiera las futuras computadoras cuánticas.
  • Microscopios de IA autónomos, conectados a la nube para monitorear en tiempo real la salud del agua.
  • IA imparcial.
    • Sistemas de IA basados en datos justos, interpretables y libres de prejuicios raciales, de género o ideológicos.
  • Computación Cuántica.


miércoles, 8 de agosto de 2018

Gitlab

La forma más fácil de instalar un servidor de GitLab es utilizando una máquina virtual ya configurada que se puede obtener del sitio de Bitnami.
Otras opciones de instalación incluyen la instalación del Omnibus package en sus diversas opciones (Ubuntu, Debian, etc.) así como otras opciones de instalación como Docker, Kubernets, Google Cloud Platform, Amazon Web Services.

Una vez instalada la máquina virtual de Bitnami, hay que leer la siguiente información básica:
- How To Configure A Static IP Address

cd /etc/systemd/network
sudo cp 99-dhcp.network viainfo.network
sudo mv 99-dhcp.network 99-dhcp.network-bak
sudo chmod 777 viainfo.network
vi viainfo.network

El archivo "viainfo.network" tiene que quedar así:

  [Match]
  Name=en*

  [Network]
  Address=172.10.10.104
  Gateway=172.10.10.1
  DNS=172.10.10.243


Para reiniciar el sistema:
- sudo reboot

Habilitar Key-Based Authentication en SSH Server
Ver Linux básico.

Habilitar usuarios:
- Crear acceso SSH para cada nuevo usuario (desde Git Bash)
  • Crear SSH Key
    • ssh-keygen -t rsa -b 4096 -C "pablon@viainfo.com.ar"
      • Dejar nombre de archivo x default
      • NO informar palabra clave
  • Agregar la nueva clave privada al SSH Agent
    • eval $(ssh-agent -s)
    • ssh-add ~/.ssh/id_rsa
    • ssh-add -l (para ver las claves existentes)
  • Agregar la nueva clave publica a la cuenta de GitHub
    • clip < ~/.ssh/id_rsa.pub  (copia la clave "pública" al clipboard)
    • Ingresar a User Settings / SSH Keys y agregar la nueva clave.
Para verificar la conexión al servidor:
  • ssh -vT git@172.10.10.246
Configurar el cliente:



- Finalmente habilitar el acceso de cada usuario a un nuevo repositorio.




Documentación:
- How to enable SSH Server
- How To Connect To The Server Through SSH
- How To Obtain Root Privileges
- How To Upload Files To The Server With SFTP
- How To Configure Your Application To Use A Third-Party SMTP Service For Outgoing Email
- How To Configure Outbound Email Settings
- How To Create A Full Backup Of GitLab