Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Activa tu VPN GRATIS desde cualquier OS o celular

Tienes problemas para acceder a contenido restringido por países en internet? Creo que a muchos nos ha pasado con servicios como Youtube, Netflix, etc. por nombrar algunos. Ahora hay una forma rápida y efectiva de solucionar ese problema con un VPN. Esto no es nuevo dirás y tienes razón, lo que es nuevo es encontrar este servicio gratuito para los tres OS principales (Linux, Windows y Mac) ademas de Android y iOS. La empresa se llama FrootVPN y por el momento el servicio lo están dando totalmente gratis, quien sabe por cuanto tiempo así que si estas leyendo esto, apúrate y crea una cuenta ;-)

Requerimientos


Linux Ubuntu (aunque con otras distribuciones Linux debe ser parecido el proceso). En este articulo te muestro como instalarlo

-Instalamos OpenVPN
sudo apt-get install openvpn

-Descargamos el archivo de configuración de FrootVPN
sudo wget https://www.frootvpn.com/files/frootvpn.ovpn -O /etc/openvpn/frootvpn.conf

-Agregamos en la primera linea de resolv.conf el servidor DNS de FrootVPN
sudo vi /etc/resolv.conf
nameserver 80.67.0.2

-Navegamos a la pagina de FrootVPN y nos creamos una cuenta totalmente gratis escribiendo un nombre de usuario, nuestro email (debe ser verdadero ya que sera utilizado por la FrootVPN para enviarnos notificaciones) y una contraseña. Damos click al botón Get started

-Veremos otra pagina con la confirmación de creación de la cuenta

-Iniciamos el servicio de OpenVPN y le damos el usuario y contraseña que escribimos cuando creamos la cuenta vía web
sudo service openvpn start
 * Starting virtual private network daemon(s)...                                                                                          *   Autostarting VPN 'frootvpn'                                                                                                                 Enter Auth Username:drivemeca
Enter Auth Password:

