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

domingo, 28 de agosto de 2016

Crear una conexión sin passwords entre servidores utilizando ssh/sftp

Saludos y bueno y que es sftp (secure file transfer protocol)
es un protocolo para envio de archivos basado en ssh (secure shell), y bueno y para que demonios sirve?, es en realidad para transferir archivos entre servidores o bien computadoras usando un método seguro donde la información va encriptada por ssh.

Hasta aquí todo bien y así debe ser, que pasa cuando tenemos uno o más servidores y queremos transferir un archivo usando ssh ?

Bueno aquí va la receta de la casa para utilizar ssh (lo que yo uso para realizar conexiones entre servidores)

  1. server origen y/o usuario origen (si, puede ser un windows aunque no entraré mucho en el tema y además está samba ne vez de usar ssh para transferir)
  2. server destino y/o path destino
  3. el usuario origen y el usuario destino
  4. se puede usar un gestor de transferencias como filezilla o winscp o bien en este caso usaremos la poderosa terminal :-)
Ahora bien sftp tiene varios procesos que puede hacer, 2 de los más sencillos de entender y usuales es PUT y GET.
  • Put se encarga de "empujar" o subir una archivo o path que le indiquemos 
  • Get se encarga de "traer"o bajar del servidor un determinado archivo o bien path.
Requisitos de linux a linux o linux a unix like
Requisitos como ya mencione algunos:
1.- tener el usuario origen (el que va a conectarse hacia el otro servidor)
2.- tener el usuario destino
3.- contar con el password del usuario destino * este es opcional  nos facilita mucho las cosas

Ejecución:
1.- con el usuario origen el que queremos que envíe el archivo) ejecutamos el siguiente comando ( esto va a generar la llave de tipo rsa, recuerda que hay varios tipos de algoritmos; rsa suele ser el más común no por eso menos seguro)

ssh-keygen o ssh-keygen -t rsa

El comando anterior creará las llaves de autenticación en su home directory del usuario en:


~/.ssh/  (donde el tilde significa /home/miusuario)

NOTA:en este paso puede que te solicite crear un passphrase
para que sea una conexión totalmente sin password solo tecleamos enter sin poner nada en este campo, a menos que quieras especificar uno en cuyo caso recomiendo guardes bien esta contraseña ya que te será solicitada cada vez que te quieras conectar.

2.-el siguiente paso es copiar la llave publica al usuario destino en el servidor destino para eso tenemos un par de formas para realizarlo podemos utilizar el comando ssh-copy-id o enviamos/copiamos la llave pública del usuario origen al usuario receptor o destino en el server destino con: 

ssh-copy-id -i ~/.ssh/id_rsa.pub server_destino


o bien hay que entrar al servidor destino/remoto siendo el usuario origen (el que compartió la llave)

ssh usuariodestino@serverdestino o sftp usuariodestino@serverdestino

4.- Colocar la llave pública en el otro server/usuario en el archivo authorized_keys con el siguiente formato:
ssh-rsa llave user@(ip|hostname)
yo te recomiendo realizarlo con: 
cat llave_origen.pub >> authorized_keys
el archivo authorized_keys se ubicara en ~/.ssh/


Los errores más comunes :
-Revisar que el usuario destino y origen no estén bloqueados
-Si este procedimiento de arriba no funciona, lo mejor es buscar el sshd_config del servidor
de SSH y añadir las siguientes líneas, o descomentar las:

RSAAuthentication yes       (usado para checar el knownhost)
PubkeyAuthentication yes

- Revisar que el usuario origen y destino no estén bloqueados con passwd -s (solaris) passwd -S (linux)

-Revisar el tamaño de las llaves que correspondan con las proporcionadas ya que al copiar y pegar puede ser 
que se haya omitido algún caracter, vigilar el mismo numero de lineas la llave solo mide el equivalente a una sola línea de ahí que recomiendo que se utilice el "cat" para concatenar correctamente la llave al final del archivo authorized_keys en una sola línea.

Revisar
------------------------Permisos en los directorios y archivos //muy importante el home
example
user: juanito
HOME:
drwxr------  4 juanito staff 512 jun 5 09:58 /home/501924789

drwx------ 2 juanito staff 512 jun 5 09:58 /home/juanito/.ssh

-rw-r--r-- 2 juanito staff 512 jun 5 09:58 /home/juanito/.ssh/authorized_keys


En algunas ocasiones en linux pueden interferir los contextos de SElinux para esos casos hay que revisar dichos permisos

para revisar los contextos se utiliza:
ls -laZ
el siguiente ejemplo es ERRONEO por tener en el contexto de SELinux como home_ROOT_T cuando deberia tener ssh_home_t
rw-------. juanito staff unconfined_u:object_r:home_root_t:s0 authorized_keys

para cambiar o restaurar los permisos se ejecuta el siguiente comando
restorecon -r -vv ~juanito/.ssh/ donde juanito... es el home del usuario

los permisos deberían de mostrar una forma como la enlistada más abajo  para todos los archivos

[root@server.chipocludo.ssh]# ls -laZ ~juanito/.ssh/
drwx------. juanito staff unconfined_u:object_r:ssh_home_t:s0 .
drwx------. juanito staff system_u:object_r:home_root_t:s0 ..
-rw-------. juanito staff unconfined_u:object_r:ssh_home_t:s0 authorized_keys
-rw-r--r--. juanito staff unconfined_u:object_r:ssh_home_t:s0 known_hosts


Configurar 2 o más llaves simultáneas con un mismo usuario 

