Mostrando las entradas con la etiqueta internet. Mostrar todas las entradas
Mostrando las entradas con la etiqueta internet. Mostrar todas las entradas

miércoles, marzo 31, 2021

Bloqueo con GeoIP en Ubuntu 20.04

Para algunos servicios que solo es necesario que estén disponibles, merece la pena utilizar el bloqueo geográfico a nivel IP, permitiendo aumentar el nivel seguridad sin afectar a los usuarios de este.

Para esto utilizaremos la base de datos de GeoIP de db-ip en conjunto con el paquete xtables-addons

 Instalación de requisitos

sudo apt-get update; sudo apt-get -y upgrade
sudo apt-get install curl unzip perl 
sudo apt-get install xtables-addons-common
sudo apt-get install libtext-csv-xs-perl libmoosex-types-netaddr-ip-perl

Script de actualización

Debemos crear un script que periódicamente este descargando la actualización de la bases de datos de GeoIP para esto realizamos primero crear una carpeta:

sudo mkdir /usr/share/xt_geoip

 Después creamos el script la siguiente ubicación /usr/local/bin/geo-update.sh

#!/bin/bash

MON=$(date +"%m")
YR=$(date +"%Y")

wget https://download.db-ip.com/free/dbip-country-lite-${YR}-${MON}.csv.gz -O /usr/share/xt_geoip/dbip-country-lite.csv.gz
gunzip /usr/share/xt_geoip/dbip-country-lite.csv.gz
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip/ -S /usr/share/xt_geoip/
rm /usr/share/xt_geoip/dbip-country-lite.csv

Al ejecutar este script se poblara la base de datos de GeoIP para su uso. Recuerde crear una tarea en cron para actualizar la base de manera pediodica.

Creacion de reglas

Antes de crear la regla debemos cargar  el modulo para que opere. Ejecutamos el siguiente comando:

modprobe xt_geoip
lsmod | grep ^xt_geoip


Si todo va esta bien, podemos aplicar la siguiente regla:

iptables -A INPUT -m geoip -p tcp --dport 22 --src-cc RU,CN -j DROP

Esto bloqueara el acceso SSH desde Rusia y China.

Si quieres permiter el acceso desde un pais en ese caso la regla seria la siguiente:

iptables -A INPUT -m geoip -p tcp --dport 22 --src-cc CL -j ACCEPT

 Aqui permitimos el acceso SSH solo desde Chile

Aplicando de manera permanente

Estas reglas que recien aplicamos se borrar si reiniciamos la maquina. Para que las reglas sean permanentes, te recomiendo usar el servicio ufw. Para esto edita el archivo  /etc/ufw/before.rules y agregan reglas antes del COMMIT, como esta:

-A ufw-before-input -m geoip -p tcp --dport --dport 22 --src-cc CL -j ACCEPT

Esta regla permite el acceso SSH desde Chile, recuerda que ufw por defecto deniega todo el trafico

Publicación en ingles




lunes, enero 11, 2021

Zabbix: Configurar un host con SNMP

 Ya tenemos instalado Zabbix y ahora debemos configurar un host para poder monitorear. En este ejemplo utilizaremos un equipo de red con las siguientes configuraciones:

Nombre: switch1

IP: 192.168.1.10

Comunidad SNMP: privada

Para agregarlo en Zabbix debemos ir a Configuration → Hosts

Aquí debemos ir a "Create host"

Aquí debemos configurar los parámetros ya teníamos del equipo de red:

  1. Host Name: switch1
  2. Groups: agregar aun grupo, esto es obligatorio. Si no tenemos un grupo, escribinos un nombre en este lugar y ponemos agregar.
  3.  Remover la interface existente que es de tipo Agent
  4.  Agregar (Add) una interface de tipo SNMP
  5. Ip address: 192.168.10.1
  6.  SNMP community: privada


 Después vamos a la opción "Templates" ubicada en la parte superior derecha y agregamos la plantilla de monitoreo. para este ejemplo usaremos "Template Net Network Generic Device SNMP", la cual monitorea las interfaces de red de los equipos y disponibilidad de este. Si solo quieres detectar si el equipo esta disponible (ping) utiliza la plantilla "Template Module ICMP Ping". Ya hecho esto hacemos clic en Add y listo.

 

Ahora puedes ir Monitoring → Hosts y veras en nuevo equipo agregado. Debemos esperar unos 10 minutos para que aparezca todas las interfaces de red.



jueves, agosto 20, 2020

Python requests a traves de proxy

En algunos casos es necesario hacer requerimientos en Python a través de un proxy. Esto se puede realizar de manera muy simple. Aquí un ejemplo:

import requests
proxies = { 'https' : 'https://user:pass@proxy_ip:port' }
r = requests.get(“http://url”, proxies=proxies)

Con esto ya podremos hacer los requerimientos a traves de un proxy.

Comandos para Elasticsearch

Consultar indices:

curl -XGET "http://localhost:9200/_cat/indices"
Crear indice:

curl -X PUT "localhost:9200/servidor-1"

Eliminar indice:

curl -X DELETE "http://localhost:9200/servidor-1"
 
Eliminar multiples indices:

curl -X DELETE "http://localhost:9200/servidor-*"

lunes, agosto 17, 2020

Crear agentes en Pandora FMS via API

Aqui explicare un script en Python hecho para agregar de manera automática, basados en un csv, agentes a Pandora FMS y ademas agregarles el monitoreo básico.


Formato CSV

nombre,ip,descripcion,grupo,os
Router1,172.22.1.1,Router sucursal A,1,1
Router2,172.22.1.2,Router sucursal B,1,1

Router3,172.22.1.3,Router sucursal C,1,1

 Router4,172.22.1.4,Router sucursal D,1,1


Importante deben estar creados los grupos y sistemas operativos primero, y despues obtener el id de cada uno para llevar el csv.

Ahora debemos configurar la clave de la API de Pandora FMS y ademas permitir la ip de donde vamos a ejecutar el script.



El script:



 import requests
 import pandas as pd

 df=pd.read_csv("listado_agentes.csv") 

for index, row in df.iterrows():
    nombre = row['nombre']
    ip = row['ip']
    grupo = row['grupo']
    os = row['os']
    descripcion = row['descripcion']
    autenticacion = "apipass=_clave_api&user=admin&pass=pandora"
    pagina_api= "http://IP_Pandora/pandora_console/include/api.php"
    url=f"{pagina_api}?op=set&op2=new_agent&other={nombre}|{ip}|0|{grupo}|0|0|300|{os}|localhost.localdomain|8|10||{descripcion}|1&other_mode=url_encode_separator_|&{autenticacion}"
    #print(url)
    r = requests.get(url, stream=True)
    agente=r.text
    print(r.text)
    plantilla_modulo="2"
    url2=f"{pagina_api}?op=set&op2=apply_module_template&id={plantilla_modulo}&id2={agente}&{autenticacion}"
    r2 = requests.get(url2, stream=True)
    print(r2.text)

viernes, julio 10, 2020

Forma rapida de compilar Openwrt

Esta es la forma rápida de compilar openwrt

Descarga usando git

 git clone https://git.openwrt.org/openwrt/openwrt.git

ingresa a la carpeta creada y actualiza los paquetes a las ultimas versiones

 cd openwrt
 ./scripts/feeds update -a
 ./scripts/feeds install -a

Hecho es solo debes ejecutar el siguiente comando para elegir la plataforma de destino de la imagen:

 make menuconfig






Como ya has elegido la plataforma y los paquetes ahora puedes compilar:

 make -j4

Ya compilado aparecerá una carpeta  bin donde encontraras  el archivo bin a utilizar:




Saludos