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.
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 010908312D230C5F
Como 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 07DC563D1F41B907
Debemos 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 07DC563D1F41B907
Una 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 update
NOTA: 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
lunes, 21 de septiembre de 2009
Como quitar servicios en el Arranque de Debian
Recordemos que update-rc.d - crea y borra los enlaces a los scripts init de tipo System V.
Primero debemos buscar a que corresponde el servicio, una vez identificado procedemos a detener el mismo, para mi caso sería:
/etc/init.d/exim4 stop
Vemos que en la consola aprece:
Stopping MTA: exim4_listener.
Una vez detenido el servicio procedemos a eliminarlo de la lista de servicios que arrancan.
update-rc.d -f exim4 remove
Removing any system startup links for /etc/init.d/exim4 ...
/etc/rc0.d/K20exim4
/etc/rc1.d/K20exim4
/etc/rc2.d/S20exim4
/etc/rc3.d/S20exim4
/etc/rc4.d/S20exim4
/etc/rc5.d/S20exim4
/etc/rc6.d/K20exim4
El update-rc.d crea y borra los enlaces a los scripts init de tipo System V,
los argumentos:
-n No hacer nada, solamente indicar que hubiera hecho.
-f Borrar los enlaces incluso si todavÃa existe el scrip /etc/init.d/nombre.
Menciono algunos de los servicios que PODRIAN resultar inecesarios:
portmap, cups, lpd, nfs-common, pcmcia, ppp, bittorrent, ntpdate.
De igual manera para crear un enlace a los scripts de incio se debería hacer por ejemplo para incluir el script de no-ip.sh que actualiza en los DNS de no-ip la ip sería:
update-rc.d noip.sh defaults 90
Donde 90 sería un nro que no existe dentro del los rc* , y se ejecutará luego del 89 y antes del 91.
Espero que sea de ayuda.
jueves, 16 de julio de 2009
Proxy Cache Squid con Debian y Shorewall
Obetivo:
Conectar una red Lan Privada a Internet buscando acelerar la navegación con un Web Proxy y controlar los accesos a Contenidos, Ancho de Banda de Descargas P2P y otras, de manera de logra un uso moderado que asegure el usufructo de todos.
Para este Proyecto dispongo de:
Dispongo de una PC , PIV con 512MB de Ram , Disco 80GB, dos placas de Red.
Primero instalé Debian 5.0 ( Lenny ) con la Instalación Básica ( lo mas pelado posible , existen en internet varios instructivos de como lograrlo).
eth0 conetada al modem en modo Bridge ( ppp
eth1 Red local 192.168.0.7 (Red de Local)
Durante la instalacion configure la eth0 , como interfaz primaria , esta es la que se conecta a internet.
Luego de Instalar el Debian , lo primero que hice , fué configurar el equipo para poder conectarme a internet via eth1/Modem ADSL y así poder seguir bajando lo que necesite.
Para ello hice :
apt-get install ppoe , ppoe-common,
Ejecutando desde la consola pppoeconf , debería haber encontrado que en la eth0 estaba un modem pero en mi caso no fué así , por lo que ejecuté directamente:
pppoeconf eth
Con este argumento si andubo , le escribí nombre de usuario y passwd para la conexión ADSL y chice quedó funcionando. Al terminar me tira uno comandos que se pueden usar para controlar el pppoe como ser:
pon
poff
postat
plog
En este punto al ejecutar ifconfig ya debería aparecer ppp0, indicandome que esta establecida una conexión via el modem.-
Bueno lo siguiente es hacer que la ruta por defecto de esta máquina no sea el GW o puerta de enlace de la red ( para mi caso 192.168.0.1) si no que salga por eth0 o mejor dicho ppp0, verificamos cual es el GW desde una consola tipeando:
route
Para ello tipeando iflow y editando etc/network/interfaces, comentamos la línea que contiene el GW y luego levantamos el servicio con ifup
Luego nos queda indicar el camino por defecto para esta maquina:
route add default gw ppp0
Para verficar que el GW ahora es ppp0 tipeamos nuevamente
route
y debería aparece esto que la ruta por defecto es ppp0.
Instalamos el lynx que es un navegador no gráfico. Corre desde una terminal.
apt-get install lynx
Ya podemos probar si nuestro equipo navega.
Desinstalar el exim4_listener
/etc/init.d/exim4 stop
Vemos que en la consola aprece:
Stopping MTA: exim4_listener.
Una vez detenido el servicio procedemos a eliminarlo de la lista de servicios que arrancan.
update-rc.d -f exim4 remove
Luego instalo el ssh:
apt-get install ssh
habilitar en /etc/ssh/sshd_config el puerto por el que queremos que se acceda a ssh.
Instalar Squid
apt-get install squid
Encontré que se debe habilitar para el squid una parámetro x_forward_for esto es para permitir identificar en el tráfico la IP de cada equipo que sale por el proxy de manera que podamos tomar alguna acción como ser graficar el consumo de AB por IP , pero como en el Debian el paquete esta precompilado y esta opción la tiene por defecto mejor...
Para ver las opciones de compilacion del squid basta con tipear:
squid -v
Luego recorrí muchos sitios como para encontrar que debería modificar del /etc/squid/squid.conf y en definitiva lo mínimo que hice como para dejar funcionando el proxy, y descomenté algunas líneas y las edité para que se adecúen a mi red y requerimientos, para esta maquina fueron:
http_port 8080
acl localnet src 192.168.0.0/21
client_netmask 255.255.248.0
acl patronesdenegados url_regex src "/etc/squid/patronesdenegados"
http_access deny patronesdenegados
http_access allow localnet
error_directory /usr/share/squid/errors/Spanish
Dentro de /etc/squid edité un archivo de texto llamado patronesdenegados donde incluyo las palabras que quiero que filtre y niegue el squid como ser sexo, porno.
Recomiendo siempre hacer un backup antes de meter mano.
En este punto ya tenía levantado y funcionado lo básico. Quedaba por delante agregar reglas al squid como para tener el control deseado de contenido y descargas.
Instalar Shorewall
Luego para poder trabajar con IPTables instalé el shorewall, es un script que permite escribir reglas de iptables de una manera mas sencilla,
apt-get install shorewall ( lo descargó del DVD de Debian)
En la parte de /usr/share/docs/shorewall hay ejemplos de configuración basíca para dos interfaces. copié estos archivos a /etc/shorewall y solo modifique algunos archivos.
Modificar en el /etc/shorewall.con dos cositas:
STARTUP_ENABLE=Yes
IP_FORWARDING=Yes
Configurar zone, policity, masq y rules mirando los ejemplos-
Alguna modificaciones mias fueron:
A rules antes del final del archivo le agregué:
ACCEPT loc fw tcp 8080
Para que acepte lo que venga por la red local desde el port 8080 que es donde atiende el proxy.
y al archivo masq
ppp0 eth1
Para que traslade las direcciones de la interfaz privada ( eth1) a la publica ( eth0/pppd0)
El archivo interfaces quedó de la siguiente manera:
net ppp0
loc eth1 detect
Con esto ya tenía cargadas las reglas para que el shorewall me generara las reglas de iptables.
Para arrancar el shorewall tenemos los comandos:
shorewall start
shorewall stop
shorewall restart
Para el squid los comandos serían:
/etc/init.d/squid stop
/etc/init.d/squid start
/etc/init.d/squid restart
y los archivos para ver que esta sucediendo con el squid
var/log/squid/access.log
var/log/squid/cache.log
En estos archivos podemos ver las peticiones que llegan al squid(access.log) y los sitios que van quedando cacheados.
Bueno este creo que el artículo ya esta terminado , y lo pongo a disposición de Uds. Espero que sea de ayuda.-
sábado, 20 de junio de 2009
Conceptos de Linux en Video
http://www.youtube.com/watch?v=F5WLEu4UIds
Navegar offline
Paso a detallar la sintaxis.
wget --mirror -p --html-extension --convert-links -v http://www.sitio.com.armirror: hace recursiva la descarga desde el link pasado.
p: page reuisites, baja los elemantos para que las paguinas se vean tal cual, imagenes, sonidos, etc.
html-extension : convierte los url a html, por ejemplo aquellos que son .php o .asp
convert-links : luego de descargar busca y reemplaza los links de las paginas bajadas a links referenciados localmente, si la ref de una imagen era, http://www.sitio.com.ar/img.gif hace que este link de la pagina quede referenciado a ./img.gif ( posición relativa)
Otra opción que encotré es
-- restricte-file-name = xxxxx donde xxxxx puede ser unix o windows
Esto es para que las secuencias de escape puedan ser convertidas al set de unix o windows, espero que se de ayuda.
martes, 31 de marzo de 2009
Como trasladar o duplicar una maquina virtual
Primero utilizando el VBoxManage con la opción clone creo otra maquina virtual clon de la que quiero trasladar de la maquina A a la B. Entonces desde consola:
de la maquina A escribimios:
VBoxManage clonehd /home/daniel/.VirtualBox/HardDisks/Win2K3.vdi Win2k3x.vdi
Win2K3x.vdi ( la imagen de la maquina virtual clonada) ,trasladamos este archivo a la maquina B y desde esta accedemos a la Interface gráfica de VirtualBox, vamos a Virtual Media Manager, elegimos la opción Agregar (Archivo de imagen de disco Rígido) y apuntamos a la maquiana clonada que para nuestro caso es :Win2K3x.vdi ( será seguramente grande 1 o ma GB dependiendo del tamaño que le dimos al crear el disco para la maquina original).
Luego creamos una nueva maquina y al momento de elegir Disco Duro Virtual elegimos ; Existente y apuntamos al creamos (win2K3x.vdi) con esto estaría duplicada la maquiana.
Espero que sea de ayuda.
sábado, 28 de marzo de 2009
Distribución Liviana de Linux
Con esta limitación solo quedaban dos distribuciones que según los requerimientos mínimos podían andar : Vector Linux y Elive. La primera la conocía pero la segunda Elive no la había escuchado nunca, por lo que me dirigí al Sitio: http://www.elivecd.org para bajarla.
Con sorpresa noté que no se podía bajar la distribución sin hacer una "contribución", la mínima contribución era de 5 Euros, si bien esto no es mucho, como mezquino el uso de la tarjeta en internet y mas bien quería conocer la distribución me bajé la versión unstable que si se puede bajar sin hacer contribucione$.
Lo primero que me llamó la atención y me gustó es que es ditribución basada en Debian así que para probar instalé la misma en una maquina virtual de VirtualBox de mi Ubuntu 8.10.
Le asigné 4GB al disco virtual de la maquina y arranque desde el CD la maquina Virtual y la instalé sin inconvenientes.
En el primer arranque luego de instaldo me gustó la pantalla de login, con animaciones muy sobrias, aprece fecha/hora, un boton de apagado para no errarle.
Luego de logearme , el escritorio... me hizo acordar al Gos, creo que por el administador de ventanas que posee el :enlightenment el mismo es muy llamativo y liviano. Tiene efectos en los menúes y en la parte inferior tiene unos accesos directos a algunas aplicaciones de forma animada , llamado Elpanel (Elive Panel). Las opciones de configuración del escritorio son muchas...es para estar un rato..largo probando.
Demoré un poco en avivarme que haciendo click con el boton izquierdo del mouse el cualquier parte del escritorio se accede a un menú desde donde se puede apagar el sistema.
Como dependía de Debian probé el Synaptic.. andubo de una. Aplicaciones Ofimaticas bien.. lo mínimo Abiword y Gnumeric.En la parte de internet amsn, skype, firefox, client bittorrent,entre algunos mas. Para la patre de Video y Gráficos bien, con lo necesario como para empezar.
Conclusión. Me gustó mucho, el hecho que esté basado en debian y que sea liviano me parece una caracterísitca importante para tenerla en cuenta. Me faltaría probar en una maquina con 64 MB como para ver si levanta como dicen los requerimientos mínimos.
viernes, 13 de marzo de 2009
Virtual Box desde la línea de Comandos
Hago un paste del contenido:
No he encontrado un documento donde estén reseñados los comandos de línea más interesantes de VirtualBox, por eso escribo aquí mi breve resúmen.
Administración de máquinas virtuales
Máquinas disponibles
VBoxManage list vms | grep Name
Prender y apagar máquina
VBoxSDL -vm MaquinaVirtual
Apagar la máquina desde línea de comando equivale a apagarla desde el botón de power en un hardware real (puede ser peligroso para los datos)
VBoxManage controlvm MaquinaVirtual poweroff
Duplicar máquina
VBoxManage clonevdi MaquinaVirtual.vdi NuevaMaquina.vdi
También es posible mediante:
cp MaquinaVirtual.vdi NuevaMaquina.vdi
VBoxManage internalcommands setvdiuuid NuevaMaquina.vdi
Redes
Forwardiar puertos hacia la maquina virtual
# Puerto 2222 para ssh
VBoxManage setextradata "MaquinaVirtual" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata "MaquinaVirtual" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata "MaquinaVirtual" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
Esta información queda guardada en Machines/MaquinaVirtual/MaquinaVirtual.xml así que se corre una sola vez.
Para que la maquina virtual la pueda levantar un usuario comun, el puerto HostPort debe ser alto.
Hasta aqui lo sacado del Sitio... algo que me sirvió es pasar la máquina que se arranca desde la consola a background, esto sería:
VBoxSDL -vm MaquinaVirtual &
Esto liberará el prompt de la terminal.. pero si cerramos la terminal el proceso hijo ( VirtualBox) morirá con la terminal y se cerrará.
Para solucionar esto ultimo podemos usar:
nohup VBoxSDL -vm MaquinaVirtual &
Este comando ( nohup) permite al igual que '&' mandar el proceso y background y que este quede inmune a los hangups (de ahí su nombre nohup) que es cuando se cuelga o termina la terminal o consola de la cual se ejecutó el proceso.Espero que sea de ayuda.
martes, 3 de marzo de 2009
Cambio de Fecha y Horas desde consola
Para cambiar la fecha desde la consola -> date -d mm/dd/aaPara cambiar la hora desde la consola -> date -s hh:mm:ss