Aquí podremos configurar 2 llaves distintas para el mismo usuario es decir nuestro usuario origen va a poder utilizar llaves distintas para autenticarse según el destino que sea necesario o el usuario destino al crear un archivo llamado config en la carpeta ~/.ssh/
también nos da la posibilidad de utilizar llaves con diferentes cifrados es decir tener una con 1024 y otra cifrada con 2048 u otra más pero con cifrado DSA.

1.-configura que una llave este funcional es decir los pasos de arriba para RSA
2.- ya con la llave funcionando puedes moverla a una carpeta, hay que vigilar muy bien los permisos
3.- se crea la segunda llave con los mismos pasos y a esta le vamos a poner otro nombre de archivo ejemplo: id_rsa2_t
   -- nota es posible que sea necesario ejecutar :

      ssh-add id_rsa e ingresar el passphrase que utilizaste si es que tenias alguno.
4.- de igual forma se mueve a otra carpeta la segunda llave para mantener ordenado/separadas las llaves generadas

5.- creamos  el archivo config, de igual manera revisar los permisos ver el ejemplo más abajo:
touch config
6.- y agregamos la siguientes líneas dentro de config con nuestro editor de texto preferido
-bash-4.1$ vim config
Host server.chipocludo // esta linea indica el nombre del host
        User  test_ssh // el usuario al que nos vamos a conectar
        Hostname server.chipocludo // el hostname destino
        PreferredAuthentications publickey // el tipo de autenticación
        IdentityFile ~juanito/.ssh/primerallave/id_rsa //la linea mas importante aquí se indica la ruta del archivo con el que nos vamos a identificar. 

Host server.chipocludo
        User  test_ssh2
        Hostname server.chipocludo
        PreferredAuthentications publickey
        IdentityFile ~juanito/.ssh/segundallave/id_rsa2_t //la linea mas importante aquí se indica la ruta del archivo con el que nos vamos a identificar pero para el servidor 2 o el usuario dos

vamos a ver como quedo la primera llave  en la carpeta 1
-bash-4.1$ cd primerallave
-bash-4.1$ ls -ltr   -------------> en esta parte ojo con los permisos y el selinux en linux
total 8
-rw-------. 1 juanito staff  407 Feb 26 14:19 id_rsa.pub
-rw-------. 1 juanito staff  679 Feb 26 14:19 id_rsa
-bash-4.1$ cd ..
-bash-4.1$ pwd // mas o menos asi queda tu carpeta
/home/juanito/.ssh
-bash-4.1$ ls -ltr
total 20
drwxr-xr-x. 2 juanito staff 4096 Feb 26 14:27 segundallave
drwxr-xr-x. 2 juanito staff 4096 Feb 26 14:27 primerallave
-rwxr-xr-x. 1 juanito staff  432 Feb 26 14:46 known_hosts
-rw-r--r--. 1 juanito staff  406 Feb 26 15:12 authorized_keys
-rwxr-xr-x. 1 juanito staff  392 Feb 26 15:28 config ----> este es el archivo


otro ejemplo utilizando el config file
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/git/id_rsa
Host fedoraproject.org
Hostname fedoraproject.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/fedoraproject/id_rsa
Host fedorapeople.org
Hostname fedorapeople.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/fedoraproject/id_rsa

ejemplo: 3 
Host *.dominio.chipocludo.com
        PreferredAuthentications publickey
        IdentityFile ~juanito/.ssh/basekey/id_rsa
Host sufruta.mm.com
        User aldo
        Hostname sufruta.mm.com

        PreferredAuthentications publickey

referencia: http://www.robotgoblin.co.uk/blog/2012/07/24/managing-multiple-ssh-keys/








lunes, 18 de enero de 2016

obtener las variables asociadas a un proceso en linux

Una entrada super veloz y bien útil, que de vez en cuando me toca en el trabajo, obtener las variables de entorno involucradas para un proceso

cat /proc/$PID/environ

donde $PID es el numero de procesos
podemos obtener el numero de proceso con varios comandos como:
ps -ef | grep httpd o apache o ....
pgrep | httpd

etc...
:-) espero sea de ayuda, basicamente lo que arroja son las rutas y variables involucradas, por ejemplo la variable PATH con la que este corriendo etc...

[root@server css]# cat /proc/6254/environ
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binLANG=CNOTIFY_SOCKET=@/org/freedesktop/systemd1/notify

jueves, 11 de junio de 2015

Donde estan los logs del sistema en linux

Bueno hoy les traigo una entrada cortita pero muy util funciona en fedora, red hat, ubuntu, mint y varios mas, en donde se encuentran los logs de linux?, si bien no son todos estos son los que por lo menos concidero los basicos.

logs y para que sirve ?
/var/log/messages
la mayoria de los mensajes del syslog se guardan aqui. con excepcion de los mensajes relacionados a la autenticación y los mensajes del servicio de correo, algunos otros mensajes de debug
/var/log/secure
Aqui vamos a poder ver los logs relacionadios con la autenticación del sistema, es decir quien entro, quien salio y errores
/var/log/maillog
  Este es el log del servicio estandar de correos por lo general sendmail o postfix
/var/log/cron
Este es el log relacionado con las tareas programadas en el crontab de todos los usuarios y aqui podemos ver parte de su ejecucion y el resultado
/var/log/boot.log
 
Finalmente aqui podremos ver los logs relacionados con el arranque e inicio del sistema

domingo, 30 de marzo de 2014

