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

Como instalar NOOBS en Raspberry Pi contra reloj

Raspberry Pi, ese pequeño gigante es un lienzo en blanco en el cual puedes plasmar tus ideas como te imagines. Esta pequeña board a la cual le instalamos Linux es poderosa y económica a la vez lo cual nos lleva a montar proyectos en ella que en algún momento deja la SD (memoria externa) vuelta un caos. Aunque como todo en el opensource, nada mas sencillo que comenzar de nuevo y es el tema hoy de nuestro articulo, instalar NOOBS paso a paso en la SD de Raspberry Pi. NOOBS, de las siglas New Out Of Box Software (algo así como software nuevo fuera de la caja) es la forma mas fácil de instalar linux en nuestro Raspberry Pi e incluye varias distribuciones personalizadas para esta board como son Raspbian (lo adivinaron?, Debian), Fedora Mix, etc las cuales puedes escoger a la hora de instalar. Bien, después de esta breve introducción, pasemos a la acción.

-Descargamos NOOBS en su ultima versión en este URL (en este momento la 1.3.10). Sugiero usar un cliente torrent. No tienes uno? En este articulo te enseño a instalar FrostWire

-Colocamos la SD en nuestro pc. Es recomendable tener una SD mínimo de 8GB, como la que muestro en este ejemplo, con sus respectivas particiones. Doy por echo que la SD ya esta particionada o sino, seria crearlas con el comando fdisk

sudo fdisk -l
Disk /dev/sdb: 7892 MB, 7892631552 bytes
4 heads, 16 sectors/track, 240864 cylinders, total 15415296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002afb0

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            8192     3011718     1501763+   b  W95 FAT32
/dev/sdb2         3014656    15349759     6167552   85  Linux extended
/dev/sdb3        15349760    15415295       32768   83  Linux
/dev/sdb5         3022848     3145727       61440    c  W95 FAT32 (LBA)
/dev/sdb6         3153920    15349759     6097920   83  Linux

-Formateamos la memoria SD
sudo mkfs.fat /dev/sdb1
sudo mkfs.ext4 /dev/sdb3
sudo mkfs.fat /dev/sdb5
sudo mkfs.ext4 /dev/sdb6

-Montamos la partición sdb1, nos pasamos al directorio donde este montada y copiamos el contenido de NOOBS en ella
mount /dev/sdb1 /media/cabrera/4C45-98E2
cd /media/cabrera/4C45-98E2
unzip /home/drivemeca/Downloads/NOOBS_v1_3_10.zip

-Desmontamos la partición y retiramos la SD.
cd
sudo eject /dev/sdb1

La colocamos en el Raspberry Pi y hacemos boot para iniciar desde NOOBS. Con esto ya podemos volver a nuestros proyectos instalando una nueva copia de Linux.
Usas Raspberry Pi? para que proyectos? 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

Como instalar Ipfire paso a paso

DriveMeca Ipfire logo
Casi a diario es noticia algún sitio web o compañía que es comprometida su seguridad en internet. Por esto se ha incrementado el uso de firewalls, dispositivos de seguridad entre otras soluciones de seguridad informática. Es bueno aclarar que no existe una solución 100% efectiva (aunque peor es no tener ninguna medida de seguridad) pero si es necesario cuidarnos de ataques con soluciones como la que mostrare hoy. Ipfire, una solución económica, opensource, pero efectiva basada en el venerable IPCop con varias características interesantes y muy rápido de implementar. Por el momento solo es para plataformas i586 y arm lo cual lo convierte en un gran candidato para poner a trabajar ese equipo muy viejo que ya no sabes que hacer con el.
Aclaro que también lo podemos virtualizar para nuestros proyectos de redes (este articulo lo hice con un ipfire virtualizado en virtualbox).
Después de esta breve introduccion nos preparamos a instalar ipfire en la modalidad de GREEN-RED, es decir, para un firewall/gateway de LAN.

Requerimientos

  • PC con 2 ethernet (Green-LAN, Red-WAN)
  • Disco de al menos 10GB (a mas tamaño mas espacio para logs, proxy, gráficas de estadísticas etc)
  • Unidad de DVD o puerto USB para instalar. No sabes como generar una USB booteable? en este articulo te enseño como
-Descargamos el ISO de ipfire y generamos nuestro DVD o USB

wget -c http://downloads.ipfire.org/releases/ipfire-2.x/2.15-core82/ipfire-2.15.i586-full-core82.iso


-Hacemos boot presionando Enter sobre la primera opción
DriveMeca instalando Ipfire paso a paso

-El instalado detecta nuestro hardware e inicia
DriveMeca instalando Ipfire paso a paso

-Escogemos el idioma en que instalaremos y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Se nos da la bienvenida a la instalación y se nos advierte que en cualquier pantalla en que escojamos Cancelar, el equipo se reiniciara. Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Aceptamos la licencia presionando Espacio y damos Tab para dar Enter sobre Ok
DriveMeca instalando Ipfire paso a paso

