Mostrando entradas con la etiqueta Debian. Mostrar todas las entradas
Mostrando entradas con la etiqueta Debian. Mostrar todas las entradas
lunes, 8 de julio de 2019
lunes, 4 de febrero de 2019
Modificar Active Directory desde Linux
El siguiente script es utilizado para modificar la descripción de un usuario de Active Directory de Windows desde un Linux con el comando ldapmodify.
Explicación del script:
El primer if testea si la cantidad de parámetros que recibe el script es igual a 3. Se debe enviar como parámetro el Apellido, Nombre y la Descripción que querémos que le ponga al usuario con el Apellido indicado.
El segundo if verifica si los usuarios a modificar corresponde con alguno de esos 3, es decir sólo a estos 3 usuarios podré modificar su descripción: Cacheuta, Perez y Martinez.
Luego borro el temporal de ldif en caso que exista, a continuación creo uno nuevo, donde le especifico la Unidad Organizativa donde están dichos usuarios a modificar, le especifico que voy a modificar y lo que voy a reemplazar es la descripción del usuario.
Ejecuto el ldapmodify específicandole el nombre ó la ip del domain controller, un usuario con permisos para modificar el Active Directory, la password del usuario para modificar el AD y el archivo LDIF generado previamente.
Al final vuelvo a borrar el archivo temporal.
Le damos permisos al script para que cualquiera pueda ejecutar:
Ejecutamos el script pasandoles los parámetros:
Agregamos al webmin para que pueda ejecutarlo el usuario deseado:
http://redes-seguridad.blogspot.com/2012/11/permisos-script-en-webmin.html
El script crea un archivo llamado entrymods con formato ldif para luego importarlo, finalmente lo borra.
Acá el script y luego lo explicaré linea por linea:
#!/bin/bash
if [ $# -ne 3 ]
then
echo "Cantidad de parametros incorrecta"
echo "Uso del Script: $0 [Apellido] [Nombre] [descripcion]"
echo "Ejemplo: $0 Martinez Diego Mi_Descrip"
exit
fi
if [ "$1" != "Cacheuta" -a "$1" != "Perez" -a "$1" != "Martinez" ]
then
echo "Usuario Incorrecto, no tiene permisos o esta mal escrito: (Cacheuta, Perez ó Martinez)"
exit
fi
rm -rf /tmp/entrymods
echo dn: CN=$1 $2,OU=Sistemas,OU=Users,OU=España,OU=Europa,DC=redes,DC=seguridad,DC=com >> /tmp/entrymods
echo changetype: modify >> /tmp/entrymods
echo replace: description >> /tmp/entrymods
echo description: $3 >> /tmp/entrymods
ldapmodify -h mi_domain_controller -D "mi_user@redes.seguridad.com" -w "Clave_de_mi_user" -f /tmp/entrymods
rm -rf /tmp/entrymods
Explicación del script:
El primer if testea si la cantidad de parámetros que recibe el script es igual a 3. Se debe enviar como parámetro el Apellido, Nombre y la Descripción que querémos que le ponga al usuario con el Apellido indicado.
El segundo if verifica si los usuarios a modificar corresponde con alguno de esos 3, es decir sólo a estos 3 usuarios podré modificar su descripción: Cacheuta, Perez y Martinez.
Luego borro el temporal de ldif en caso que exista, a continuación creo uno nuevo, donde le especifico la Unidad Organizativa donde están dichos usuarios a modificar, le especifico que voy a modificar y lo que voy a reemplazar es la descripción del usuario.
Ejecuto el ldapmodify específicandole el nombre ó la ip del domain controller, un usuario con permisos para modificar el Active Directory, la password del usuario para modificar el AD y el archivo LDIF generado previamente.
Al final vuelvo a borrar el archivo temporal.
Le damos permisos al script para que cualquiera pueda ejecutar:
# chmod a+x /ruta/del/script/modifica_descripcion.sh
Ejecutamos el script pasandoles los parámetros:
# /ruta/del/script/modifica_descripcion.sh Cacheuta Diego Administracion
Agregamos al webmin para que pueda ejecutarlo el usuario deseado:
http://redes-seguridad.blogspot.com/2012/11/permisos-script-en-webmin.html
Etiquetas:
Active Directory,
CLI,
Comandos,
commands,
consola,
Debian,
Infraestructura,
ldapadmin,
ldapmodify,
Linux,
openldap,
Scripts,
Servidores Dell,
Vim
viernes, 18 de enero de 2019
Instalar PowerShell en Linux
Vamos a instalar PowerShell Core en Linux, esto fué probado en un Debian 9
Primero descargamos el tar.gz:
root@debian:~# curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v6.1.0/powershell-6.1.0-linux-x64.tar.gz
Creamos la carpeta donde lo almacenaremos:
root@debian:~# mkdir -p /opt/microsoft/powershell/6.1.0
Descomprimimos:
root@debian:~# tar zxf /tmp/powershell.tar.gz -C /opt/microsoft/powershell/6.1.0
Damos permisos de ejecución:
root@debian:~# chmod +x /opt/microsoft/powershell/6.1.0/pwsh
Creamos en enlace simbólico:
root@debian:~# ln -s /opt/microsoft/powershell/6.1.0/pwsh /usr/bin/pwsh
FUENTE: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-6
miércoles, 2 de enero de 2019
Conectar con SSH sin clave pública/privada - SSHpass
Qué es SSHpass:
Cuando utilizamos SSH para conectarnos de un servidor a otro utilizamos un usuario y una contraseña.
Usualmente podemos generar un par de claves pública y privada para que no nos solicite la contraseña. En el caso que no deseemos utilizar estas claves podremos utilizar el SSHPASS que nos servirá para pasar la contraseña por parámetro.
Esta herramienta podemos utilizarla por ejemplo para poner dentro de scripts sin que tener que configurar las keys SSH.
También explicaré como utilizar GPG para encriptar la clave y que no quede en texto plano en un archivo.
Instalar el sshpass:
root@debian:~# apt-get install sshpass
Ingresar pasando el password sin tener keys ssh:
root@debian:~# sshpass -p 'Mi_password' ssh 192.168.0.200
Poner la clave dentro de un archivo:
root@debian:~# echo 'Mi_password' > pass.txt
root@debian:~# sshpass -f pass.txt ssh 192.168.0.200
Tener en cuenta para darle permisos de lectura solo al owner, para que nadie más pueda leer la clave.
root@debian:~# chmod 0400 pass.txt
Encriptar el archivo de contraseña con gpg:
root@debian:~# gpg -c pass.txt
Ingresamos una passphrase que nos solicita y la confirmamos. Esto nos genera un archivo .gpg
root@debian:~# ls -lat pass.txt.gpg
-rw-r--r-- 1 root root 94 ene 2 11:15 pass.txt.gpg
Eliminamos el que no está encriptado:
root@debian:~# rm -rf pass.txt
Usamos el sshpass con la clave encriptada:
root@debian:~# gpg -d -q pass.txt.gpg > pass.txt; sshpass -f pass.txt ssh 192.168.0.200; rm pass.txt
Etiquetas:
Administrador,
CLI,
Comandos,
consola,
Debian,
Infraestructura,
opensource,
parallel ssh,
Seguridad,
Servers,
Servicios,
SSH,
SSHd,
SSHpas,
Unix
viernes, 28 de diciembre de 2018
Parallel SSH - Ejecutar comandos remotos en multiples servidores
Todos sabemos que es SSH y que podemos hacer con él, pero hoy vamos a ver Parallel SSH.
Instalamos el parallel-ssh:
Vemos como usarlo:
Editamos el archivo donde pondremos ip's de los servidores donde ejecutaremos los comandos:
Ejecutamos el comando en ambos servidores:
-h listado de servidores donde ejecutaremos los comandos
-l usuario con el que se conectará por ssh. Tener en cuenta que debe tener configuradas las keys ssh para que no pida password.
-o directorio de salida donde mostrará la salida de cada comando
uptime el comando que ejecutará en cada servidor remoto
Que es Parallel SSH:
Es un comando ó herramienta que nos permite conectarnos a varios servidores simultáneamente mediante SSH y poder ejecutar comandos sin ingresar uno por uno para ejecutarlos.Instalamos el parallel-ssh:
root@debian:~# apt-get install pssh
Vemos como usarlo:
root@debian:~# parallel-ssh --help
Usage: parallel-ssh [OPTIONS] command [...]
Options:
--version show program's version number and exit
--help show this help message and exit
-h HOST_FILE, --hosts=HOST_FILE
hosts file (each line "[user@]host[:port]")
-H HOST_STRING, --host=HOST_STRING
additional host entries ("[user@]host[:port]")
-l USER, --user=USER username (OPTIONAL)
-p PAR, --par=PAR max number of parallel threads (OPTIONAL)
-o OUTDIR, --outdir=OUTDIR
output directory for stdout files (OPTIONAL)
-e ERRDIR, --errdir=ERRDIR
output directory for stderr files (OPTIONAL)
-t TIMEOUT, --timeout=TIMEOUT
timeout (secs) (0 = no timeout) per host (OPTIONAL)
-O OPTION, --option=OPTION
SSH option (OPTIONAL)
-v, --verbose turn on warning and diagnostic messages (OPTIONAL)
-A, --askpass Ask for a password (OPTIONAL)
-x ARGS, --extra-args=ARGS
Extra command-line arguments, with processing for
spaces, quotes, and backslashes
-X ARG, --extra-arg=ARG
Extra command-line argument
-i, --inline inline aggregated output and error for each server
--inline-stdout inline standard output for each server
-I, --send-input read from standard input and send as input to ssh
-P, --print print output as we get it
Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime
Editamos el archivo donde pondremos ip's de los servidores donde ejecutaremos los comandos:
root@debian:~# vi hosts.txt
192.168.0.100
192.168.0.200
Ejecutamos el comando en ambos servidores:
root@debian:~# parallel-ssh -h hosts.txt -l root -o /tmp/salida uptime
[1] 09:52:12 [SUCCESS] 192.168.0.100
[2] 09:52:12 [SUCCESS] 192.168.0.200
-h listado de servidores donde ejecutaremos los comandos
-l usuario con el que se conectará por ssh. Tener en cuenta que debe tener configuradas las keys ssh para que no pida password.
-o directorio de salida donde mostrará la salida de cada comando
uptime el comando que ejecutará en cada servidor remoto
Vemos la salida de cada ip en la ruta que le pasamos con el -o:
Vemos el resultado de cada server:
root@debian:~# ls -lat /tmp/salida.txt/
total 1930
drwxrwxrwt 7 root root 1971200 Dec 28 09:55 ..
-rw-r--r-- 1 root root 74 Dec 28 09:52 192.168.0.100
-rw-r--r-- 1 root root 73 Dec 28 09:52 192.168.0.200
drwxr-xr-x 2 root root 1024 Dec 28 09:51 .
Vemos el resultado de cada server:
root@debian:~# cat /tmp/salida.txt/192.168.0.100
9:52am up 100 day(s), 16:24, 9 users, load average: 0.06, 0.07, 0.06
root@debian:~# cat /tmp/salida.txt/192.168.0.200En caso que no tengamos las keys ssh podremos ingresar el password:
9:52am up 85 day(s), 17:12, 0 users, load average: 0.11, 0.18, 0.19
root@debian:~# parallel-ssh -h hosts.txt -A -O PreferredAuthentications=password uptime
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: acáVaLaClaveDeRoot
[1] 12:08:27 [SUCCESS] 192.168.0.100
[2] 12:08:27 [SUCCESS] 192.168.0.200
Etiquetas:
Administrador,
CLI,
Comandos,
commands,
consola,
Debian,
Linux,
opensource,
parallel ssh,
parallel-ssh,
Remoto,
Server,
Servers,
Servidores,
SSH,
SSHd,
SysAdmin,
Unix
jueves, 15 de marzo de 2018
Monitorear si una maquina virtual tiene snapshots en VMware ESXi
Este script corre con el usuario nagios, el ESXServer lo cambian por el hostname de su ESX ó por la ip del mismo, Storage-01 es el nombre del datastore del vmware en mis servidores.
Va a llegar una alarma de nagios en caso que exista alguna virtual con al menos un snapshot en cualquier máquina virtual.
Script: /usr/local/apps/nagios/libexec/check_VM_snapshots
# Autor Hernan Tirado# blog: redes-seguridad.blogspot.com# Creado el: 15-03-2018## Uso: /usr/local/apps/nagios/libexec/check_VM_snapshotsCANT_SNAP=`ssh root@ESXserver-x ls -latR /vmfs/volumes/Storage-01/|grep -i snap |awk '{ print $6" "$7" "$9}'|sort|uniq|wc -l`if [ $CANT_SNAP = 0 ];thenecho "OK - Virtuales SIN Snapshots en Storage-01."exit 0elseecho "CRITICAL - Virtuales con Snapshots en Storage-01: $CANT_SNAP"ssh root@ESXserver -x ls -latR /vmfs/volumes/Storage-01/|grep -i snap |awk '{ print $6" "$7" "$9}'|sort|uniqexit 2fifiTener en cuenta que tiene que tener habilitado el SSH en el server ESXi y también copiar la key de nagios en el autorized_key del server ESX.
Etiquetas:
CLI,
codigo,
Comandos,
consola,
Debian,
Desarrolladores,
ESX,
Linux,
Monitoreo,
nagios,
programación,
Scripts,
SSH,
Storage,
Virtualización,
VMware
viernes, 1 de septiembre de 2017
Lector de Tarjetas RFID-RC522 en Raspberry Pi B+
Les dejo un extracto de wikipedia de lo que es RFID:
RFID o identificación por radiofrecuencia (del inglés Radio Frequency Identification) es un sistema de almacenamiento y recuperación de datos remoto que usa dispositivos denominados etiquetas, tarjetas o transpondedores RFID. El propósito fundamental de la tecnología RFID es transmitir la identidad de un objeto (similar a un número de serie único) mediante ondas de radio. Las tecnologías RFID se agrupan dentro de las denominadas Auto ID (automatic identification, o identificación automática).Las etiquetas RFID (RFID tag en inglés) son unos dispositivos pequeños, similares a una pegatina, que pueden ser adheridas o incorporadas a un producto, un animal o una persona. Contienen antenas para permitirles recibir y responder a peticiones por radiofrecuencia desde un emisor-receptor RFID. Las etiquetas pasivas no necesitan alimentación eléctrica interna, mientras que las activas sí lo requieren. Una de las ventajas del uso de radiofrecuencia (en lugar, por ejemplo, de infrarrojos) es que no se requiere visión directa entre emisor y receptor.
Primero conectamos el RFID-RC522 a los pines GPIO de la Raspberry pi:
3.3v al PIN-1 (el que se identifica en la placa con P1 en la imagen el de arriba a la izquierda)
RST al PIN 22 (GPIO25 verde)
GND al PIN 6 (GND negro)
MISO al PIN 21 (GPIO 9 verde)
SCK al PIN 23 (GPIO 11 verde)
SDA al PIN 24 (GPIO 8 verde)
IRQ no lo utilizamos
Les dejo la imagen de la raspberry que utilicé y sus pines GPIO:
Habilitamos el SPI:
pi@raspberrypi:~ $ sudo raspi-config
Reiniciamos la raspberry:
sudo reboot
Verificamos que haya cargado el spi:
pi@raspberrypi:~ $ lsmod |grep spi
Instalamos ó verificamos que tengamos python instalado:
pi@raspberrypi:~ $ sudo apt-get install python2.7-dev
Descargamos SPI-Py con git y lo instalamos:
pi@raspberrypi:~ $ git clone https://github.com/lthiery/SPI-Py.git
pi@raspberrypi:~ $ cd SPI-Py
pi@raspberrypi:~ $ sudo python setup.py install
Instalamos MFRC522-python y ejecutamos el Read.py, probar leer la tarjeta y el llavero:
Les dejo un video usandolo:
Fuentes:
https://es.wikipedia.org/wiki/RFID
https://github.com/lthiery/SPI-Py/
https://github.com/mxgxw/MFRC522-python
Etiquetas:
Aplicaciones,
Circuitos,
CLI,
Comandos,
consola,
Debian,
Hardware,
Lector de Tarjetas,
Linux,
Python,
raspberry,
Raspberry pi,
Raspbian,
RFID,
Scripts
Suscribirse a:
Entradas (Atom)
















































