viernes, 23 de noviembre de 2012

Spotbros, una alternativa a Whatsapp

Spotbros, una alternativa a Whatsapp  

Quisiera compartir con todos un servicio de mensajería instantánea y mucho más y más seguro que whatsapp, ya que todos los mensajes están encriptados mediante el algoritmo AES 256. A su vez es más respetuoso con la privacidad, ya que los administradores aseguran mantener únicamente 30 días todos los datos.
Otra funcionalidad de este software muy interesante es la de poder interactuar con usuarios, cercanos con intereses comunes.

Más informacion en www.spotbros.com/

miércoles, 21 de noviembre de 2012

Actualizar samsung galaxy s2 android 4.1.2


Hola quisiera compartir con todos en enlace del video que me sirvio para actualizar mi galaxy s2 de android 4.0.4 a android 4.1.2.

https://www.youtube.com/watch?v=Klr8Y-oWweM

Todo el proceso es sumamente sencillo, no obstante si tienen alguna duda no duden en consultarme.

martes, 20 de noviembre de 2012

Eclipse y ADT en ubuntu


Eclipse y ADT en ubuntu

Hola a todos, comparto link de como instalar y configurar eclipse y ADT en linux para iniciarse en la creación de software para android.

http://android.scenebeta.com/tutorial/como-instalar-eclipse-y-adt-en-gnu-linux

Aunque el tutorial es un poco antiguo, lo que cambia, un poco, es la interfaz del entorno de programación, debido a la propia evolución de las versiones.

También quisiera compartir link de web donde encontrar diferentes recursos dedicado a la creación de software para android.

http://www.htcmania.com/showthread.php?t=218891 


jueves, 15 de noviembre de 2012

Firewall mediante iptables en S.O GNU/LINUX

Configurar script para iptables en GNU/LINUX

Aunque he probado interfaces gráficas, en concreto una, firestarter y parece que funciona bien, personalmente prefiero las iptables, ya que no tienes que depender de ningún entorno gráfico y lo puede correr en cualquier maquina con GNU/LINUX. 
 
Una vez dicho esto empecemos por dar una breve explicación acerca de iptables:

 Simplemente decir que iptables es un firewall vinculado directamente al kernel y que básicamente existen dos políticas: 

          - Aceptar o denegar trafico, entrante o saliente, de un determinado puerto/s,o IP, etc ...

Aquí os dejo mi script iptables, podéis hacer un COPY-PASTE si así lo deseáis y no me rechinaran los dientes. Este script es para mi PC y no tiene implementado servidor alguno, tan sólo tiene habilitados algunos servicios como FTP, SMTP, IMAP, etc ...

nano firewall.sh

#!/bin/sh