-Ultima oportunidad de arrepentirnos, el disco sera particionado, elegimos Si y damos Tab para dar Enter sobre Ok
DriveMeca instalando Ipfire paso a paso

-Escojemos el formato para nuestro disco, recomiendo Ext4 y damos Enter
DriveMeca instalando Ipfire paso a paso

-Se instala Ipfire
DriveMeca instalando Ipfire paso a paso

-Ya completada la instalación se nos pide retirar el DVD/USB para reiniciar el equipo
DriveMeca instalando Ipfire paso a paso

-El equipo reinicia
DriveMeca instalando Ipfire paso a paso

-Escogemos la distribución de nuestro teclado y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Buscamos la zona horaria en que estará nuestro ipfire y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Escribimos un hostname (nombre) para nuestro equipo y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Escribimos el dominio internet del equipo (preferible un dominio internet que nos pertenezca) y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Creamos una contraseña para el usuario root (usado para entrar via ssh y esta no se vera al escribirla) y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Creamos una contraseña para el usuario admin (para entrar vía la consola web) y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Damos los toques finales, comenzamos de arriba hacia abajo en las opciones. Escogemos el tipo de configuración de red dando Enter sobre Tipo de configuración de red
DriveMeca instalando Ipfire paso a paso

-En nuestro caso escogemos GREEN + RED y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Pasamos a Drivers y asignación de tarjeta. Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Seleccionamos GREEN y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Escogemos de las tarjetas detectadas por el instalador cual sera la GREEN y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Seleccionamos RED y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Escogemos la tarjeta restante y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Ya podemos ver que tenemos asignadas las tarjetas de red a GREEN y RED. Damos Tab hasta el botón Terminado y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Continuamos con Configuración de direcciones. Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Elegimos GREEN (LAN) y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Se nos alerta que si estamos conectados por medio de esta tarjeta y cambiamos su IP nos desconectaremos. En este caso como la instalación es local, no tendremos problemas. Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Escribimos la ip y mascara que asignaremos a esta tarjeta. Recordemos que sera a la que apunten los equipos de nuestra LAN. Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Elegimos RED y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Dependiendo de nuestra conexión internet sera la opción que elegiremos y los datos que escribiremos (por lo general suministrados por nuestro proveedor internet). Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Ya terminado este paso, presionamos Tab hasta el botón Terminado y damos Enter
DriveMeca instalando Ipfire paso a paso

-Llegamos a la opción Configuraciones de DNS y Puerta de enlace (Gateway). Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Estos datos también debe darlos el proveedor internet (en este caso usaremos los DNS de Google). Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Damos Tab hasta el botón Terminado y presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Ultimo paso, se nos pregunta si activaremos DHCP para nuestra LAN en la interfaz GREEN. En este caso lo activamos con Espacio y llenamos los datos del bloque de ips que se asignaran. Presionamos Enter sobre Ok
DriveMeca instalando Ipfire paso a paso

-Terminamos la configuración. Presionamos Enter
DriveMeca instalando Ipfire paso a paso

-Abrimos un browser y navegamos a la ip GREEN de nuestro Ipfire (https://192.168.2.1:444) y nos logeamos con el usuario admin. Veremos la pantalla de Inicio o pantalla principal con los datos de nuestras dos tarjetas de red. Se nos pide activar el servicio de fireinfo, le damos click
DriveMeca instalando Ipfire paso a paso

-El servicio fireinfo básicamente recopila info de nuestro hardware y lo envía a los desarrolladores para sus estadísticas de uso y ayuda en caso de necesidad de desarrollo de algún parche para solucionar un bug. Damos click al botón Yes, I want to send my profile
DriveMeca instalando Ipfire paso a paso

-Si miramos las opciones del menú Status veremos de forma grafica el desempeño de nuestro Ipfire
DriveMeca instalando Ipfire paso a paso

-También podemos ver los servicios que se están ejecutando y cuanta memoria estan consumiendo. Útil para optimizar nuestro equipo
DriveMeca instalando Ipfire paso a paso

Con estos pasos ya tenemos un firewall Ipfire en producción el cual en próximos artículos mejoraremos con otras funcionalidades.
Usas Ipfire? lo conocías? Ya habías usado IPCop? Que opinión tienes de ellos?
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

Una solución que Matrix no quiere que conozcas

DriveMeca Clones
Eres de sistemas y por ende te gusta la ciencia ficción, lo me lleva a otra suposición. Cuantas veces haz estado tan pero tan cargado de trabajo que no sabes por donde comenzar y llegas a soñar con un clon, si, multiplicarte para así hacer todo el trabajo rápido y seguir siendo tu. Seria genial no? Bueno, ahora volvamos a la realidad en la que te enseñare a instalar y configurar  GLPI en un servidor Linux Centos 7 paso a paso sin dañar la Matrix :-)
DriveMeca GLPI logo
GLPI es un proyecto de software francés para organizar/automatizar a las personas de IT. Por medio de el se pueden llevar inventarios de software y hardware (integrándose con OCS Inventory), recursos técnicos, manejo de mantenimientos, helpdesk conectado a los usuarios para que ellos reporten el incidente e IT solucione quedando el historial, gastos, etc. en una bitácora.