-Verificamos en logs el inicio correcto de OpenVPN
tail -f /var/log/syslog
Oct 27 16:59:19 drivemeca-desktop ovpn-frootvpn[10977]: OpenVPN 2.3.2 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Feb  4 2014
Oct 27 16:59:30 drivemeca-desktop ovpn-frootvpn[10977]: Socket Buffers: R=[212992->131072] S=[212992->131072]
Oct 27 16:59:30 drivemeca-desktop ovpn-frootvpn[10978]: UDPv4 link local: [undef]
Oct 27 16:59:30 drivemeca-desktop ovpn-frootvpn[10978]: UDPv4 link remote: [AF_INET]178.73.212.198:1195
Oct 27 16:59:30 drivemeca-desktop ovpn-frootvpn[10978]: TLS: Initial packet from [AF_INET]178.73.212.198:1195, sid=a2cb49d1 2d3a5f59
Oct 27 16:59:30 drivemeca-desktop ovpn-frootvpn[10978]: WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Oct 27 16:59:32 drivemeca-desktop ovpn-frootvpn[10978]: VERIFY OK: depth=1, C=SE, ST=QQ, L=FrootTown, O=FrootOrg, OU=changeme, CN=changeme, name=changeme, emailAddress=mail@host.domain
Oct 27 16:59:32 drivemeca-desktop ovpn-frootvpn[10978]: VERIFY OK: nsCertType=SERVER
Oct 27 16:59:32 drivemeca-desktop ovpn-frootvpn[10978]: VERIFY OK: depth=0, C=SE, ST=QQ, L=FrootTown, O=FrootOrg, OU=changeme, CN=server, name=changeme, emailAddress=mail@host.domain
Oct 27 16:59:33 drivemeca-desktop ovpn-frootvpn[10978]: Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Oct 27 16:59:33 drivemeca-desktop ovpn-frootvpn[10978]: Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Oct 27 16:59:33 drivemeca-desktop ovpn-frootvpn[10978]: Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Oct 27 16:59:33 drivemeca-desktop ovpn-frootvpn[10978]: Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Oct 27 16:59:33 drivemeca-desktop ovpn-frootvpn[10978]: Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Oct 27 16:59:33 drivemeca-desktop ovpn-frootvpn[10978]: [server] Peer Connection Initiated with [AF_INET]178.73.212.198:1195
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: PUSH: Received control message: 'PUSH_REPLY,ifconfig-ipv6 2a00:1a28:1164:1::1019/64 2a00:1a28:1164:1::1,dhcp-option DNS 80.67.0.2,dhcp-option DNS 91.213.246.2,redirect-gateway def1,route-ipv6 2000::/3,tun-ipv6,route-gateway 46.246.72.33,topology subnet,ping 10,ping-restart 160,ifconfig 46.246.72.59 255.255.255.224'
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: OPTIONS IMPORT: timers and/or timeouts modified
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: OPTIONS IMPORT: --ifconfig/up options modified
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: OPTIONS IMPORT: route options modified
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: OPTIONS IMPORT: route-related options modified
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: ROUTE_GATEWAY 192.168.1.1/255.255.255.0 IFACE=eth0 HWADDR=00:30:67:cb:6c:3d
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: ROUTE6: default_gateway=UNDEF
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: TUN/TAP device tun0 opened
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: TUN/TAP TX queue length set to 100
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: do_ifconfig, tt->ipv6=1, tt->did_ifconfig_ipv6_setup=1
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: /sbin/ip link set dev tun0 up mtu 1500
Oct 27 16:59:36 drivemeca-desktop NetworkManager[1184]:    SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/tun0, iface: tun0)
Oct 27 16:59:36 drivemeca-desktop NetworkManager[1184]:    SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/tun0, iface: tun0): no ifupdown configuration found.
Oct 27 16:59:36 drivemeca-desktop NetworkManager[1184]: <warn> /sys/devices/virtual/net/tun0: couldn't determine device driver; ignoring...
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: /sbin/ip addr add dev tun0 46.246.72.59/27 broadcast 46.246.72.63
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: /sbin/ip -6 addr add 2a00:1a28:1164:1::1019/64 dev tun0
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: /sbin/ip route add 178.73.212.198/32 via 192.168.1.1
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: /sbin/ip route add 0.0.0.0/1 via 46.246.72.33
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: /sbin/ip route add 128.0.0.0/1 via 46.246.72.33
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: add_route_ipv6(2000::/3 -> 2a00:1a28:1164:1::1 metric -1) dev tun0
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: /sbin/ip -6 route add 2000::/3 dev tun0
Oct 27 16:59:36 drivemeca-desktop ovpn-frootvpn[10978]: Initialization Sequence Completed