Buscar Archivos en linux/unix (Find)

Bueno ahora toco un tema bien divertido jeje buscar archivos en linux o bien Unix,
como ya muchos saben buscar un archivo aveces no es tan complejo otras veces es un verdadero dolor de cabeza pero para esto contamos con el comando find.

conforme encuentra mas busquedas las ire agregando en el post y les dare mas trucos para depurar sus resultados por ahora veremos lo basico.

find es un comando sumamente poderoso por que su utilidad no termina en solo buscar sino que ademas puede ejecutar y hacer excepciónes para desplegar una selección de resultados sumamente especifica.

Busquedas de ejemplo
(donde el punto "." significa el directorio actual y puede ser sustituido por otro path)

find . -name “miarchivo.txt”  
find . -name “java” buscar archivos  que empiezen con la palabra java

find . -name "*.java" busca archivos que terminen con la palabra .java

find . -perm 777  busca los archivos que tengan permisos 777

find . -mtime +1 encuentra los archivos modificados hace mas de un día.

find . -mtime -1 encuentra los archivos modificados hace menos de un día.

find . –name "*.txt" –print | xargs grep "test" 
busca la palabra "test" en todos los archivos que devuelva la busqueda de los archivos que terminene con extención *.txt (personalmente este es muy util)

find . -iname "archivo"
con iname es para hacer la busqueda case sensitive, de modo que no distinge entre mayusculas y minusculas.




---encuentra archivos entre la fecha del primer archivo y como maximo la fecha del segudo archivo y a los archivos encontrados los comprime con gzip

find . -name "*" -newer /home/miarchivo.log ! -newer /home/miarchivo_nuevo.log | xargs -I {} gzip {} 


 --- para saltarse un path, si la condicion es true, no entra en el folder
find / -path /mipath/Backup -prune -o -name domain.xml -print     //local para solaris


--- Find para determinar el tamaño de todos los directorios del sistema (usar con cuidado)
para solaris
find ./ -type d -depth  -exec du -sh {} + | sort -n

para linux
find ./ -type d -maxdepth 3 -exec du -sh {} + | sort -n


<<<< busca varios archivos y modifica en todos los archivos una linea >>>>
find . -name "test_file*" -exec perl -pi -e 's/cadenaen_a_remplazar/nueva_cadena/g' {} \;

(este comando puede variar, en linux podemos usar la opcion sed -i, pero para solaris no me tomaba el valor -i asi que pearl en modo interactivo es bastante eficiente)



martes, 11 de diciembre de 2012

Una breve explicacion del software libre

Navegando me encontré con una imagen que quizá nos ayude a comprender de una forma más fácil lo que es el software libre :) espero les agradé

viernes, 19 de octubre de 2012

Iniciar sesion en unix/linux

Una entrada mas para recordar, básicamente para iniciar sesión en cualquier o casi cualquier sistema Linux es necesario el nombre del usuario y la contraseña, como usuario podemos definir si veremos usuario administrador o bien un usuario con apenas permisos para leer un log o el correo, para iniciar en modo administrador generalmente entramos con el usuario root o súper usuario.

Generalmente no podemos loggearnos de forma directa como usuario root, esto por mi motivos de seguridad al establecer una sesión remota o incluso local, una forma es teclear usuario u contraseña por lo general los dígitos de la contraseña no se ven en consola y en entornos gráficos los campos aparecen como "bloqueados" o con marcas que indican solo el numero de caracteres,

una vez ingresando al sistema para ser usuario root podemos teclear el comando su luego tecla Enter y la contraseña de root o bien como en debían podemos ingresar con sudo usuario_especial y con esto nos pedirá el password del usuario administrador sin loggearnos como root, una vez con la sesión iniciada en root deberíamos ver en la terminal el carácter # (gato) al inicio de la línea de comando algo como:
#root@webhost:

Bueno es algo muy sencillo pero espero les sirva el detalle saludines

Especial respaldos en unix/linux parte 2

Bueno continuamos con las herramientas y utilerias de respaldo 
Les comento de rsnapshot que es una herramienta que permite respaldos con alta compresión, se ayuda de 
rsync y ssh para su operación, escrito en pearl, permite la publicación de copias incrementa-les.

Para su instalación 

En Debian (o Ubuntu):

  apt-get install rsnapshot 

Como el tutorial es algo extenso les dejo la pagina de donde pueden consultar la instalación y configuración de rsnapshot guide-to-rsnapshot-and-incremental-backups-on-linux

El enlace se encuentra en Ingles, ya me dedicare a realizar la traducción ;)

Rsnapshot se puede utilizar en scripts, y programar su automatización en crontab como eh comentado para otras utilerias.

Otra herramienta muy potente es Backuppc.

Backuppc: es un herramienta orientada un poco más al sector profesional que permite realizar copias de seguridad en Linux y Windows en un dispositivo de almacenamiento en un servidor o unidad.

Esta herramienta extrae los datos con la ayuda de Samba o bien con el comando tar,la transferencia se realiza según se requiera por medio de ssh, rsync entre otros.

Instalación en ubuntu

 apt-get update
 apt-get install backuppc

Esto instalara backuppc con sus dependencias, creara un usuario con el mismo nombre "backuppc", e instalara Apache, de tal forma hay que tener en cuenta si ya se tenia instalado.

Puedes ingresar a la consola de administración en la siguiente URL de tu navegador "http://SERVER-IP/backuppc" por default.

También hay que anotar la contraseña proporcionada por el instalador.

