domingo, 30 de diciembre de 2018

Volvemos a las andadas.

Pues no es que tenga nada que decir pero, por no dejar el blog abandonado publico esto. A lo mejor este año lo retomo.

Emulador de terminal "Termux", hay bastante información por ahí así que no voy a repetir cosas. Me está gustando bastante.

sábado, 15 de marzo de 2014

Instalar y configurar servidor casero con debian jessie.

Toda esta información que voy a reflejar aquí ha sido obtenida de la incesante búsqueda en la web, así que no hay prácticamente nada de mi cosecha, todo lo más algún "trick" o "workarround" que se me ocurrió aquel día que me golpeé la cabeza accidentalmente. Se puede decir que ha sido una labor de recopilación. Si no pongo todas las referencias o enlaces a la información original es porque ya no he sido capaz de identificarla en el interminable historial del navegador y también, por qué no decirlo, debido a que las fuentes son una copia de otra copia de otra n-ésima copia. La mía será la n-ésima + 1 y la pongo aquí para que no se me olvide lo que hice.

El escenario es el siguiente:

* Netbook de 9" Intel Atom a 1.6 Ghz 1Gb RAM con Debian Jessie CLIENTE
* Asus P4S800D-X Pentium IV a 3 Ghz 1 Gb RAM con Debian Jessie (JWM, Terminator y Virtualbox) - SERVIDOR
* Samsung Galaxy mini GT-S5570 Qualcomm MSM7227 ARMv6 600 MHz 286 Mb RAM  con Android Gingerbread rooteado, busybox, terminal emulator, supersu etc... - ROUTER
La conectividad entre los tres equipos y la red de redes ya se resolvió a grandes rasgos en el post anterior. Vamos al lío.

Primero instalo el demonio sshd en el servidor.
#aptitude install openssh-server

y tambien un cliente porque luego me hará falta
#aptitude install openssh-client
el cliente también lo instalo en la máquina cliente como dijo Perogrullo.
Voy a utilizar ifplugd para configurar la interfaz usb0
#aptitude install ifplugd
y lo configuro en /etc/default/ifplugd.conf
 1 # This file may be changed either manually or by running dpkg-reconfigure.
2 #
3 # N.B.: dpkg-reconfigure deletes everything from this file except for
4 # the assignments to variables INTERFACES, HOTPLUG_INTERFACES, ARGS and
5 # SUSPEND_ACTION.  When run it uses the current values of those variables
6 # as their default values, thus preserving the administrator's changes.
7 #
8 # This file is sourced by both the init script /etc/init.d/ifplugd and
9 # the udev script /lib/udev/ifplugd.agent to give default values.
10 # The init script starts ifplugd for all interfaces listed in
11 # INTERFACES, and the udev script starts ifplugd for all interfaces
12 # listed in HOTPLUG_INTERFACES. The special value all starts one
13 # ifplugd for all interfaces being present.
14 INTERFACES="usb0"
15 HOTPLUG_INTERFACES="usb0"
16 ARGS="-q -f -u0 -d10 -w -I"
17 SUSPEND_ACTION="stop"

y /etc/network/interfaces
 1 # This file describes the network interfaces available on your system
2 # and how to activate them. For more information, see interfaces(5).
3
4 # The loopback network interface
5 auto lo
6 iface lo inet loopback
7
8 auto usb0
9 iface usb0 inet static
10 address 192.168.42.2
11 netmask 255.255.255.0
12 gateway 192.168.42.129
Este demonio me permite encender y apagar el servidor sin necesidad de conectarle ni monitor ni teclado porque se comunica con los beep del sistema. Así puedo desconectar el router y llevármelo, que es mi teléfono de uso diario. Además esto me aporta algo de seguridad añadida, se podría decir que el teléfono es la "llave" del servidor.

Ya puedo desconectar teclado y monitor. A partir de ahora trabajo con ssh.
$ ssh 192.168.42.2
Genero un par de claves en mi máquina cliente
$ ssh-keygen
y copio el contenido de $HOME/.ssh/id_rsa.pub a ~/.ssh/authorized_keys del servidor. A partir de ahora ya no me pedirá contraseña para acceder mediante ssh.