Requerimientos

  • Linux Centos 7 mínima instalación. En este articulo te enseño a instalarlo
  • Para este articulo este servidor tendrá la ip 192.168.1.140


-Comenzamos deshabilitando SELinux, salimos guardando y reiniciamos el servidor
vi /etc/selinux/config
SELINUX=disabled

-Instalamos dependencias
yum -y install wget httpd mariadb-server php php-mysql php-common php-mbstring

-Activamos y ejecutamos Apache
systemctl enable httpd.service
systemctl start httpd.service

-Activamos y ejecutamos Mariadb
systemctl enable mariadb.service
systemctl start mariadb.service

-Configuramos de forma segura MariaDB dejando los defaults que nos muestra y colocandole una contraseña lo suficientemente segura
mysql_secure_installation 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): <--Presionamos Enter, root de MariaDB esta sin contraseña
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] 
New password: <--Escribimos una contraseña para root de MariaDB
Re-enter new password: <--Confirmamos la contraseña
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] 
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] 
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

-Nos cambiamos de directorio al home de apache y descargamos glpi en su ultima versión (en este momento la 0.84.7)
cd /var/www/html
wget -c https://forge.indepnet.net/attachments/download/1811/glpi-0.84.7.tar.gz

-Descomprimimos el archivo
tar xzvf glpi-0.84.7.tar.gz

-Cambiamos el propietario/grupo a apache recursivamente
chown -R apache.apache glpi

-Abrimos un browser y navegamos a http://192.168.1.140/glpi, escogemos nuestro idioma y le damos click al botón Ok
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Aceptamos los términos y le damos click al botón Continuar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Damos click al botón Instalar (si estuviéramos actualizando una instalación ya hecha seria Actualizar)
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-El instalador hace un pre chequeo y verifica que todas las dependencias estén ok. En caso de faltarnos alguna, debemos resolverla antes de continuar. Damos click al botón Continuar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Escribimos los datos de conexión a MariaDB (localhost, root y su contraseña) y damos click al botón Continuar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Escribimos un nombre para la db en MariaDB (esta puede o no existir) y damos click al botón Continuar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Se crea la db, damos click al botón Continuar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-La instalación ha terminado con éxito, hora de configurar entrando a GLPI, damos click al botón Utilizar GLPI
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Al momento de instalar, las cuentas tienen su nombre de contraseña. Entramos con la cuenta glpi (es el administrador) Damos click al botón Aceptar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-La primera vez que entramos se nos pide cambiar la contraseña de las cuentas y borrar el php de instalación. Borramos el php con el comando que ven debajo y damos click a cada cuenta para cambiar su contraseña comenzando por glpi

rm glpi/install/install.php
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Lo primero que debemos aprender en GLPI es como están distribuidos sus menús y para que sirve cada uno. En la siguiente imagen pueden ver el uso de cada uno y su ubicación. Ya conociendo esto cambiamos la contraseña de glpi escribiendo una nueva en sus 2 cajas de texto y dándole click al botón Guardar. OJO, si la contraseña no cumple con los requisitos, el sistema la rechazara pidiendo otra mas compleja
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Repetimos el paso para todas las cuentas y al final si damos click en Inicio en el menú árbol de navegación deben haber desaparecido los msg iniciales
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Nos devolvemos a la cuenta glpi y vemos que en la caja Titulo, a su derecha tiene 2 iconos, uno de búsqueda (lupa) y uno de agregar (+). Damos click al icono de agregar y nos saldrá otra ventana donde agregaremos un titulo (luego podrá ser usado en otras cuentas). Damos click al botón Agregar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Repetimos el procedimiento para Ubicación y Categorías. Mientras mas datos agreguemos, mas sencillo después sera de entender y usar. Damos click al botón Guardar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Nos vamos a la opción Administración - Grupos en el menú principal a crear grupos en los que organizar a nuestros usuarios y damos click al + del menú selector
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Nos creamos cuantos grupos necesitemos. Damos click al botón Agregar
DriveMeca instalando GLPI paso a paso en Linux Centos 7

-Recomendación, siempre tener a mano un backup de nuestra configuración, el cual podemos hacer en la opción Administración - Mantenimiento del menú principal
DriveMeca instalando GLPI paso a paso en Linux Centos 7

GLPI lleva un trabajo inicial de parametrizacion que incluye creación de cuentas de usuario, grupos, asignación de perfiles, etc lo cual nos llevara un tiempo hacer pero al final seremos beneficiados. El uso de plugins (OCS por ejemplo) y otras características quedara para otros próximos artículos.
Y tu, ya tienes tu clon? Conocias GLPI? Que tal te parece, para que lo usas?
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