lunes, 3 de agosto de 2015

API Dropbox

Descargar el Script

git clone https://github.com/andreafabrizi/Dropbox-Uploader/

ó

curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh

Dar Permisos

 $chmod +x dropbox_uploader.sh
 $./dropbox_uploader.sh


Crear API en tu cuenta

Darle los permisos al API

https://www.dropbox.com/developers/apps

Copiar el App Key y el App Secret


Ejecutar el Script

En el script van a pedir las credenciales y te pedira que ingreses a un link en un navegador y permitas que acceda.

Comandos útiles:

Listar los archivos:

./dropbox_uploader.sh list

Información de la cuenta

./dropbox_uploader.sh info

Subir archivos

$ ./dropbox_uploader.sh upload snort.pdf  Documents/manuals

Descargar una carpeta

$ ./dropbox_uploader.sh download Documents/manuals ./manuals

Crear una carpeta nueva

$ ./dropbox_uploader.sh mkdir Documents/whitepapers

Borrar un folder

$ ./dropbox_uploader.sh delete Documents/manuals

Fuente:
https://github.com/andreafabrizi/Dropbox-Uploader
http://askubuntu.com/questions/558732/how-to-using-dropbox-cli

martes, 14 de julio de 2015

Tips Docker

Correr un docker
docker run -it centos /bin/bash

-i -> va a preservar el container (corre en modo interactivo (?))
-t -> Se va a conectar al shell
-d -> Corre el daemon
inspect -> Puedes soliciltar informacion detallada (te retorna un JSON)

Verificar el S.O.
/etc/os-release (no es un comando docker, pero puedes mirar la informacion del os)

nmap
nmap localhost (verificar que puertos están abiertos)
Verificar la RAM
free -mh

Verificar espacio de disco
df -h

Agregar usuario
usermod -a -G docker [user]

Instalacion
apt-get install -y docker.io
service docker.io status

Files de contenedores
ls -l /var/lib/docker/aufs/diff/

Mirar las imagenes descargadas
docker images

Ver la configuracion de los contenedores
/var/lib/docker/containers/

Ver contenedores
docker ps -a

Commit
Toma las modificiaciones de un contenedor y crea una nueva imagen

docker commit 3802a4a2a2e9 user_sam/thriftdev:0.9.1

3802a4a2a2e9 -> ID del contenedor
user_sam/thriftdev:0.9.1 -> Nombre de la nueva imagen

docker commit [id o name del contenedor] [Nombre de la nueva imagen]
Entonces he creado una imagen en base de un contenedor que ya estaba creado

Descarga de Imagenes
docker pull fedora (descargara la ultima, mejor dicho el de default. Saldra informacion como latest)
docker pull fedora = docker pull fedora:latest
docker pull fedora:20 (bajara la version 20)

Version de Docker
docker -v
docker version

Informacion de Docker
docker info

Checar si esta actualizado
wget -qO- https://get.docker.com/gpg | apt-key add -

Agregar un source a la lista de apt
echo deb http://get.docker.com/ubuntu docker main > /etc/apt/sources.list/docker.list

Borrar Imagenes
docker rmi [nombre de la imagen]

Borrar contenedores
docker rm [nombre o id del contenedor]

Crear un repositorio (es el que almacena las imagenes que estan tageadas)
docker tag ubuntu:12.04.5 bobsmith/ubuntu:prod_2015-02-15

DOCKER FILE
FROM -> Primera instruccion (Indica la imagen de donde va a partir)
MAINTAINER -> Autor y correo
RUN -> Ejecutar comandos en exec. RUN apt-get install........
EXPOSE -> Va a especificar un puerto para el contenedor
CMD -> Define un ejecutable para el contenedor

History
docker history [nombre de la imagen]

Mirar la imagenes con las capas que contiene
docker images --tree

Para ver las capas de imagenes que tiene
/var/lib/docker/aufs/layers/.

Ejecutar algun comando
docker run ubuntu /bin/bash -c "echo 'cool content' > /tmp/cool-file"

Guardar una imagen en .tar
docker save -o /tmp/backup.tar alex
alex -> Nombre de la imagen

Descomprimir la imagen guardada
tar -tf /tmp/backup.tar

Para cargar la imagen guardada
docker load -i /tmp/alex.tar

Entrar a un docker que esta corriendo
docker exec -it [container-id] bash
docker attach [container-id]

Salir del contenedor sin que se apague 
ctrl+p ctrl+q