case $1 in
start )
echo iniciando iptables
#Borrándose reglas anteriores
iptables -F
iptables -X
iptables -Z
#Estableciendo las reglas por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Al localhost se le permite todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Permito salida web
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT
#web seguras
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT
#FTP
iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT
#Las siguientes reglas permiten el trafico IMAPS
iptables -A INPUT -i eth1 -p tcp --dport 993 -j ACCEPT
#Pemito trafico SMTP
iptables -A INPUT -i eth1 -p tcp --dport 465 -j ACCEPT
#Ahora cerramos los puertos de gestión típicos
iptables -A INPUT -i eth1 -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -i eth1 -p udp --dport 1:1024 -j DROP 
# impedimos iniciar conexion los puertos altos
iptables -A INPUT -p tcp --syn --dport 1025:65535 -j DROP 
#Permito tráfico torrent
iptables -A INPUT -i eth1 -p tcp --dport 43253 -j ACCEPT
#Bloqueando ICMP con iptables
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas aplicadas correctamente
exit 0
else
echo se produjo un error al aplicar las reglas
exit 1
fi
echo "Listo."
;;
restart )
echo reiniciando iptables
#Borrándose reglas anteriores
iptables -F
iptables -X
iptables -Z
#Estableciendo las reglas por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#Al localhost se le permite todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Permito salida web
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT
#web seguras
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT
#FTP
iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT
#Las siguientes reglas permiten el trafico IMAPS
iptables -A INPUT -i eth1 -p tcp --dport 993 -j ACCEPT
#Pemito trafico SMTP
iptables -A INPUT -i eth1 -p tcp --dport 465 -j ACCEPT
#Ahora cerramos los puertos de gestión típicos
iptables -A INPUT -i eth1 -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -i eth1 -p udp --dport 1:1024 -j DROP
# impedimos iniciar conexion los puertos altos
iptables -A INPUT -p tcp --syn --dport 1025:65535 -j DROP 
#Permito tráfico torrent
iptables -A INPUT -i eth1 -p tcp --dport 43253 -j ACCEPT
#Bloqueando ICMP con iptables
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas aplicadas correctamente
exit 0
else
echo se produjo un error al aplicar las reglas
exit 1
fi
echo "Listo."
;;
stop )
echo -n "Desactivando Reglas..."
#Pongo las políticas por defecto en 'ACCEPT'
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#Quito todas las reglas declaradas
iptables -F
iptables -X
iptables -Z
#Se habilita la espuesta ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas desactivadas
exit 0
else
echo se produjo un error al desactivar las reglas

exit 1
fi
echo "Listo."
;;
* )
echo "No se ha pasado ningún parámetro."
echo "Uso: $0 { start | stop | restart }"
;;
esac

Llegados a este punto, donde voy a dejarme asesorar, espero que no sea la última vez, ya que no soy un experto, ni mucho menos, acerca de iptables, pero si que recientemente implemente un servidor samba para una LAN corporativa,  y que apoyándome en mis vagos conocimientos acerca de iptables y en varios tutoriales, me salio este script:

A continuación muestro el escenario al que me enfrento:
LAN+NAT

nano firewall.sh

#!/bin/sh

LAN=192.168.1.0/24
MI_IP_PUBLICA=x.x.x.x
case $1 in
start )
echo iniciando iptables
iptables -F
iptables -X
#Estableciendo las reglas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Al localhost se le permite todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Permitimos trafico samba
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 445 -j ACCEPT
#Habilito el puerto 22, para mi, para conectarme con un ssh desde mi casa
iptables -A INPUT -s "$MI_IP_PUBLICA" -p tcp --dport 22 -j ACCEPT
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas aplicadas
exit 0
else
echo se produjo un error al aplicar las reglas
exit 1
fi
echo "Listo."
;;
restart )
echo reiniciando iptables
iptables -F
iptables -X
#Estableciendo las reglas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Al localhost se le permite todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Permitimos trafico samba
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -s $LAN -m state --state NEW -p tcp --dport 445 -j ACCEPT
#Habilito el puerto 22, para mi, para conectarme con un ssh desde mi casa
iptables -A INPUT -s "$MI_IP_PUBLICA" -p tcp --dport 22 -j ACCEPT
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas aplicadas
exit 0
else
echo se produjo un error al aplicar las reglas
exit 1
fi
echo "Listo."
echo "Listo."
;;
stop )
echo -n "Desactivando Reglas..."
#Pongo las políticas por defecto en 'ACCEPT'
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#Quito todas las reglas declaradas
iptables -F
iptables -X
iptables -Z
#Se muestran los resultados
if [ $? = 0 ]
then
echo reglas desactivadas
exit 0
else
echo se produjo un error al desactivar las reglas
exit 1
fi
echo "Listo."
;;
* )
echo "No se ha pasado ningún parámetro."
echo "Uso: $0 { start | stop | restart }"
;;
esac

Este script es totalmente funcional pero ciertamente mejorable así que agradecería sugerencias.

Para ver lo que se aplica:


iptables -L


