viernes, 20 de abril de 2012

Crear una NAT por Zeroshell


Zeroshell es una distribución Linux para servidores y dispositivos embebidos, que provee de servicios
de red. Es un Firewall gratuito que tiene las características de los de los equipos complejos de
seguridad.

Lo primero que haremos será crear un virtual donde instalar el Zeroshell. a esta máquina le daremos 3 tarjetas de red:
  • Eth00, conectada en modo bridge y que nos dará salida a la red.
  • Eth01, conectada en NAT y que conectará con nuestro virtual de Windows XP.
  • Eth02, conectada en Custom VMNet4 y que conectará con nuestro virtual de linux Mint.
Para realizar esta configuración nos vamos al zeroshell:


Introducimos una contraseña (P); después habrá que configurar las IPs de las 3 redes anteriores, lo que haremos pulsando (I); por último establecemos la puerta de enlace predeterminada, que será la de salida a la red (G). El resultado es el siguiente:



Nos dice que el ETH00 es miembro de BRIDGE00, ya que es la que nos da salida a internet. ETH01 y ETH02 tienen esas direcciones porque son las que se corresponden con los detalles de VMWARE que se pueden ver en "Edit/Virtual Network Editor":


Luego habrá que definir las direcciones IP en cada uno de los equipos virtuales (observar que la puerta de enlace se corresponde con la IP definida en Zeroshell):



En Windows XP se configuraría así:


Mientras que en Linux mint habría que ejecutar en terminal "nano /etc/network/interfaces" y poner lo siguiente:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.6.44
        netmask 255.255.255.0
        gateway 192.168.6.2


También en terminal "nano /etc/resolv.conf" y ponemos "nameserver 8.8.8.8".
Finalmente reiniciamos los servicios... "/etc/init.d/networking restart".

Ahora nos vamos al Windows físico, abrimos el navegador y en la barra de direcciones ponemos la IP de la ETH00, en mi caso "192.168.1.123". No aparece lo siguiente:

Introduzco usuario "admin" y contraseña la que puse en Zeroshell... y ya debo acceder a la plataforma.
Lo primero que haremos será crearnos un PROFILE para no tener que crearla cada vez que entremos, para lo cual nos vamos a SETUP/PROFILES, seleccionamos el modelo que queramos y si no tenemos creada la partición la creamos pulsando en NEW PARTITION. Si ya tenemos una partición, la seleccionamos y pulsamos en CREATE PROFILE, con lo que se abre una ventana, rellenamos os datos correspondientes del formulario y pulsamos CREATE. Finalmente lo activamos seleccionándolo y pulsando en ACTIVATE. Debe quedar tal que así:


También en SETUP, pulsamos en NETWORK y vemos cómo aparece la configuración que hicimos en Zeroshell:


Ahora tenemos que acceder a la opción del menú de ROUTER, NAT, y pondremos como NAT Enabled Interfaces a ETH00 que es la que nos da salida a internet.

Con esto ya deberíamos poder hacer ping de unos a otros y tener internet en los dos equipos virtuales.

sábado, 14 de abril de 2012

Ejercicio 3 iptables