Cabe mencionar que backuppc se puede configurar para conectarse y autenticarse con otros ordenadores o servidores.

La configuración consiste en logearse con el usuario backuppc ( su backuppc ) 
generar claves ssh " ssh-keygen-t rsa".

Acepte la ubicación de instalación por defecto (el directorio home del usuario backuppc) y deje en blanco la contraseña.

Después,  copia la clave pública RSA (id_rsa.pub) en el archivo authorized_keys para el usuario root de cada uno de los servidores o pc que deseas hacer una copia de seguridad (hay varias maneras de lograr esto):

 [Copiar la clave pública]
 ssh root @ server-ip
 [Enter Password]
 CD
 vi authorized_keys  (aqui puedes usar cualquier editor de texto solo ten cuidado de no dejar espacios al final del archivo)
 [PEGA LA LLAVE Y GUARDA EL ARCHIVO] 
Ahora, ya que estamos en el servidor de donde se va a hacer una copia de seguridad, compruebe que está instalado rsync:
  apt-get update
 apt-get install rsync 

Por último, compruebe que ahora puedes inciar una sesión SSH desde el servidor de copia de seguridad en el servidor que se desea sustraer la copia de seguridad como usuario backuppc:

  Su backuppc
 ssh root @ server ~-IP
 [TENDRÁ QUE ACEPTAR known_hosts LA PRIMERA VEZ SOLAMENTE] 

Introduce la contraseña, Asegúrate de que los permisos del archivo authorized_keys están bloqueados a rw para root como propietario único.

Asegúrate de hacer SSH en cada servidor / ordenador desde el servidor donde se hacen las copias de seguridad a los servidores de donde se quiere sustraer la copia.
Basta con repetir lo anterior para cada servidor / ordenador  para agregarlo al servidor Backup
Anexo la fuente original ya que plantea algunas soluciones si el apache ya esta instalado y en caso de que hayas olvidado anotar la password generada para el usuario "backuppc"
Por ahora hasta ahí le dejamos ya que hay que revisar muchas más herramientas cualquier duda, pues por aquí andamos ;-)

jueves, 18 de octubre de 2012

Especial respaldos en unix/linux parte 1

Que tal , ya en ocasiones anteriores ya se hablo de rsync, respaldos con tar, hoy vamos a hablar de más herramientas.

Pero primero tenemos que planificar el respaldo.

Seguiremos estas preguntas:

  • Que se va a respaldar?
  • Que herramienta vamos a usar?
  • En donde vamos a respaldar?
  • Quien va a respaldar?
  • Cada cuando vamos a respaldar?
  • Que tipo de respaldo queremos?


  • Que se va a respaldar?: Para esta parte debemos dejar bien en claro que es lo que se quiere respaldar, los archivos, que permisos, el espacio que requieren muy probablemente empecemos a ver el tipo de archivo que vamos a respaldar.
  • Que herramienta vamos a usar?: En esta parte nos enfocaremos a ver la necesidad del respaldo, es decir si el servicio requiere de una alta disponibilidad o si bien solo vamos a guardar los mp4 de toda la temporada de zombies, la herramienta en gran medida debe considerar los recursos con los cuales se cuenta, la frecuencia, y tamaño del respaldo que vamos a generar.
  • En donde vamos a respaldar?: Aquí hablaremos del medio en el que vamos a respaldar, ya sea unidades dedicadas, físicas o virtuales, un servidor solo de respaldo o bien un dvd con suficiente espacio, hay que tener muy en cuenta el tipo de respaldo y archivo que se va a almacenar así como su compresión y la disponibilidad del respaldo.
  • Quien va a respaldar?: Evidentemente si estas leyendo esto es por que te toco a ti o bien no hay nadie más pero se puede automatizar el proceso y se pueden hacer copias incrementa les, es decir esta tarea no siempre tiene que ser realizada por personal y podemos descargar esa responsabilidad a un usuario con menor conocimiento que el administrador del sistema, dependerá de la herramienta y que tan critico o delicado sea el respaldo a realizar.
  • Cada cuando vamos a respaldar?: la frecuencia de un respaldo es vital, cuando solo queremos guardar logs seguro sera seguido el respaldo o bien el respaldo critico de fin de mes o al final del año, o quizá solo quieres tener el monitoreo de las sesiones y solo te interesa cada miércoles. 
  • Que tipo de respaldo queremos?: con el tipo de respaldo me refiero a que no es lo mismo realizar un tar de archivos a un dump completo o bien una imagen clonada de todo el disco o discos, también hay que analizar la compresión del respaldo.
Empecemos mencionando algunas herramientas que operan bajo la terminal.

Rsync: bueno ya se ha hecho un post sobre esta poderosa herramienta que invito revisen en esta pagina, rsync opera sobre la terminal, se puede automatizar fácilmente con el crontab del sistema.

Dump/Restore: Herramienta básica de unix, dump copia sistemas de ficheros completos y restore se encarga de la recuperación del respaldo, la sintaxis es sencilla "dump opciones destino origen".
Muy similar a la de un tar y cualquier otro comando de unix como "cp
por ejemplo: # dump 0uf /root/copia.dump /home 

que es lo que hace, sencillo, crea una copia de la carpeta home en el directorio /root 
es recomendado que exista antes de la primera ejecución el archivo /etc/dumpdates que almacena las fechas y archivos dump que se han creado.