- Para iniciar el script durante el arranque:


cp /home/user/iptables.sh /etc/init.d/
chmod +x /etc/init.d/firewall.sh
update-rc.d firewall.sh defaults



lunes, 5 de noviembre de 2012

Hacer backup,clonar y restaurar particiones el GNU/LINUX

Hacer backup,clonar y restaurar particiones el GNU/LINUX

Tras una serie de entradas  donde se explicaba como montar una serie de servidores así como distintas medidas de seguridad a tomar, ahora toca una parte tan o más importante, como es la de respaldar los datos para si hubiéramos una contingencia inesperada, pero al disponer de una copia de respaldo, esas posibles contingencias se minimizarían.

Voy a tratar de analizar varias opciones, empecemos:

- Hacer un backup incremental(consola):

Para esto basta conocer un poco acerca de las herramientas que habitualmente se utilizan GNU/LINUX y en mi caso, he optado por automatizar el proceso mediante este simple script:
  • Pongamos que queremos hacer una copia completa de nuestro home
#!/bin/sh
echo inicio copia seguridad del home de user
fecha=”date”
mkisofs -r -l -o copia-user-$fecha.iso /home/user/
if [ $? -eq 0 ] then
echo Proceso copia seguridad con fecha $fecha se completo adecuadamente › log_copia
#Ahora vamos a grabar la imagen creada, explicacion fin script
cdrecord -v dev=1,0,0 speed=10 copia-user-$fecha.iso
if [ $? -eq 0] then
echo Proceso de grabación de copia seguridad con fecha $fecha se completo adecuadamente › log_copia
else
echo Proceso de grabación de copia seguridad con fecha $fecha ha terminado con un error ›log_copia
exit
fi
else
echo Proceso copia seguridad con fecha $fecha ha terminado con un error ›log_copia
exit
fi
mutt -s “Repote Backup” -a log_copia admin@dominio.com

* script actualizado
 