Agregar un nombre al contenedor
docker run -it --name=[nombre del contenedor] [nombre de la imagen]
docker attach [nombre o id del contenedor] -> Debe estar prendido el contenedor

Inspeccionar contenido importante del contenedor
docker inspect [nombre o id del contenedor]

Archivos de configuracion de red del contenedor
/var/lib/docker/container/[id del contenedor]/.

Los /etc/resolv.conf de los contenedores se copian igual que el de la maquina anfitrion

Exponer puertos

1er Metodo
Se puede construir a partir de un Dockerfile la nueva imagen con el puerto abierto.
Construir Dockerfile
#Test para el modue de networking
FROM ubuntu:15.04
RUN apt-get update && apt-get install -y iputils-ping traceroute apache2
EXPOSE 80
ENTRYPOINT ["apache2ctl"]
CMD ["-D","FOREGROUND"]


docker build -t="apache-img" .

docker run -d -p 5001:80 --name=web1 apache-img

2do Metodo
docker run -d -p 5001:80 --name=web1 apache-img

Ver los puertos de un contenedor
docker port [Nombre del contenedor]

Si quieres que se abra un puerto UDP
docker run -d -p 5002:80/udp --name=web2 apache-img

Puedes asignar a una ip especifica de tu interfaz donde se abra el puerto
docker run -d -p 192.168.56.50:5003:80 --name=web3 apache-img


Si hay proxy
Hay que tener en cuenta en el yum

/etc/yum.conf
[main]
proxy=http://proxy-rtp-1.cisco.com:80/

Instalación Docker Ubuntu 14.04 Trusty

1.- Instalar con la paquetería

  • apt-get -y install docker.io
2.- Crear enlaces

  • ln -sf /usr/bin/docker.io /usr/local/bin/docker
  • sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
3.- Empiece cuando el servidor bootee
  • update-rc.d docker.io defaults

Listo :)

domingo, 7 de junio de 2015

Instalacion Ruby on Rails Ubuntu Server 14.04.2 Trusty


Distribucion:

root@RubyonRails:/home/alexander# cat /etc/os-release 
NAME="Ubuntu"
VERSION="14.04.2 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.2 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"


Instalación:

apt-get -y update

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

curl -L get.rvm.io | bash -s stable

source /etc/profile.d/rvm.sh

rvm requirements     

rvm install ruby --latest
rvm use [version] --default
rvm rubygems current


Verificar la instalación:

root@RubyonRails:/home/alexander# ruby --version
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
root@RubyonRails:/home/alexander# rails --version
Rails 4.2.1

Crear un nuevo proyecto

En una carpeta ya creada:

rails new blog

rails server           -> Va a levantar un servidor web con la direccion localhost:3000

rails server -b 0.0.0.0 -> Va a levantar un servidor web en todas las interfaces. Asi se podra acceder remotamente.

jueves, 23 de abril de 2015

Reiniciar ASA 5505

Para resetear un ASA 5505. Simplemente hay que hacer lo siguiente:

1.- Desconectar el ASA y volverlo a prender.

2.-  Desde la consola presionar ESC hasta que aparezca el modo rommon.

3.-  Ingresar los siguientes comandos:


  • rommon #1> confreg 0x41
  • rommon #2> boot
4.- Boteaara y listo :)

martes, 24 de marzo de 2015

Tunel IPv6IP



La presente, es para saber un poco sobre el tunel de Ipv6 sobre Ipv4

Topología (Sacado de CCNP Route)



La parte de agregar IP's no lo consideraré aquí:

Tunnel desde R1 a R3

R1(config)#interface Tunnel0
R1(config-if)# ipv6 address FEC0::13:1/112
R1(config-if)# tunnel source Serial1/0
R1(config-if)# tunnel destination 172.16.23.3
R1(config-if)# tunnel mode ipv6ip


R3(config)#interface Tunnel0
R3(config-if)# ipv6 address FEC0::13:3/112
R3(config-if)# tunnel source Serial1/0
R3(config-if)# tunnel destination 172.16.23.1
R3(config-if)# tunnel mode ipv6ip


Prueba de Ping



Tomar en cuenta lo siguiente:


La dirección que aparece como Link-Local Address viene de la direccion 172.16.23.3


Igual se puede levantar EIGRP en el tunel, y si agregamos las loopbacks lo vamos a ver. Y sin agregar EIGRP en las interfaces seriales ya que no es necesario.