Vamos a realizar un ejercicio (http://dns.bdat.net/documentos/cortafuegos/x267.html)

Proteger la propia máquina I
#!/bin/sh
## SCRIPT de practica_iptables.pdf
echo -n Aplicando Reglas de Firewall...
##Vaciamos las reglas
iptables -F
iptables -X
iptables -t nat -F
##Establacemos las politicas predeterminadas
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
##Aceptamos todo de localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT
##A nuestra Ip le dejamos todo
iptables -A INPUT -s 192.168.1.188 -j ACCEPT
##Permitimos una conexión a ssh y telenet (22:23) desde un equipo
iptables -A INPUT -s 192.168.1.156 -p tcp --dport 22:23 -j ACCEPT
##A otro le permitimos el acceso FTP
iptables -A INPUT -s 192.168.1.156 -p tcp --dport 20:21 -j ACCEPT
##El puerto 80 (www) abierto para un servidor web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
##El resto lo cerramos
iptables -A INPUT -p tcp --dport 20:21 -j DROP
iptables -A INPUT -p tcp --dport 22:23 -j DROP
#TCP 6001 (Servicio Almacén de información de Microsoft Exchange)
iptables -A INPUT -p tcp --dport 6001 -j DROP
echo " OK . Verifique que lo que se aplica con: iptables -L -n"
# Fin del script

Proteger la propia máquina II

#!/bin/sh
##
SCRIPT de practica_iptables.pdf
echo -n Aplicando Reglas de Firewall...
##Vaciamos las reglas
iptables -F
iptables -X
iptables -t nat -F
##Establacemos las politicas predeterminadas
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
##Creamos una nueva cadena (con el comando -N)
iptables -N filtro
##definimos las reglas de la nueva cadena
iptables -A filtro -m state --state ESTABLISHED,RELATED -j ACCEPT
  #Las condiciones explicitas se deben cargar con -m o –match
  #state nos permite seleccionar paquetes de acuerdo al estado de su conexión
  #ESTABLISHED Significa que el paquete es parte de una conexión existente,..
  #..que manda paquetes en ambas direcciones. RELATED Significa que el paquete
  #..esta creando una nueva conexión asociada a otra existente conocida.
iptables -A filtro -m state --state NEW -i !eth0 -j ACCEPT
  #El signo ! es igual a negar, con lo que !eth0 son todas menos eth0.
iptables -A filtro -j DROP
##Aceptamos las conexiones internas
/sbin/iptables -A INPUT -i lo -j ACCEPT
##Ir a la cadena filtro desde las cadenas INPUT y FORWARD
iptables -A INPUT -j filtro
iptables -A FORWARD -j filtro
echo " OK . Verifique que lo que se aplica con: iptables -L -n"
# Fin del script

Proteger la propia máquina III
#!/bin/sh
##SCRIPT de practica_iptables.pdf
echo -n Aplicando Reglas de Firewall...
##Vaciamos las reglas
iptables -F
iptables -X
iptables -t nat -F
##Establacemos las politicas predeterminadas
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
##Aceptamos todo de localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT
##A nuestra IP le dejamos todo
iptables -A INPUT -s 192.168.1.156 -j ACCEPT
##Permitimos una conexion a telnet y ssh desde un equipo
iptables -A INPUT -s 192.168.1.156 -p tcp --dport 22:23 -j ACCEPT
##A otro le permitimos acceso a FTP
iptables -A INPUT -s 192.168.1.106 -p tcp --dport 20:21 -j ACCEPT
##El puerto 80 debe estar abierto, ya que es un servidor web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
##Cerramos rango de los puertos privilegiados. Hay que tener cuidado con
#este tipo de barreras, ya que antes hay que abrir a los que si tiene acceso
iptables -A INPUT -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -p udp --dport 1:1024 -j DROP
##Impedimos iniciar conexión en los puertos altos (FTP podría no funcionar)
iptables -A INPUT -p tcp --syn --dport 1025:65535 -j DROP
##Cerramos otros puertos que están abiertos
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 10000 -j DROP
echo " OK . Verifique que lo que se aplica con: iptables -L -n"
# Fin del script

viernes, 13 de abril de 2012

Ejercicio 2 iptables

Vamos a evitar que nos puedan hacer ping:
iptables -A INPUT -p icmp -j DROP


Denegar el ping sólo a un host:

iptables -A INPUT -p icmp -s 192.168.1.155 -j DROP



Si lo que queremos es que no podamos hacer ping desde nuestra máquina:

iptables -A OUTPUT -p icmp -j DROP

Igual pero a una IP concreta:

iptables -A OUTPUT -p icmp -s 192.168.1.155 -j DROP

No tener ping a una IP pero que dicha IP no lo tenga:



Para cortar internet pero que nos puedan hacer ping:

iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

(hay otra opción, que es activando DNS)

Tener ping sólo con la mitad de la clase:
iptables -A INPUT -s 192.168.x.x -p icmp -j ACCEPT
...
copy paste...

=========================

Cortar ssh y telnet a todos los host menos a uno y hacer la prueba con el vecino:

iptables -A INPUT -s 192.168.1.157 -p tcp --dport 22:23 -j ACCEPT
iptables -A INPUT -p tcp --dport 22:23 -j DROP

Para probarlo nos vamos a otra máquina y ponemos ssh rafakatu@192.168.1.55, siendo esta IP la de nuestro equipo. Para denegarlo en lugar de admitirlo:

iptables -A INPUT -s 192.168.1.157 -p tcp --dport 22:23 -j DROP

=========================

Para hacer pruebas con FTP lo suyo es probarlo con un servidor FTP, como es proftpd:
apt-get install proftpd
proftpd
/etc/init.d/proftpd start

Cortar nuestro FTP a un usuario concreto:

iptables -A INPUT -s 192.168.1.157 -p tcp --dport 20:21 -j DROP
ó
iptables -A INPUT -s 192.168.1.157 -p ftp --dport 20:21 -j DROP
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT

Aceptar conexiones externas a nuestro FTP sólo de un host:

iptables -A INPUT -s 192.168.1.157 -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20:21 -j DROP

 =========================

Cortar internet seguro pero no el normal

iptables -A INPUT -p tcp --dport 443 -j DROP

Cortar dns, probad con nslookup y con la nevegacion a través de IP

iptables -A INPUT -p udp --sport 53 -j DROP

Más configuraciones de Firewall
Proteger servidor con IPTables

miércoles, 11 de abril de 2012

iptables: firewall de linux

¿Qué son las iptables?

Existen módulos para el kernel que permiten definir un sistema de reglas para aceptar o rechazar los paquetes o las comunicaciones que pasan por el sistema. Estos sistemas de reglas conforman lo que se conoce como firewall o cortafuegos; en otros sistemas los firewall pueden estar implementados en software y estar desvinculados del sistema operativo, pero en el caso de linux, el firewall se puede montar a nivel de kernel y no es necesario instalar un software adicional que a veces tiene agujeros.

Podemos crear un script que se ejecute al inicio en /bin/nombre.sh, para que lo podamos ejecutar desde cualquier punto de la consola (es posible que haya que darle permisos al fichero: chmod 750 nombre.sh).

Lo principal de este script es que primero ejecutamos líneas de comando para que el firewall lo cierre todo y luego empezamos a dar permisos:
#!/bin/sh
## SCRIPT de IPTABLES - ejemplo del manual de iptables
## Ejemplo de script para proteger la propia máquina
echo -n Aplicando Reglas de Firewall...

## FLUSH  de reglas
iptables  –F
iptables  –X
iptables  –Z
iptables  -t nat –F

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

## Empezamos a filtrar
# El localhost se deja (por ejemplo conexiones locales)
iptables -A INPUT -i lo -j ACCEPT

# A nuestra IP le dejamos todo
iptables -A INPUT -s ?.?.?.? -j ACCEPT <- modificar IP

# A un compañero le dejamos entrar al servidor de internet
iptables -A INPUT -s ?.?.?.? -p tcp --dport 80 -j ACCEPT <- modificar IP

# A otro compañero le dejamos usar el ssh
iptables -A INPUT -s ?.?.?.? -p tcp --dport 22 -j ACCEPT<- modificar IP

# El puerto 443 de www debe estar abierto, es un servidor web seguo.
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# El puerto 80 de www debe estar cerado, es un servidor web seguo.
iptables -A INPUT -p tcp --dport 80 -j DROP

# Y el resto, lo cerramos
iptables -A INPUT -p tcp --dport  20:21 -j DROP
iptables -A INPUT -p tcp --dport  3306 -j DROP
iptables -A INPUT -p tcp --dport  22 -j DROP
iptables -A INPUT -p tcp --dport  10000 -j DROP

echo " OK . Verifique que lo que se aplica con: iptables -L -n"
# Fin del script
Para comprobar el estado de las iptables:
iptables -L
Para comprobar el estado de las iptables después de aplicar el script:
iptables -L -n

Para comprobar el estado de los puertos del sistema con netstat:
netstat -ln

Para borrar una cadena:


iptables -D INPUT 3

...siendo 3 el número de la cadena.


Comandos iptables
Ejemplos prácticos
http://www.pello.info/filez/IPTABLES_en_21_segundos.html

miércoles, 28 de marzo de 2012

isc-dhcp-server: servidor dinámico DHCP

Para realizar esta práctica debemos tener dos máquinas virtuales, una con linux y otra con windows.

En linux instalamos el isc-dhcp-server: apt-get install isc-dhcp-server

En las settings de red de vmware, nos pasamos a NAT de la red virtual específica, que en este caso es la VMnet8 (lo hacemos en los dos virtuales -linux y windows-):



Ya en Debian, que hacemos es modificar el "nano /etc/network/interfaces", que tiene que quedar tal que así:

auto lo
iface lo inet loopback


auto eth0
iface eth0 inet static
        address 192.168.197.254
        netmask 255.255.255.0
        gateway 192.168.197.2

La direccion gateway 192.168.167.2 se refiere a la dirección IP de la red "VMware Network Adapter VMnet8", cuya ruta es, en el menú de VMWare: "Edit/Virtual network editor...", eligo el vmnet8, y ".../NAT settings":


================================================

En la última línea de nano /etc/default/isc-dhcp-server, escribimos INTERFACES="eth0"

Y en nano /etc/dhcp/dhcpd.conf, descomentamos la línea "authoritative;", que indica que el servidor DHCP reasignará direcciones a los clientes mal configurados por el motivo que sea, incluída una configuración nueva del servidor , y escribimos al final:


subnet 192.168.197.0 netmask 255.255.255.0 {
  range 192.168.197.120 192.168.197.130;
  option routers 192.168.197.2;
  option domain-name-servers 8.8.8.8;
}
Con esto le decimos que cree en la subred 192.168.197.0 y máscara 255.255.255.0, un servidor dhcp que reparta ips en el rango indicado, con puerta de enlace predeterminada 192.168.197.2 y servidor DNS 8.8.8.8 (si queremos ponerle uno secundario). Guardamos (ctrl+o), salimos (ctrl+x) y reiniciamos el servidor dhcp: /etc/init.d/isc-dhcp-server restart.

Una vez reiniciado ejecutamos la orden "/etc/init.d/isc-dhcp-server status" para ver si tenemos el servidor activo:

================================================

Abrimos nuestro windows virtual y ejecutamos en terminal "ipconfig":


Vemos cómo le ha proporcionado una ip del rango que le introdujimos en nano /etc/dhcp/dhcpd.conf.

Si queremos que a una determinada máquina de la red le de una IP concreta, habrá que introducir el siguiente código en "nano /etc/dhcp/dhcpd.conf":

host xprafa {
  hardware ethernet 00:0C:29:88:7D:EC;
  fixed-address 192.168.197.127;
}
Con esto le digo que la tarjeta de red con mac "00:0C:29:88:7D:EC" le asigne la IP "192.168.197.127", que tiene que estar dentro del rango de IPs que definimos anteriormente. Yo le he puesto al host "xprafa", pero se le puede poner el que queramos. Guardamos, reiniciamos el servidor ISC (/etc/init.d/isc-dhcp-server restart) y nos vamos a windows (hay que desactivar y activar la conexión de área local). En consola escribimos "ipconfig" y...


Vemos cómo nos cambia la IP de esta máquina por la que le definimos.

Mucha más info en "liberaliatempus.com".

viernes, 23 de marzo de 2012

Sistemas de inicio

Los sistemas de inicio se encargan de iniciar/parar los demonios necesarios en el orden correcto al encendido, apagado, inicio sólo texto, inicio gráfico, etc... del sistema:

  • Init: Sistema clásico de inicio de demonios secuencialmente en forma de árbol.
  • Niveles (runlevels): Grupo de scripts de inicio secuencia orientados a una función específica (/etc/rcX.d/)
  • 0 = Apagar, 6=Reiniciar el sistema, 1 = Inicio monousuario (root) texto, 2-6 = Inicio multiusuario: 2: Inicio texto sin red, 3: Inicio texto, 4: personalizado, 5: Inicio gráfico.
  • Archivo de configuración de init (/etc/inittab).
    # Nivel de inicio (por omisión, 2)
    id:2:initdefault:
    # Script a ejecutar al inicio
    si:sysinit:/etc/init.d/rcS
    # Que hacer en nivel monousuario (1)
    ~~:S:wait:/sbin/sulogin
    # Niveles predefinidos (según distribucion)
    # 0=Apagar, 6=Reiniciar, 1=txt monousuario (root)
    # 2-5=Multiusuario: 2 = Txt, Sin red
    l4:4:wait:/etc/init.d/rc 4
    l5:5:wait:/etc/init.d/rc 5
    l6:6:wait:/etc/init.d/rc 6
    # Comando al pulsar CTRL-ALT-DEL
    ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
    # Que hacer si se va la luz (con sistema UPS)
    pf:powerwait:/etc/init.d/powerfail start
    pn:powerfailnow:/etc/init.d/powerfail now
    po:powerokwait:/etc/init.d/powerfail stop
    # 3 = Txt, 4= Personalizado, 5 = Gráfico
    # Scripts que ejecuta en cada nivel de ejecución
    l0:0:wait:/etc/init.d/rc 0
    l1:1:wait:/etc/init.d/rc 1
    l2:2:wait:/etc/init.d/rc 2
    l3:3:wait:/etc/init.d/rc 3
    # Terminales modo texto activas (según el runlevel)
    1:2345:respawn:/sbin/getty 38400 tty1
    2:23:respawn:/sbin/getty 38400 tty2
    3:23:respawn:/sbin/getty 38400 tty3
    4:23:respawn:/sbin/getty 38400 tty4
    5:23:respawn:/sbin/getty 38400 tty5
    6:23:respawn:/sbin/getty 38400 tty6
  • Upstart: Sistema de inicio de demonios orientado a eventos.

Información del sistema

Información del sistema: 
  • top Lista información de la memoria ram, swap,
  • lscpu Lista la/s cpu/s detectadas.
  • lshw Lista los dispositivos hardware detectados.
  • lspci Lista los dispositivos pci detectados.
  • lsusb Lista los dispositivos usb detectados.
  • lspcmcia Lista los dispositivos pcmcia detectados.
  • lshal Lista dispositivos hardware detectados por el kernel.
  • lsmod Lista los módulos cargados por el kernel.
  • lsof Lista los archivos abiertos en el sistema.
  • dmesg Lista el registro de sistemas (últimas líneas).

jueves, 22 de marzo de 2012

clamav: antivirus libre

Instalamos la aplicación base: apt-get install clamav.
La base de datos de virus actualizada (desde los repositorios): apt-get install clamav-data.
El demonio que actualiza la base de datos automáticamente (desde el site del antivirus): apt-get install clamav-freshclam.
El front-end gráfico para clamscan: apt-get install clamtk.

Ejecuto la aplicación: clamtk.


En la opción 'Analizar' podemos seleccionar un archivo, un directorio, etc. En análisis recursivo, me analiza todo lo que tengo dentro, esto es, busca en todas las subcarpetas:


En 'Avanzado/Preferencias' podemos seleccionar otras opciones relativas al análisis, el arranque, etc.

Cups: servidor de impresión

Instalamos la aplicación CUPS: apt-get install cups

Para acceder, en el navegador ponemos: http://localhost:631/


Tenemos varias pestañas, vamos a la de Administración y pulsamos en el botón 'Administrar impresoras'. Si no vemos la PDF habrá que añadirla en 'Añadir impresora'. Yo la tengo por defecto:

Mediante la pestaña 'Administración' vemos que en 'Configuración del servidor', si pulsamos en 'Avanzada' nos aparecen las siguientes opciones para compartir la impresora en red:

Con esta configuración, otro, desde su máquina, y estando en el mismo grupo de trabajo, podrá imprimir con mi impresora.

martes, 20 de marzo de 2012

Copias de seguridad (tar, gzip, rsync, grsync)

Vamos a ver cómo empaquetar, cómo comprimir y cómo hacer las dos cosas a la vez:
  • Empaquetar: tar (.tar).
    • tar cvf archivo.tar /archivo/mayo/* (empaqueta)
      tar cvf prueba.tar /home/rafakatu/Escritorio/Resumen\ administracion\ linux-v0.4-base.pdf
    • tar xvf archivo.tar (desempaqueta)
      tar xvf prueba.tar
    • tar tvf archivo.tar (visualizar el contenido)
      tar tvf prueba.tar. Muestra por pantalla:
      -rwxrw-rw- rafakatu/rafakatu 496996 2012-01-11 16:33 home/rafakatu/Escritorio/Resumen administracion linux-v0.4-base.pdf
  • Comprimir: gzip (.gz).
    • (El archivo lo comprime y lo renombra como "archivo.gz")
      gzip -q /home/rafakatu/Escritorio/Resumen\ administracion\ linux-v0.4-base.pdf
    • (El archivo lo descomprime y lo deja como "archivo")
      gzip -d /home/rafakatu/Escritorio/Resumen\ administracion\ linux-v0.4-base.pdf.gz
    Nota: gzip solo comprime archivos, no directorios
  • Empaquetar y comprimir: tar con gzip (.tar.gz - .tar.z - .tgz).
    • tar czvf archivo.tar.gz /archivo/mayo/* (empaqueta y comprime)
      tar czvf prueba.tar.gz /home/rafakatu/Escritorio/vmware-tools-distrib/
    • tar xzvf archivo.tar.gz (desempaqueta y descoprime)
      tar xzvf prueba.tar.gz
    • tar tzvf archivo.tar.gz (visualiza el contenido sin extraer)
      tar tzvf prueba.tar.gz (me muestra el listado de archivos)
 Más info en: linuxtotal.com.
______________________________________________________________

rsync: La principal utilidad de rsync es la de sincronizar estructuras de árboles de directorios a través de la red, aunque puede ser utilizado perfectamente también dentro de una máquina de forma local.

Si no lo tenemos instalado lo instalamos:apt-get install rsync

Sincronizar dos directorios locales
Cómo sincronizar el contenido de una carpeta (prueba) con otra carpeta (prueba2):
 rsync -a /home/rafakatu/Escritorio/prueba/ /home/rafakatu/Escritorio/prueba2/

Notar que en ambos paths absolutos se incluye la "/" al final. Esto es importante, ya que poner /var/www/ no es lo mismo que /var/www una manera se refiere al directorio y otra al contenido, para que todo marche bien el formato debe ser idéntico en ambos. Sincronizar archivos locales con remotos
Es también bastante directo, si os fijáis en el ejemplo solo varía el destino, que en este caso se trata de una dirección remota (nos comunicamos por SSH) y proporcionamos un nombre de usuario, porteriormente nos solicitará la contraseña de ese usuario en ese equipo remoto:

rsync -avz /home/ahornero/Music/ alberto@192.168.1.30:/home/alberto/Music

El uso mas simple es el de sincronizar dos directorios cualquiera con la opción -a (copia exacta). Esta opción resume unas cuantas ejemplo:-z habilitar compresión
-v modo verbose
-r recursivo (para que recorra toda la estructura de directorios-l: para que mantenga enlaces simbólicos
-p: para que mantenga permisos en archivos y subdirectorios.-t: para que mantenga la hora y fecha
-g: para que mantenga grupo
-o: para que mantenga dueño (owner)
-D: para que mantenga archivos de dispositivo (root)
-u: evita sobreescribir archivos modificados. Esta opción es muy interesante para ingresar nuevos archivos en el destino manteniendo intactos los anteriores.  Sincronizar archivos remotos con locales
Exactamente igual que el caso anterior pero con el origen y destino cambiados:

rsync -avz alberto@192.168.1.30:/home/alberto/Music/ /home/ahornero/Music/
 Eliminar los archivos del destino
Si un archivo no se encuentra en el origen pero si en el destino podemos eliminar estas diferencias usando rsync. En este caso, usaremos la opción –delete, muy útil para ahorrar espacio.

rsync -avz –delete /home/ahornero/Music/ /media/disk/Music/
  Incluir y excluir patrones
Con rsync podemos proporcionar un patrón mediante el cual podemos incluir y excluir archivos o directorios durante la sincronización. Los comandos son sencillos de usar, –include para incluir y –exclude para excluir, seguidos del patrón en sí. El ejemplo:

rsync -avz –include ‘j*’ –exclude ‘*’ /home/ahornero/Music/ /media/disk/Music/
 Más info vía linuxhispano.net:
http://www.linuxhispano.net/2010/09/18/rsync-ejemplos-de-uso-13/http://www.linuxhispano.net/2010/09/20/rsync-ejemplos-de-uso-2/http://www.linuxhispano.net/2010/09/22/rsync-ejemplos-de-uso-33

______________________________________________________________
grsync: es el método gráfico de todo esto. Para instalarlo:

apt-get install grsync

Lo ejecutamos con 'grsync' y se abre el entorno gráfico:


Es todo mucho más intuitivo.. así que no creo que sea necesario explicar más..