-------------------------------------------------------------------------------------------------------------------------------------------------------------

    Antes de proceder a quemar la copia de segurida en un cd, primero necesitamos identificar el cdrom:
      cdrecord -scanbus 
       
      scsibus1:
      1,0,0 100) 'Slimtype' 'DVD A DS8A5SH ' 'XA15' Removable CD-ROM 

      Con esto podemos notar que nuestra grabadora cdom esta identificada en 1,0,0 100) 'Slimtype' 'DVD A DS8A5SH ' 'XA15' Removable CD-ROM

      • Simple backup restore(gráfica):
      Esta simple, pero robusta, nos permite crear copias de seguridad incrementales de los archivos de nuestro/s disco/s.
      Una vez hecha la introducción, tampoco tiene más historia para programar las copias de seguridad, hay que acceder a simple backup config, crear un perfil y configurar el programa.

      Si por contra lo que queremos es restaurar una copia de seguridad vamos a simple backup restore y all en el calendario elegir la copia que queremos restaurar.

      - Clonar partición com perfect-clone(consola):

      Este script intuitivo te permitirá clonar y restaurar particiones.
      • Clonar:
      1. Descargar el script:
         
        wget http://perfect-clone.googlecode.com/files/perfect-clone-1.0.3.tar.gz 
         
      2. Descomprimirlo:

        tar xvzf perfect-clone-1.0.3.tar.gz 
         
      3. Acceder al directorio perfect-clone:

        cd perfect-clone 
         
      4. Escalar al user UID 0 (root):

        sudo su 
         
      5. Instalamos paquetes necesarios para ejecutar el script:

        apt-get install dialog 
         
      6. Ejecutar el script:
         
        ./perfect-clone.sh 

      • Restore:
        ./perfect-clone.sh 


        - Si queremos clonar el sistema operativo, así como otra gran cantidad de opciones, completo utilizar software garfio(livecd/gráfico):

        1. Instalación:

        add-apt-repository ppa:paquetes-tuquito/universal

        apt-get update

        apt-get install garfio-generic

        2. Tutoriales para su uso en web oficial del proyecto:

      jueves, 1 de noviembre de 2012

      Instalar y configurar un sistema de cuotas(quota) en ubuntu 12.04 server

      Instalar y configurar un sistema de cuotas(quota) en ubuntu 12.04 server

      Continuando con el anterior post donde se monto un sistema RAID 1, por software, ahora vamos a ponerle cuotas de espacio a los usuarios que van a utilizar el sistema RAID(ejemplo aplicable a un servidor de correo o cualquier otro recurso compartido que requiera de almacenamiento físico):

      sudo su

      apt-get install quota

      - Editamos el archivo /etc/fstab y modificamos solo la linea que nos dice de que forma se va a montar nuestro dispositivo RAID y en los permisos le diremos que vamos a utilizar cuotas para el usuario y grupo:

      nano /etc/fstab

      # /etc/fstab: static file system information.
      #
      # Use 'blkid' to print the universally unique identifier for a
      # device; this may be used with UUID= as a more robust way to name devices
      # that works even if disks are added and removed. See fstab(5).
      proc /proc proc nodev,noexec,nosuid 0 0
      # / was on /dev/sda1 during installation
      UUID=7848f226-f5f1-4cee-ba55-37bb978930e1 / ext4 errors=remount-ro 0 1
      # swap was on /dev/sda5 during installation
      UUID=1df5c0e7-32ce-4fd9-ba3a-9420acf1b2e3 none swap sw 0 0
      /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

      /dev/md127 /datos ext2 defaults,usrquota,grpquota 0 0

      root@ubuntu:/# reboot

      -Tras reiniciar, en el punto de montaje del dispositivo RAID nos debe aparecer dos nuevos ficheros

      root@ubuntu:/# ls /datos/

      aquota.group aquota.user lost+found
      • Para hacer un test y comprobar que todo ha ido bien, ejecutar:
      root@ubuntu:/# quotacheck -cug /datos

      Si todo ha ido bien, ya tenemos el sistema de cuotas montado y solo faltaría definir las cuotas.

      - Las cuotas se pueden definir a nivel de usuario, argumento -u, o a nivel de grupo con el argumento -g:

      root@ubuntu:/# groupadd contabilidad

      root@ubuntu:/# useradd -g contabilidad -s/bin/bash -p user1 -d /home/user1 -m user1

      root@ubuntu:/# useradd -g contabilidad -s/bin/bash -p user2 -d /home/user2 -m user2

      root@ubuntu:/# quota -g contabilidad

      Disk quotas for group contabilidad (gid 1003): none

      - Definimos la cuota para el grupo contabilidad, con edcuota:

      root@ubuntu:/# edquota -g contabilidad

      Disk quotas for group contabilidad (gid 1003):
      Filesystem blocks soft hard inodes soft hard
      /dev/md127 0 0 0 0 2 4

      * En este caso la cuota de se ha limitado por nº de entradas, 4 máximo o duro y 2 de gracia o blando, en el punto montaje, pero personalmente considero que es más efectivo limitar por tamaño, por lo que hay va un ejemplo:
      /dev/md0        0        3072     6144       10        0        0
       * Se limita al grupo a utilizar un máximo de 6 Mb y una cuota de gracia de 3Mb.
      La cuota de gracia significa: una vez superada esta cuota se avisa al usuario dejándole escribir hasta el limite máximo o duro, mientras que no expire el periodo de gracia, una vez agotado dicho periodo el sistema no dejara al usuario o grupo escribir.

      - Para establecer el periodo de gracia basta con ejecutar:

      root@ubuntu:/# edquota -t

      Grace period before enforcing soft limits for users:
      Time units may be: days, hours, minutes, or seconds
      Filesystem Block grace period Inode grace period
      /dev/md0 7days 7days

      - Damos los permisos que estimemos al punto montaje, en este ejemplo “cafe para todos”:

      root@ubuntu:/# chmod 777 /datos/

      -Para comprobar que todo a ido bien, nos logueamos como un usuario del grupo contabilidad y en el punto montaje creamos un fichero y a continuación vemos el estado de la cuota del grupo:

      root@ubuntu:/# su user1

      user1@ubuntu:/$ cd /datos/

      user1@ubuntu:/datos$ touch prueba1 prueba2 prueba3 prueba4

      user1@ubuntu:/datos$ quota -g contabilidad

      Disk quotas for group contabilidad (gid 1003):
      Filesystem blocks quota limit grace files quota limit grace
      /dev/md0 0 0 0 4* 2 4 7days

      - En este momento nos logearemos con otro usuario del grupo e intentaremos crear otro fichero:

      root@ubuntu:/datos# su user2

      user2@ubuntu:/datos$ cd /datos/

      user2@ubuntu:/datos$ ls

      aquota.group aquota.user lost+found prueba1 prueba2 prueba3 prueba4

      user2@ubuntu:/datos$ touch prueba5

      touch: cannot touch `prueba5': Disk quota exceeded

      - Para desactivar las cuotas, ejecutar como root:

      root@ubuntu:/datos# quotaoff -aug

      - Comprobamos que efectivamente las cuotas se han sido desactivadas:

      root@ubuntu:/datos# su user1

      user1@ubuntu:/$ cd datos

      user1@ubuntu:/datos$ touch prueba5

      user1@ubuntu:/datos$ ls

      aquota.group aquota.user lost+found prueba1 prueba2 prueba3 prueba4 prueba5

      - Para volver a activarlas, como root:

      root@ubuntu:/datos# quotaon -aug

      - Ahora vamos ha ver unos comandos que nos facilitaran la administración del sistema de cuotas:
      • Estado actual de nuestro sistema de cuotas, comando repquota:

        root@ubuntu:/home/antonio# repquota /datos/
         
        *** Report for user quotas on device /dev/md0
        Block grace time: 7days; Inode grace time: 7days
        Block limits File limits
        User used soft hard grace used soft hard grace
        ----------------------------------------------------------------------
        root -- 2 0 0 0 2 0 0
        user1 -+ 0 0 0 4 2 4 7days

        * Aunque se le definan una cuota al root, estas no se le aplicaran.
        Para ver un reporte de todos los dispositivos RAID, repquota -a.
      • Para añadir repquota al cron, para que nos haga un reporte diario:
      1. Editamos fichero /etc/cron.daily e insertamos:

        repquota /datos › reporte

      * En esta parte, imaginación al poder, ya podemos hacer un script.
      • Quota nos da la posibilidad de que cuando un usuario halla rebasado su cuota de gracia se le envíe un correo, esto se configura editando el archivo /etc/warnquota.conf:
      ; ; and # type comments are allowed
      # and even blank lines
      # values can be quoted:
      MAIL_CMD = "/usr/sbin/sendmail -t"
      FROM = "ro
      ot@localhost"
      # but they don't have to be:
      SUBJECT = cuota disco rebasada
      CC_TO = "xxxxxx@gmail.com"
      # Acordaos que en el anterior post ya configuramos postfix para que utilizara gmail
      SUPPORT = "root@localhost"
      PHONE = "xxx xxx xxx"
      #
      CHARSET = UTF-8
      #
      MESSAGE = Hola %i, tu cuota de disco en %h.%d esta a punto de llegar al límite, por favor borre archivos innecesarios, gracias.

      IMPORTANTE. Impedir que todas la cuentas de usuario, excepto las de root, pueda iniciar sesión para que ningún usuario te haga un ssh y te lo “tumbe” todo. Para lo cual editamos el fichero /etc/passwd y modificamos su interprete de comandos, por ejemplo modificarlo con /bin/NOBODY.