algunas  opciones de dump son:
0-9 Nivel de copia de seguridad
u Actualiza /etc/dumpdates al finalizar el backup
f  indica una cinta diferente de la usada por defecto
b Tamaño de bloque
c indica que la cinta destino es un cartucho
w ignora todas las opciones excepto el nivel de backup

su contra parte restore es la encargada de la restauración del backup previamente generado, la sintaxis es muy similar, "restore -i -f /root/copia.dump", supongamos que queremos recuperar la copia en una usb, o disco, en este caso /dev/sdb1 "# restore -i -f  /root/copia.dump" posicionados en la unidad, recuerda que disponemos de los comandos "man" y "help" para ver mas opciones y ejemplos.

algunas opciones de restore son:

R Restaurar la cinta completa
F Indica el dispositivo o fichero donde está el backup
I  Modo interactivo (mas cómodo a la hora de estar leyendo en la terminal)
x Extrae los ficheros y directorios desde el directorio actual
t Imprime los nombres de los ficheros de la cinta.

Les dejo la fuente para que consulten el articulo completo

Fuente: Todo Linux, Numero 127, pag 56 y 57  www.studiopress.es

Después también hablamos del comando Tar, incluido por default como una poderosa herramienta del sistema para empaquetar, y recordando que se puede complementar con crontab para su automatización y con comandos como gzip o zip para comprimir los respaldos, puedes revisar también en este blog la entrada que hacer referencia y detalla mas el uso de Tar y algunos ejemplos

Por ahora esta es la primera parte y en vista de que me lanzo a comer hasta aquí le dejamos 

pueden ir buscando información sobre el comando "dd" este comando nos permite copiar discos duros enteros, generar imágenes de tipo .iso desde la terminal y por consiguiente almacenar  una copia bit a bit de los archivos.

la sintaxis es algo así: "dd if=fichero_origen of=fichero_destino

o por ejemplo para crear un iso


dd if=/dev/unidad of=respaldo.iso


Para montar la imagen podemos teclear

dd if=respaldo.iso of=/dev/unidad

o

mount -o loop respaldo.iso /mnt/unidad

Fuente: usando-dd-para-crear-imagenes-iso.html


Agrego también este apartado de Wikipedia con algunas herramientas de software propietario y privativo para realizar copias de respaldo

http://es.wikipedia.org/wiki/Anexo:Aplicaciones_de_copias_de_seguridad

viernes, 20 de julio de 2012

Respaldos con clonzilla

Hey que tal hoy les hablare de otra aplicación sumamente interesante para la creación de respaldos, esta vez toca el turno de una excelente distribución, clonzilla Tutorial de clonzilla en youtubeClonzilla 

Es una distribución linux especializada en "clonar" o generar imágenes de respaldo, ya sea de una partición o un disco duro completo, casi exactamente la función de lo que es Norton Ghost, existen 2 versiones Clonezilla Live permite a los usuarios clonar una máquina individual, partición o disco para ser reproducido en otro medio.

La clonación puede ser guardada como un archivo de imagen o como una copia exacta de datos.

Los datos pueden ser guardados localmente, en un servidor SSH, servidor Samba o un recurso compartido de archivos NFS y luego restaurarlos en una fecha posterior.

El software se puede ejecutar ya sea desde un arranque de unidad flash USB o cd/dvd. Clonezilla Server se utiliza para clonar simultáneamente muchos computadores a través de una red. Esto se hace usando un servidor DRBL y estaciones de trabajo que puede arrancar desde una red. http://es.wikipedia.org/wiki/Clonezilla  

 Resulta que esta aplicación ya tuve el gusto de usarla para generar una imagen exacta de mi lap brindadome un excelente resultado ya que copia tal cual por ejemplo en mi caso a una usb el respaldo de un disco o bien al ipod, para restaurar es necesario correr la distribución ya sea por usb o bien por disco live, las opciones si observan el tutorial, son muy sencillas y básicamente te llevan de la mano la dirección para descargar dicha distribución es : clonezilla.org/ en su versión server es sumamente potente al tener la capacidad de replicar la imagen del respaldo en muchas computadoras, ideal para centros de computo grandes o bien redes que tengan computadoras de la misma linea (con las mismas características), aprovechando la red.

 El respaldo lo hice en muy poco tiempo respalde alrededor de 60gb en algo así como 20 min con todo y el sistema operativo justo como había generado el respaldo, es un excelente substituto de otras herramientas y su velocidad de respaldo es brillante.

 Bueno espero sus sugerencias y el motivo es divulgar esta excelente distro linux :-)

Pueden descargar el iso desde aqui http://clonezilla.softonic.com/linux

jueves, 19 de julio de 2012

Respaldos con Tar

Saludos hoy la entrada es nuevamente una herramienta popular entre los usuarios de unix y linux,
la herramienta tar para compresión y respaldo de archivos.

Empezamos :-)

Que es tar ?
Segun la wiki


Tar se refiere en Informática a un formato de archivos ampliamente usado en entornos UNIX, identificados con la extensión tar. Además hace referencia al programa para la manipulación de archivos que es estándar en estos entornos.
El formato fue diseñado para almacenar archivos de una forma conveniente en cintas magnéticas y de allí proviene su nombre, que proviene de "Tape ARchiver" (en inglés: archivador en cinta). Debido a este origen el formato está preparado para ser procesado linealmente, no contando con manera de extraer un miembro sin recorrer todo el archivo hasta encontrarlo.

http://es.wikipedia.org/wiki/Tar

El uso de tar es

tar argumentos miarchivo.tar archivocopia archivocopia1 ...

Bueno quedando claro esto vamos a las opciones


