Este Blog esta destinado a poner todo el material relacionado con SL que me parece interesante y creo puede servir en algún momento. El mismo tiene material propio y recopilaciones de artículos de otras personas. Desde Oberá Misiones Argentina.
lunes, 17 de mayo de 2010
Bakcup en Miklrotik
lunes, 5 de abril de 2010
Comando awk
El comando es awk, en realidad es un lenguaje de programación al menos eso dice.
Awk lee las líneas de un archivo y cada línea es separada por campos, el separador de campos es especificado con -F o sea que -F: idicará que los campos estan separados por : , como el caso de /etc/passwd.
Para cada línea se hace un procedimieto.
awk '{print $1}' esto imprime o mostraría el primer campo
awk '{print $2, $1}' esto imprime o mostraría el segundo campo y luego el primer campo.
awk '{print $1, $1*$1}' esto imprime o mostraría el primer campo y su cuadrado.
Notese el uso de las comillas, necesarias para evitar problemas con el shell.
Lo que haremos ahora es volcar los campos seleccionados de Nombre_archivo a otro por ejemplo prueba hacemos:
awk '{print $1}' Nombre_archivo > prueba.txtPara el caso que como usuario comun queremos tomar los nombres de los usuarios de nuestro sistema Linux podemos hacer:
awk -F: '{print $1}' /etc/passwd > /home/daniel/prueba.txt
Con esto prueba.txt tendrá los nombres de usuarios.
Hay expresiones mas elaboradas con awk pero creo que para empezar esta bueno.
sábado, 20 de marzo de 2010
Recuperar el GRUB
-Bootear con lo que sea.. la idea es tener una terminal de linux.
-Luego vamos a la consola o terminal y tipeamos fdisk -l , el -l es para que liste las tablas de particiones que detectó el SO al bootear. Acá en mi caso obserbé que mi particion de Ubuntu era la /dev/sda6 y alli esta mi perdido GRUB.
-Ejecuto mount /dev/sda6 /mnt, con esto monto todo mi Ubuntu en el Directorio /mnt de mi linux.
Desde Linux 2.4.0 es posible volver a montar parte del File System en otra parte. La llamada es :
mount - bind directorio_nuevo directorio_viejo Después de esta llamada el mismo contenido es accesible en dos lugares. También se puede montar un solo archivo (en un solo archivo).
O sea que ahora el contenido esté en /dev , como normalmente sucede cuando andaba mi Ubuntu.
-Ahora ejecuto chroot /mnt , con esto le digo a mi linux que el nuevo root está en /dev/mnt..
-Se ejecuta grub-install --recheck /dev/sda , la opción : --recheck es para controlar el /dev/sda. En este punto el grub-install comienza a buscar e instalar el GRUB en el Master Boot Record y aparece:
Probing device to guess BIOS Driver. This may take a long time
Searching for GRUB instalation directory.. found /boot/grub
Aca en mi caso demoró como 5 minutos.. no desdesperar..
Installing Grub to /dev/sda as (hd0)
Instalatiòn finished. No error reported.
This is the contens of the device map /bootgrub/device.map
Check if this is correct or not. If any of this lines is incorrect, fix it and re-run the script 'grub-install'
#/dev/fd0
#/dev/sda
Que para mi caso estaba bien..así que reinicié y escribí este artículo.
En algunos casos los comandos se deberán correr anteponiendo el "sudo".
lunes, 8 de marzo de 2010
Crear usuarios en forma masiva
1:loginname1:Nombre de Usuario
2:loginname2:Nombre de Usuario
..
...
..
Este archvo se lo guardo en /root/usuario
El script quedó de la siguiente forma:
#!/bin/bash
#Contamos la cantidad de usuarios
#el archivo de los usuarios, contiene un listado de todos los usuarios a agregar
#con la estructura nro: loginname:NumeroUsuario
lineas=`cat /root/usuarios | wc -l`
let lineas=lineas+1
i=1
#bucle hasta que $i es igual al numero de lineas, es decir, hasta que se ha leido
#todo el fichero
while [ $i -lt $lineas ];do
#obtenemos cada una de las lineas
linea=`head -$i /root/usuarios | tail -1`
id=`echo $linea | cut -d: -f1`
let id=id+1000
#nombre login del nuevo usuario
loginname=`echo $linea | cut -d: -f2`
#fullname del nuevo usuario
fullname=`echo $linea | cut -d: -f3`
mkdir /home/$loginname
chmod 755 /home/$loginname
chown -R $id:100 /home/$loginname
useradd -u $id -g 100 -p 1234 -d /home/"$loginname" -c "$fullname" -s /bin/false "$loginname"
let i=i+1
done
Lo que resta ahora, es solucionar el tema de los passwords que como vemos todos tienen 1234 , para ello tomamos la línea correspondiente al usuario de /etc/shadow y la reemplazamos en el /etc/shadows del nuevo server.
Hasta aqui tendré creados todos los usuarios con sus respectivos directorio y la contaseña que tenían.
sábado, 2 de enero de 2010
Montar Imagenes ISO
Montar Imagen ISO en Directorio o Carpeta
Asumiendo que tenemos la imagen ISO en /home/usuario/desktop/RIP.ISO y la queremos montar en /media/cdrom tipeamos:
mount -t ISO9660 -o loop /home/usuario/desktop/RIP.ISO /media/cdrom
Paso a explicar---
-t -> este argumento indica el tipo de File system la ISO 9660 es la usada en los CDs.
-o se pasan las opciones.. para nuestro caso loop, loop es un seudo dispositivo , antes de ser usado este tiene que ser conectado al File System, se usa para imagenes de CD o Floppy, notar que estas imagenes ISO que estan representadas por un archivo son el realidad un File System en si mismo. Si tenemos una imagen con formato IMG no es necesario usar el arguemento -t bastaría con hacer
mount -o loop origen_narchivo_archivo.img lugar_montar, hay programitas que convierten por ejemplo una archivo con formato img a iso (ccd2iso)
y viceversa.Volviendo a nuestra imagen ISO , para poder montar se usa la opcion de mount loop.
Entonces la sintaxis sería:
mount -t ISO9660 (tipo de file system) -o loop (seudo disposivo con file system propio) Origen Destino
Para el caso de montar una iagen iso en un Pendrive y luego poder bootear desde el hay un programa llamado UNebooting que se ofrece en el sitio de Ubuntu : USB Instalation Media.
Para el caso que no querramos usar el programa; si no hacerlo a muke la idea , sería formatear un pendrive, montarlo, montar la imagen iso a una carpeta , copiamos el contenido de la carpeta que tiene la imagen iso al pendrive y luego deberíamos hacer booteable el pendrive, para ello existe en Linux el comando syslinux.. esto es apenas la punta de un hilo.. que espero poder escribir en otro momento.
Como siempre espero que sea de ayuda.-
jueves, 8 de octubre de 2009
Como eliminar las líneas de un archivo que comienzan con...
El Comando grep sirve para mostar las líneas de un archivo que concuerdan con un patron.
grep, egrep, fgrep, rgrep - print lines matching a pattern
Para este comando la opción -v dice:
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX.)
Así que con -v puedo invertir la seleccion y decir las líneas que no comiencen con el patron #.
La opción -e permite extresar el parton a buscar.
Entonce quedaría:
grep -v -e# squid.conf > squid.conf.sincomentarios
Finalmente en squid.conf.sincomentarios tendríamos las líneas de squid.conf que NO empiezan con #.
Espero que sea de ayuda.
lunes, 5 de octubre de 2009
Sobre las claves PGP de los repositorios Debian
Este archivo fué obtenido de:
http://www.esdebian.org/wiki/llaves-repositorios-secure-aptMe parece muy explicativo
Índice
1. Introducción
2. Como funciona
3. Como APT utiliza Release.gpg
4. Como añadir una llave pública
5. Caso: Repositorios oficiales de Debian
6. Referencias y más información
Introducción
A partir de la versión 0.6, apt comenzó a usar criptografía para validar los paquetes descargados, a esto se le llama comúnmente “Secure Apt” (o “apt-secure”).
La criptografía de llave (o clave) pública se basa en el par de llaves: una llave pública y una privada. Si bien la llave pública se da a todo el mundo, la llave privada debe permanecer en secreto, así es posible usar una llave privada para firmar un archivo (no para encriptarlo) y cualquiera que tenga la llave pública puede comprobar que el archivo fue firmado por esa llave, esto nos asegura que nadie que no tenga esa llave puede falsificar la firma.
GPG (GNU Privacy Guard) es la herramienta que se utiliza en Secure-Apt para firmar los ficheros y comprobar sus firmas. GPG cifra los mensajes usando pares de claves individuales asimétricas generadas por los usuarios. Las claves públicas pueden ser compartidas con otros usuarios de muchas maneras, un ejemplo de ello es depositándolas en los servidores de claves.
Apt-key es un programa que se usa para gestionar el anillo de llaves de gpg para asegurar Apt. El anillo de llaves se guarda en el archivo /etc/apt/trusted.gpg (no confundir con el archivo /etc/apt/trustdb.gpg con el que está relacionado). Apt-key puede ser usado para mostrar las llaves en el anillo de llaves, y para añadir o remover una llave.
Así si un paquete viene de un archivo sin firma o con una firma de la que apt no tiene una clave, se considerará como no confiable y se nos mostrará la correspondiente advertencia, es decir, apt-get (actualmente) sólo nos advierte de los archivos sin firmar pero no impide su descarga y posterior instalación. Sin embargo para los paquetes que vienen firmados, APT utiliza este sistema de criptografía GPG para validar los .deb descargados y asegurarse de que no han sido alterados en modo alguno.
2. Como funcionan
1. Un archivo de Debian contiene un archivo llamado Release, el cual se actualiza cada vez que cualquiera de los paquetes en el archivo cambian. Entre otras cosas, el fichero Release contiene algunos md5sums por cada paquete listado en él.
2. Al realizar un update, APT descarga los archivos Packages.gz, Release y Release.gpg.
3. Al descargar un paquete .deb, APT comprueba que su md5sum coincide con la que figura en Packages.
4. APT se asegura la no alteración del archivo Packages comprobándo que su md5sum coincide con el que figura en el archivo Release.
5. Ahora para asegurarse de que el archivo Release no ha sido alterado, APT comprueba su firma a través del archivo Release.pgp, es decir Secure-Apt añade una firma gpg para el fichero Release en el fichero Release.gpg (que se envía junto al fichero Release) y para poder realizar esta comprobación APT necesita conocer la llave pública del que firma el archivo.
3. Como APT utiliza Release.gpg
Secure Apt siempre descarga los ficheros Release.gpg cuando está descargando los ficheros Release, y si no puede descargar el archivo Release.gpg, o si la firma está mal, lo advertirá, y nos dirá que el fichero Packages al cual apunta el fichero Release, y todos los paquetes enumerados dentro, son de una fuente sin autentificar. Por este motivo, durante un apt-get update, apararece el famoso:
W: GPG error: http://ftp.us.debian.org testing Release: The following signatures
couldn't be verified because the public key is not available: NO_PUBKEY 010908312D230C5FComo ya hemos mencionado, podemos ignorar ese aviso e intentar instalar un paquete, al hacerlo Apt nos advertirá de nuevo:
WARNING: The following packages cannot be authenticated!
libglib-perl libgtk2-perl
Install these packages without verification [y/N]?Como vemos APT nos permite aceptar la instalación de paquetes sin verificar, pero el problema (peligro) es que no podríamos saber si ese paquete es el paquete que realmente queremos instalar, o si es otro distinto al que queremos y lleva dentro una desagradable sorpresa.
NOTA: podemos deshabilitar esas comprobaciones ejecutando apt con –allow-unauthenticated.
Como vemos la seguridad del sistema entero depende de que haya un fichero Release.gpg, el cual firma un fichero Release, y de APT comprobando que esa firma use gpg. Para comprobar la firma, APT debe conocer la llave pública de la persona que firmó el fichero. Esas llaves se mantienen en el anillo de llaves de APT (/etc/apt/trusted.gpg), y administrando esas llaves es donde aparece Secure Apt.
Por defecto, los sistemas Debian vienen preconfigurados con la llave del archivo Debian en el anillo de llaves, así a modo de ejemplo podemos ver que llaves públicas tenemos haciendo:
# apt-key list
obtenemos
/etc/apt/trusted.gpg
--------------------
pub 1024D/6070D3A1 2006-11-20 [expires: 2009-07-01]
uid Debian Archive Automatic Signing Key (4.0/etch) Aquí 6070D3A1 es la identificación de la llave pública, y podemos ver que esta llave sólo es válida por tiempo, Debian rota estas llaves como última línea de defensa contra algunas brechas de seguridad que rompen una llave. Con ello APT consigue certificar el archivo oficial de Debian.
Si se añade algún otro repositorio al archivo /etc/apt/sources.list, tendremos que darle a APT su llave, es decir, deberemos añadir su llave pública al anillo de llaves para que APT pueda certificar su contenido.
4. Como añadir una llave pública
El proceso se divide en dos etapas:
1. Obtener la llave pública
2. Exportar esa llave y añadirla
Pongamos un ejemplo:
Si añadimos el repositorio de debian-multimedia a nuestro archivo /etc/apt/sources.list:
deb http://www.debian-multimedia.org stable main
En principio no tenemos su llave pública, por tanto al actualizar el índice de paquetes de nuestros repositorios:
# aptitude update
Se nos mostrará la siguiente advertencia:
W: GPG error: http://www.debian-multimedia.org stable main Release: The following signatures
couldn't be verified because the public key is not available: NO_PUBKEY 07DC563D1F41B907Debemos fijarnos en el número que nos muestra: 07DC563D1F41B907
GPG tiene una forma estándar de distribuir llaves, utiliza servidores de llaves y desde uno de ellos gpg puede descargarse la llave pública, para elo ejecutamos:
# gpg --keyserver subkeys.pgp.net --recv-keys 07DC563D1F41B907Una vez obtenida, sólo nos falta exportarla y añadirla:
# gpg --export --armor 07DC563D1F41B907 | apt-key add -Y finalizamos el proceso con un:
# apt-get updateNOTA: en el caso concreto de debian-multimedia, el procedimiento se puede simplificar instalando el paquete debian-multimedia-keyring
5. Caso: Repositorios oficiales de Debian
Disponemos de los paquetes:
debian-keyring, contiene las firmas de los desarrolladores de Debian, que es utilizada para verificar cada paquete.
debian-archive-keyring, el proyecto Debian firma digitalmente sus archivos «Release». Este paquete contiene las claves que se utilizan para ello.
6. Referencias y más información
Secure Apt:
- http://wiki.debian.org/SecureApt (inglés)
- http://www.esdebian.org/articulos/23869/secure-apt (traducción al español)
man apt-secure
man apt-key
man gpg