Saludos :)

sábado, 21 de marzo de 2015

Topologia DHCP Servidor en Debian

Hoy me animè en levantar un servidor DHCP en Debian. Y probarlo en GNS3.


1.- Cree la topología como se muestra.


2.- El servidor Debian esta conectado en un Vmware. En el cual tiene como interfaces las siguientes.


3.- En el cual, yo normalmente uso el eth0 como NAT para conectarme. El eth1 va a ser usado para el DHCP.


          Configuración:

          1.- Instalamos el paquete con el comando: aptitude install isc-dhcp-server


2.- Para que pueda funcionar el Servidor debemos especificar primero por cual interfaz va a
trabajar y segundo que subred va a dar.
Para especificar por cual interfaz va a trabajar, se debe hacer en el archivo:  
/etc/default/isc-dhcp-server como sigue, en el cual solo he agregado la interfaz eth1 para
que sea escuchada.



Luego modificamos el archivo /etc/dhcp/dhcpd.conf en el cual básicamente he
agregado la red que va a trabajar y el dns que va a adquirir





3.- Reiniciamos el servicio: /etc/init.d/isc-dhcp-server restart


4.- Probamos el Servicio :)



Y listo :)! Gracias :)!




PLUS:

Si se desea que el Servidor DHCP siempre le de una IP a un host. Entonces debemos agregar la MAC address.






En el cual, le vamos a dar la IP 192.168.1.115 . Tomar en cuenta, que para que no haiga problemas, se filtra ese IP en el rango dado.

Para observar como va los mensajes, se usa el comando tail -f /var/log/syslog

El cual se observa lo siguiente:


Y listo :)


Saludos :)






miércoles, 18 de marzo de 2015

NTP Server y Configuración en Cisco

Para poder configurar un servidor NTP en Debian se hace como sigue:


  1. Ejecutamos el comando: aptitude install ntp

     2.  Luego editamos el archivo /etc/ntp.conf


     3.  Editamos el servidor NTP con el #. Y en mi caso agrego los servidores NTP de sudamérica.

         Quedaría como:
          #server 0.debian.pool.ntp.org iburst
          #server 1.debian.pool.ntp.org iburst
          #server 2.debian.pool.ntp.org iburst
          #server 3.debian.pool.ntp.org iburst
          server 0.south-america.pool.ntp.org
          server 1.south-america.pool.ntp.org
          server 2.south-america.pool.ntp.org
          server 3.south-america.pool.ntp.org

         


     4. Reiniciamos el servicio con el comando: /etc/init.d/ntpd restart




CISCO:

En el dispositivo Cisco, configuramos a que servidor es. Y hay que decirle que en mi caso, en Perú es timezone UTC -5.

La configuración es la siguiente:

Router(config)# ntp server 172.18.0.1
Router(config)# clock timezone UTC -5 0

Para verificar que esta bien, ejecutamos el comando:

Router# show clock
10:24:32.727 UTC Wed Mar 18 2015

Router#show ntp associations

      address         ref clock     st  when  poll reach  delay  offset    disp
*~172.18.0.1      200.160.7.186     2    17    64  377     6.0   15.80    16.0
 * master (synced), # master (unsynced), + selected, - candidate, ~ configured


Y listo :)

domingo, 1 de marzo de 2015

Proteger tus carpetas con .htaccess y .htpasswd

En la carpeta que quieres proteger, crear el archivo .htaccess e insertar lo siguiente

.htaccess

AuthType Basic
AuthName "AREA RESTRINGIDA. Lo siento :("
AuthUserFile /var/www/configuraciones/.htpasswd
require valid-user

.htpasswd

Para generar los usuarios y password para el acceso restringido se debe crear en este enlace.

http://www.e2.u-net.com/htaccess/make.htm

Lo que te bota el aplicativo insertarlo en el .htpasswd


Apache2

Para que el servidor web reconozca el .htaccess y .htpasswd hay que poner el Apache2 de modo en escritura.

1.- Ingresar el comando: a2enmod rewrite
2. Modificar el archivo /etc/apache2/sites-available/default . En vez de none se debe cambiar por All
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
 AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

3. Reiniciar el apache2: /etc/init.d/apache2 restart

Probarlo :)


Shell Backup y solicitud de snmp_set



Genera un backup cada vez que se ejecuta