Ejemplos de opciones más usadas
actividadopciónejemplo
descomprimir/extraer-xtar -xf paquete.tar
visualizar lo que se realiza-vtar -xvf paquete.tar
archivar/crear el directorio kernel (y subdirect.)-ctar -cvf paquete.tar kernel/
comprimiendo con bzip2-jtar -cjvf paquete.tar.bz2 kernel/
comprimiendo con lzma-Jtar -cJvf paquete.tar.lzma kernel/
comprimiendo con gzip-ztar -czvf paquete.tar.gz kernel/
comprimiendo con lzip--lziptar -cvf paquete.tar.lz --lzip kernel/
comprimiendo con compress-Ztar -cZvf paquete.tar.Z kernel/
comprime utilizando la extensión facilitada en el nombre del fichero (ej. para bz2)-atar -cavf paquete.tar.bz2 kernel/
muestra el contenido de un archivo tar-ttar -tvf paquete.tar.bz2 kernel/


http://es.wikipedia.org/wiki/Tar

Ahora un ejemplo practico y expliquemos


Pwd: /home
[] (espartan): tar -cvf  /home/espartan/respalditol19JUL2012.tar   /etc/

Expliquemos

la primera parte "tar" llama a la aplicacion, "-c" archiva o copia la vista del archivo, "v" activa el modo verbose para visualizar los archivos que se están creando dentro del tar, "f" file. Utiliza el argumento fichero tar el nombre del archivo tar. es decir el nombre que deseamos y la ruta donde va a quedar; posterior a los argumentos sigue la ruta con el nombre del archivo a como queremos que se llame, y luego vendrían los archivos o carpetas a respaldar (/etc/)

Para descomprimir utilizaremos la opcion "-x"
como tar -xvf  home/espartan/respalditol19JUL2012.tar  /home/espartan/respaldos 
recuerda si usaste compresion debes descomprimir primero y luego aplicar la decompress o 

Tar entonces nos ayuda a empaquetar varios archivos y crear una copia, podemos anexar varios archivos y a estos agregar la compresión, para habilitar la compresión hay varias formas de hacerlo si anexamos tar -cfz
estariamos comprimiento con con gzip al agregar la letra "z" de igual modo si utilizamos "Z" estaremos usando la opción de compress o Z file el cual podremos leer con zcat

Por que para respaldos?, bueno es una opción sencilla de empaquetar los archivos que deseemos, puedes empaquetar gran capacidad de datos y es muy recomendable aplicar la compresión ya que te ahorrara buen espacio yo suelo utilizarlo con gzip -9 para maxima compresión y es de fácil integración en un shell, es una herramienta poderosa y se encuentra en prácticamente todo los sistemas unix/linux.

Las ventajas son múltiples y podemos leerlo con varias utilerias tales como winrar o winzip para poder leerlo en windows.

espero les sirva :-D



Enlaces o links en linux

Siendo algo muy rapido y a manera mas de recordatorio, hoy explico los enlaces para linux.

Un enlace es una referencia hacia un archivo o ruta, similares a los accesos directos de windows,
se utilizan bien para localizar alguna ruta muy larga, un nombre a un archivo que se requiere en otra ubicacion
o simplemente situar un objeto en varias ubicaciones.

Hay 2 tipos
Enlaces Blandos: se crean para hacer referencia a un archivo o ruta, el comando es
ln -s ruta_objeto nombredelenlace 
Ahora bien si el objeto original o enlace son modificados y no son correspondientes, el enlace queda sin posibilidad de servir.


Enlaces Duros: Pueden hacer referencia a archivos o a otros enlaces, pero no a carpetas, el comando es

ln ruta_objeto nom


Ojo que cuando utilizas enlaces duros recuerda que te puedes cargar el archivo ;-)


lunes, 21 de mayo de 2012

Incrementar la seguridad de linux, consejos y herramientas

Saludos pues me encontre con una excelente entrada para incrementar la seguridad el ubuntu les dejo el enlace

como aumentar la seguridad en ubuntu

Ademas no podemos olvidar seguir las siguientes recomendaciones basicas
1.- Asignar los permisos adecuados a los archivos para cada usuario y grupo sin ser demasiado permisivos.
2.- Asignar particionado, es decir asegurate de generar particiones distintas para en caso de hechar a perder una, esta no afecte a todo el sistema o bien a los datos.
3.- Se recomienda por lo general que el home de cada usuario tuviera su particion, esto asegura la privacidad y aisla posibles afectaciones, focalizandolas en solo el usuario de la particion afectada.
4.- Asegurate de manejar los privilegios de grupos y usuarios correctamente, con esto garantizas la propiedad y privacidad de un archivo asignado a un grupo o usuario en especifico.
5.- Manejar listas de control de acceso, para individualizar los permisos de ciertos archivos a solo los usarios designados.
6.- Eso aplica para cualquier sistema operativo y es cifrar o encriptar los archivo, un ejemplo muy sencillo es utilizar el editor "vi -x" con esto crearemos un archivo de texto plano pero cifrado, tambien hay muchas otras aplicaciones para cifrar los archivos como CFS
7.- Restringir los permisos a: /var/log/syslog  ya que es aqui donde se guardan varios de los logs almacenados por el sistema.
8.- Restringir la ejecucion de programas y comandos como lo es la edicion del crontab o bien el comando finger.
9.- Cifrar las password de acceso al sistema por ejemplo utilizando /etc/shadow ya que asi las passwords se almacenan aqui y solo el root tiene acceso.
10.- Algo basico pero escencial en cualquier sistema para mejorar la seguridad, es cambiar con cierta periodicidad las password de acceso al sistema y a ciertas aplicaciones, no hay un tiempo en especifico para cambiarlo pero entre mas rapido sea el cambio, se complica más el acceso y el hecho de dar con la password correcta.
11.- Procura usar conexiones cifradas ya sea cuando te conectas en forma local o remota, es decir utiliza procotolos de seguridad como ssh, sftp, https.

