Underc0de

[In]Seguridad Informática => Seguridad Wireless => Mensaje iniciado por: edh_ en Enero 16, 2015, 12:46:05 PM

Título: OnionPi - Navega de forma anónima desde un punto de acceso wifi
Publicado por: edh_ en Enero 16, 2015, 12:46:05 PM
Buenas, a modo de presentación en el foro voy a postear este pequeño tutorial que hice el año pasado. A muchos de este foro les conozco de haberles leido desde hace años y me sentía incómodo por no compartir nada. Un saludo a tod@s.

Vamos a utilizar nuestra Raspberry para hacer un punto de acceso, en el cual toda la información pasa por la red TOR y al cual nosotros podremos conectarnos para navegar de forma anónima. Qué es TOR: http://es.wikipedia.org/wiki/Tor

Necesitamos:

1. Raspberry Pi, modelo B revisión 1 o 2.

2. Una tarjeta SD de 8GB o más, o un adaptador de microSD a SD y una microSD de 8GB o más. También nos puede servir una de 4 GB.

3. Un adaptador wireless USB, en concreto yo he usado un nano USB wireless con el chip Realtek, parecido a este: http://www.raspipc.es/public/home/index.php?ver=tienda&accion=verArticulo&idProducto=1035 (No me dan comisión ni nada).



1. Raspberry como AP.

Lo primero que necesitaremos hacer es configurar nuestra Raspberry como un punto de acceso wifi, pára lo cual utilizaremos hostap. Asegurate de que tienes conexión a internet vía Ethernet y continuamos con:

sudo apt-get install hostapd isc-dhcp-server
sudo apt-get update   #por si acaso.

Una vez instalado esto, pasaremos a configurar nuestro servidor DHCP. Así el punto de acceso asignará IPs de forma automática a los que se conecten.

sudo nano /etc/dhcp/dhcpd.conf
Dentro del archivo, buscamos las líneas:

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

Y las comentamos:

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Ahora buscamos estas lineas:

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

Y descomentamos la última:

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

Añadimos estas líneas al final del archivo:

subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

Guardamos: ctrl+O, enter, y salimos: ctrl+X (si estás copiando y pegando o usas nano).
Ahora vamos a configurar el dispositivo que va a correr DHCP:

sudo nano /etc/default/isc-dhcp-server
Dentro del archivo, en la línea que pone INTERFACES="", ponemos el nombre de nuestra tarjeta de red. En este caso yo estoy usando una tarjeta wifi usb rtl normal y corriente y la tendré conectada al segundo puerto usb de la raspberry, por tanto quedaría algo así:

INTERFACES="wlan1"
Debemos configurar wlan1 para que tenga una IP estática:

sudo nano /etc/network/interfaces
Quedando algo así:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
iface wlan1 inet static
address 192.168.42.1
netmask 255.255.255.0
up iptables-restore < /etc/iptables.ipv4.nat

La última linea servirá para que cuando terminemos de configurar iptables la configuración se cargue en cada reinicio.
Lo siguiente será configurar el punto de acceso, el archivo hostapd.conf, y aquí es dónde viene la trampa. Tendremos que compilar nuestro propio archivo hostapd, ya que el que nos sirven en el tutorial de la página de Adafruit solo sirve para las tarjetas wifi que venden ellos, son buenos pero no tontos. En concreto, el driver que nosotros queremos utilizar es el nl80211, vamos a ello:

Primero instalamos las librerías necesarias:

sudo apt-get install libnl-dev
(solo si te da problemas: sudo apt-get install libnl-3-dev)

Configuramos hostapd:

sudo nano /etc/hostapd/hostapd.conf
Quedando algo así:

interface=wlan1
driver=nl80211
ssid=tHor
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=mybifrost
#[http://es.wikipedia.org/wiki/Bifrost->http://es.wikipedia.org/wiki/Bifrost]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Ahora indicaremos a hostap dónde se encuentra nuestro archivo de configuración:

sudo nano /etc/default/hostapd
Buscamos:

#DAEMON_CONF=""
Y ponemos:

DAEMON_CONF="/etc/hostapd/hostapd.conf"
Que no se nos olvide guardar, que no hay que dejar espacios y ese tipo de cosas.
Ahora configuraremos y activaremos la NAT:

sudo nano /etc/sysctl.conf
Ponemos en la parte de abajo del archivo:

net.ipv4.ip_forward=1
Guardamos e iniciamos el forward:

sudo echo "1" > /proc/sys/net/ipv4/ip_forward
Ahora vamos a configurar iptables:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan1 -m state –state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPT

Y metemos el resultado en nuestro archivo de configuración:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Solo nos queda descargar y compilar hostapd:

sudo git clone git://w1.fi/srv/git/hostap.git
cd hostap/hostapd
sudo cp defconfig .config
sudo nano .config

Buscamos esto:

#CONFIG_DRIVER_NL80211=y
Y lo descomentamos:

CONFIG_DRIVER_NL80211=y
Guardamos, salimos, cruzamos los dedos y:

sudo make
Bueno, un problema menos, ahora vamos a ponerlo todo en su sitio:

sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIGINAL
sudo mv hostapd /usr/sbin

Permisos:

sudo chmod 755 /usr/sbin/hostapd
Comprobamos que levanta el punto de acceso, no hace falta que nos conectamos todavía:

sudo service hostapd start
sudo service isc-dhcp-server start

Lo añadimos para que inicie en boot:

sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

Y podemos pasar a la parte 2.
PD: según Adafruit, para algunas distribuciones puede ser necesario quitar el wpasupplicant, en mi caso utilizo pwnpi y no ha sido necesario, pero el comando es:

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/
2. OnionPI

Esta parte es mucho más corta, instalamos tor:

sudo apt-get install tor
Configuramos:

sudo nano /etc/tor/torrc
Copiamos esto arriba del todo del archivo:

Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.42.1
DNSPort 53
DNSListenAddress 192.168.42.1

Volvemos a configurar iptables, borramos lo antiguo:

sudo iptables -F
sudo iptables -t nat –F

Ponemos lo nuevo:

sudo iptables -t nat -A PREROUTING -i wlan1 -p tcp --dport 22 -j REDIRECT --to-ports 22
sudo iptables -t nat -A PREROUTING -i wlan1 -p udp --dport 53 -j REDIRECT --to-ports 53
sudo iptables -t nat -A PREROUTING -i wlan1 -p tcp --syn -j REDIRECT --to-ports 9040
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

Y por si te has hecho la picha un lio, el archivo /etc/iptables.ipv4.nat tiene que quedar así:

# Generated by iptables-save v1.4.14 on Thu Feb  6 02:10:47 2014
*filter
:INPUT ACCEPT [482:52092]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [564:69516]
-A FORWARD -i eth0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan1 -o eth0 -j ACCEPT
COMMIT
# Completed on Thu Feb  6 02:10:47 2014
# Generated by iptables-save v1.4.14 on Thu Feb  6 02:10:47 2014
*nat
:PREROUTING ACCEPT [1:185]
:INPUT ACCEPT [2:245]
:OUTPUT ACCEPT [32:1920]
:POSTROUTING ACCEPT [32:1920]
-A PREROUTING -i wlan1 -p tcp -m tcp --dport 22 -j REDIRECT --to-ports 22
-A PREROUTING -i wlan1 -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING -i wlan1 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIREC$
-A POSTROUTING -o eth0 -j MASQUERADE

Creamos el log por si nos da problemas, esperemos que no:

sudo touch /var/log/tor/notices.log
sudo chown debian-tor /var/log/tor/notices.log
sudo chmod 644 /var/log/tor/notices.log

Iniciamos tor:

sudo service tor start
Al boot:

sudo update-rc.d tor enable
¡Y listo! Ahora es momento de meterse al punto de acceso, ir a cualesmiip.com y comprobar que todo está bien.

Puedo subir una imagen completa, para que sea solo descargar y meter en la SD. Podeis poner el tutorial donde queráis, pero no se os olvide mencionar que eso hace llorar al niño Jesus.

EDH_

Fuentes:

http://learn.adafruit.com/onion-pi/
http://wireless.kernel.org/en/users/Documentation/hostapd

Título: Re:OnionPi - Navega de forma anónima desde un punto de acceso wifi
Publicado por: Gabriela en Enero 16, 2015, 03:16:13 PM
Edh_, bienvenido a nuestro foro.!!!

Aprovecho y te agradezco tu contribución.
Comento que si alguien tiene problemas que lo formule en este post en lugar de hacerlo al correo que dejas,  así  nos sirve a todos.

Esperamos mas aportes y que te sientas muy a gusto con nosotros!!

Gabi.

Título: Re:OnionPi - Navega de forma anónima desde un punto de acceso wifi
Publicado por: Cl0udswX en Enero 16, 2015, 11:14:15 PM
Muy buen material, claro y didactico, gracias por compartir con nosotros y gracias por ser parte de la comunidad.

Este mensaje estaria muy bien dentro de la seccion de seguridad wireless   8)


Saludos.
Título: Re:OnionPi - Navega de forma anónima desde un punto de acceso wifi
Publicado por: Gabriela en Enero 16, 2015, 11:20:45 PM


CitarEste mensaje estaria muy bien dentro de la seccion de seguridad wireless

Cumplido!! ;)

Gabi