Voy a utilizar máquinas virtuales para los distintos servicios, serán un debian wheezy con sólo lo indispensable. Para instalarlas utilizaré una mini iso con la que crearé una plantilla (plantilla-deb) con las utilidades básicas del sistema, openssh-server, htop y virtualbox-guest-additions. Las distintas máquinas serán clones con sus servicios específicos (hay que acordarse de seleccionar eñ reseteo de la dirección MAC).



Para conectarme al entorno gráfico utilizo vinagre en el cliente y xrdp en el lado del servidor.

Las guest-additions me sirven para poder montar los distintos servicios (sólo lectura)
# mount -t vboxsf www /var/www
que añadiré al archivo /etc/rc.local

El adaptador de red será el adaptador "puente" usb0 para poder darle una ip dentro de la red. Todas las máquinas pertenecerán al mismo dominio.

/etc/hosts (cliente)
 1 127.0.0.1 localhost
2 127.0.1.1 debian
3
4 #192.168.42.2 server.jorge.com server
5 192.168.42.86 apache-deb.jorge.com apache-deb
6 192.168.42.120 vsftp-deb.jorge.com vsftp-deb
7 192.168.42.51 openldap-deb.jorge.com openldap-deb
8 192.168.42.2 server.jorge.com server
9
10
11 # The following lines are desirable for IPv6 capable hosts
12 ::1     localhost ip6-localhost ip6-loopback
13 ff02::1 ip6-allnodes
14 ff02::2 ip6-allrouters
/etc/hosts (servidores)
 1 127.0.0.1 localhost
2 127.0.1.1 server.jorge.com  server
3
4 # The following lines are desirable for IPv6 capable hosts
5 ::1 localhost ip6-localhost ip6-loopback
6 ff02::1 ip6-allnodes
7 ff02::2 ip6-allrouters
y todas dispondrán de mi clave pública para dejarme acceder sin passwd.

Ahora sólo falta iniciar las máquinas de forma automática.

/etc/init.d/VM
 1 #! /bin/sh
2 # /etc/init.d/VM
3 #
4 VMUSER=jorge
5 VM1NAME= "openldap-deb"
6 VM2NAME="apache-deb"
7 VM3NAME="vsftp-deb"
8
9 case "$1" in
10   start)
11 echo "Starting VirtualBox VM...
12 sudo -H -b -u $VMUSER vboxmanage startvm "$VM1NAME" --type headless
13 sudo -H -b -u $VMUSER vboxmanage startvm "$VM2NAME" --type headless
14 sudo -H -b -u $VMUSER vboxmanage startvm "$VM3NAME" --type headless
15 ;;
16 stop)
17 echo "Saving state of Virtualbox VM...
18 sudo -H -b -u $VMUSER vboxmanage controlvm "$VM1NAME" savestate
19 sudo -H -b -u $VMUSER vboxmanage controlvm "$VM2NAME" savestate
20 sudo -H -b -u $VMUSER vboxmanage controlvm "$VM3NAME" savestate
21 ;;
22 *)
23 echo "Usage: /etc/init.d/VM {start|stop}"
24 exit 1
25 ;;
# chmod +x /etc/init.d/VM
# update-rc.d VM defaults 99 01
(Aquí tengo un problema que solucionar porque hay que parar los servicios y volver a iniciarlos para que funcionen, algo de los runlevel, creo)

Y creo que para empezar eso es todo, ha llevado bastante trabajo, pero ahora queda lo gordo porque no tengo ni idea de ssh y claves públicas y privadas, ni de apache, ni de vsftp y ni mucho menos de openldap.

A lo que si le estoy sacando partido es a su utilidad como servidor multimedia, ya que me ofrece tdt via wifi. Muy cómodo para ver el telediario sentado en el servicio.
 1 #!/bin/bash
