lunes, 23 de febrero de 2015

Access Point en linux fedora usando hostapd,dnsmasq con bloqueo de ads

Para crear un punto de acceso en linux es requerida una tarjeta wifi con la capacidad de ap, en este caso usare una tarjeta wifi por usb marca g-sky.


Los paquetes a instalar son hostapd,dnsmasq

yum install -y hostapd dnsmasq

Posteriormente le indicaremos al kernel que permita la opcion de retrasmitir paquetes entre la interface wifi y una de ethernet

[root@linux ~]# tail -n 1 /etc/sysctl.conf 
net.ipv4.ip_forward = 1

#sysctl -p

La configuracion que se usara para para hostapd:
# cat /etc/hostapd.conf

ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
#########
#beacon_int=100
#dtim_period=2
#max_num_sta=20
#rts_threshold=2347
#fragm_threshold=2346
#preamble=1
#########
# Some usable default settings...
#macaddr_acl=1
macaddr_acl=0
#accept_mac_file=/etc/hostapd/accept
auth_algs=3
ignore_broadcast_ssid=0

# Uncomment these for base WPA & WPA2 support with a pre-shared key
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

# DO NOT FORGET TO SET A WPA PASSPHRASE!!
wpa_passphrase=qwertyuiop

# Most modern wireless drivers in the kernel need driver=nl80211
driver=nl80211

# Customize these for your local configuration...
interface=variable1
hw_mode=g
channel=11
ssid=kernel panic


Ahora para configurar el el dhcp, dns y el bloqueo de paginas publicitarias usaremos dnsmasq

# cat /etc/dnsmasq.conf
#dns externos , se recomiendas de google
server=8.8.8.8
server=8.8.4.4
#las interfaces , en micaso tendo un bridge y el wifi
interface=br0
interface=variable1
#se indica que la interface de ethernet solo servira dns y no dhcp
no-dhcp-interface=br0
#indicamos el rango para el pool de dhcp
dhcp-range=192.166.0.10,192.166.0.100
#indicamos el tipo de servicio que dara cada interface (3-gateway,6-dnsserver)
dhcp-option=variable1,3,192.166.0.1
dhcp-option=6,192.166.0.1
#numero de direcciones que estaran en el cache del dns
cache-size=10000
#incluimos archivos extra(ads-lista)
conf-dir=/etc/dnsmasq.d

Ahora indicaremos las listas de publicidad y las redireccionamos al host local

[root@linux ~]# head -n 10 /etc/dnsmasq.d/ads_block.conf 
address=/ihatepops.com/127.0.0.1
address=/ad319m.adk2.co/127.0.0.1
address=/ads.doktoronline.no/127.0.0.1
address=/www.leadgenetwork.com/127.0.0.1
address=/ads.v-links.net/127.0.0.1
address=/www.marketingtips.com/127.0.0.1
address=/ycv.clearshieldredirect.com/127.0.0.1
address=/tom2.ixn.local.vmsn.de/127.0.0.1
address=/ssdc.icelandair.com/127.0.0.1
address=/oxcash.com/127.0.0.1

Procedemos a activar los servicios de hostapd y dnsmasq

service dnsmasq start
service hostapd start

Los activamos al arranque del sistema

chkconfig dnsmasq on
chkconfig hostapd on

Es necesario abrir el puerto 67 para solicitud de ip en el firewall, iptables

-A IN_public_allow -p udp -m udp --dport 67 -m conntrack --ctstate NEW -j ACCEPT

Con estas configuraciones ya tenemos un ap funcional con dhcp, dns cache con bloqueador de publicidad

Nota: La tarjeta wifi tiene a tener fallos cuando esta encendida por largos periodos de tiempo 2 a 3 dias, por lo que hay que cambiarla de puerto usb, realize el siguiente script para facilitar el cambio de nombre de la tarjeta

cat wifi_upload_dnsmasq.sh 
#!/bin/bash
v1=$(ip link show| grep wl | awk '{print $2}' | tr -d ":"); 
cat hostapd.conf | sed s/variable1/$v1/g > /etc/hostapd/hostapd.conf
cat dnsmasq.conf | sed s/variable1/$v1/g > /etc/dnsmasq.conf
ifconfig $v1 192.166.0.1 netmask 255.255.255.0 up
service dnsmasq stop; service dnsmasq start
service hostapd stop; service hostapd start



martes, 6 de enero de 2015

firefox nightly desde el codigo fuente

Siempre es bueno estar probando las nuevas caracterisiticas de firefox y que mejor hacerlo compilando una version cada dia, para evitar todo el proceso  que mejor manera de siempre hacer un script bash :-)

cat data/compila_firefox.sh
#!/bin/sh
cd /home/usuario/Downloads
rm -rf mozilla-central/

#se obtiene la fuente nightly de firefox
hg clone https://hg.mozilla.org/mozilla-central
cd mozilla-central
#pueden agregarse opciones para la compilacion

touch mozconfig
#proceso de compilacion
sh mach build





Es script esta hecho para fedora 20/21, pero antes hay que cumplir algunos requisitos:

yum install mercurial
yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development'
yum install mercurial autoconf213 glibc-static libstdc++-static yasm wireless-tools-devel mesa-libGL-devel alsa-lib-devel libXt-devel gstreamer-devel gstreamer-plugins-base-devel pulseaudio-libs-devel gtk2-devel dbus-glib-devel
# 'Development tools' is defunct in Fedora 19 use the following
yum groupinstall 'C Development Tools and Libraries'
yum group mark install "X Software Development"



Posteriormente agregar un cron para que el proceso se ejecute en determinado tiempo:

00 07 * * * /bin/bash /home/usuario/data/compila_firefox.sh 2>&1 >/dev/null




Ya como root pueden crear un enlace simbolico:

cd /usr/local/bin
ln -s /home/usuario/Downloads/mozilla-central/obj-x86_64-unknown-linux-gnu/dist/bin/firefox superfirefox

Y desde nuestro lanzador favorito:

superfirefox

:)