root@stknetwork04:/home/shell# cat backup_tftp.sh
#!/bin/bash
TIME=$(date)
mkdir /var/www/configuraciones/"$TIME"
cp -p /home/telecom1/* /var/www/configuraciones/"$TIME"/


Recibe IP y el nombre del archivo para el TFTP

root@stknetwork04:/home/shell# cat snmp_set.sh
#!/bin/bash
IP=$1
FILE=$2
snmpset -c statkraft -v 2c $IP 1.3.6.1.4.1.9.9.96.1.1.1.1.2.336 i 1
snmpset -c statkraft -v 2c $IP 1.3.6.1.4.1.9.9.96.1.1.1.1.3.336 i 4
snmpset -c statkraft -v 2c $IP 1.3.6.1.4.1.9.9.96.1.1.1.1.4.336 i 1
snmpset -c statkraft -v 2c $IP 1.3.6.1.4.1.9.9.96.1.1.1.1.5.336 a 172.18.0.69
snmpset -c statkraft -v 2c $IP 1.3.6.1.4.1.9.9.96.1.1.1.1.6.336 s $FILE
snmpset -c statkraft -v 2c $IP 1.3.6.1.4.1.9.9.96.1.1.1.1.14.336 i 1

jueves, 29 de enero de 2015

BACKUP DE CONFIGURACIONES A TRAVES DE TFTP CON SNMP

Cuando quise realizar un backup de un equipo de red a traves de TFTP de manera automática, había dos formas.

 1ro. Hacerlo a través de SNMP, mandandole un SNMP set con una serie de detalles que pondré ahora.

2do. A través de Kron, haciendo que a determinada hora, el equipo de red mande su archivo de configuración.


Hoy me enfrascaré a lo primero

Para ello, se debe ingresar los siguientes comandos:

snmpset -c [comunidad] -v 2c [ip-dispositivo] 1.3.6.1.4.1.9.9.96.1.1.1.1.2.336 i 1
snmpset -c [comunidad] -v 2c [ip-dispositivo] 1.3.6.1.4.1.9.9.96.1.1.1.1.3.336 i 4
snmpset -c [comunidad] -v 2c [ip-dispositivo] 1.3.6.1.4.1.9.9.96.1.1.1.1.4.336 i 1
snmpset -c [comunidad] -v 2c [ip-dispositivo] 1.3.6.1.4.1.9.9.96.1.1.1.1.5.336 a [ip-servidor TFTP]
snmpset -c [comunidad] -v 2c [ip-dispositivo] 1.3.6.1.4.1.9.9.96.1.1.1.1.6.336 s [nombre del archivo]
snmpset -c [comunidad] -v 2c [ip-dispositivo] 1.3.6.1.4.1.9.9.96.1.1.1.1.14.336 i 1
 
 
Buscando por diferentes webs encontré lo que significa.

1.3.6.1.4.1.9.9.96.1.1.1.1.2.336 i 1
ccCopyProtocol: Se le declara que tipo de protocolo de transferencia va a utilizar.
  1. tftp
  2. ftp
  3. rcp
  4. scp
  5. sftp

1.3.6.1.4.1.9.9.96.1.1.1.1.3.336 i 4 ccCopySourceFileType: Que tipo de archivo deseas:
  1. networkFile
  2. iosFile
  3. startupConfig
  4. runningConfig
  5. terminal
  6. fabricStartupConfig

1.3.6.1.4.1.9.9.96.1.1.1.1.4.336 i 1 ccCopyDestFileType: Especificar que tipo de archivo deseas:
  1. networkFile
  2. iosFile
  3. startupConfig
  4. runningConfig
  5. terminal
  6. fabricStartupConfig

1.3.6.1.4.1.9.9.96.1.1.1.1.5.336 a [server TFTP IP] ccCopyServerAddress: La direccion del servidor TFTP.

snmpset -c [comunidad]-v 2c [ip del dispositivo]  1.3.6.1.4.1.9.9.96.1.1.1.1.6.336 s [nombre del archivo]
ccCopyFileName: Puedes decirle el path del archivo si deseas.


1.3.6.1.4.1.9.9.96.1.1.1.1.14.336 i 1 ccCopyEntryRowStatus: The status of this table entry. Once the entry status is set to active, the associated entry cannot be modified until the request completes (ccCopyState transitions to ‘successful’ or ‘failed’ state). The object can be:
  1. active
  2. notInService
  3. notReady
  4. createAndGo
  5. createAndWait
  6. destroy