-Con ifconfig podemos ver la interface tun creada
cabrera@drivemeca-desktop:~$ ifconfig 
docker0   Link encap:Ethernet  HWaddr 56:84:7a:fe:97:99  
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 00:30:67:cb:6c:3d  
          inet addr:192.168.1.228  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::230:67ff:fecb:6c3d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:230256 errors:0 dropped:1 overruns:0 frame:0
          TX packets:197887 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000 
          RX bytes:263720019 (263.7 MB)  TX bytes:27500133 (27.5 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:21435 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21435 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1456757 (1.4 MB)  TX bytes:1456757 (1.4 MB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:46.246.72.59  P-t-P:46.246.72.59  Mask:255.255.255.224
          inet6 addr: 2a00:1a28:1164:1::1019/64 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:33764 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28126 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:31419183 (31.4 MB)  TX bytes:4062928 (4.0 MB)

-Y con route la ruta de salida por el VPN
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         46.246.72.33    128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
46.246.72.32    0.0.0.0         255.255.255.224 U     0      0        0 tun0
128.0.0.0       46.246.72.33    128.0.0.0       UG    0      0        0 tun0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
178.73.212.198  192.168.1.1     255.255.255.255 UGH   0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

A partir de este momento nuestra navegación y demás protocolos debería estar saliendo por la ruta VPN encriptada. Usas un servicio de VPN? Cual, desde que OS?
Si te resulto útil este articulo, se social, haz un tweet, compártelo con otros por medio de los botones o sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Crea tu servidor web con una Raspberry Pi

Para tener tu propio servidor web ya no es necesario contar con un super equipo; basta con tener una board Raspberry Pi. Aun asi aclaro que sus prestaciones no serán las mismas pero para motivos de investigación, un proyecto casero/oficina, funcionara perfecto. Para este articulo supondré que ya estas familiarizado con la Raspberry Pi y tienes instalado Raspbian (versión linux debian para esta board). No lo tienes aun? En este articulo te enseño a instalar NOOBS el cual lo trae incluido. 



-Actualizamos nuestro Raspbian
sudo apt-get update
sudo apt-get dist-upgrade

-Instalamos requerimientos
sudo apt-get install php5-fpm libgd2-xpm libpcrecpp0 libxpm4 nginx fcgiwrap

-Creamos un directorio para nuestros proyectos web
sudo mkdir /var/www

-Creamos index.php para verificar módulos cargados
sudo vi /var/www/index.php
<?php
 phpinfo();
?>

-Modificamos sus permisos para que lo pueda leer nginx
sudo chown -R www-data:www-data /var/www

-Modificamos la configuración de nginx
sudo vi /etc/nginx/sites-available/default
server {
        root /var/www;
        index index.php index.html index.htm;

        location ~ .php$ {
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

-Reiniciamos el servicio de nginx
sudo service nginx restart

-Navegamos con un browser a la dirección ip de nuestro Raspberry Pi a verificar los módulos php cargados

-Modificamos la configuración de fpm
sudo vi /etc/php5/fpm/php-fpm.conf
process.max = 2

-Optimizamos nginx a solo ejecutar un proceso (Raspberry Pi no tiene tanta memoria y podemos quedar sin recursos en la medida que aumente la carga)
sudo vi /etc/nginx/nginx.conf
worker_processes 1;

-Reiniciamos los servicios
sudo service nginx restart
sudo service php5-fpm restart
sudo service fcgiwrap restart

Con esto ya tenemos un eficiente servidor web nginx con FASTCGI. Usarias Raspberry Pi como servidor web, en que proyecto?
Si te resulto útil este articulo, se social, haz un tweet, compártelo con otros por medio de los botones o sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como activar un Raspberry Pi como un Access Point


Raspberry Pi, esa multifacetica board que nos invita a investigar por medio de la electrónica o sacarle provecho a linux instalado en ella.
Una de las posibilidades es usarla como AP (Access Point o punto de acceso wifi), para esto debemos tener una interfaz USB WiFi las cuales por lo general las venden en bundle con la board o se pueden comprar por separado. Como ya imaginaran, hoy nuestro tema sera instalar y configurar paso a paso un AP en una raspberry pi. Daré por hecho que tienes ya instalado Raspbian (debian para raspberry) o sino, es muy fácil instalarlo por medio de NOOBS como muestro en este anterior articulo.

Requerimientos


  • Raspberry Pi
  • Interfaz USB WiFi
  • Nuestro AP tendrá la ip 192.168.42.1 y compartirá por DHCP esta subred


-Instalamos dependencias
sudo apt-get install libnl1 libnl-dev pkg-config gcc hostapd nginx isc-dhcp-server iptables iptables-persistent

-Descargamos el paquete que nos permitirá crear el AP
wget -c https://www.kernel.org/pub/software/network/iw/iw-3.15.tar.gz

-Descomprimimos, entramos a su directorio y compilamos los fuentes
tar xzvf iw-3.15.tar.gz
cd iw-3.15/
make

-Verificamos las capacidades de la interfaz USB WiFi que tenemos conectada. Debemos tener disponible el modo AP como se ve marcado en rojo debajo
./iw list
Wiphy phy0
max # scan SSIDs: 4
max scan IEs length: 2257 bytes
Retry short limit: 7
Retry long limit: 4
Coverage class: 0 (up to 0m)
Device supports RSN-IBSS.
Supported Ciphers:
* WEP40 (00-0f-ac:1)
* WEP104 (00-0f-ac:5)
* TKIP (00-0f-ac:2)
* CCMP (00-0f-ac:4)
Available Antennas: TX 0 RX 0
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
Band 1:
Capabilities: 0x172
HT20/HT40
Static SM Power Save
RX Greenfield
RX HT20 SGI
RX HT40 SGI
RX STBC 1-stream
Max AMSDU length: 3839 bytes
No DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 2 usec (0x04)
HT RX MCS rate indexes supported: 0-7, 32
TX unequal modulation not supported
HT TX Max spatial streams: 1
HT TX MCS rate indexes supported may differ
Bitrates (non-HT):
* 1.0 Mbps
* 2.0 Mbps (short preamble supported)
* 5.5 Mbps (short preamble supported)
* 11.0 Mbps (short preamble supported)
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
Frequencies:
* 2412 MHz [1] (20.0 dBm)
* 2417 MHz [2] (20.0 dBm)
* 2422 MHz [3] (20.0 dBm)
* 2427 MHz [4] (20.0 dBm)
* 2432 MHz [5] (20.0 dBm)
* 2437 MHz [6] (20.0 dBm)
* 2442 MHz [7] (20.0 dBm)
* 2447 MHz [8] (20.0 dBm)
* 2452 MHz [9] (20.0 dBm)
* 2457 MHz [10] (20.0 dBm)
* 2462 MHz [11] (20.0 dBm)
* 2467 MHz [12] (20.0 dBm) (no IR)
* 2472 MHz [13] (20.0 dBm) (no IR)
* 2484 MHz [14] (20.0 dBm) (no IR)
Supported commands:
* new_interface
* set_interface
* new_key
* start_ap
* new_station
* new_mpath
* set_mesh_config
* set_bss
* authenticate
* associate
* deauthenticate
* disassociate
* join_ibss
* join_mesh
* set_tx_bitrate_mask
* frame
* frame_wait_cancel
* set_wiphy_netns
* set_channel
* set_wds_peer
* probe_client
* set_noack_map
* register_beacons
* start_p2p_device
* set_mcast_rate
* connect
* disconnect
Supported TX frame types:
* IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
Supported RX frame types:
* IBSS: 0x40 0xb0 0xc0 0xd0
* managed: 0x40 0xd0
* AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* mesh point: 0xb0 0xc0 0xd0
* P2P-client: 0x40 0xd0
* P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* P2P-device: 0x40 0xd0
software interface modes (can always be added):
* AP/VLAN
* monitor
valid interface combinations:
* #{ AP, mesh point } <= 8,
  total <= 8, #channels <= 1
HT Capability overrides:
* MCS: ff ff ff ff ff ff ff ff ff ff
* maximum A-MSDU length
* supported channel width
* short GI for 40 MHz
* max A-MPDU length exponent
* min MPDU start spacing
Device supports TX status socket option.
Device supports HT-IBSS.
Device supports low priority scan.
Device supports scan flush.
Device supports AP scan.

Activamos el DHCP Server

-Modificamos el archivo de configuración del DHCP
sudo vi /etc/dhcp/dhcpd.conf
ddns-update-style none;
authoritative;
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 "example.org";
 option domain-name-servers 8.8.8.8, 8.8.4.4;
}

-Activamos la interfaz wlan0 como la usada por el dhcp server
sudo vi /etc/default/isc-dhcp-server
INTERFACES="wlan0"

-Apagamos la interfaz wlan0 y cambiamos su configuración
sudo ifdown wlan0
sudo vi /etc/network/interfaces
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp

-Activamos la interfaz wlan0
sudo ifconfig wlan0 192.168.42.1

Activamos el Access Point

-Configuramos nuestro AP teniendo especial cuidado en colocar una buena contraseña e inventarnos un SSID
sudo vi /etc/hostapd/hostapd.conf
interface=wlan0
#driver=rtl871xdrv
ssid=MiPiAP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=contraseña-ap
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

-Configuramos el camino donde buscar la conf del AP
sudo vi /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DAEMON_OPTS="-dd"

Configuramos el NAT

-Ya nuestro AP permite conexiones, ahora debemos permitir que se haga forward del trafico recibido hacia internet
sudo vi /etc/sysctl.conf
net.ipv4.ip_forward=1

-Ejecutamos
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

-Agregamos reglas a iptables para que haga NAT de este trafico y lo acepte
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

-Verificamos las reglas estén activas
sudo iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT

-Guardamos las reglas
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

-Activamos para que se ejecute al hacer boot
sudo vi /etc/network/interfaces
up iptables-restore < /etc/iptables.ipv4.nat

-Activamos los servicios del AP y el DHCP server
sudo service hostapd start
sudo service isc-dhcp-server start

-Verificamos servicios del AP y DHCP
sudo service hostapd status
[ ok ] hostapd is running.

sudo service isc-dhcp-server status
Status of ISC DHCP server: dhcpd is running.

-Los activamos para que se ejecuten al hacer boot
sudo update-rc.d hostapd enable
update-rc.d: using dependency based boot sequencing

sudo update-rc.d isc-dhcp-server enable
update-rc.d: using dependency based boot sequencing

-Ya podemos hacer pruebas de conexión al AP. En el siguiente ejemplo conecto un smartphone Android por wifi y veo el proceso de conexión en logs
sudo tail -f /var/log/syslog
Sep 28 18:30:43 pibotero hostapd: wlan0: STA d8:90:e8:31:f8:00 IEEE 802.11: authenticated
Sep 28 18:30:43 pibotero hostapd: wlan0: STA d8:90:e8:31:f8:00 IEEE 802.11: associated (aid 1)
Sep 28 18:30:43 pibotero hostapd: wlan0: STA d8:90:e8:31:f8:00 RADIUS: starting accounting session 542897F5-00000000
Sep 28 18:30:43 pibotero hostapd: wlan0: STA d8:90:e8:31:f8:00 WPA: pairwise key handshake completed (RSN)
Sep 28 18:30:44 pibotero dhcpd: DHCPDISCOVER from d8:90:e8:31:f8:00 via wlan0
Sep 28 18:30:45 pibotero dhcpd: DHCPOFFER on 192.168.42.10 to d8:90:e8:31:f8:00 (android-2cfd8cb7fa7b0ddf) via wlan0
Sep 28 18:30:45 pibotero dhcpd: DHCPREQUEST for 192.168.42.10 (192.168.42.1) from d8:90:e8:31:f8:00 (android-2cfd8cb7fa7b0ddf) via wlan0
Sep 28 18:30:45 pibotero dhcpd: DHCPACK on 192.168.42.10 to d8:90:e8:31:f8:00 (android-2cfd8cb7fa7b0ddf) via wlan0
Sep 28 18:30:45 pibotero dhcpd: DHCPREQUEST for 192.168.42.10 (192.168.42.1) from d8:90:e8:31:f8:00 (android-2cfd8cb7fa7b0ddf) via wlan0
Sep 28 18:30:45 pibotero dhcpd: DHCPACK on 192.168.42.10 to d8:90:e8:31:f8:00 (android-2cfd8cb7fa7b0ddf) via wlan0
Sep 28 18:31:25 pibotero hostapd: wlan0: STA d8:90:e8:31:f8:00 WPA: group key handshake completed (RSN)

Muy bien, ya tenemos un AP de bajo costo en producción con Linux instalado en el.
Tienes una Raspberry Pi, en que proyectos la usas? Con que Linux?
Si te resulto útil este articulo, se social, haz un tweet, compártelo con otros por medio de los botones o sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark