<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>·Escapando Caracteres·</title><description>Bitácora de notas y artículos relacionados con la informática y sistemas</description><managingEditor>noreply@blogger.com (Unknown)</managingEditor><pubDate>Wed, 6 Nov 2024 00:07:31 -0300</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">43</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>https://verovand.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>Bitácora de notas y artículos relacionados con la informática y sistemas</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>Mis razones para abandonar y no volver IBM Cloud</title><link>https://verovand.blogspot.com/2021/01/mis-razones-para-abandonar-y-no-volver.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 21 Jan 2021 00:13:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-2778489811531442790</guid><description>&lt;p&gt;&amp;nbsp;¡Hola!&lt;/p&gt;&lt;p&gt;Este post les quiero compartir mi experiencia usando este proveedor de servicios de cloud computing. A partir del título de esta entrada podrán deducir que dicha experiencia no fue buena. Y aquí brevemente les detallo los problemas con los que tuve que lidiar:&lt;/p&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;outage de más de 12 horas, dejando fuera de servicio toda la capa de classic infrastructure (máquinas virtuales) por problemas de refrigeración.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;siguiendo con los outages, uno de ellos forzó que todas las máquinas virtuales se debieran reiniciar dejando en modo de solo lectura a los discos de dichas vms.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;software desactualizado: el rescue mode de las máquinas virtuales (devices) es... ¡CentOS 5!&lt;/li&gt;&lt;li&gt;y a causa de los dos puntos anteriores, me vi forzada a entrar máquina por máquina en modo rescate (se activa desde la ui) y a correr fsck sobre cada disco virtual.&lt;/li&gt;&lt;li&gt;fsck de recue mode es tan obsoleto que tuve que compilar e2fscprog desde sources.&lt;/li&gt;&lt;li&gt;la ui de IBM cloud es lenta y confusa. Una máquina virtual está encendida y completamente accesible pero el estado que muestra la interfaz web indica que está encendida pero desconectada.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;cambiar de email es problemático, ya que posiblemente se pierda acceso a ciertos servicios porque el correo está vinculado a ellos.&lt;/li&gt;&lt;li&gt;debido a lo anterior no puedo acceder a uno de los clusteres de kubernetes (el cluster role binding no se actualiza como debiera y sigue vinculando el viejo email y no el nuevo).&lt;/li&gt;&lt;li&gt;no es posible (o al menos no encontré una manera) asignar roles a recursos. Por ejemplo: que una máquina virtual tengas permisos de lectura/escritura sobre un bucket. Necesariamente hay que crear un par de keys para tal propósito.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Estas razones son suficientes para pensar en migrar a otro proveedor más robusto y confiable.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Si alguien tuvo experiencias similares, los invito a compartirlas en los comentarios.&lt;/p&gt;&lt;p&gt;¡Saludos! &lt;br /&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Me gusta GnuPG</title><link>https://verovand.blogspot.com/2020/07/me-gusta-gnupg.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 21 Jul 2020 22:10:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-1065957925027413263</guid><description>¡Buenas noches!&lt;br /&gt;
&lt;br /&gt;
Les comparto una presentación que hice hace varios años sobre GnuPG, una herramienta muy potente para manejo de claves. Si bien, como dije, la presentación fue realizada hace un tiempo, a mi me resultó útil para repasar algunos comandos básicos. Espero que sea útil para ustedes también.&lt;br /&gt;
&lt;br /&gt;
https://docs.google.com/presentation/d/156yLcYEwsTCHlbMYf6ohJsfUjpzAqD326P4DeFwXiM8/edit?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Saludos.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Mi primeros pasos con Terraform</title><link>https://verovand.blogspot.com/2020/07/mi-primeros-pasos-con-terraform.html</link><category>automation</category><category>terraform</category><author>noreply@blogger.com (Unknown)</author><pubDate>Sun, 12 Jul 2020 02:02:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-6484470824071510891</guid><description>Buenas noches,&lt;br /&gt;
&lt;br /&gt;
Estos últimos días empecé a probar Terraform, en particular para manejar servicios que tengo corriendo en &lt;a href="https://www.linode.com/" target="_blank"&gt;Linode&lt;/a&gt;, que es un proveedor cloud bastante intersante en especial por su bajo costo y con muchísimos servicios ideales para desplegar infra escalable de manera bastante simple.&lt;br /&gt;
&lt;br /&gt;
Al provider de Linode para Terraform lo pueden encontrar &lt;a href="https://www.terraform.io/docs/providers/linode/index.html" target="_blank"&gt;aquí&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Mi objetivo es crear una serie de &lt;a href="https://www.linode.com/docs/platform/object-storage/how-to-use-object-storage/" target="_blank"&gt;buckets&lt;/a&gt; para backups, así que me puse en la tarea de escribir un módulo bastante sencillo (recomiendo leer la siguiente &lt;a href="https://www.linode.com/docs/applications/configuration-management/terraform/beginners-guide-to-terraform/" target="_blank"&gt;guía&lt;/a&gt; para arrancar). &lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #996633;"&gt;$ &lt;/span&gt;tree 
.
├── main.tf
├── modules
│   ├── buckets
│       ├── main.tf
│       ├── outputs.tf
│       └── variables.tf
├── sensitive.tfvars
├── terraform.tfvars
└── variables.tf
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
En donde el &lt;i&gt;main.tf&lt;/i&gt; luce de la siguiente manera:&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;provider &lt;span style="background-color: #fff0f0;"&gt;"linode"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;version&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"~&amp;gt; 1.6"&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;token&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; var.token
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

module &lt;span style="background-color: #fff0f0;"&gt;"buckets"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #007020;"&gt;source&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"./modules/buckets"&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;label&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; var.label
  &lt;span style="color: #996633;"&gt;region&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; var.region
  &lt;span style="color: #996633;"&gt;key_label&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; var.key_label
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;variables.tf&lt;/i&gt;&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;variable &lt;span style="background-color: #fff0f0;"&gt;"region"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #007020;"&gt;type&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; string
  &lt;span style="color: #996633;"&gt;description&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"Default region"&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;default&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"us-central"&lt;/span&gt;
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

variable &lt;span style="background-color: #fff0f0;"&gt;"label"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #007020;"&gt;type&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; string
  &lt;span style="color: #996633;"&gt;description&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"The bucket label"&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;default&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"default_label"&lt;/span&gt;
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

variable &lt;span style="background-color: #fff0f0;"&gt;"key_label"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #007020;"&gt;type&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; string
  &lt;span style="color: #996633;"&gt;description&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"Object storage access key"&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;default&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"access_key"&lt;/span&gt;
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

variable &lt;span style="background-color: #fff0f0;"&gt;"token"&lt;/span&gt;&lt;span style="color: #333333;"&gt;{&lt;/span&gt;
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;terraform.tfvars&lt;/i&gt;&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #996633;"&gt;label&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"backup"&lt;/span&gt;
&lt;span style="color: #996633;"&gt;region&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"us-east"&lt;/span&gt;
&lt;span style="color: #996633;"&gt;key_label&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"backups_key"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;sensitive.tfvars&lt;/i&gt;&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #996633;"&gt;token&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"abcdefghi="&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
Finalmente, dentro del directorio buckets tengo lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;main.tf&lt;/i&gt;&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;data &lt;span style="background-color: #fff0f0;"&gt;"linode_region"&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"region"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;id&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; var.region
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

data &lt;span style="background-color: #fff0f0;"&gt;"linode_object_storage_cluster"&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"primary"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;id&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"${data.linode_region.region.id}-1"&lt;/span&gt;
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

resource &lt;span style="background-color: #fff0f0;"&gt;"linode_object_storage_key"&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"bucket_key"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;label&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; var.key_label
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

resource &lt;span style="background-color: #fff0f0;"&gt;"linode_object_storage_bucket"&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"bucket"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;cluster&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; data.linode_object_storage_cluster.primary.id
  &lt;span style="color: #996633;"&gt;label&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; var.label
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;variables.tf&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;variable &lt;span style="background-color: #fff0f0;"&gt;"region"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #007020;"&gt;type&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; string
  &lt;span style="color: #996633;"&gt;description&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"Default region"&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;default&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"us-east"&lt;/span&gt;
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

variable &lt;span style="background-color: #fff0f0;"&gt;"label"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #007020;"&gt;type&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; string
  &lt;span style="color: #996633;"&gt;description&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"The bucket label"&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;default&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"bucket_label"&lt;/span&gt;
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

variable &lt;span style="background-color: #fff0f0;"&gt;"key_label"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #007020;"&gt;type&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; string
  &lt;span style="color: #996633;"&gt;description&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"Object storage access key"&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;default&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="background-color: #fff0f0;"&gt;"bucket_key"&lt;/span&gt;
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;outputs.tf&lt;/i&gt;&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;output &lt;span style="background-color: #fff0f0;"&gt;"bucket_label"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;value&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; linode_object_storage_bucket.bucket.label
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;

output &lt;span style="background-color: #fff0f0;"&gt;"bucket_key"&lt;/span&gt; &lt;span style="color: #333333;"&gt;{&lt;/span&gt;
  &lt;span style="color: #996633;"&gt;value&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; linode_object_storage_key.bucket_key.label
&lt;span style="color: #333333;"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
Bastante sencillo, si. Antes de desplegar los cambios ejecutar:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #996633;"&gt;$ &lt;/span&gt;terraform plan -var-file&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"sensitive.tfvars"&lt;/span&gt; -var-file&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"terraform.tfvars"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
para saber qué va a hacer Terraform (crear, modificar o borrar un recurso).&lt;br /&gt;
&lt;br /&gt;
Para finalmente aplicarlos&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #996633;"&gt;$ &lt;/span&gt;terraform apply -var-file&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"sensitive.tfvars"&lt;/span&gt; -var-file&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"terraform.tfvars"&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
Espero que haya sido de utilidad, estos son mis primeros pasos utilizando esta herramienta. Próximamente actualizaré mi repositorio incluyendo los templates para crear linodes.&lt;br /&gt;
&lt;br /&gt;
Saludos.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>.vimrc para tu vim</title><link>https://verovand.blogspot.com/2019/11/vimrc-para-tu-vim.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 19 Nov 2019 21:24:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-699004129839105713</guid><description>¡Hola!&lt;br /&gt;
&lt;br /&gt;
Les comparto mi archivo .vimrc con todas mis configuraciones para usar con el editor &lt;i&gt;Vim&lt;/i&gt;, espero que les sirva!&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gitlab.com/snippets/1914818.js"&gt;&lt;/script&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Templates anidados en Cloudformation</title><link>https://verovand.blogspot.com/2019/07/templates-anidados-en-cloudformation.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 23 Jul 2019 20:26:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-982268643755286481</guid><description>Buenas noches!&lt;br /&gt;
&lt;br /&gt;
Uno de los problemas con los que me enfrenté cuando empecé con &lt;a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html"&gt;Cloudformation&lt;/a&gt; fue que creaba &lt;i&gt;stacks&lt;/i&gt;  con recursos demasiado grandes, de manera que si este fallaba en la  creación de alguno de esos recursos, automáticamente AWS realiza el &lt;i&gt;rollback&lt;/i&gt;, destruyendo todos los creados anteriormente. ¿Qué problemas implica esto? Principalmente pérdida de tiempo,además de tener un &lt;i&gt;stack&lt;/i&gt; de recursos poco mantenible.&lt;br /&gt;
&lt;br /&gt;
Una forma práctica y correcta al momento de provisionar recursos con  Cloudformation es crear templates atómicos y reutilizables.    &lt;br /&gt;
&lt;br /&gt;
Ejemplo: se necesita levantar Grafana en docker, dos  containers (distintas AZ) y un load balancer. Se usará ECS Fargate para  tal propósito. De la descripción anterior se deduce que se requieren los siguientes  recursos: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt; security groups, tanto para el ALB como para la aplicación&amp;nbsp;&lt;/li&gt;
&lt;li&gt;un ALB, con su respectivo target group y listener &lt;br /&gt;
una task y un service definition de ECS Fargate y un log group   &lt;/li&gt;
&lt;/ul&gt;
Cada uno de estos grupos de recursos estarán definidos en templates diferentes, que serán los &lt;i&gt;child&lt;/i&gt;.&lt;br /&gt;
La estrategia consiste en crear un template al que llamaremos &lt;i&gt;master.yml&lt;/i&gt; que lucirá de la siguiente manera:&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #000000; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #cccccc;"&gt;---&lt;/span&gt;
&lt;span style="color: #cccccc;"&gt;AWSTemplateFormatVersion:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;'2010-09-09'&lt;/span&gt;
&lt;span style="color: #cccccc;"&gt;Description:&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;&amp;gt;&lt;/span&gt;
  &lt;span style="color: #cccccc;"&gt;Master template for Grafana hosted on Fargate&lt;/span&gt;

&lt;span style="color: #cccccc;"&gt;Parameters:&lt;/span&gt;
  &lt;span style="color: #cccccc;"&gt;S3Location:&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Description:&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;Your S3 location to store cloudformation template&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Type:&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;String&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Default:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;"https://s3-us-west-2.amazonaws.com/cf-grafana/"&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;MinLength:&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;1&lt;/span&gt;

&lt;span style="color: #cccccc;"&gt;Resources:&lt;/span&gt;
  &lt;span style="color: #cccccc;"&gt;SecurityGroups:&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Type:&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;AWS::CloudFormation::Stack&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Properties:&lt;/span&gt;
      &lt;span style="color: #cccccc;"&gt;Parameters:&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;VPCId:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;EnvironmentName:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;Stage:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;ProjectName:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
      &lt;span style="color: #cccccc;"&gt;TemplateURL:&lt;/span&gt; &lt;span style="color: #00cd00;"&gt;!Join&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;[&lt;/span&gt;&lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;,[&lt;/span&gt;&lt;span style="color: #00cd00;"&gt;!Ref&lt;/span&gt; &lt;span style="color: #00cdcd;"&gt;S3Location&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;,&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;"sec-groups.yml"&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;]]&lt;/span&gt;

  &lt;span style="color: #cccccc;"&gt;LoadBalancers:&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Type:&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;AWS::CloudFormation::Stack&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Properties:&lt;/span&gt;
      &lt;span style="color: #cccccc;"&gt;Parameters:&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;EnvironmentName:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;Stage:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;ProjectName:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;VPCId:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;Subnets:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;ALBSecurityGroup:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;HealthCheck:&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;/api/health&lt;/span&gt;
      &lt;span style="color: #cccccc;"&gt;TemplateURL:&lt;/span&gt; &lt;span style="color: #00cd00;"&gt;!Join&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;[&lt;/span&gt;&lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;,[&lt;/span&gt;&lt;span style="color: #00cd00;"&gt;!Ref&lt;/span&gt; &lt;span style="color: #00cdcd;"&gt;S3Location&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;,&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;"load-balancers.yml"&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;]]&lt;/span&gt;

  &lt;span style="color: #cccccc;"&gt;ECS:&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Type:&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;AWS::CloudFormation::Stack&lt;/span&gt;
    &lt;span style="color: #cccccc;"&gt;Properties:&lt;/span&gt;
      &lt;span style="color: #cccccc;"&gt;Parameters:&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;Subnets:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: navy;"&gt;#RepositoryURL: ""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;SecurityGroups:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;TargetARN:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;ClusterName:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;LogPrefix:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;EnvironmentName:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;Stage:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;ProjectName:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;
        &lt;span style="color: #cccccc;"&gt;LogGroupName:&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;"ecs"&lt;/span&gt;
      &lt;span style="color: #cccccc;"&gt;TemplateURL:&lt;/span&gt; &lt;span style="color: #00cd00;"&gt;!Join&lt;/span&gt; &lt;span style="color: #cccccc;"&gt;[&lt;/span&gt;&lt;span style="color: #cd0000;"&gt;""&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;,[&lt;/span&gt;&lt;span style="color: #00cd00;"&gt;!Ref&lt;/span&gt; &lt;span style="color: #00cdcd;"&gt;S3Location&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;,&lt;/span&gt; &lt;span style="color: #cd0000;"&gt;"ecs.yml"&lt;/span&gt;&lt;span style="color: #cccccc;"&gt;]]&lt;/span&gt;
&lt;span style="color: #cccccc;"&gt;...&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
Del template anterior se puede destacar que es necesario disponer de 
un bucket S3 donde guardar los templates referenciados luego.   &lt;br /&gt;

&lt;br /&gt;
Cada &lt;em&gt;Resource&lt;/em&gt; es del tipo &lt;strong&gt;AWS::CloudFormation::Stack&lt;/strong&gt; y es allí donde se llaman a los stacks de los recursos que necesitamos crear.&lt;br /&gt;
&lt;br /&gt;

Algo interesante es que desde el archivo &lt;em&gt;master&lt;/em&gt; se pueden pasar &lt;em&gt;Parameters&lt;/em&gt; a cada &lt;em&gt;child&lt;/em&gt;, de manera que esos templates hijos no estarán harcodeados y podrán ser reutilizados en otra implementación.
Teniendo todo esto listo, ya se puede realizar el &lt;em&gt;deploy&lt;/em&gt; de los recursos ¿Cómo? Comentando cada sección de &lt;em&gt;Stacks&lt;/em&gt;. Esto sería, comentar el Stack &lt;em&gt;LoadBalancers&lt;/em&gt; y &lt;em&gt;ECS&lt;/em&gt;; posteriormente, cuando se actualiza el template master, descomentar lo que corresponde a &lt;em&gt;LoadBalancers&lt;/em&gt; (Cloudformation no modificará ni destruirá nada de lo anterior). Por último &lt;em&gt;ECS&lt;/em&gt;.&lt;br /&gt;

&lt;br /&gt;
Espero que haya sido de utilidad.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Errores con mirrors de Raspberry Pi</title><link>https://verovand.blogspot.com/2019/06/errores-con-mirrors-de-raspberry-pi.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Sat, 15 Jun 2019 16:33:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-1521069974738305723</guid><description>Buenas tardes,&lt;br /&gt;
&lt;br /&gt;
Quienes usen Raspberry Pi con Raspbian) (o cualquier SO basado en Debian) e intenten instalar paquetes posiblemente experimentan el siguiente error:&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #000000; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #888888;"&gt;E: Fallo al obtener http://espejito.fder.edu.uy/raspbian/raspbian/pool/main/d/db-defaults/libdb-dev_5.3.1_armhf.deb  La suma hash difiere&lt;/span&gt;
&lt;span style="color: #888888;"&gt;   Hashes of expected file:&lt;/span&gt;
&lt;span style="color: #888888;"&gt;    - SHA256:758a865f81496e5dc4742467ea65b2587b2f5701da22aabdb9ef0390f59cad5d&lt;/span&gt;
&lt;span style="color: #888888;"&gt;    - SHA1:668819cadbe14928bc627c698a56002a2c097441 [weak]&lt;/span&gt;
&lt;span style="color: #888888;"&gt;    - MD5Sum:bec8cd7801c05645ade55d73281de814 [weak]&lt;/span&gt;
&lt;span style="color: #888888;"&gt;    - Filesize:2348 [weak]&lt;/span&gt;
&lt;span style="color: #888888;"&gt;   Hashes of received file:&lt;/span&gt;
&lt;span style="color: #888888;"&gt;    - SHA256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&lt;/span&gt;
&lt;span style="color: #888888;"&gt;    - SHA1:da39a3ee5e6b4b0d3255bfef95601890afd80709 [weak]&lt;/span&gt;
&lt;span style="color: #888888;"&gt;    - MD5Sum:d41d8cd98f00b204e9800998ecf8427e [weak]&lt;/span&gt;
&lt;span style="color: #888888;"&gt;    - Filesize:0 [weak]&lt;/span&gt;
&lt;span style="color: #888888;"&gt;   Last modification reported: Mon, 31 Aug 2015 12:10:16 +0000&lt;/span&gt;
&lt;span style="color: #888888;"&gt;E: No se pudieron obtener algunos archivos, ¿quizás deba ejecutar «apt-get update» o deba intentarlo de nuevo con --fix-missing?&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
Para resolver este problema decidí modificar el archivo source.list cambiando el mirror que originalmente es:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;b&gt;deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
por el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;b&gt;deb http://mirror.ufam.edu.br/raspbian/raspbian/ stretch main contrib non-free rpi&lt;/b&gt;&lt;/span&gt; (Brasil) &lt;br /&gt;
&lt;br /&gt;
Evidentemente el error es causado por la misma caché del repositorio.&lt;br /&gt;
Aquí la lista de mirrors: &lt;a href="https://www.raspbian.org/RaspbianMirrors/"&gt;https://www.raspbian.org/RaspbianMirrors/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Muchas páginas/blogs sugieren realizar también lo siguiente (no funcionó en mi caso):&lt;br /&gt;
&lt;br /&gt;
1- &lt;span style="font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;b&gt;sudo apt-get clean&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
2- &lt;span style="font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;b&gt;sudo apt-get autoclean&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
3- &lt;span style="font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;"&gt;&lt;b&gt;sudo rm -Rf /var/lib/apt/lists/*&lt;/b&gt;&lt;/span&gt; (recomendado)&lt;br /&gt;
&lt;br /&gt;
Saludos. </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Taller de Pelican, by LinuxchixAr</title><link>https://verovand.blogspot.com/2019/04/taller-de-pelican-by-linuxchixar.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 1 Apr 2019 20:15:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-5189370621484282599</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div style="margin-left: 1em; margin-right: 1em;"&gt;
 &lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Hola!&lt;br /&gt;
&lt;br /&gt;
Este mes con LinuxchixAr estaremos brindando un taller dedicado a Pelican, un generador de contenido estático puramente basado en Python.&lt;br /&gt;
&lt;br /&gt;
A partir de hoy las inscripciones se encuentran abiertas!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://pbs.twimg.com/media/D3ErF03WoAAhvDR.png:large" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" border="0" class="media-image" data-height="800" data-width="800" height="320" src="https://pbs.twimg.com/media/D3ErF03WoAAhvDR.png:large" style="margin-top: 0px;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
Formulario: &lt;a href="https://t.co/1Bt15UECAn"&gt;https://t.co/1Bt15UECAn&lt;/a&gt;&lt;br /&gt;
Meetup: &lt;a href="https://t.co/VK5iACMzUa"&gt;https://t.co/VK5iACMzUa&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Te invito también a seguir a la comunidad LinuxchixAr en las redes sociales para que estés al tanto de todas las actividades que vamos a realizar.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.linuxchixar.org/"&gt;http://www.linuxchixar.org/&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Template de Cloudformation para crear outbound endpoints y rules en Route53</title><link>https://verovand.blogspot.com/2019/03/template-de-cloudformation-para-crear.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 4 Mar 2019 22:07:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-6312884761136371329</guid><description>Hola!&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Les comparto un template de Cloudformation que tuve que escribir para crear outbound endpoints y sus correspondientes rules. Todo esto corresponde al servicio Route53.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;
Hago uso de &lt;b&gt;!ImportValue&lt;/b&gt;, una funcionalidad excelente que me permite importar de otros stacks que estén en la misma región algunos valores que necesito para crear el mío.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Seguramente necesita pulirse algunos detalles, como agregar parámetros para las direcciones IP y así evitar que estén harcodeadas. Espero que les resulte útil y aguardo sus sugerencias.&lt;/div&gt;
&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #272822; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #f8f8f2;"&gt;---&lt;/span&gt;
&lt;span style="color: #ae81ff;"&gt;AWSTemplateFormatVersion&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'2010-09-09'&lt;/span&gt;
&lt;span style="color: #ae81ff;"&gt;Description&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'Template&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;used&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;to&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;create&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;outbound&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;endpoints&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;and&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;rules&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;to&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;reach&lt;/span&gt; 
  &lt;span style="color: #e6db74;"&gt;external&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;DNS&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt; &lt;/span&gt;&lt;span style="color: #e6db74;"&gt;servers'&lt;/span&gt;
&lt;span style="color: #ae81ff;"&gt;Parameters&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
&lt;span style="color: #ae81ff;"&gt;Resources&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
  &lt;span style="color: #ae81ff;"&gt;OutboundEndpoint&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;Type&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;"AWS::Route53Resolver::ResolverEndpoint"&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;Properties&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Direction&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;Outbound&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;IpAddresses&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt; 
          &lt;span style="color: #ae81ff;"&gt;SubnetId&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!ImportValue&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'VPCStack-SubnetA'&lt;/span&gt;
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt; 
          &lt;span style="color: #ae81ff;"&gt;SubnetId&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!ImportValue&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'VPCStack-SubnetB'&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Name&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;OutboundEndpoint&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;SecurityGroupIds&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; 
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;Ref&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;OutboundSecurityGroup&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Tags&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt; 
          &lt;span style="color: #ae81ff;"&gt;Key&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'Name'&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;Value&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'OutboundEndpoint'&lt;/span&gt;
  &lt;span style="color: #ae81ff;"&gt;OutboundSecurityGroup&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;Type&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;AWS::EC2::SecurityGroup&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;Properties&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;GroupDescription&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;Allow outbound traffic&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;SecurityGroupEgress&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;IpProtocol&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;udp&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;FromPort&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'0'&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;ToPort&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'53'&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;CidrIp&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'0.0.0.0/0'&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;VpcId&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!ImportValue&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'VPCStack-VpcId'&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Tags&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;Key&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'Name'&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;Value&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'OutboundSecurityGroup'&lt;/span&gt;
  &lt;span style="color: #ae81ff;"&gt;OutboundResolverRules&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;Type&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;"AWS::Route53Resolver::ResolverRule"&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;Properties&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;DomainName&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'domain.net'&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Name&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'DomainNetRules'&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;ResolverEndpointId&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!GetAtt&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;OutboundEndpoint.ResolverEndpointId&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;RuleType&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'FORWARD'&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Tags&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; 
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;Key&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'Name'&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;Value&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'DomainNetRules'&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;TargetIps&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; 
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt; 
          &lt;span style="color: #ae81ff;"&gt;Ip&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;''&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;Port&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'53'&lt;/span&gt;
        &lt;span style="color: #f8f8f2;"&gt;-&lt;/span&gt; 
          &lt;span style="color: #ae81ff;"&gt;Ip&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;''&lt;/span&gt;
          &lt;span style="color: #ae81ff;"&gt;Port&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'53'&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;DependsOn&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;OutboundEndpoint&lt;/span&gt;
  &lt;span style="color: #ae81ff;"&gt;ResolverVPC&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;Type&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;"AWS::Route53Resolver::ResolverRuleAssociation"&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;Properties&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Name&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;ResolverRuleDNS&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;ResolverRuleId&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!GetAtt&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;OutboundResolverRules.ResolverRuleId&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;VPCId&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!ImportValue&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'VPCStack-VpcId'&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;DependsOn&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;OutboundResolverRules&lt;/span&gt;
&lt;span style="color: #ae81ff;"&gt;Outputs&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;ResolverEndpointId&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Description&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;Resolver endpoint ID&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Value&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!GetAtt&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;OutboundEndpoint.ResolverEndpointId&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Export&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
        &lt;span style="color: #ae81ff;"&gt;Name&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!Sub&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'${AWS::StackName}-ResolverEndpointId'&lt;/span&gt;
    &lt;span style="color: #ae81ff;"&gt;ResolverRuleId&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Description&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;Resolver rule ID&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Value&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!GetAtt&lt;/span&gt; &lt;span style="color: #ae81ff;"&gt;OutboundResolverRules.ResolverRuleId&lt;/span&gt;
      &lt;span style="color: #ae81ff;"&gt;Export&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt;
        &lt;span style="color: #ae81ff;"&gt;Name&lt;/span&gt;&lt;span style="color: #f8f8f2;"&gt;:&lt;/span&gt; &lt;span style="color: #66d9ef;"&gt;!Sub&lt;/span&gt; &lt;span style="color: #e6db74;"&gt;'${AWS::StackName}-ResolverRuleId'&lt;/span&gt;
&lt;span style="color: #f8f8f2;"&gt;...&lt;/span&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;br /&gt;
Referencias: &lt;a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html"&gt;https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Integrar Telegraf con scripts personalizados para crear monitoreo y gráficos</title><link>https://verovand.blogspot.com/2019/02/integrar-telegraf-con-scripts.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 19 Feb 2019 00:02:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-1087438712771536676</guid><description>Hola!&lt;br /&gt;
&lt;br /&gt;
Algo que me parece super interesante de &lt;a href="https://docs.influxdata.com/telegraf" target="_blank"&gt;Telegraf&lt;/a&gt; es la facilidad con la que se pueden integrar scripts custom para la recolección de métricas a través del plugin &lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/inputs/exec" target="_blank"&gt;&lt;b&gt;exec&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Recientemente me vi en la tarea de generar gráficos en Grafana en los que pueda visualizar la cantidad de conexiones activas de los usuarios conectados a una base de datos MySQL (o MaríaDB). Con Telegraf es muy simple (y sin usar un cron que corra cada minuto que ejecute el script y escriba los datos en una db). Si bien al script lo tuve que escribir yo, únicamente me tuve que preocupar que el STDOUT del script sea el que espera Telegraf. Dado que mi motor de base de datos en InfluxDB, el formato de dicha salida del script tiene que ser &lt;b&gt;influx&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Mi script se ejecutaba de la siguiente manera y devolvía un output:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;$ ./users_connections.py&lt;br /&gt;
active_connections,host=mydb.example.net user=user1,active_conns=1234&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;code&gt;active_connections,host=mydb.example.net user=user2,active_conns=1235&lt;/code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;code&gt;&lt;code&gt;active_connections,host=mydb.example.net user=user3,active_conns=1236&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;code&gt;&lt;code&gt;&lt;code&gt;active_connections,host=mydb.example.net user=user4,active_conns=1237&lt;/code&gt; &lt;/code&gt;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/code&gt; &lt;br /&gt;
&lt;br /&gt;
El archivo de configuración de Telegraf &lt;b&gt;/etc/telegraf/telegraf.conf&lt;/b&gt; tendrá una sección para este script:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="container"&gt;
&lt;pre&gt;[[&lt;span class="pl-en"&gt;inputs&lt;/span&gt;.&lt;span class="pl-en"&gt;exec&lt;/span&gt;]]
  &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt;# Commands array&lt;/span&gt;
  &lt;span class="pl-smi"&gt;commands&lt;/span&gt; = [
    &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;/scripts/&lt;/span&gt;&lt;code&gt;users_connections.py&lt;/code&gt;&lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;,
  ]
  &lt;span class="pl-smi"&gt;timeout&lt;/span&gt; = &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;5s&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;
  &lt;span class="pl-smi"&gt;name_suffix&lt;/span&gt; = &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;_activeconns&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;
  &lt;span class="pl-smi"&gt;data_format&lt;/span&gt; = &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;"&lt;/span&gt;influx&lt;span class="pl-pds"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
Si agregan otros scripts a esta misma sección automáticamente Telegraf los ejecutará sin necesidad de reiniciar el servicio.&lt;br /&gt;
&lt;br /&gt;
¡Espero que sea de utilidad!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Deploy de public keys con Ansible</title><link>https://verovand.blogspot.com/2019/02/deploy-de-public-keys-con-ansible.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Sun, 10 Feb 2019 03:32:00 -0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-6774292784151618809</guid><description>Hola!&lt;br /&gt;
&lt;br /&gt;
Quienes usamos o empezamos a usar Ansible nos preguntamos cómo instalar la clave pública en los hosts (que pueden ser muchos) que queremos manejar a través de Ansible... usando Ansible mismo :)&lt;br /&gt;
&lt;br /&gt;
La respuesta la encontré a través de un playbook que luce de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;$ cat deploy_ssh_key.yml  
1:  ---  
2:  - hosts: all  
3:   gather_facts: false  
4:   vars_files:  
5:    - external_vars.yml  
6:   tasks:  
7:   - name: Create direcotry  
8:    file:  
9:     path: "/home/usuario-remoto/.ssh"  
10:     state: directory  
11:   - name: Create empty file  
12:    file:  
13:     path: "/home/usuario-remoto/.ssh/authorized_keys"  
14:     state: touch  
15:   - name: Put pubkey  
16:    lineinfile:  
17:     path: "/home/usuario-remoto/.ssh/authorized_keys"  
18:     line: "{{ pub_key }}"  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
El archivo &lt;b&gt;external_vars.yml&lt;/b&gt; contiene la clave pública:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; $ cat external_vars.yml  
 ---  
 pub_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCnTvKiRzIU0Jqz3kpf97wVJdT4LwHZuu6Nr/GFFOtq0QeWP5Eu6JmWkvwuNoghdXu/lxHf//07djGUfxnt9BDdQmDMsGx3qEFzAQAlrlq2P6lygSksy8MROQsHCDzT0hX7pntiwigDE7rUuGt3h3T+IFuvjfZqMx2wiX4dFLUC9+HcdtUuzMHjMs1zevP2nmpOWAP7LkcwlkdJZIpkOqujshJFymuXylWvT8vV5RbqwB7ZaR1m+rpCYt1MQFgHgI/42jXeywbORA3Nm6pjVCccNjJ5DpbhiEZA/O/SJH/zlFPuoPaTai5sH8MLuU8h11C4U9UPY08/XhAkIDebVri1 ansible@verovan.com.ar  
 ...
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
El comando de Ansible se ejecuta de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; $ ansible-playbook -u usuario-remoto deploy_ssh_key.yml --ask-pass -c paramiko  
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
(-c paramiko lo usé debido a un issue reportado en &lt;a href="https://github.com/ansible/ansible/issues/3564"&gt;https://github.com/ansible/ansible/issues/3564&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Para verificar que está todo en orden y que la clave fue instalada correctamente:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; $ ansible all -u usuario-remoto --private-key-file=/ruta/a/la/clave-privada -m ping 
&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
El módulo &lt;b&gt;lineinfile&lt;/b&gt; lo usé para apendar la clave pública en el archivo &lt;b&gt;authorized_keys&lt;/b&gt; (ver &lt;a href="https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html"&gt;https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Espero que les resulte de utilidad!&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #741b47;"&gt;&lt;u&gt;NOTAS ADICIONALES&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Si se deploya las keys en CentOS 6, es necesario cambiar los permisos tanto del fichero &lt;b&gt;authorized_keys &lt;/b&gt;como del directorio &lt;b&gt;.ssh&lt;/b&gt;. El playbook quedaría de esta manera:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; ---  
 - hosts: curso  
  gather_facts: true  
  vars_files:  
   - external_vars.yml  
  tasks:  
  - name: make direcotry  
   
   file:  
    path: "/home/&lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;usuario-remoto&lt;/code&gt;/.ssh"  
    state: directory  
   
  - name: create empty file  
   file:  
    path: "/home/&lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;usuario-remoto&lt;/code&gt;/.ssh/authorized_keys"  
    state: touch  
   
  - name: put pubkey  
   lineinfile:  
    path: "/home/&lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;usuario-remoto&lt;/code&gt;/.ssh/authorized_keys"  
    line: "{{ pub_key }}"  
   
  - name: change permissions file  
   file:  
    path: "/home/usuario-remoto/.ssh/authorized_keys"  
    mode: 0600  
   when: ansible_distribution == "CentOS"   
   
  - name: change permissions dir  
   file:  
    path: "/home/usuario-remoto/.ssh"  
    mode: 0700  
   when: ansible_distribution == "CentOS"  
&lt;/code&gt;&lt;/pre&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Algo simple con rsync</title><link>https://verovand.blogspot.com/2019/01/algo-simple-con-rsync.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 31 Jan 2019 00:50:00 -0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-1837068741681247463</guid><description>Hola!&lt;br /&gt;
&lt;br /&gt;
Voy a contarles una forma muy sencilla de hacer respaldos de sus archivos/fotos/lo que sea, que tienen almacenadas en su celular y no quieren subirlas a la nube (mi caso).&lt;br /&gt;
Con rsync encontré la forma de lograr eso. Para tal fin necesité lo siguiente:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;rsync configurado y ejecutándose en la computadora donde deseo almacenar los archivos &lt;/li&gt;
&lt;li&gt;la aplicación myRsync &lt;a href="https://github.com/socratesx/myrsync"&gt;https://github.com/socratesx/myrsync&lt;/a&gt; instalada en el teléfono&lt;/li&gt;
&lt;/ol&gt;
Configurar &lt;b&gt;rsync&lt;/b&gt; es sumamente simple para nuestro propósito. Se debe editar (o crear en caso que no existiese) el archivo &lt;b&gt;/etc/rsyncd.conf &lt;/b&gt;con el siguiente contenido (puede llevar otras opciones, consultar &lt;b&gt;man rsyncd.conf&lt;/b&gt;)&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;pid file = /var/run/rsyncd.pid&lt;br /&gt;lock file = /var/run/rsync.lock&lt;br /&gt;log file = /var/log/rsync.log&lt;br /&gt;port = 12000&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Times, &amp;quot;Times New Roman&amp;quot;, serif;"&gt;[celular]&lt;br /&gt;path = /home/verovan/celular&lt;br /&gt;comment = my photos mobile&lt;br /&gt;read only = false&lt;br /&gt;write only = false&lt;br /&gt;timeout = 300&lt;br /&gt;max connections = 2&lt;br /&gt;uid = verovan&lt;br /&gt;gid = verovan&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
Se debe reiniciar el servicio de rsync luego de editar el archivo de configuración. rsync se estará ejecutando como un demonio en el sistema.&lt;br /&gt;
&lt;br /&gt;
Respecto al punto número 2, &lt;b&gt;myRsync&lt;/b&gt; se encuentra disponible en el PlayStore, no tiene adds y es muy intuitiva. Una excelente ventaja es el &lt;i&gt;scheduler&lt;/i&gt;, que no es más que un cron para ejecutar rsync desde el teléfono en días y horarios determinados y asociarlo a alguna configuración.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;img alt="Captura de pantalla" class="T75of Jc7BF" height="320" itemprop="image" src="https://lh3.googleusercontent.com/B4coG6U39f3mDE9Iu5V5i6N-JL2ghxG1NFOJHxY008hY87s7UvWjPBHFLUgrjyrV98Hy=w1920-h938" width="185" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img alt="Captura de pantalla" class="T75of Jc7BF" height="320" itemprop="image" src="https://lh3.googleusercontent.com/aX1F26gGudd3E_9tDmFvKij4p5_qalxjPJWjRpiReVh9zr4-qsBRqAYTEHoTFHlxLw=w1920-h938" width="185" /&gt; &lt;/div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Configuration name: nombre para la configuración de rsync.&lt;/li&gt;
&lt;li&gt;Server IP address: la IP de la compu/server donde se configuró el demonio de rsync&lt;/li&gt;
&lt;li&gt;Rsync User: si se configuró un usuario en rsync en la pc/server usarlo, de otro modo será anonymous.&lt;/li&gt;
&lt;li&gt;Rsync Server Mode: lo que colocamos entre corchetes en la configuración de rsync.&lt;/li&gt;
&lt;/ul&gt;
ADD PATH permite elegir sobre qué directorio del celular realizar el rsync.&lt;br /&gt;
En Rsync options yo uso -arzvt, pero dependerá de cada usuario.&lt;br /&gt;
Finalmente se puede visualizar el comando tal como si se estuviese desde un terminal y ejecutarlo para probar que esté todo correctamente configurado.&lt;br /&gt;
&lt;br /&gt;
De esta manera estaremos realizando un respaldo de lo que queramos cuando queramos desde nuestro celular a nuestra propia pc/servidor :)&lt;br /&gt;
&lt;br /&gt;
PROS: tenemos todo bajo nuestro control.&lt;br /&gt;
CONS: la aplicación &lt;b&gt;myRsync&lt;/b&gt; no soporta SSH.&lt;br /&gt;
TIP: setear una IP estática en la pc/servidor destino, ya que el DHCP server del router puede asignarle una diferente a la que hayamos configurado en la aplicación.&lt;br /&gt;
&lt;br /&gt;
¡Espero que sea de utilidad!&lt;br /&gt;
&lt;br /&gt;
Más sobre rsync: &lt;a href="https://download.samba.org/pub/rsync/rsyncd.conf.html"&gt;https://download.samba.org/pub/rsync/rsyncd.conf.html&lt;/a&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://lh3.googleusercontent.com/B4coG6U39f3mDE9Iu5V5i6N-JL2ghxG1NFOJHxY008hY87s7UvWjPBHFLUgrjyrV98Hy=s72-w1920-h938-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>RMS en Jujuy. Sueño cumplido.</title><link>https://verovand.blogspot.com/2017/06/rms-en-jujuy-sueno-cumplido.html</link><category>Jujuy</category><category>rms</category><category>software libre</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 14 Jun 2017 22:34:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-7585587286900145213</guid><description>Buenas noches, lectores.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Creo que fueron unos días loquísimos desde el sábado que pasó hasta el martes. La llegada de Richard Stallman nos revolucionó a todos los amantes del software libre. Estar y charlar con alguien que cambió la historia de las ciencias de la información, creó una filosofía y generó un movimiento alrededor de todo el mundo, realmente pone la piel de gallina...&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Me siento muy privilegiada por una oportunidad como esta. Y muy feliz de que mi querida Facultad de Ing., en la persona del Ing. Lores, se haya comprometido para que todo se llevara a cabo en el ámbito universitario e impulsado el otorgamiento del título de Doctor Honoris Causa.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Hay muchas anécdotas por contar, pero me quedo con el momento en el que, con &lt;b&gt;rms&lt;/b&gt;, discutimos cómo intercambiar claves públicas :) Luego del almuerzo que preparé para el, le comenté acerca de mi charla sobre criptografía asimétrica y GnuPG. Fue un buen momento para seguir aprendiendo de la mano de un genio, un hacker...&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjblXeHAGu5CV1whbP_0z3ilZmjFa45dOrlkEKXc7Cdi8AF1Y7O9hImltm4jy7sNtsrPcv5WUj1I8GmhJo0bUBM_kXjVrstI6d-bA1ocTSWZnZMMQC62A4uSzGYcxLO_RqJXCeNK107Vs8/s1600/photo5049097372482774961.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="960" data-original-width="1280" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjblXeHAGu5CV1whbP_0z3ilZmjFa45dOrlkEKXc7Cdi8AF1Y7O9hImltm4jy7sNtsrPcv5WUj1I8GmhJo0bUBM_kXjVrstI6d-bA1ocTSWZnZMMQC62A4uSzGYcxLO_RqJXCeNK107Vs8/s400/photo5049097372482774961.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Haber sido parte de la recepción de Stallman fue una oportunidad que me dio Luis Wayar. Luis es un referente y lo aprecio muchísimo. Una persona que hizo y hace mucho por el software libre en mi provincia y que merece el reconocimiento de todos, por su dedicación constante y su valioso aporte a toda la comunidad.&lt;br /&gt;
&lt;br /&gt;
Con el excelente grupo que organizamos la estadía de Stallman en Jujuy, prontamente&amp;nbsp; subiremos todo el contenido al sitio web creado exclusivamente para promocionar la visita de &lt;b&gt;rms&lt;/b&gt;. No dejen de visitar &lt;a href="http://stallmanenjujuy.org/"&gt;http://stallmanenjujuy.org&lt;/a&gt; para que pueda ver fotos y vídeos (en formatos libres por supuesto :D ) y más material.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
¡Saludos!&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjblXeHAGu5CV1whbP_0z3ilZmjFa45dOrlkEKXc7Cdi8AF1Y7O9hImltm4jy7sNtsrPcv5WUj1I8GmhJo0bUBM_kXjVrstI6d-bA1ocTSWZnZMMQC62A4uSzGYcxLO_RqJXCeNK107Vs8/s72-c/photo5049097372482774961.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Pre-Stallman... y lo que se viene!</title><link>https://verovand.blogspot.com/2017/06/pre-stallman-y-lo-que-se-viene.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 6 Jun 2017 21:58:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-500550016233344355</guid><description>Buenas noches, lectores.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Están siendo semanas sobrecargadas de actividades de preparación para recibir a Richard Stallman nuevamente en la Argentina ¡Nada más ni nada menos! Jujuy no es la excepción a esta visita y, desde estas latitudes, estamos muy emocionados por su llegada.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJXJKN-x42cmzvjRsuDaJp_30BJvJH_lXpuhV7dOEOVkepLcYf6eRg77NqjcObr1SI6fxYvFJvHqTDFOrYp-LzBJUkT2qOlc24Dlm6xgZIBxfJ6u4JFye1Fc1_3p6XiyLAkS0_OdTrhw/s1600/Flyer2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1094" data-original-width="1600" height="435" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJXJKN-x42cmzvjRsuDaJp_30BJvJH_lXpuhV7dOEOVkepLcYf6eRg77NqjcObr1SI6fxYvFJvHqTDFOrYp-LzBJUkT2qOlc24Dlm6xgZIBxfJ6u4JFye1Fc1_3p6XiyLAkS0_OdTrhw/s640/Flyer2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Quienes formamos parte de la comisión que organiza su llegada, nos comprometimos en realizar una recepción fantástica. También, para comunicar a toda la población lo relacionado con la personas de &lt;b&gt;rms&lt;/b&gt;, creamos el sitio web &lt;a href="http://stallmanenjujuy.org/"&gt;http://stallmanenjujuy.org/&lt;/a&gt; en el cual dejamos toda la información que hay que saber para asistir a la charla magistral que brindará el día 12 de junio en las instalaciones de la Facultad de Ingeniería de la Universidad Nacional de Jujuy.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Entre las cosas que se realizaron, el &lt;b&gt;Pre-Stallman&lt;/b&gt; fue el destacado. Con el fin de difundir la visita de &lt;b&gt;rms&lt;/b&gt;, se llevó adelante una jornada a puro software libre. Para tal evento, di una charla acerca del &lt;b&gt;Cifrado con GnuPG&lt;/b&gt;. Me pareció mucho más que oportuno hablar sobre esta herramienta que nos brinda confidencialidad e integridad en las comunicaciones y que es totalmente LIBRE. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
En la página web que anteriormente mencionaba, serán publicadas todas las presentaciones que se llevaron adelante ese día... ¡realmente hubo excelentes charlas! Desde robótica con software libre hasta la explotación de la vulnerabilidad, se habló de muchísimas cosas sumamente interesantes. Los invito a repasar las presentaciones y poner en práctica algunas de las cosas que se muestran allí :)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
¡Saludos!&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJXJKN-x42cmzvjRsuDaJp_30BJvJH_lXpuhV7dOEOVkepLcYf6eRg77NqjcObr1SI6fxYvFJvHqTDFOrYp-LzBJUkT2qOlc24Dlm6xgZIBxfJ6u4JFye1Fc1_3p6XiyLAkS0_OdTrhw/s72-c/Flyer2.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Qué dificil es conformar a todos...</title><link>https://verovand.blogspot.com/2017/05/que-dificil-es-conformar-todos.html</link><category>squid</category><category>sysadmin</category><category>traffic control</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 18 May 2017 09:14:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-7185266856984224880</guid><description>&lt;div style="text-align: justify;"&gt;Buenos días, lectores.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El título de esta entrada de blog es una frase que todos debemos haber pronunciado alguna vez... porque es una realidad, totalmente innegable.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;En mi actual posición de sysadmin, me encuentro administrando el servidor-router que conecta mi red local con internet. Y debo brindar acceso a todos los servicios de internet a casi 250 personas diariamente. Muchos dirán que tienen más usuarios en sus redes, pero estoy segura que aplican políticas de acceso a la web, especialmente, dado que es el servicio que mayor cantidad de tráfico de red genera y nuestros clientes consumen. Bueno... lo último no es mi caso.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Por supuesto, hay horarios críticos... y sitios que deben ser accedidos con la mayor prioridad posible... y personas a las que se les debe garantizar una muy buena navegación... y tratar que nadie sienta el acceso ralentizado a algunas páginas... y lidiar con problemas del proveedor de internet. Son muchas condiciones cuando se tienen 100 personas navegando libremente por la web, mirando vídeos, diarios, redes sociales, etc.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Escenario:&lt;/u&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;9Mbit de tráfico de bajada, 2Mbit de tráfico de subida.&lt;/li&gt;
&lt;li&gt;Servicio Squid para acceso HTTP, HTTPS y eventualmente FTP.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Acceso a servicios comunes, como correo, FTP, DNS, etc.&lt;/li&gt;
&lt;li&gt;Usuarios exigentes que no aceptan esperar unos segundos que la página cargue (sin excepción).&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Solución&lt;/u&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Dividir el tráfico de bajada, asignando un cierto ancho de banda para cada servicio utilizando &lt;b&gt;tc&lt;/b&gt; del paquete &lt;b&gt;iproute2&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Dedicar un ancho de banda a Squid y emplear &lt;b&gt;delay_pools&lt;/b&gt; para ralentizar el acceso a ciertos sitios.&lt;/li&gt;
&lt;li&gt;Monitorear el rendimiento.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Para el primer punto, mis reglas de &lt;b&gt;tc&lt;/b&gt; quedarían como sigue:&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; lan="eth1"
 red_local="192.168.0.0/24"
 pc1="192.168.0.2/32"
 nic_speed="900Mbit"
 download="9Mbit"
 gateway="192.168.0.1/32"
 # borrar todo
 tc qdisc del dev eth1 root  
 # qdisc por defecto 11  
 tc qdisc add dev $lan root handle 1:0 htb default 40  
 tc class add dev $lan parent 1:0 classid 1:1 htb rate $nic_speed ceil $nic_speed  
   # red local - acceso a internet: squid, dns, correo, ftp y otros  
   tc class add dev $lan parent 1:1 classid 1:10 htb rate $download ceil $download  
     tc class add dev $lan parent 1:10 classid 1:11 htb rate 5mbit ceil 8mbit prio 1 # squid  
     tc class add dev $lan parent 1:10 classid 1:12 htb rate 1024kbit ceil 1536kbit prio 2 # dns,correo,ftp,otro  
     tc class add dev $lan parent 1:10 classid 1:13 htb rate 1024kbit ceil 1536kbit prio 3 # otros  
 ######################################################################################  
 #------------------------------------scheduling--------------------------------------#  
 ######################################################################################  
 # asignación equitativa del ancho de banda  
 tc qdisc add dev $lan parent 1:11 handle 11: sfq perturb 10
 tc qdisc add dev $lan parent 1:12 handle 12: sfq perturb 10
 tc qdisc add dev $lan parent 1:13 handle 13: sfq perturb 10
 ######################################################################################  
 #----------------------------------- filtering --------------------------------------#  
 ######################################################################################  
 tc filter add dev $lan protocol ip parent 1:0 prio 1 u32 match ip src $gateway match ip dst $red_local match ip sport 3128 0xffff flowid 1:11 #squid 
 tc filter add dev $lan protocol ip parent 1:0 prio 1 u32 match ip dst $red_local match ip sport 20 0xffff flowid 1:12 #ftp
 .........
 tc filter add dev $lan parent 1:0 protocol ip prio 1 u32 match ip dst $pc1 flowid 1:13 #pc liberada
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
Con esto conseguí:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Asignarle a Squid un mínimo de 5Mbit y un máximo de 8 (en los horarios críticos, cuando todos se conectan, el consumo está a tope) .&lt;/li&gt;
&lt;li&gt;Dedicar 1Mbit con máximo de 1.5Mbit para servicios como correo, DNS, etc.&lt;/li&gt;
&lt;li&gt;Garantizarles a ciertos hosts que no utilizan Squid para acceso a la web y requieren un ancho de bajada dedicado.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para el segundo punto, teniendo en cuenta que lo más consultado durante las horas críticas son diarios y redes sociales, mis &lt;b&gt;delay_pools&lt;/b&gt; quedaron como sigue (omitiré muuuchas cosas del squid.conf):&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; #------------------------------------------------  
 delay_pools 4  
 delay_initial_bucket_level 90  
 delay_class 1 1  
 delay_access 1 allow exten  
 delay_access 1 deny all  
 delay_parameters 1 100000/90000  
 delay_class 2 1  
 delay_access 2 allow youtube  
 delay_access 2 deny all  
 delay_parameters 7 35000/30000  
 delay_class 3 1  
 delay_access 3 allow facebook  
 delay_access 3 deny all  
 delay_parameters 8 35000/30000  
 delay_class 4 1  
 delay_access 4 allow diarios  
 delay_access 4 deny all  
 delay_parameters 4 90000/85000
 #------------------------------------------------ 
&lt;/code&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Como se ve, creé unos delay muy generosos para el acceso a las páginas definidas en las ACLs correspondientes, que son: exten (extensiones de archivos, como .exe, .iso, .rar, etc.), facebook, youtube y diarios.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para el último punto, creé un script en bash para saber qué pasa con mi Squid...&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;pre style="background: #f0f0f0; border: 1px dashed #cccccc; color: black; font-family: &amp;quot;arial&amp;quot;; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; watch -n 3 "echo '===SQUID REAL TIME MONITOR===' &amp;amp;&amp;amp; \  
  'Hosts connected: '; netstat -n | grep '\:3128' | awk '/ESTABLISHED/ {print \$5}' | cut -d: -f1 | sort | uniq -c | wc -l &amp;amp;&amp;amp; \  
  echo 'NTLM helpers:'; pgrep -f ntlmssp | wc -l &amp;amp;&amp;amp; \  
  echo 'Groups request:'; pgrep -f /usr/lib/squid3/ext_wbinfo_group_acl | wc -l &amp;amp;&amp;amp; \  
  echo 'Winbind proceses: '; pgrep -f winbind | wc -l &amp;amp;&amp;amp; \  
  echo 'Total GigaByte downloaded:'; awk '{sum += \$5} END {print (sum/1024^3)\" GB\"}' /var/log/squid3/access.log  
  echo 'Disk space usage: '; du -hs /var/log/squid3/ | awk '{print \$1}' &amp;amp;&amp;amp;   
  echo 'Disk space usage (in %) /var:'; df -h | egrep SYSTEM-var | awk '{print \$5}'  
  echo 'Disk space usage (in %) /spool:'; df -h | egrep SYSTEM-spool | awk '{print \$5}'  
  echo 'Queue rate for Squid traffic:'; tc -s -d -r -p class show dev eth1 classid 1:11 | egrep 'rate' | sed -n '$ p' | awk '{print \$1,\$2}'"  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Dado que empleo autenticación para acceder a la caché, monitoreo la cantidad de helpers empleados para que Squid no se quede con solicitudes encoladas. También la cantidad de contenido descargado, espacio usado por los logs (no está demás, aunque teniendo un cron para logrotate bien configurado no tiene que haber problemas de espacio en disco), espacio usado por Squid en disco para almacenar sus objetos y, finalmente, un monitoreo del consumo de la class definida para Squid, para saber el rate que circula por esa disciplina.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Espero que esta entrada de blog les resulte útil. Me llevó tiempo entender muchas cosas de Traffic Control y Squid... hay mucho material en internet disponible para lectura que recomiendo que lo lean.&lt;br /&gt;
&lt;br /&gt;
¡Saludos!&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>FLISoL 2017!</title><link>https://verovand.blogspot.com/2017/04/flisol-2017.html</link><category>flisol</category><category>software libre</category><category>usljujuy</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 25 Apr 2017 23:41:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-6875543722753271656</guid><description>&lt;div style="text-align: justify;"&gt;
Buenas noches, lectores.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
El título del post lo dice todo: el FLISoL 2017 tuvo lugar el Sábado 22 de abril en más de 50 sedes en la Argentina, y realmente no pasó para nada inadvertido.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9O4lBMrkGZPySRWFTNs2aFhvcOyJJEMEUE7HPIhgbtZMxtb2Nyhw66_NNWN-82KMBAdHllp49tz6T9pkL2W2SlML6FF-SEYAxTnJqmlbBJZ_RpXMpJuRmKpmAfF_N6yYP_mYaHxZSmZc/s1600/FLISoL.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9O4lBMrkGZPySRWFTNs2aFhvcOyJJEMEUE7HPIhgbtZMxtb2Nyhw66_NNWN-82KMBAdHllp49tz6T9pkL2W2SlML6FF-SEYAxTnJqmlbBJZ_RpXMpJuRmKpmAfF_N6yYP_mYaHxZSmZc/s400/FLISoL.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Sin dudas es el evento más representativo del Software Libre en Latinoamérica. En su 13º aniversario, el número de sedes a lo largo del país fue sorprendente, y las repercusiones en las redes sociales dieron cuenta de ello.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Jujuy vivió esta fiesta del Soft Libre en cuatro ciudades: San Salvador de Jujuy, Ledesma, Perico y Tilcara; en esta última el equipo de USL Jujuy (&lt;a href="https://twitter.com/USLJujuy" target="_blank"&gt;@usljujuy&lt;/a&gt;) se puso al hombro la organización y fue un verdadero éxito. Niños y jóvenes se acercaron para disfrutar de charlas y talleres de diferentes temáticas. También, como no puede faltar en ningún FLISoL, se realizaron numerosas instalaciones de distintas distribuciones GNU/Linux en las PCs de los asistentes. Para los niños, se puso a disposición un arcade armado con Raspberry Pi y Retro Pie.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Les recomiendo leer esta bonita nota periodística sobre lo que nos dejó el 13º Festival Latinoamericado de Instalación de Software Libre en Tilcara, Jujuy:&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
http://eljujeño.com.ar/2017/04/23/una-verdadera-fiesta-de-las-tecnologias-libres-se-vivio-en-el-flisol-de-tilcara/&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
¡Saludos!&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9O4lBMrkGZPySRWFTNs2aFhvcOyJJEMEUE7HPIhgbtZMxtb2Nyhw66_NNWN-82KMBAdHllp49tz6T9pkL2W2SlML6FF-SEYAxTnJqmlbBJZ_RpXMpJuRmKpmAfF_N6yYP_mYaHxZSmZc/s72-c/FLISoL.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Jack The Stripper para Debian 8</title><link>https://verovand.blogspot.com/2017/04/jack-stripper-para-debian-8.html</link><category>bash</category><category>Debian</category><category>seguridad</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 13 Apr 2017 18:23:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-3910981174488683915</guid><description>&lt;div style="text-align: justify;"&gt;
Buenas tardes, lectores.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Hace unos años, Eugenia Bahit presento su herramienta llamada &lt;a href="http://46.101.4.154/Art%C3%ADculos%20t%C3%A9cnicos/Proyectos%20propios/JackTheStripper/Presentaci%C3%B3n%20promocional.pdf" target="_blank"&gt;&lt;i&gt;Jack The Stripper&lt;/i&gt;&lt;/a&gt;, que es un script en Bash que permite la configuración de un servidor Ubuntu 12.04, y que deploya en entorno LAMP de manera muy sencilla.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
La verdad es que las cosas cambiaron un poco respecto a los paquetes, sobre todo en Apache, por lo que me puse manos a la obra para adaptar esta tool a la última versión de Debian, que es la 8 (también conocida como &lt;i&gt;Jessie&lt;/i&gt;)&lt;i&gt;.&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
En mi &lt;a href="https://github.com/verovan/" target="_blank"&gt;repo de Github&lt;/a&gt; subí la actualización que realicé, haciendo unas modificaciones en los siguientes aspectos:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;i&gt; &lt;/i&gt;&lt;/div&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;i&gt; &lt;/i&gt;Firewall.&lt;/li&gt;
&lt;li&gt;Configuración de SSH.&lt;/li&gt;
&lt;li&gt;Configuración de Apache.&lt;/li&gt;
&lt;li&gt;Configuración de &lt;i&gt;mod_security.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Configuración de &lt;i&gt;mod_evasive.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Inclusión de configuraciones de seguridad básicas&lt;i&gt;.&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: justify;"&gt;
En el README.md se explica cómo ejecutar esta herramienta, que es muy sencilla. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGIWQX0xQ1ZimKtR2kaV9dxtPQ1nzEiM7OCtt7xRykZdqrrM_amV_uFFYFhKLjZzS0UWaeLpDMMQBRmzqIIir2N4dk3aHFfqUXtabkctXt9qj1OffTQxyOM41Jprqq6hWlCa_f0MbWyJ0/s1600/Captura+de+pantalla+de+2017-04-13+18%253A23%253A46.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGIWQX0xQ1ZimKtR2kaV9dxtPQ1nzEiM7OCtt7xRykZdqrrM_amV_uFFYFhKLjZzS0UWaeLpDMMQBRmzqIIir2N4dk3aHFfqUXtabkctXt9qj1OffTQxyOM41Jprqq6hWlCa_f0MbWyJ0/s320/Captura+de+pantalla+de+2017-04-13+18%253A23%253A46.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Ejecución de JTS en Debian 8&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Quien esté interesado puede contribuir con este trabajo. Está licenciado bajo GPL v3.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
¡Saludos!&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGIWQX0xQ1ZimKtR2kaV9dxtPQ1nzEiM7OCtt7xRykZdqrrM_amV_uFFYFhKLjZzS0UWaeLpDMMQBRmzqIIir2N4dk3aHFfqUXtabkctXt9qj1OffTQxyOM41Jprqq6hWlCa_f0MbWyJ0/s72-c/Captura+de+pantalla+de+2017-04-13+18%253A23%253A46.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><enclosure length="1159417" type="application/pdf" url="http://46.101.4.154/Art%C3%ADculos%20t%C3%A9cnicos/Proyectos%20propios/JackTheStripper/Presentaci%C3%B3n%20promocional.pdf"/><itunes:explicit/><itunes:subtitle>Buenas tardes, lectores. Hace unos años, Eugenia Bahit presento su herramienta llamada Jack The Stripper, que es un script en Bash que permite la configuración de un servidor Ubuntu 12.04, y que deploya en entorno LAMP de manera muy sencilla. La verdad es que las cosas cambiaron un poco respecto a los paquetes, sobre todo en Apache, por lo que me puse manos a la obra para adaptar esta tool a la última versión de Debian, que es la 8 (también conocida como Jessie). En mi repo de Github subí la actualización que realicé, haciendo unas modificaciones en los siguientes aspectos: Firewall. Configuración de SSH. Configuración de Apache. Configuración de mod_security. Configuración de mod_evasive. Inclusión de configuraciones de seguridad básicas. En el README.md se explica cómo ejecutar esta herramienta, que es muy sencilla. Ejecución de JTS en Debian 8 Quien esté interesado puede contribuir con este trabajo. Está licenciado bajo GPL v3. ¡Saludos!</itunes:subtitle><itunes:author>noreply@blogger.com (Unknown)</itunes:author><itunes:summary>Buenas tardes, lectores. Hace unos años, Eugenia Bahit presento su herramienta llamada Jack The Stripper, que es un script en Bash que permite la configuración de un servidor Ubuntu 12.04, y que deploya en entorno LAMP de manera muy sencilla. La verdad es que las cosas cambiaron un poco respecto a los paquetes, sobre todo en Apache, por lo que me puse manos a la obra para adaptar esta tool a la última versión de Debian, que es la 8 (también conocida como Jessie). En mi repo de Github subí la actualización que realicé, haciendo unas modificaciones en los siguientes aspectos: Firewall. Configuración de SSH. Configuración de Apache. Configuración de mod_security. Configuración de mod_evasive. Inclusión de configuraciones de seguridad básicas. En el README.md se explica cómo ejecutar esta herramienta, que es muy sencilla. Ejecución de JTS en Debian 8 Quien esté interesado puede contribuir con este trabajo. Está licenciado bajo GPL v3. ¡Saludos!</itunes:summary><itunes:keywords>bash, Debian, seguridad</itunes:keywords></item><item><title>Ransomware file extensions, de @kinomakino</title><link>https://verovand.blogspot.com/2017/03/ransomware-file-extensions-de-kinomakino.html</link><category>powershell</category><category>ramsonware</category><category>windows server</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 28 Mar 2017 19:13:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-8325010342059445786</guid><description>&lt;div style="text-align: justify;"&gt;
Buenas tardes, lectores.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
En esta oportunidad quisiera invitarlos a que se sumen al proyecto de &lt;a href="https://twitter.com/kinomakino" target="_blank"&gt;@kinomakino&lt;/a&gt; que implementa una solución para evitar el ransomware para los servidores de archivos de Windows Server 2012, haciendo uso de herramientas propias del sistema. Acá más detalles: &lt;a href="http://kinomakino.blogspot.com.ar/2016/04/como-evitar-el-cifrado-por-ransomware_21.html"&gt;http://kinomakino.blogspot.com.ar/2016/04/como-evitar-el-cifrado-por-ransomware_21.html&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Nos propone un sencillo script en Powershell que intenta evitar la propagación del cifrado de los archivos y carpetas que se almacenan en el servidor. El script se ejecuta como tarea programada y se encarga de actualizar el listado de extensiones... una preocupación menos ;)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
En su &lt;a href="https://github.com/kinomakino/ransomware_file_extensions" target="_blank"&gt;repositorio de Github&lt;/a&gt; se encuentran tanto el script como el listado que ¡ya superó las 400!&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
También quiero recomendar este vídeo de la primera sesión de los ElevenPath Talks de la temporada 2017 titulado "La guerra contra el Ransomware".&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/FSLzZbkVaq0" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
¡Espero que les sea útil!&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Saludos.&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/FSLzZbkVaq0/default.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Commandline challenge</title><link>https://verovand.blogspot.com/2017/03/commandline-challenge.html</link><category>bash</category><category>challenges</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 20 Mar 2017 18:47:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-6033969139406342413</guid><description>&lt;div style="text-align: justify;"&gt;
¡Buenas tardes, lectores!&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Quiero compartir con uds. algo que me mantuvo entretenida un largo rato: se trata del &lt;a href="https://cmdchallenge.com/" target="_blank"&gt;CMD Challenge&lt;/a&gt;, que es una serie de desafíos que ponen a prueba el conocimiento y habilidad en la línea de comandos para resolver situaciones comunes que pueden presentarse a un programador, sysadmin, encargado de seguridad, etc.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
La interfaz es muy sencilla: se tiene un intérprete bash en donde se ejecutan los comandos y más abajo están los retos. Al clickear en alguno de ellos, se muestra el instructivo del mismo en la consola.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRUfOAX-Rfaa6_eBcxVN8OpBopZMuY5OeMmik0ERzzkd-XXPp08DSCyPYhLTR998gmFEHEkbT-E5RU4qjz6zO1SI35qER7nov9fKV8qz0L5Flwgi7sVQOmSVO70CtNm5MrT6ZKxcrsxsE/s1600/Captura+de+pantalla+de+2017-03-20+18%253A31%253A25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRUfOAX-Rfaa6_eBcxVN8OpBopZMuY5OeMmik0ERzzkd-XXPp08DSCyPYhLTR998gmFEHEkbT-E5RU4qjz6zO1SI35qER7nov9fKV8qz0L5Flwgi7sVQOmSVO70CtNm5MrT6ZKxcrsxsE/s400/Captura+de+pantalla+de+2017-03-20+18%253A31%253A25.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
A mi me queda aún un desafío por resolver, que me está quemando un poco las pestañas :P&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Dejo mis respuestas aquí: &lt;a href="http://pastebin.com/7y9WZTTz"&gt;http://pastebin.com/7y9WZTTz&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Saludos!&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRUfOAX-Rfaa6_eBcxVN8OpBopZMuY5OeMmik0ERzzkd-XXPp08DSCyPYhLTR998gmFEHEkbT-E5RU4qjz6zO1SI35qER7nov9fKV8qz0L5Flwgi7sVQOmSVO70CtNm5MrT6ZKxcrsxsE/s72-c/Captura+de+pantalla+de+2017-03-20+18%253A31%253A25.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Hardening Linux</title><link>https://verovand.blogspot.com/2017/02/hardening-linux.html</link><category>linux</category><category>seguridad</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 28 Feb 2017 23:48:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-1278928113566886942</guid><description>&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Buenas noches, bloggeros.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Esta entrada está dedicada a comentar algunas prácticas que siempre llevo adelante al momento de instalar Debian (es mi distribución de cabecera). Están relacionadas con asegurar el server (o incluso tu computadora personal) de la mejor manera posible y reducir las brechas de seguridad además de otras cuestiones a tener en cuenta al momento de instalar el sistema operativo y su posterior mantenimiento.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Se sabe que no existe entorno 100% seguro pero al menos con estas recomendaciones se puede estar un poco más tranquilos de que el servidor tiene menos posibilidades de quedar comprometido por cualquier razón.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Sin más preámbulos, vamos a lo importante...&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Seguridad física y control de acceso&lt;/u&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es importante contemplar si existe acceso físico al equipo. Si es así, tenemos un primer punto crítico de falla. El acceso a los servidores debería ser remoto. Si se requiere acceso físico a ellos, sólamente tiene que ser por parte de los administradores de la infraestructura. Aparte, sería bueno disponer acceso biométrico o por huella digital a la sala de servidores y cámaras que registren los movimientos dentro de la misma.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Idealmente se debería tener una sala separda "lógicamente", quiere decir, por ejemplo, que la infraestructura esté dividida en salas diferentes, líneas de racks, etc. Así, cada sala tendrá que contar con la seguridad física correspondiente.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;A esto hay que sumar consideraciones sobre instalación eléctrica, orden en el cableado, ubicación de los equipos, separación de la línea de datos de la eléctrica, entre muchas cosas.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Proteger el BIOS/UEFI&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Para evitar que algún intruso que, en caso que acceda físicamente al servidor, entre otras cosas, cambie la secuencia de booteo y acceda a través del modo &lt;i&gt;rescue&lt;/i&gt; o &lt;i&gt;monousuario&lt;/i&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Teniendo en cuenta lo anterior, ¡es importante deshabilitar periféricos no utilizados! &lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Instalación: Mejores prácticas (algunas)&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style="text-align: justify;"&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Tipo de instalación (minimal/basic): si se elige Debian para instalar en el server, ¡utilizar la versión standard! No se necesita entorno gráfico ;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Particionado del disco: se sugiere siempre separar los directorios &lt;i&gt;/var&lt;/i&gt;,&amp;nbsp; que almacena datos áltamente variables, con mucha actividad y que requiere ubicarse en almacenamientos rápidos como un RAID; &lt;i&gt;/tmp&lt;/i&gt; almacena datos temporales, que son borrados por algunos procesos; &lt;i&gt;/etc&lt;/i&gt;, que contiene archivos de configuración locales, propios de la máquina y&lt;i&gt; /home&lt;/i&gt;, para datos del usuario.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Con el esquema general planteado anteriormente, podemos mejorar el tiempo de acceso a datos, facilitar la recuperación en caso de incidentes y minimizar los problemas por falta de espacio de almacenamiento. &lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Swap: es una partición que sirve, básicamente, para guardar las imágenes de los procesos que no se mantienen en la memoria física. Se recomienda que su tamaño sea igual al de la memoria RAM, aunque depende del caso.&lt;/span&gt;&lt;/li&gt;
&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;¡Usar LVM! A través de esta gestión del almacenamiento por volúmenes lógicos, se tiene una visión de &lt;i&gt;alto nivel &lt;/i&gt;sobre el almacenamiento de disco, muy diferente a lo que nos brinda el particionado tradicional. Ofrece flexibilidad para agregar nuevo almacenamiento, modificar el tamaño de los volúmenes, etiquetar los volúmenes de manera conveniente, crear snapshots, entre otra ventajas.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Prevenir combinación de reinicio (REISUB)&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Este punto es discutible. Se puede presentar la situación que el sistema no responde... y en vez de hacer un reinicio forsozo, utilizar una de las &lt;i&gt;Magic Keys&lt;/i&gt; y generar un reinicio ordenado para que el administrador respire tranquilo. Pero si alguien accede físicamente a nuestro servidor, puede utilizar esta combinación de teclas para&amp;nbsp; reiniciar el equipo y bootear desde otro dispositivo. Mmm... queda a criterio de los administradores.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Modificar &lt;i&gt;/etc/motd&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;i&gt;Message of the day&lt;/i&gt; es lo que se muestra a todos los usuario cada vez que inician sesión en el sistema antes de que se inicie la shell. Sería conveniente que los usuarios vean un mensaje similar a este:&lt;/span&gt;&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;i&gt;Este sistema es para el uso exclusivo de usuarios autorizados, por lo que las personas que lo utilicen estarán sujetos al monitoreo de todas sus actividades en el mismo. Cualquier persona que utilice este sistema permite expresamente tal monitoreo y debe estar consciente de que si este revelara una posible actividad ilicita, el personal de sistemas proporcionara la evidencia del monitoreo al personal de seguridad, con el fin de emprender las acciones civiles y/o legales que correspondan.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Así, cada persona que acceda es advertida sobre los términos y condiciones para operar en el sistema.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Modificar &lt;i&gt;/etc/issue&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Este fichero de texto plano contiene información del sistema operativo instalado, se muestra en la pantalla de inicio de sesión y acepta ciertos comandos. En el caso de Debian, contiene &lt;b&gt;Debian GNU/Linux 8 \n \l&lt;/b&gt;, donde \n y \l son comandos que insertan el &lt;i&gt;hostname&lt;/i&gt; y el nombre de la &lt;i&gt;tty&lt;/i&gt; actual, respectivamente. También se puede insertar la arquitectura de la máquina, nombre de dominio, versión del kernel...&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Si algún intruso obtiene esa información valiosa, puede recurrir a exploits o código malicioso y ejecutarlo contra nuestro sistema.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Revisar servicios habilitados&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Si el servidor cumplirá la función de border router... ¿para qué está instalado el Apache? Es importante tener control sobres los servicios habilitados. Es posible saber cuáles son a través de la shell:&lt;/span&gt;&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: xx-small;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;$ systemctl list-unit-files | awk '$2 =="enabled" {print $0}'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Si alguno de ellos no corresponde estar habilitado, podemos deshabilitarlo fácilmente con este comando: &lt;/span&gt;&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&lt;span style="font-size: xx-small;"&gt;# systemctl disable &amp;lt;service-name&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Respaldos&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es imperdonable no tener un backup del servidor, sea cual sea la función que cumpla. Ante cualquier desastre se podrá hacer una recuperación íntegra del sistema y de esa manera, sólo el tiempo que demandará realizar esa recuperación, afectará al negocio de la organización.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;¿Qué herramientas usar? Depende de lo que se quiera respaldar: máquinas virtuales, sistema, ficheros, imágenes, datos de usuario... Por ejemplo, para respaldas máquinas virtuales en KVM, se toman snapshots de esas máquinas, luego son convertida y, finalmente, copiadas en un storage usando rsync+ssh.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Lo importante, independiente de la herramienta, es definir la política de respaldos, que puede ser diferencial, incremental o total, y un calendario para generarlos de manera automatizada. Y una vez realizados esos respaldos, comprobar que son funcionales ;)&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Administración remota del servidor&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Lo más usual es utilizar SSH. Pero no hay que olvidarse de realizar una configuración adecuada del mismo luego de su instalación. Escribí una &lt;a href="https://verovand.blogspot.com.ar/2016/10/configurando-un-ssh-seguro.html" target="_blank"&gt;entrada en mi blog&lt;/a&gt; dedicada a ello.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Mi preferencia es utilizar una conexión VPN, siempre. Y a partir de allí, conectarse a un SSH, RDP, SFTP, VNC o lo que sea.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Contorlar la performance del servido&lt;/u&gt;r&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Herramientas como &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;top, free&lt;span style="font-family: inherit;"&gt;,&lt;/span&gt; lsof&lt;span style="font-family: inherit;"&gt;,&lt;/span&gt; iftop&lt;span style="font-family: inherit;"&gt;, &lt;/span&gt;df&lt;span style="font-family: inherit;"&gt;,&lt;/span&gt; tcpdump&lt;/span&gt;, ayudan a controlar y monitorear la utilización de recursos del servidor. Es importante conocerlas y manejarlas para cuando se deba hacer troubleshooting.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Limitar el acceso a las tty al usuario root&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;El usuario root tiene acceso a todas las tty. Para deshabilitarlo, se debe configurar el fichero &lt;i&gt;/etc/securetty&lt;/i&gt;, comentando en qué terminales no se quiere que el root inicie sesión.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Si se necesita ejecutar comandos con permisos de root, se inicia sesión con un usuario común y luego se escalan privilegios.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;El fichero se vería así:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;............................. &lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;# Virtual consoles&lt;br /&gt;#tty1&lt;br /&gt;#tty2&lt;br /&gt;#tty3&lt;br /&gt;#tty4&lt;br /&gt;#tty5&lt;br /&gt;#tty6&lt;br /&gt;#tty7&lt;br /&gt;#tty8&lt;br /&gt;#tty9&lt;br /&gt;#tty10&lt;br /&gt;#tty11&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;............................. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;En el mismo fichero también se listan terminales que pueden ser accedidas vía UART (puerto serial), dispositivos MUX, etc. Ese hardware lo más probable es que no se disponga, por lo que esas líneas pueden ser eliminadas del archivo.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Refinar los accesos&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;El módulo PAM es el que se encarga de gestionar todo lo relacionado a accesos. Lee el fichero &lt;i&gt;/etc/security/access.conf&lt;/i&gt; y otros que pueden ser creados por el usuario para accesos más granulares, por ejemplo uno específico para protocolo SSH.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Allí se especifican combinaciones del tipo (user/group, host), (user/group, network/netmask) o (user/group, tty) y define si un login es aceptado o no.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Cuando un usuario se loguea, este archivo es escaneado y se busca la primer regla que coincida con alguna de las especificaciones de acceso.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Por ejemplo: &lt;/span&gt;&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;# root no tiene acceso desde ninguna parte&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;- : root : ALL&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;# verovand sólo accede desde la net/mask&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;+ : verovand : 192.168.0.0/24&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Limitar acceso a los recursos&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;i&gt;/etc/security/limits.conf&lt;/i&gt; es otro fichero leído por el módulo PAM en el que se puede limitar el acceso a los recursos del sistema por parte utilizados por usuarios o grupos de usuarios.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Por ejemplo, el fichero podría lucir de la siguiente forma:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;verovan&amp;nbsp;&amp;nbsp;&amp;nbsp; - &amp;nbsp; maxlogin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * &amp;nbsp; nproc &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Configurar el autologout de los usuarios&lt;/u&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es posible cerrar la sesión de un usuario luego de cierto tiempo de inactividad en el sistema. Para conseguirlo, dependiendo si se quiere que tenga efecto en shells interactivas o en interactivas y no interactivas, se debe incluir la variable de entorno &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;TMOUT&lt;/span&gt; en el fichero&lt;i&gt; /etc/profile&lt;/i&gt; o &lt;i&gt;/etc/bash.bashrc&lt;/i&gt;, respectivamente. &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TMOUT=360 #después de 6 minutos cierra la sesión&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Útil para terminar las sesiones abiertas que quedaron olvidadas en el sistema...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Enjaular (chroot)&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es una 
técnica para configurar un directorio como si fuese la raiz, de manera 
que no es posible acceder a ficheros fuera del mismo, tampoco ejecutar 
comandos de shell, hacer uso de librerías, etc.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es muy útil cuando se tiene que hacer manetenimieto del sistema (reparar GRUB, desistalar paquetes, actualizar un paquete, etc.). También para dar acceso a través de la shell vía FTP o SSH a usuarios.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Correcto uso de sudo&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Al comando &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;sudo&lt;/span&gt; hay que emplearlo con cuidado. Si bien es práctico y sencillo de utilizar, ya que no requerimos de la contraseña de root para ejecutar un comando, es peligroso por el motivo que se mencionó recién.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;sudo&lt;/span&gt; no reemplaza a &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;su&lt;/span&gt;:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;- el primero permite obtener los permisos de superusuario (u otro usuario) y ejecutar un comando. Las pólizas de seguridad definen con qué privilegios, si existen, un usuario puede ejecutar sudo y se especifican en el fichero /etc/sudoers.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;- el segundo permite convertirse en otro usuario, incluído root. Para ello se requiere saber su contraseña.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Si sólo se tiene acceso privilegiado a través de &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;sudo&lt;/span&gt; y "se rompe sudo", se estará en modo single user. Por lo tanto, se debe setear un password para root y asegurarse que puede utilizarse ;)&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;No se debería emplear &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;sudo&lt;/span&gt; para editar archivos o para evitar loguearse como otro como usuario, por ejemplo. Para la primera situación se recurre a grupos de usuarios y permisos específicos para tal tarea.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Editar el fichero &lt;i&gt;/etc/sudoers&lt;/i&gt; no es tarea sencilla, pero es la manera de definir las políticas para permitir a ciertos usuarios ejecutar ciertos comandos en un host determinado. &lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Control de acceso&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;- Manejo de DAC (Discretionary Access Control): a través de los comandos &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;chmod &lt;/span&gt;y &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;chattr&lt;/span&gt;(&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;lsattr&lt;/span&gt;) para modificar los permisos atributos de un archivo, respectivamente.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;-
 Manejo de ACL (Access Control List): la mayoría de los usuarios utiliza
 la manera tradicional de asignación de permisos sobre un archivo a 
través del comando &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;chmod&lt;/span&gt;. Para un control más granular se utilizan los comandos &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;getfacl&lt;/span&gt; y &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;setfacl&lt;/span&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;- Sticky bit (se aplica a directorios):
 para prevenir que un usuario borre un fichero del que no es propietario
 y que se encuentra dentro de un directorio sobre el que tiene permisos 
de escritura.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;- SUID,SGID (se 
aplica a ficheros): para permitir la ejecución de un binario con los 
permisos del propietario o del grupo ¡Manejarlo con mucho cuidado!&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;-Revisar directorios con permisos especiales&lt;/span&gt;&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&amp;nbsp;&amp;nbsp; [root@server ~]# find / -type f -perm 1000 -ls&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;&amp;nbsp;&amp;nbsp; [root@server ~]# find / -perm -o=w ! -type l -ls&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Gestión de logs:&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Mantener logs del sistema o de un servicio es importantísimo.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es posible gestionar los mismos con &lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;logrotate&lt;/span&gt;, que es un proceso que se encarga de rotar, comprimir, eliminar y enviar por mail los logs. Se ejecuta diariamente como una tarea croneada.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Otra opción disponer de un servidor centralizado como ZABBIX para monitorear y analizar logs.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Usar HIDS (Tripwire)&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;a href="https://github.com/Tripwire/tripwire-open-source" target="_blank"&gt;Tripwire&lt;/a&gt; es un IDS basado en host que monitorea los cambios que se producen en diferentes puntos del filesystem y almacena todas esas ocurrencias detectadas en su base de datos. La herramienta genera un reporte que se puede enviar vía mail.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es válido pensar de qué serviría si el sistema ya fue comprometido... bueno, es demasiado útil, ya que al momento de auditar se tiene información sobre qué ocurrió, qué parte del sistema de archivos se vio afectada, etc.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Usar keyloggers&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;A través de herramientas como &lt;a href="https://github.com/a2o/snoopy" target="_blank"&gt;Snoopy&lt;/a&gt; se puede mantener en archivos de log el registro de los comandos que un usuario ejecuta.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Al igual que Tripwire, provee al administrador una manera controlar y saber qué ocurre en el sistema y saber quién hace qué cosas.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Auditar el servidor&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;a href="https://github.com/CISOfy/lynis" target="_blank"&gt;Lynis&lt;/a&gt; es una herramienta muy interesante para auditoría de sistemas Linux. Básicamente audita el software instalado para buscar problemas de seguridad. Junto a esta información también buscará información general del sistema, paquetes instalados y errores de configuración. En el informe que genera, además incluye otros aspectos, como los relacionados con networking, soporte para virtualización, firewall, kernel, base de datos, etc.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es muy sencilla de instalar y utilizar.&lt;/span&gt;&lt;/div&gt;
&lt;div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Junto
 a la información relacionada con la seguridad también buscará 
información general del sistema, los paquetes instalados y los errores 
de configuración. También nos mostrará información sobre diferentes 
aspectos extra, como boot loaders, networking, virtualización, procesos 
zombie, criptografía, impresoras, firewalls, kernel, bases de datos, 
etc.  - See more at: 
https://www.redeszone.net/gnu-linux/auditoria-completa-de-tu-distribucion-linux-con-lynis/#sthash.nDS5e340.dpuf&lt;/span&gt;&lt;/div&gt;
&lt;div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Junto
 a la información relacionada con la seguridad también buscará 
información general del sistema, los paquetes instalados y los errores 
de configuración. También nos mostrará información sobre diferentes 
aspectos extra, como boot loaders, networking, virtualización, procesos 
zombie, criptografía, impresoras, firewalls, kernel, bases de datos, 
etc.  - See more at: 
https://www.redeszone.net/gnu-linux/auditoria-completa-de-tu-distribucion-linux-con-lynis/#sthash.nDS5e340.dpuf&lt;/span&gt;&lt;/div&gt;
&lt;div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Junto
 a la información relacionada con la seguridad también buscará 
información general del sistema, los paquetes instalados y los errores 
de configuración. También nos mostrará información sobre diferentes 
aspectos extra, como boot loaders, networking, virtualización, procesos 
zombie, criptografía, impresoras, firewalls, kernel, bases de datos, 
etc.  - See more at: 
https://www.redeszone.net/gnu-linux/auditoria-completa-de-tu-distribucion-linux-con-lynis/#sthash.nDS5e340.dpuf&lt;/span&gt;&lt;/div&gt;
&lt;div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Junto
 a la información relacionada con la seguridad también buscará 
información general del sistema, los paquetes instalados y los errores 
de configuración. También nos mostrará información sobre diferentes 
aspectos extra, como boot loaders, networking, virtualización, procesos 
zombie, criptografía, impresoras, firewalls, kernel, bases de datos, 
etc.  - See more at: 
https://www.redeszone.net/gnu-linux/auditoria-completa-de-tu-distribucion-linux-con-lynis/#sthash.nDS5e340.dpuf&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;unto
 a la información relacionada con la seguridad también buscará 
información general del sistema, los paquetes instalados y los errores 
de configuración. También nos mostrará información sobre diferentes 
aspectos extra, como boot loaders, networking, virtualización, procesos 
zombie, criptografía, impresoras, firewalls, kernel, bases de datos, 
etc. - See more at: 
https://www.redeszone.net/gnu-linux/auditoria-completa-de-tu-distribucion-linux-con-lynis/#sthash.nDS5e340.dpuf&lt;/span&gt;&lt;/div&gt;
&lt;div id="stcpDiv" style="left: -1988px; position: absolute; top: -1999px;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;unto
 a la información relacionada con la seguridad también buscará 
información general del sistema, los paquetes instalados y los errores 
de configuración. También nos mostrará información sobre diferentes 
aspectos extra, como boot loaders, networking, virtualización, procesos 
zombie, criptografía, impresoras, firewalls, kernel, bases de datos, 
etc. - See more at: 
https://www.redeszone.net/gnu-linux/auditoria-completa-de-tu-distribucion-linux-con-lynis/#sthash.nDS5e340.dpuf&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Configurar de manera segura los servicios&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Es fundamental no dejar la configuración por defecto de ningún servicio. Además de eso hay que mantenerlos actualizados. &lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Se debe estar pendiente de la lista CVE (Common Vulnerabilities and Exposures) y revisarla periódicamente.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Tunning the kernel &lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Se modifica el valor de ciertas variables para:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Ignorar todos los paquetes echo: &lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_all&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Ignorar todos los mensajes broadcast:&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;echo 1 &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Evitar ataques ICMP redirect:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;echo 0 &amp;gt; /proc/sys/net/ipv4/conf/all/accept_redirects&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Evitar ataques SYN:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;echo 1 &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Si no se tiene soporte para IPv6, desactivarlo. &lt;/span&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;echo 1 &amp;gt; /proc/sys/net/ipv6/conf/all/disable_ipv6&lt;/span&gt;&lt;/blockquote&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Estas configuraciones no son persistentes, es decir que cuando el sistema se reinicie, las variables tomarán sus valores por defecto. Para que sobrevivan el reinicio, se debe editar el fichero &lt;i&gt;/etc/sysctl.conf&lt;/i&gt;, en donde se representan cada una de ellas separadas por puntos en vez de barra inclinada.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;u&gt;Configurar el firewall (&lt;span style="font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;"&gt;iptables&lt;/span&gt;)&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;La política de firewall por defecto de la mayoría de los sistemas Linux es ACCEPT para las cadenas INPUT, OUTPUT y FORWARD, cuando debería ser DROP por defecto. A partir de allí se crean las reglas adecuadas dependiendo de la función que el servidor cumpla.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Bueno, el post se hizo largo. Cualquier aporte es bienvenido.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Las herramientas que mencioné no son las únicas.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Para cada uno de los comandos mencionados, se recomienda consultar el man correspondiente.&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="font-family: &amp;quot;trebuchet ms&amp;quot; , sans-serif;"&gt;Saludos..!&lt;/span&gt;&lt;/div&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Mastering Mikrotik</title><link>https://verovand.blogspot.com/2017/02/mastering-mikrotik.html</link><category>IT</category><category>mikrotik</category><category>sysadmin</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 14 Feb 2017 23:28:00 -0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-7872230120433616842</guid><description>&lt;div style="text-align: justify;"&gt;
Buenas noches, bloggeros.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Esta entrada quiero dedicarla, como puede apreciarse en el título de la misma, a Mikrotik y sus routers.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Mikrotik es una compaía que fabrica productos, tanto de software como harware, para conectividad de redes. Los más populares son Mikrotik RouterOS (basado en el kernel de Linux 3.3.5) y Mikrotik RouterBoard.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Muchos dicen que Mikrotik es para dummies... mi opinión es totalmente la opuesta. De acuerdo a mi experiencia con el hardware Mtk, pude comprobar que son equipos robustos, con buena capacidad de procesamiento, sencillos de configurar y con muchísimas funcionalidades y tools para administración.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
El setup básico lo pueden encontrar en internet. Realmente es muy fácil conectarlo y que empiece a trabajar como router. Obviamente podemos realizar configuraciones avanzadas de red si fuese necesario: VLANs, túneles EoIP, cualquier configuración de firewall, IPSec y un largo etcétera. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Mi intención es compartir un breve resúmen de algunas utilidades de estos equipos que muchas veces no se tienen en cuenta, pero que son importantes al momento de hacer tests de conectividad, comprobar que los enlaces funcionen correctamente, sniffear las conexiones, entre otras cosas.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Bueno, vamos a ello... comentaré de qué se tratan sólo algunas de estas utilidades (las que me parecieron más relevantes)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;u&gt;TOOLS&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgHCLVX4T4ecPUrEmYSPCX9tAaKFd7O4SpQIfOS6WeDeaMWhQYUyU1khZg3M2uga5FSIjXhT1nboNqw1KSXAZDq8lZZktLngiVxmtOf1g616PYrK-0KwM3xQdw7Nc22CrNAiUyN1rnOcA/s1600/Captura+de+pantalla+de+2017-02-14+22%253A22%253A31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgHCLVX4T4ecPUrEmYSPCX9tAaKFd7O4SpQIfOS6WeDeaMWhQYUyU1khZg3M2uga5FSIjXhT1nboNqw1KSXAZDq8lZZktLngiVxmtOf1g616PYrK-0KwM3xQdw7Nc22CrNAiUyN1rnOcA/s320/Captura+de+pantalla+de+2017-02-14+22%253A22%253A31.png" width="282" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;BT Server&lt;/b&gt;: es un servidor que sirve para realizar test de ancho de bandas con otro dispositivo Mikrotik.&lt;/li&gt;
&lt;li&gt;Bandwidth test: muy útil para chequear el ancho de banda siempre y cuando se realizce contra otro Mikrotik. En el Mikrotik remoto debe estar configurado el BT Server.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Torch&lt;/b&gt;: se utiliza para monitorear el tráfico de red que circula a través de alguna de las interfaces del router. Es posible filtrar por MAC, protocolo, VLAN ID, etc.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Graphs&lt;/b&gt;: simplemente genera gráficas relativas a los recursos que utiliza el router, que son CPU, memoria, disco y red. Es importante tener en cuenta que estas gráficas son accedidas vía HTTP desde cualquier equipo que tenga acceso al router y no pueden ser protegidas con user y pass. Si el router está expuesto a internet, se debe configurar las gráficas para que sólo sean vistas desde la red local.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Sniffer&lt;/b&gt;: es el análogo a Wireshark de Mikrotik. Analiza los paquetes que van y vienen a través del router. Una cosa muy interesante es que es posible enviar las capturas realizadas a un streaming server, que puede ser un Wireshark, para un análisis con mayor detenimiento.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Profiler&lt;/b&gt;: permite saber qué procesos están consumiendo ciclos de CPU. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;IP Scan&lt;/b&gt;: para hacer una comparación, es el NMap de Mikrotik. Permite realizar un escaneo de red sobre una interface determinada.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Netwatch&lt;/b&gt;: monitorea si un host está activo y, adicionalmente, permite la ejecución de scripts en caso de que dicho host esté "caído".&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Traceroute&lt;/b&gt;: no hay mucho para explicar. Sólo que se utiliza para conocer qué caminos recorre un paquete (a través de qué routers circula hasta llegar a destino)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Traffic monitor&lt;/b&gt;: cada vez que una interfaz haya superado cierto umbral de transmisión ejecuta un script.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: justify;"&gt;
&lt;u&gt;SYSTEM&lt;/u&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYBat1WV8scSPgg7T15LFJsOg_-wLbiydEUXGRcHOq3uV7aksRpldnCjfX3fxQROl8NeC21q-yKk-ZAmP6tXLOWvk6e8_ZLsaVLX-iPDI96yAkI65men0PdVjuYa-NS0qee4OUTsCWBBc/s1600/Captura+de+pantalla+de+2017-02-14+22%253A22%253A35.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYBat1WV8scSPgg7T15LFJsOg_-wLbiydEUXGRcHOq3uV7aksRpldnCjfX3fxQROl8NeC21q-yKk-ZAmP6tXLOWvk6e8_ZLsaVLX-iPDI96yAkI65men0PdVjuYa-NS0qee4OUTsCWBBc/s320/Captura+de+pantalla+de+2017-02-14+22%253A22%253A35.png" width="218" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Logging&lt;/b&gt;: genera logs del equipo. Se los almacena en el disco del propio router o en uno externo.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Scripts&lt;/b&gt;: se crean allí los scripts que se usan en el planificador de tareas, netwatch u otros.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Scheduler&lt;/b&gt;: es el cron/Task scheduler de Mikrotik. Con el ejecutamos los scripts a una hora determinada, de un día determinado bajo ciertas condiciones.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Watchdog&lt;/b&gt;: es el encargado de reiiniciar el equipo en caso de que ocurra un kernel panic o que el sistema se encuentre bloqueado.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Packages&lt;/b&gt;: es el gestor de paquetes que contienen diferentes features. Son desarrollados únicamente por Mikrotik.&lt;/li&gt;
&lt;/ul&gt;
Muchas de las opciones que se ven en la sección SYSTEM no son configurables.&lt;br /&gt;
Las capturas de pantalla son del panel de un RouterBoard 951, versión 6.30.4. &lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
No olviden consultar la Wiki: &lt;a href="http://wiki.mikrotik.com/wiki/Main_Page"&gt;http://wiki.mikrotik.com/wiki/Main_Page&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos... y happy config!&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgHCLVX4T4ecPUrEmYSPCX9tAaKFd7O4SpQIfOS6WeDeaMWhQYUyU1khZg3M2uga5FSIjXhT1nboNqw1KSXAZDq8lZZktLngiVxmtOf1g616PYrK-0KwM3xQdw7Nc22CrNAiUyN1rnOcA/s72-c/Captura+de+pantalla+de+2017-02-14+22%253A22%253A31.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Comunidad LinuxChix Argentina!</title><link>https://verovand.blogspot.com/2017/02/comunidad-linuxchix-argentina.html</link><category>comunidad</category><category>linuxchixar</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 9 Feb 2017 23:38:00 -0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-3744353861555110777</guid><description>&lt;div style="text-align: justify;"&gt;
Buenas noches, bloggeros.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
En esta entrada es mi intención invitarlos a sumarse, a quienes no la conocen obviamente, a la comunidad LinuxChix Argentina.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Tal como lo dice su &lt;a href="http://linuxchixar.org/" target="_blank"&gt;sitio oficial&lt;/a&gt;, LinuxChix Argenitina "&lt;i&gt;somos un grupo de mujeres y hombres con diferentes perfiles dentro del 
ámbito de la tecnología en Argentina. Developers, admins, operators, 
estudiantes...&lt;/i&gt; ", que tiene por objetivo "[..] &lt;i&gt;reunir mujeres que se 
encuentren trabajando con tecnologías libres&lt;/i&gt;" en donde intentan "[..] &lt;i&gt;promover que más mujeres de diferentes ámbitos (relacionados 
con la tecnología) se involucren en este campo&lt;/i&gt;".&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Conocí a este grupo por pura casualidad, dado que una de las co-fundadoras brindó una charla en la PyCon Argentina el año pasado. Si bien no pude ir a la conferencia, a través de la web conocí al grupo que es muy copado y tiene muchas ideas y, lo más importante, las han podido materializar con charlas, meetups y eventos.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Las mujeres dentro la tecnología hemos sido siempre parte de un grupo minoritario, dado que siempre esta área ha sido vinculada como masculina y en la que solamente los hombres pueden desempeñarse con éxito. Es sumamente importante entender que estas ideas han quedado en el pasado, pero que aín siguen vigentes y que es necesario un cambio cultural. Esta iniciativa, que dentro de poco cumplirá dos años, es un claro ejemplo de esto, por lo que tanto hombres como mujeres debemos nutrirla y empujarla para que siga adelante y en buen curso.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Me he sumado hace poco tiempo y quisiera que quienes lean esta resumidísima entrada de blog, también acompañen para que LinuxChix Argentina siga creciendo.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Si bien físicamente las reuniones se realizan en CABA y para quienes estamos lejos no podemos participar, nos llama para que desde nuestro lugar de residencia también llevemos adelante propuestas similares :)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
En freenode pueden encontrar el canal #linuxchixar.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Saludos... y happy config!&lt;/div&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Vulnerabilidad 0Day SMB3</title><link>https://verovand.blogspot.com/2017/02/vulnerabilidad-0day-smb3.html</link><category>0day</category><category>python</category><category>seguridad</category><category>SMB</category><category>windows</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 6 Feb 2017 14:51:00 -0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-7656998396000595561</guid><description>&lt;div style="text-align: justify;"&gt;
Buenos días, bloggeros.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
En esta publicación quiero compartirles la PoC para explotar una vulnerabilidad en SMB3 de Microsoft Windows.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Ya fue reportada y estamos esperando que prontamente se publique el parche correspondiente.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
¿Qué es SMB y cómo funciona?&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
El Server Message Block (SMB) Protocol es un 
protocolo de uso compartido de archivos de red. El conjunto de paquetes 
de mensajes que define una determinada versión del protocolo se llama un
 dialecto. El Common Internet File System (CIFS) Protocolo es un 
dialecto de SMB. Tanto SMB y CIFS también están disponibles en VMS, 
varias versiones de Unix, y otros sistemas operativos.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Para tener en cuenta con las distintas versiones que hay en el mercado de acuerdo a nuestro sistema operativo:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;CIFS – La versión antigua de SMB que era parte de Microsoft Windows NT 4.0 en 1996. SMB1 reemplaza esta versión.&lt;/li&gt;
&lt;li&gt;SMB 1.0 (o SMB1) – La versión utilizada en Windows 2000, Windows XP, Windows Server 2003 y Windows Server 2003 R2&lt;/li&gt;
&lt;li&gt;SMB 2.0 (o SMB2) – La versión utilizada en Windows Vista (SP1 o posterior) y Windows Server 2008&lt;/li&gt;
&lt;li&gt;SMB 2.1 (o SMB2.1) – La versión utilizada en Windows 7 y Windows Server 2008 R2 SMB 3.0 (o SMB3) – La versión utilizada en Windows 8 y Windows Server 2012&lt;/li&gt;
&lt;li&gt;SMB 3.02 (o SMB3) – La versión utilizada en Windows 8.1 y Windows Server 2012 R2&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="para" style="text-align: justify;"&gt;
Una conexión simple con un servidor SMB consta de:&lt;/div&gt;
&lt;ol style="text-align: justify;"&gt;
&lt;li&gt;Establecer una conexión virtual.&lt;/li&gt;
&lt;li&gt;Negociar el protocolo.&lt;/li&gt;
&lt;li&gt;Definir parámetros de sesión.&lt;/li&gt;
&lt;li&gt;Iniciar el Tree Connection hacia el recurso. &lt;/li&gt;
&lt;/ol&gt;
&lt;div style="text-align: justify;"&gt;
El problema surge luego de del mensaje Tree Connect Request, donde el servidor responde con un mensaje Tree Connect Response que aparentemente está bien, pero que en realidad tiene un tamaño excesivo, donde la cabecera NetBios del paquete tiene fijados (intencionalmente)  1580B, los 64B del SMB2 header y, finalmente, el Three Connect Response Message de 8B.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Haciendo uso del script en Python publicado en &lt;a href="https://github.com/lgandx/PoC"&gt;https://github.com/lgandx/PoC&lt;/a&gt; , podemos montar un fake SMB server, hacer que un cliente con versiones de Windows 8 o superiores se conecten y generar una BSOD.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwBIePWFDCZRs1gOKyU1yggl0DgQIf8jRIGu0r1uYCZMgNkP7j4rMRPYJOruFspzkgERDqpFapcOgOnODl_TB1c7xd3swCd9-L71Vd5hI8J-wEkNoF6fM-O9aHj_HZ7DZeprFfJl_kBmo/s1600/Captura+de+pantalla+de+2017-02-05+22%253A08%253A24.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwBIePWFDCZRs1gOKyU1yggl0DgQIf8jRIGu0r1uYCZMgNkP7j4rMRPYJOruFspzkgERDqpFapcOgOnODl_TB1c7xd3swCd9-L71Vd5hI8J-wEkNoF6fM-O9aHj_HZ7DZeprFfJl_kBmo/s320/Captura+de+pantalla+de+2017-02-05+22%253A08%253A24.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Proceso de conexión entre el cliente y el falso SMB.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Lo he probado con Windows10 y no pude explotarlo, pero sin con Windows Server 2012R2.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu9E1lAhbqIOQaiYr2w_O_1EqoYSCHUHonjJvztDio-p3zkbg0v96N6tmCXzjbJYY1oBYL8yMoIgUjgdGv_cjBA8y3Nu6UtlBsysj6nNuW9ytAHsvsgBnBivuDOoDC04bOdGZ8_r2Wm2k/s1600/Captura+de+pantalla+de+2017-02-05+21%253A16%253A56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu9E1lAhbqIOQaiYr2w_O_1EqoYSCHUHonjJvztDio-p3zkbg0v96N6tmCXzjbJYY1oBYL8yMoIgUjgdGv_cjBA8y3Nu6UtlBsysj6nNuW9ytAHsvsgBnBivuDOoDC04bOdGZ8_r2Wm2k/s400/Captura+de+pantalla+de+2017-02-05+21%253A16%253A56.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&amp;nbsp;A divertirse!&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Saludos... y happy config!&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwBIePWFDCZRs1gOKyU1yggl0DgQIf8jRIGu0r1uYCZMgNkP7j4rMRPYJOruFspzkgERDqpFapcOgOnODl_TB1c7xd3swCd9-L71Vd5hI8J-wEkNoF6fM-O9aHj_HZ7DZeprFfJl_kBmo/s72-c/Captura+de+pantalla+de+2017-02-05+22%253A08%253A24.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Webinar "Seguridad en WordPress"</title><link>https://verovand.blogspot.com/2017/02/webinar-seguridad-en-wordpress.html</link><category>seguridad</category><category>WordPress</category><author>noreply@blogger.com (Unknown)</author><pubDate>Sat, 4 Feb 2017 18:10:00 -0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-6059477153064696103</guid><description>&lt;div style="text-align: justify;"&gt;
Buenas tardes, bloggeros.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
En mi primer publicación (algo demorada) del año 2017, quiero compartirles una excelente charla online brindada por Daniel Maldonado (AKA &lt;a href="https://twitter.com/elcodigok" target="_blank"&gt;@elcodigok&lt;/a&gt;), en la que nos contó algunas buenas prácticas de seguridad para ser aplicadas en los proyectos WordPress. Fue una pequeña introducción al curso que dará próximamente en a través de la &lt;a href="http://seu.sanfrancisco.utn.edu.ar/evento/curso-online-seguridad-en-wordpress-129" target="_blank"&gt;plataforma Aula25&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe height="345" src="https://www.youtube.com/embed/eSA6GNEKCpQ" width="420"&gt;&lt;br /&gt;
&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Daniel es autor de un libro titulado "Máxima seguridad en WordPress", publicado para la editorial &lt;a href="http://0xword.com/es/libros/84-maxima-seguridad-en-wordpress.html" target="_blank"&gt;0xWord&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
No dejen de ver el seminario.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Saludos. Y happy config..!&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/eSA6GNEKCpQ/default.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>Nuevo intento de estafa por correo electrónico #phishing</title><link>https://verovand.blogspot.com/2016/12/nuevo-intento-de-estafa-por-correo.html</link><category>estafa</category><category>phishing</category><category>seguridad</category><author>noreply@blogger.com (Unknown)</author><pubDate>Sun, 18 Dec 2016 20:54:00 -0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-4286494079279015234</guid><description>Buenas tardes, bloggeros!&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Hoy me sorprendí cuando al chequear mi casilla de correo, encuentro en mi Inbox un mail con remitente PAYPAL... Bueno, no recuerdo haber creado una cuenta en dicho servicio, pensé. Y mi primer pensamiento fue que este sería un intento de estafa, de esas que tanto circulan por internet.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Vamos a ver...&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRxsrXrOz0poQzoJU73nJ6GWhRf1V8lr3rfPCBfbUtJ-YGJ7eiDYMpJcm07Wf6OrvJ6Z3hzGqYVTLaxEBbD2f-djccf-DxHlu1VhxmNjzUrxdNWT5eoIIJhoYEuNTqUWNeZ0jq9N3YZdI/s1600/Captura+de+pantalla+de+2016-12-18+18%253A15%253A01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="547" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRxsrXrOz0poQzoJU73nJ6GWhRf1V8lr3rfPCBfbUtJ-YGJ7eiDYMpJcm07Wf6OrvJ6Z3hzGqYVTLaxEBbD2f-djccf-DxHlu1VhxmNjzUrxdNWT5eoIIJhoYEuNTqUWNeZ0jq9N3YZdI/s640/Captura+de+pantalla+de+2016-12-18+18%253A15%253A01.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Por empezar podemos ver que el correo electrónico de quien envía el mail es sumamente sospechoso... Haciendo uso del comando &lt;b&gt;dig&lt;/b&gt;&amp;nbsp;para consultar información sobre el dominio, obtuve lo siguiente:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggz1cXlUGgB-UXHIG7-YEjvrS9-E_Mjuya9DYgNnMfdZR2bdSb0WaXX4NdcZKQp20gefY8c4I6dzNgQr0TTveMR34xkWkqsxewCqHYZ9kC7eyShrf0sDIbHC8ypYwoDVAOMXcCVrHdvic/s1600/Captura+de+pantalla+de+2016-12-18+18%253A44%253A23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="364" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggz1cXlUGgB-UXHIG7-YEjvrS9-E_Mjuya9DYgNnMfdZR2bdSb0WaXX4NdcZKQp20gefY8c4I6dzNgQr0TTveMR34xkWkqsxewCqHYZ9kC7eyShrf0sDIbHC8ypYwoDVAOMXcCVrHdvic/s640/Captura+de+pantalla+de+2016-12-18+18%253A44%253A23.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Y a través de Robtex consulté más info:&amp;nbsp;&lt;a href="https://www.robtex.com/?dns=mckeetours.com"&gt;https://www.robtex.com/?dns=mckeetours.com&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Es curioso que quienes envían el mail (la gente de PayPal) utilicen los servidores de mail de Google, no? Nada tiene que ver con los servidores de mail que usa PayPal (para consultarlos se puede ejecutar el comando &lt;b&gt;dig mx paypal.com&lt;/b&gt;).&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Adicionalmente, geolocalicé el dominio: &lt;a href="https://www.elhacker.net/geolocalizacion.html?host=mckeetours.com"&gt;https://www.elhacker.net/geolocalizacion.html?host=mckeetours.com&lt;/a&gt; y realicé la consulta Whois correspondiente, y observé que el dominio está dado de alta desde GoDaddy:&amp;nbsp;&lt;a href="https://www.elhacker.net/whois.html?domain=mckeetours.com"&gt;https://www.elhacker.net/whois.html?domain=mckeetours.com&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Creo que todo esto no era necesario, pero es interesante ver el trabajo que invierten los estafadores para realizar estas campañas de pishing que aún hoy son una de las más utilizadas para el robo de información.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Por último, accedí al enlace que me proporcionaban para cambiar mi contraseña de mi supuesta cuenta de PayPal. Podemos ver que se hizo un fino trabajo para imitar la página de login original de PayPal... pero miren la URL!! Y no utilizan HTTPS!! Y también falsificaron la página principal... todo muy bien hecho para engañar...&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRK1sBRz1Jdl3H_nmpLjSmp0pCXHPrtp4b6ZZk4MNCNl5IV4BifdQKIi4sFl_HGcgB3ecsWodMLO-_4bf_WxwPphQhoEL3s-seCtW-15SP7Ny_1Ucux8HeN35KQfJ-z7f0EZug_h37nLU/s1600/paypal-login-falso.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="339" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRK1sBRz1Jdl3H_nmpLjSmp0pCXHPrtp4b6ZZk4MNCNl5IV4BifdQKIi4sFl_HGcgB3ecsWodMLO-_4bf_WxwPphQhoEL3s-seCtW-15SP7Ny_1Ucux8HeN35KQfJ-z7f0EZug_h37nLU/s640/paypal-login-falso.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Login de la página falsa&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9T_YPZQWnAG0ZE26jeKJjo5ZCMs8tTs1a42O4xXMCGTf-Wi1XdkCykFJ_eh9wCulWFjkftSlppPJuFsJ5FZTRxbpCNpQomSJnjEyfDdcjkQtveM6u3zVbKgmlICoPR7JsAjxoE0GUfSg/s1600/paypal-login.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="337" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9T_YPZQWnAG0ZE26jeKJjo5ZCMs8tTs1a42O4xXMCGTf-Wi1XdkCykFJ_eh9wCulWFjkftSlppPJuFsJ5FZTRxbpCNpQomSJnjEyfDdcjkQtveM6u3zVbKgmlICoPR7JsAjxoE0GUfSg/s640/paypal-login.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Login de la página de PayPal original&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEhMkopvajRaG4wg0M0vv-tvwqTHZP84KvccEr33ajb0XXcjA-35FZErN-k-AEP0bps1-NBsSqCCG8Vh1Pqapaw5yufZsPrVRgPIY0OYZaqM9XK1UXKCi2Jm_zwQnSYleQ_MTUABO3IeE/s1600/paypal-falso.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEhMkopvajRaG4wg0M0vv-tvwqTHZP84KvccEr33ajb0XXcjA-35FZErN-k-AEP0bps1-NBsSqCCG8Vh1Pqapaw5yufZsPrVRgPIY0OYZaqM9XK1UXKCi2Jm_zwQnSYleQ_MTUABO3IeE/s640/paypal-falso.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Página principal de PayPal FALSA&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAghx_txwjSvtR8u8Gyr53QUq2Y03P8tveHuermqpuGGzD6bmFIRj44Hlg9S34H5NbXiISgANNKZ1b9rrN4SyM5wI-CfWwd5DQheOUTP0gpTuzUjkzpVhk2odNVJjl5kPP0irEnz63f5c/s1600/paypal.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="341" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAghx_txwjSvtR8u8Gyr53QUq2Y03P8tveHuermqpuGGzD6bmFIRj44Hlg9S34H5NbXiISgANNKZ1b9rrN4SyM5wI-CfWwd5DQheOUTP0gpTuzUjkzpVhk2odNVJjl5kPP0irEnz63f5c/s640/paypal.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Página principal de PayPal VERDADERA&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
Como pudimos apreciar, el trabajo detrás de esto es fino... y quienes no están al tanto de la existencia de estas técnicas de engaño son víctimas fáciles. No tengo dudas de que alguien ha accedido a esta página, ingresado información como correo electrónico y, más grave, datos de tarjetas de crédito.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Para quienes nos desempeñamos en el área informática, es importante concientizar a las personas que no tienen conocimientos sobre phishing, por ejemplo.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Saludos... y happy config!&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRxsrXrOz0poQzoJU73nJ6GWhRf1V8lr3rfPCBfbUtJ-YGJ7eiDYMpJcm07Wf6OrvJ6Z3hzGqYVTLaxEBbD2f-djccf-DxHlu1VhxmNjzUrxdNWT5eoIIJhoYEuNTqUWNeZ0jq9N3YZdI/s72-c/Captura+de+pantalla+de+2016-12-18+18%253A15%253A01.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Configurando un SSH seguro</title><link>https://verovand.blogspot.com/2016/10/configurando-un-ssh-seguro.html</link><category>seguridad</category><category>servers</category><category>ssh</category><author>noreply@blogger.com (Unknown)</author><pubDate>Sun, 9 Oct 2016 02:45:00 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-752851923326526585.post-6369475950754407287</guid><description>Buenas noches, bloggeros.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Bueno, el título del post lo dice todo: todos usamos SSH para algo... por eso es importante tener una configuración apropiada, ya que dejar la configuración by default no es una buena idea.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPx1OeVXXhOuK4__E50rSu0j5ra3RjdrzCn-3LXToe_uwuQ0FG25MNni4Ow_pAv37F-uO0CsU_uKabtAf3KFmYDIFg-n4fEV9n-bTsDrbELF3UX_Xq6X2sbRMW4QYLwXjgQyIw6s-Tp84/s1600/openssh.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPx1OeVXXhOuK4__E50rSu0j5ra3RjdrzCn-3LXToe_uwuQ0FG25MNni4Ow_pAv37F-uO0CsU_uKabtAf3KFmYDIFg-n4fEV9n-bTsDrbELF3UX_Xq6X2sbRMW4QYLwXjgQyIw6s-Tp84/s320/openssh.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hay muchas herramientas que nos ayudan a mantener nuestro servidor SSH a salvo de alguna manera, pero si la configuración del servidor no es la correcta, no nos valdrá de mucho el fail2ban, por ejemplo.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Vamos a lo importante, el fichero /etc/ssh/ssh_config:&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #888888;"&gt;# What ports, IPs and protocols we listen for - Lo podemos cambiar&lt;/span&gt;
Port 6622
&lt;span style="color: #888888;"&gt;# Use these options to restrict which interfaces/protocols sshd will bind to&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#ListenAddress ::&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#ListenAddress 0.0.0.0&lt;/span&gt;
Protocol 2
&lt;span style="color: #888888;"&gt;# HostKeys for protocol version 2&lt;/span&gt;
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
&lt;span style="color: #888888;"&gt;#Privilege Separation is turned on for security&lt;/span&gt;
UsePrivilegeSeparation yes

&lt;span style="color: #888888;"&gt;# Lifetime and size of ephemeral version 1 server key&lt;/span&gt;
KeyRegenerationInterval 3600
ServerKeyBits 1024

&lt;span style="color: #888888;"&gt;# Logging&lt;/span&gt;
SyslogFacility AUTH
LogLevel VERBOSE

&lt;span style="color: #888888;"&gt;# Authentication:&lt;/span&gt;
LoginGraceTime 30
&lt;span style="color: #888888;"&gt;# Tiempo que disponemos para iniciar la sesión antes de que nos desconecte el server&lt;/span&gt;
PermitRootLogin no
&lt;span style="color: #888888;"&gt;#I M P O R T A N T E&lt;/span&gt;
StrictModes yes
AllowUsers yousuario
&lt;span style="color: #888888;"&gt;# Usuario que puede loguearse&lt;/span&gt;

RSAAuthentication yes
PubkeyAuthentication yes
&lt;span style="color: #888888;"&gt;#AuthorizedKeysFile %h/.ssh/authorized_keys&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# Don't read the user's ~/.rhosts and ~/.shosts files&lt;/span&gt;
IgnoreRhosts yes
&lt;span style="color: #888888;"&gt;# For this to work you will also need host keys in /etc/ssh_known_hosts&lt;/span&gt;
RhostsRSAAuthentication no
&lt;span style="color: #888888;"&gt;# similar for protocol version 2&lt;/span&gt;
HostbasedAuthentication no
&lt;span style="color: #888888;"&gt;# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#IgnoreUserKnownHosts yes&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# To enable empty passwords, change to yes (NOT RECOMMENDED)&lt;/span&gt;
PermitEmptyPasswords no

&lt;span style="color: #888888;"&gt;# Change to yes to enable challenge-response passwords (beware issues with&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# some PAM modules and threads)&lt;/span&gt;
ChallengeResponseAuthentication no

&lt;span style="color: #888888;"&gt;# Kerberos options&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#KerberosAuthentication no&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#KerberosGetAFSToken no&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#KerberosOrLocalPasswd yes&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#KerberosTicketCleanup yes&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# GSSAPI options&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#GSSAPIAuthentication no&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#GSSAPICleanupCredentials yes&lt;/span&gt;

&lt;span style="color: #888888;"&gt;#Deshabilitar el servidor X vía SSH&lt;/span&gt;
X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
&lt;span style="color: #888888;"&gt;#UseLogin no&lt;/span&gt;

MaxStartups 1
&lt;span style="color: #888888;"&gt;#Banner /etc/issue.net&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# Allow client to pass locale environment variables&lt;/span&gt;
AcceptEnv LANG LC_*

UsePAM yes
&lt;span style="color: #888888;"&gt;#&lt;/span&gt;
MaxAuthTries 3
&lt;span style="color: #888888;"&gt;#Cantidad maxima de intentos de logueo&lt;/span&gt;
ClientAliveInterval 300
AllowTcpforwarding no
DebianBanner no
&lt;span style="color: #888888;"&gt;#Ocultar la info de nuestro server si nos escanea nmap &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Lo recomendable, sin embargo sería:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;loguearnos utilizando clave pública/clave privada&lt;/li&gt;
&lt;li&gt;indicar la IP desde la que vamos a loguearnos (no siempre es posible)&lt;/li&gt;
&lt;li&gt;conectarnos al server a través de VPN&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;A veces debemos exponer nuestro servidor en internet, por lo que vamos a ser víctimas de bots intentando hacerse del server mediante ataque de fuerza bruta. Por eso fail2ban es una herramienta súmamente interesante que nos ayudará a mantener en lista negra, mediante iptables, a todas aquellas IP que hayan provocado intentos fallidos de conexión.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;En Debian y derivados, pueden encontrar a fail2ban en los repositorios e instalarlo mediante el comando&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;apt-get install fail2ban
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;Se cambian algunas cositas del fichero /etc/fail2ban/jail.conf (esto sólo es una porción del fichero)&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #333333;"&gt;[&lt;/span&gt;DEFAULT&lt;span style="color: #333333;"&gt;]&lt;/span&gt;

&lt;span style="color: #996633;"&gt;ignoreip&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; 127.0.0.1/8

&lt;span style="color: #996633;"&gt;ignorecommand&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# "bantime" is the number of seconds that a host is banned.&lt;/span&gt;
&lt;span style="color: #996633;"&gt;bantime&lt;/span&gt;  &lt;span style="color: #333333;"&gt;=&lt;/span&gt; 25200

&lt;span style="color: #888888;"&gt;# A host is banned if it has generated "maxretry" during the last "findtime"&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# seconds.&lt;/span&gt;
&lt;span style="color: #996633;"&gt;findtime&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; 60
&lt;span style="color: #996633;"&gt;maxretry&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; 3

&lt;span style="color: #996633;"&gt;backend&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; polling

&lt;span style="color: #996633;"&gt;usedns&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; warn

&lt;span style="color: #996633;"&gt;destemail&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; root@localhost

&lt;span style="color: #996633;"&gt;sendername&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; Fail2Ban
&lt;span style="color: #996633;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #996633;"&gt;sender&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; fail2ban@localhost

&lt;span style="color: #888888;"&gt;#&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# ACTIONS&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#&lt;/span&gt;
&lt;span style="color: #996633;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #996633;"&gt;banaction&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; iptables-multiport

&lt;span style="color: #888888;"&gt;# email action. Since 0.8.1 upstream fail2ban uses sendmail&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# MTA for the mailing. Change mta configuration parameter to mail&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# if you want to revert to conventional 'mail'.&lt;/span&gt;
&lt;span style="color: #996633;"&gt;mta&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; sendmail

&lt;span style="color: #888888;"&gt;# Default protocol&lt;/span&gt;
&lt;span style="color: #996633;"&gt;protocol&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; tcp

&lt;span style="color: #888888;"&gt;# Specify chain where jumps would need to be added in iptables-* actions&lt;/span&gt;
&lt;span style="color: #996633;"&gt;chain&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; INPUT

&lt;span style="color: #888888;"&gt;#&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# Action shortcuts. To be used to define action parameter&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# The simplest action to take: ban only&lt;/span&gt;
&lt;span style="color: #996633;"&gt;action_&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; %&lt;span style="color: #333333;"&gt;(&lt;/span&gt;banaction&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s&lt;span style="color: #333333;"&gt;[&lt;/span&gt;&lt;span style="color: #996633;"&gt;name&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;%&lt;span style="color: #333333;"&gt;(&lt;/span&gt;__name__&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s, &lt;span style="color: #996633;"&gt;port&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(port)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;protocol&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(protocol)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;chain&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(chain)s"&lt;/span&gt;&lt;span style="color: #333333;"&gt;]&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# ban &amp;amp; send an e-mail with whois report to the destemail.&lt;/span&gt;
&lt;span style="color: #996633;"&gt;action_mw&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; %&lt;span style="color: #333333;"&gt;(&lt;/span&gt;banaction&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s&lt;span style="color: #333333;"&gt;[&lt;/span&gt;&lt;span style="color: #996633;"&gt;name&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;%&lt;span style="color: #333333;"&gt;(&lt;/span&gt;__name__&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s, &lt;span style="color: #996633;"&gt;port&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(port)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;protocol&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(protocol)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;chain&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(chain)s"&lt;/span&gt;&lt;span style="color: #333333;"&gt;]&lt;/span&gt;
              %&lt;span style="color: #333333;"&gt;(&lt;/span&gt;mta&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s-whois&lt;span style="color: #333333;"&gt;[&lt;/span&gt;&lt;span style="color: #996633;"&gt;name&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;%&lt;span style="color: #333333;"&gt;(&lt;/span&gt;__name__&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s, &lt;span style="color: #996633;"&gt;dest&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(destemail)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;protocol&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(protocol)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;chain&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(chain)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;sendername&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(sendername)s"&lt;/span&gt;&lt;span style="color: #333333;"&gt;]&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# ban &amp;amp; send an e-mail with whois report and relevant log lines&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# to the destemail.&lt;/span&gt;
&lt;span style="color: #996633;"&gt;action_mwl&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; %&lt;span style="color: #333333;"&gt;(&lt;/span&gt;banaction&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s&lt;span style="color: #333333;"&gt;[&lt;/span&gt;&lt;span style="color: #996633;"&gt;name&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;%&lt;span style="color: #333333;"&gt;(&lt;/span&gt;__name__&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s, &lt;span style="color: #996633;"&gt;port&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(port)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;protocol&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(protocol)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;chain&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(chain)s"&lt;/span&gt;&lt;span style="color: #333333;"&gt;]&lt;/span&gt;
               %&lt;span style="color: #333333;"&gt;(&lt;/span&gt;mta&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s-whois-lines&lt;span style="color: #333333;"&gt;[&lt;/span&gt;&lt;span style="color: #996633;"&gt;name&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;%&lt;span style="color: #333333;"&gt;(&lt;/span&gt;__name__&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s, &lt;span style="color: #996633;"&gt;dest&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(destemail)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;logpath&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;%&lt;span style="color: #333333;"&gt;(&lt;/span&gt;logpath&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s, &lt;span style="color: #996633;"&gt;chain&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(chain)s"&lt;/span&gt;, &lt;span style="color: #996633;"&gt;sendername&lt;/span&gt;&lt;span style="color: #333333;"&gt;=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"%(sendername)s"&lt;/span&gt;&lt;span style="color: #333333;"&gt;]&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# Choose default action.  To change, just override value of 'action' with the&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# globally (section [DEFAULT]) or per specific section&lt;/span&gt;
&lt;span style="color: #996633;"&gt;action&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; %&lt;span style="color: #333333;"&gt;(&lt;/span&gt;action_&lt;span style="color: #333333;"&gt;)&lt;/span&gt;s

&lt;span style="color: #888888;"&gt;#&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# JAILS&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#&lt;/span&gt;

&lt;span style="color: #333333;"&gt;[&lt;/span&gt;ssh&lt;span style="color: #333333;"&gt;]&lt;/span&gt;

&lt;span style="color: #996633;"&gt;enabled&lt;/span&gt;  &lt;span style="color: #333333;"&gt;=&lt;/span&gt; &lt;span style="color: #007020;"&gt;true&lt;/span&gt;
&lt;span style="color: #996633;"&gt;port&lt;/span&gt;     &lt;span style="color: #333333;"&gt;=&lt;/span&gt; ssh
&lt;span style="color: #996633;"&gt;filter&lt;/span&gt;   &lt;span style="color: #333333;"&gt;=&lt;/span&gt; sshd
&lt;span style="color: #996633;"&gt;logpath&lt;/span&gt;  &lt;span style="color: #333333;"&gt;=&lt;/span&gt; /var/log/auth.log
&lt;span style="color: #996633;"&gt;maxretry&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; 3
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
Y también en /etc/fail2ban/action.d/iptables-blocktype.conf&lt;br /&gt;
&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #333333;"&gt;[&lt;/span&gt;INCLUDES&lt;span style="color: #333333;"&gt;]&lt;/span&gt;

&lt;span style="color: #996633;"&gt;after&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; iptables-blocktype.local

&lt;span style="color: #333333;"&gt;[&lt;/span&gt;Init&lt;span style="color: #333333;"&gt;]&lt;/span&gt;

&lt;span style="color: #888888;"&gt;# Option:  blocktype&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# Note:    This is what the action does with rules. This can be any jump target&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#          as per the iptables man page (section 8). Common values are DROP&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#          REJECT, REJECT --reject-with icmp-port-unreachable&lt;/span&gt;
&lt;span style="color: #888888;"&gt;# Values:  STRING&lt;/span&gt;
&lt;span style="color: #888888;"&gt;#blocktype = REJECT --reject-with icmp-port-unreachable&lt;/span&gt;
&lt;span style="color: #996633;"&gt;blocktype&lt;/span&gt; &lt;span style="color: #333333;"&gt;=&lt;/span&gt; DROP
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;para que en vez de hacer un REJECT haga DROP sobre la IP banneada.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;Otra capa de seguridad que podemos añadir al servicio es la &lt;a href="http://www.redeszone.net/seguridad-informatica/manual-de-configuracion-de-openssh-con-google-authenticator/" target="_blank"&gt;autenticación de dos pasos&lt;/a&gt;&amp;nbsp;y&amp;nbsp;la &lt;a href="http://www.hackplayers.com/2014/01/securizando-openssh-mode-paranoico-2.html#more" target="_blank"&gt;integración de Latch&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Como lectura adicional, les dejo dos enlaces que me parecen sumamente interesantes relacionados con el tema de este post:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.segu-info.com.ar/2016/08/ssh-audit-auditar-la-configuracion-del.html" target="_blank"&gt;Auditar la configuración del servidor SSH&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elladodelmal.com/2016/07/openssh-time-based-info-leak-para.html" target="_blank"&gt;OpenSSH: Time-Based Info Leak para enumerar usuarios&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Espero que haya sido de utilidad. No obstante, siempre lo mejor es leer la docu oficial para ajustar la configuración de la mejor manera.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Saludos... y happy config.!&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPx1OeVXXhOuK4__E50rSu0j5ra3RjdrzCn-3LXToe_uwuQ0FG25MNni4Ow_pAv37F-uO0CsU_uKabtAf3KFmYDIFg-n4fEV9n-bTsDrbELF3UX_Xq6X2sbRMW4QYLwXjgQyIw6s-Tp84/s72-c/openssh.gif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>