Hay varios procesos para incrementar la seguridad en un sistema linux, a estos procesos se le llama Hardening e aqui una utilieria excelente http://www.grsecurity.net/

Seguridad Unix y Linux, parte 1 (Shadow)

 Shadow
Bueno pues en esta ocacion cito a grandes rasgos lo que maneja esta suite que ya tiene algun tiempo,
/etc/shadow, es un archivo de configuración para encriptar las passwords en sistemas Unix 



SHADOW
Seccion: Formato de Archivos (5)
NOMBRE
shadow - archivo de passwords encriptados
DESCRIPCIÓN
shadow contiene la información encriptada para las cuentas de usuarios y opcionalmente la información de caducidad del password.
Está incluido
- Nombre de usuario
- Password Encriptado
- Dias desde 1 Enero, 1970 que el password fue cambiado
- Dias antes de que el password pueda ser cambiado
- Dias despues de los cuales el password debe ser cambiado
- Dias antes en los que el usuario será advertido antes de que el password expire
- Dias despues de 1 Enero de 1970, en los cuales la cuenta será deshabilitada     luego del password expirar
- Un campo reservado
El password debe ser llenado.
El password encriptado consiste en 13 a 24 carácteres del alfabeto de 64 caracteres de a hasta z, A hasta Z, 0 al 9, . y /. Referirse a crypt(3) para detalles acerca de como es interpretada esta cadena.
El dia del ultimo cambio de password es dado como el número de dias desde 1 Enero, 1970. El password no puede ser cambiado nuevamente hasta que esos dias hayan pasado, y debe ser cambiado antes número máximo de dias. Si el número mínimo de dias requerido es mayor que el máximo numero de dias permitido, este password no puede ser cambiado por el usuario.
Una cuenta es considerada como inactiva y deshabilitada si el password no es cambiado dentro de el número de dias especificado luego de que el password expire. Una cuenta tambien será deshabilitada en los dias especificados no obstante la información de expiracion restante.
Esta información trasciende cualquier password o información de tiempo de password presente en /etc/passwd.
Este archivo no debe ser leible por usuarios regulares si se mantendrá la seguridad de los passwords.
ARCHIVOS
/etc/passwd - user account information
/etc/shadow - encrypted user passwords
VER TAMBIEN
chage(1), login(1), passwd(1), su(1), passwd(5), pwconv(8), pwunconv(8), sulogin(8)
AUTOR
Julianne Frances Haugh (jockgrrl@ix.netcom.com)

De modo que tomando como ejemplo la linea correspondiente , en /etc/shadow , tenemos algo como esto:
jespinal:$1$N9L1HjIf$.YbfoPCCZmrqemk4zwYUb4:13918:0:::::0
Se sigue viendo medio feo, pero por lo menos se entiende, ya que sabemos que segun el man page:
Nombre de usuario
jespinal
Password Encriptado
$1$N9L1HjIf$.YbfoPCCZmrqemk4zwYUb4
Dias desde 1 Enero, 1970 que el password fue cambiado
13918
Dias antes de que el password pueda ser cambiado
0
Dias despues de los cuales el password debe ser cambiado
 vacio, es decir, no debo cambiarlo :) 
Dias antes en los que el usuario será advertido antes de que el password expire
 tampoco estoy usando este campo
Dias despues de 1 Enero de 1970, en los cuales la cuenta será deshabilitada luego del password expirar
ya que mi cuenta no va  a expirar, tampoco se usa esto
Un campo reservado
0
Shadow maneja varios tipos de encripciones donde la mas comun es MD5
Opcionalmente se puede comenzar con un carácter "$". Esto significa que la contraseña encriptada se ha generado utilizando otro algoritmo (no DES). Por ejemplo, si comienza con "$ 1 $", significa que el algoritmo MD5 basado fue utilizado.

la wikipedia nos da mas detalles sobre los metodos de encripcion manejados, sobre lo que eh leido aunque MD5 no es el mas seguro si suele ser el estandar. 



Algunos directorios linux/unix

Saludos nuevamente les traigo una pequeña lista de los directorios linux espero les pueda ayuda, la fuente antes que nada por si gustan consultar el tutorial completo :-)

Tutorial linux, y comandos basicos


Cambia la contraseña de usuario en linux/unix

Pues solo recordandoles un comdo muy sencillo para cambiar la contraseña de unix/linux,
"passwd" posteriormente te pedira teclear tu password anterior y lugo la nueva contraseña si lo haces como root cambiaras la password de administrador, ojo con este comando anota bien tus contraseñas ;-)

"passwd generalmente funciona manipulando el archivo donde se guardan los usuarios y sus contraseñas (comúnmente /etc/passwd, o /etc/shadow si se usan contraseñas shadow), lo que significa que la contraseña cambiada aplica sólo al computador en el cual se ejecutó el comando. Si se está usando PAM, en cambio, como puede ser en GNU/Linux, Solaris, FreeBSD o NetBSD, la instrucción passwd se puede usar para cambiar la contraseña del mecanismo de autenticación que esté usándose en el momento, sea NIS, Kerberos, LDAP, o cualquier otro para el que haya un módulo de PAM."