2 ssh server killall mplayer
3 killall mplayer
4 ssh server rm stream.dump
5 ssh server mplayer --dumpstream dvb://"laSexta" & > /dev/null
6 sleep 20 && ssh server cat stream.dump | mplayer --cache=5024 --cache-min=70 -

lunes, 10 de febrero de 2014

Router Galaxy Mini


Además de teléfono, despertador, calculadora, reproductor de mp3 y radio FM. XDDD


#!/bin/bash
iptables -t nat -A FORWARD -o pdp0 -j MASQUERADE
iptables -A FORWARD -i usb0 -j ACCEPT
iptables -A FORWARD -i wlan1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward


martes, 21 de enero de 2014

Ataques por fuerza bruta. Diccionario.

Según lo poco que he leído, existen dos formas de romper la seguridad de una red wireless con encriptación WPA/WPA2.
Estas son una utilidad llamada reaver, que se basa en la debilidad de WPS (wifi protected setup) cuando no ha sido bien configurado, y las herramientas aircrack-ng, con las que se puede efectuar un ataque por fuerza bruta contra una "pre shared key " (PSK).
Para esto necesitamos capturar un handshake y disponer de un diccionario de posibles claves.
Ante la dificultad de descargar uno lo suficientemente bueno y grande(ninguno lo es XD) he optado por generar el mío propio y asegurar la inaccesibilidad de mi red ;)
Una contraseña WPA puede tener de 8 a 63 caracteres asíi que contemplar todas las posibilidades es tarea imposible. Pero se puede jugar a la lotería.

  1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4 int main (void)
5 {
6 int i = 1,j,k;
7 srand(time(NULL));
8 while(i)
9 {
10 k = (rand()%5)+8;
11 for(i = 1;i <= k;++i)
12 {
13 j = 58;
14 while((j > 57 && j < 65) || (j > 90 && j < 97))
15 {
16 j = (rand() % 75) + 48;
17 }
18 printf ("%c",j);
19 }
20 printf("\n");
21 }
22 return 0;
23 }

Esto sólo genera claves con números, mayúsculas y minúsculas de 8 a 12 caracteres. Pero menos da una piedra XD
Y no no es nada fácil


Moraleja: Las claves cuanto más largas, mejor. Y que contengan todo tipo de caracteres, incluso acentos y tabuladores y arrobas etc... A no ser que a alguno le toque la lotería va a ser prácticamente imposible romper la seguridad de una red con este método.


En /usr/share/dict/ disponemos de algún diccionario con palabras en minúscula. Podemos pasarlo a mayúscula con tr o, también capitalizar sólo la primera letra con:

cat dict-spanish1.txt | sed 's/^./\U&/g' > dict-spanish2.txt

lunes, 2 de diciembre de 2013

Usb tethering con android

# ip route show

Mostrará algunas líneas, la primera dirá algo así como default via xxx.xxx.xxx.xxx dev interfaz0.

# iptables -t nat POSTROUTING -o interfaz0 -j MASQUERADE
# iptables -P FORWARD ACCEPT

Y con esto debería funcionar.

Fuente http://www.3vium.com/index.php/blogs/67-fix-for-non-working-usb-tethering-in-android-phones-iptables-routing-issue

Como siempre Ajustes - Más ajustes - Zona Wifi y módem USB

Si no funciona puede que sea necesario

# echo 1 > /proc/sys/net/ipv4/ip_forward
# ifconfig usb0 up
# dhclient -v usb0

domingo, 10 de noviembre de 2013

Extender el escritorio con xrandr

No he encontrado la manera de extender el escritorio desde XFCE como lo haría desde gnome o kde, tan sólo podía duplicar la pantalla en los dos monitores. Pero xrandr es muy útil.
#!/bin/bash
xrandr --newmode "1280x1024" 109 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA1 1280x1024
xrandr --output VGA1 --mode 1280x1024
xrandr --output LVDS1 --auto --rotate normal --pos 0x0 --output VGA1 --auto --left-of LVDS1
para generar la nueva Modeline utilicé esto
cvt 1280 1024 60

El programa arand también puede ser útil