wikipedia

Comandos Basicos para Monitoreo linux/unix 1 update 05-01-2015

Saludos les publicare algunos tips sumamente basicos para el  monitoreo de nuestro sistema en Linux o unix, la segunda parte abarca algunos comandos mas avanzados comandos-para-monitoreo-parte-2-solaris/linux.html

primero empezaremos con " uname -a " el cual nos mostrara el nombre y versión del sistema operativo que estamos utilizando.
el comando funciona de manera genérica para cualquier plataforma unix.

También un comando sumamente importante es prtdiag -v dentro de solaris, este comando nos sirve para ver el estatus del servidor desde la ram hasta el estatus del todo el hardware que se encuentra funcionando, asi como la version de firmware y otros componentes.

Del mismo modo tenemos " psrinfo -v " que proporciona la información de los procesadores, de favor si me corrigen ya que ignoro si esto aplique también para osx, ya que me parece solo aplicaría para solaris y algunas distros linux.

Status of virtual processor 0 as of: 05/21/2012 11:21:18
  on-line since 05/06/2012 17:12:36.
  The sparcv9 processor operates at 2520 MHz,
        and has a sparcv9 floating point processor.
Status of virtual processor 1 as of: 05/21/2012 11:21:18
  on-line since 05/06/2012 17:13:32.

Para ver la memoria disponible " prtconf | grep Memory " solo para solaris.
Memory size: 20480 Megabytes

Para conocer la cantidad de memoria ram de nuestro sistema Solaris, así como la cantidad y el tipo de CPU, tarjetas PCI y dispositivos externos con los que contamos ejecuta el siguiente comando:

/usr/platform/`uname -i`/sbin/prtdiag

Para saber el nombre de la maquina en unix o linux, tenemos 2 opciones, " uname -n " o bien hostname, ignoro si aplica para todas las distros, los eh probado en ubuntu y solaris.

Para saber nuestra ip, tecleamos " ifconfig -a " o solo " ifconfig " y nos proporcionara información referente a la ip (s) configuradas para nuestro equipo.

Uno muy util es cuando queremos saber los procesos asignados a nuestro usuario, en tal caso usuamos "ps -fu nombreusuario" en donde "nombreusuario" es el user id o nombre del usuario con el que iniciamos sesion o " ps -ef  " que también nos mostrara los procesos que se están ejecutando.

Para ver el estado de la memoria podemos hacerlo con "vmstat" aunque para este comando hay muchas opciones, podemos tomar por numero de muestras y/o intervalos de tiempo, para este comando le dedicare un poco mas de tiempo en futuras entradas, por lo pronto podemos usar el manual con "man vmstat" en la consola y un ejemplo seria vmstat 3 6 el cual toma muestras cada 3 segundos y tomara 6 muestras

 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr m0 m1 m3 m4   in   sy   cs us sy id
 0 0 0 199603904 164565344 94 409 62 134 134 0 0 0 0 0 0 6809 13802 7377 0 1 99
 1 0 0 196558024 160959592 0 78 0 206 206 0 0 0 0 0  0 6827 16920 7403 0  1 99
 1 0 0 196557528 160959304 0 2 0 73 73 0 0  0  0  0  0 6825 9409 7181  0  2 98
 0 0 0 196557528 160958624 47 51 0 377 377 0 0 0 0 0 0 7013 9912 7734  0  1 98
 0 0 0 196557312 160959712 105 720 0 76 76 0 0 0 0 0 0 7236 17293 8342 0  1 99
 0 0 0 196557528 160960160 0 30 0 102 102 0 0 0 0 0  0 6735 12328 6987 0  2 98

Para ver el espacio en disco podemos usar df -k (bytes) o df -h (formato megabytes o human)
df -h
Filesystem             size   used      avail capacity  Mounted on
/                           68G    8.7G    59G     13%    /
/HTTPServer       2.0G   254M   1.6G    14%    /HTTPServer
/NDM36             2.0G   387M   1.5G    20%    /NDM36
/WebSphere61    5.0G    2.3G    2.5G    48%    /WebSphere61
/arqnacar            10G     20M    9.4G     1%    /arqnacar
/backlogs            2.0G   18M     1.9G     1%    /backlogs
/bladelogic          2.0G   117M   1.8G     7%    /bladelogic
/ctrlmagt             2.0G   163M   1.7G     9%    /ctrlmagt
/dev                   68G     8.7G     59G     13%    /dev

Ahora bien para saber el espacio de una carpeta / filesystem podemos usar "du -ha", este comando informara sobre el tamaño de los archivos en una carpeta de forma re cursiva.

prstat -as cpu que muestra de forma ordenada los procesos que se están ejecutando y se actualiza mas o menos cada 2 segundos, solo aplica para ciertos sistemas unix  (Solaris) y sirve para monitorizar también el consumo de CPU, memoria ram, swap, usuarios, es el equivalente de top en linux.



Actualización ------------

También para ver los usuarios conectados podemos utilizar, who y finger, ambos comandos muestran las sesiones conectadas a nuestro sistema. finger proporciona mayor detalle y puede ser un comando restringido al proporcionar información sensible.

y tenemos uptime, que muestra el tiempo que lleva nuestro equipo funcionando desde el último reinicio o bien apagado.

Continua comandos-para-monitoreo-parte-2-solaris/linux.html

Have  nice day