Páginas

jueves, 24 de julio de 2014

FreeBSD wifi Intel 3945ABG

El manual de FreeBSD cubre un único método que funciona hasta 7.x serie voy a añadir aquí lo que debe hacer para hacer trabajar inalámbrica Intel 3945ABG en FreeBSD 9.1.

Nota: durante la instalación FreeBSD 9.x puede hacer esto mismo de forma totalmente automatizada, creando los archivos e instalando los ports necesarios.

Gracias a vermaden administrador de daemonforums.org

Averiguar tarjeta hardware wifi de mi laptop:

$ pciconf -lv| grep Wireless

 device     = 'PRO/Wireless 3945ABG [Golan] Network Connection'

 wpi - Intel 3945ABG Wireless LAN IEEE 802.11 driver

Para compilar este driver dentro del kernel, coloque las siguientes líneas en el archivo de configuración del kernel:
           device wpi
           device wpifw
           device pci
           device wlan
           device wlan_amrr
           device firmware

Como alternativa, para cargar el controlador como un módulo en el arranque, coloque la siguiente línea en el archivo /boot/loader.conf

if_wpi_load="YES"

Por si sola la wlan0 no se podra usar para conectarse. Primero debemos generar un alias para esta como wlan0:
# ifconfig wlan0 create wlandev wpi0

# ifconfig -lv
msk0 wpi0 fwe0 fwip0 lo0 wlan0

Ahora ya teniendo una interfaz wlan0, ahora si encontraremos nuestra red alrededor:

# ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
HPC943A6 02:21:11:c2:59:bd 10 54M -87:-96 100 I
ONOB4C5 00:1a:ef:05:97:c6 5 54M -94:-96 100 EP WPA
43157023 00:21:00:6d:e3:df 6 54M -95:-96 100 EP
Orangeb12 00:21:91:5f:1a:0d 6 54M -72:-96 100 EPS RSN WPA ATH

Es necesario añadir estas líneas a estos archivos:
Archivo /etc/wpa_supplicant.conf

# echo 'if_wpi_load="YES"' >> /boot/loader.conf

# echo 'wlans_wpi0="wlan0"' >> /etc/rc.conf
# echo 'ifconfig_wlan0="WPA DHCP"' >> /etc/rc.conf
# echo 'defaultrouter="192.168.1.1"' >> /etc/rc.conf
# echo 'wpa_supplicant_enable="YES"' >> /etc/rc.conf
# echo 'wpa_supplicant_conf_file="/etc/wpa_supplicant.conf"' >> /etc/rc.conf

Solo root tendrá acceso al archivo wpa_supplicant.conf:
# chmod 600 /etc/wpa_supplicant.conf

# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
-B para que la aplicación se ejecute en segundo plano.

Los dos ejemplos de wpa_supplicant son válidos:
# ee /etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1

# WPA2-PSK
network={
ssid="ONO6F49"
bssid=5c:35:3b:ea:68:b3
key_mgmt=WPA-PSK
proto=RSN WPA
psk="0aQpU$nMSHhV"
}


Archivo /etc/rc.conf


Archivo /boot/loader.conf


Interfaz gráfica, por supuesto, instalamos wifimgr (WiFi Networks Manager)
# pkg install wifimgr

Esta aplicación creará su propio archivo wpa_supplilcant.conf pero antes guardará el wpa_supplicante.conf actual bajo el nombre wpa_supplicante.conf.save.




http://www.qnx.com/developers/docs/6.4.1/io-pkt_en/user_guide/wpa_background.html
http://howtobsd.com/hardware/wi-fi-on-freebsd.html
http://forums.freebsd.org/viewtopic.php?t=44211

Unix es genial!.

viernes, 11 de julio de 2014

Privoxy Squid Freebsd

Servidor FreeBSD

Interfaz LAN = em0 (Interna) 192.168.3.0/24
Interfaz WAN = em1 (Internet) 192.168.1.0/24
Sistema Oper = FreeBSD 9.1 RELEASE
Firewall     = IPFilter
Nombre del servidor = freebsdsvr

Privoxy es un proxy web sin almacenamiento en caché con capacidades avanzadas de filtrado para mejorar la privacidad, la modificación de los datos de las páginas web y las cabeceras HTTP, el control de acceso, y la eliminación de los anuncios y otra basura de Internet.

Un proxy caché, como Squid es utilizado para reducir el tráfico externo sobre la red para páginas con frecuencia extravagantes, como Google. Esto también mejora la respuesta de la red local, el tráfico se almacena en la caché local para recuperar páginas utilizadas con frecuencia.

A menudo, el uso de otras cachés de su proveedor ISP en Internet para dar forma al flujo de tráfico y ciertos países utilizan una combinación de firewalls y proxies con Listas de exclusión para limitar el contenido entregado a sus ciudadanos. Esto también se puede utilizar a la inversa, y un usuario competente puede utilizar otro proxy en un no-estándar puerto evitando así el filtro de contenido original. Por tanto, es importante para bloquear la red y vigilar cualquier actividad extraña.

Vamos a usar Privoxy para el contenido de filtrado. Webmin es útil, ya que permite visualizar estadísticas de memoria caché a través de un navegador.

Además de las características principales de bloqueo de anuncios y gestión de cookies, Privoxy proporciona numerosas funciones complementarias, que le dan al usuario final más control, más privacidad y más libertad:

Soporte "Connection: keep-alive". Las conexiones salientes se pueden mantener con vida de forma independiente desde el cliente.

Soporta el etiquetado que permite cambiar el comportamiento basado en cabeceras cliente y servidor.

Se puede ejecutar como un "intercepting" proxy, lo que evita la necesidad de configurar los navegadores de forma individual.

Acciones y filtros sofisticados para manipular el servidor y el cliente.

Configuración y control de la utilidad integrada basada en navegador en http://config.privoxy.org/ (atajo: http://p.p/).

Rastreo basada en navegador de reglas y filtros de efectos. Conmutación remoto.

Filtrado de páginas Web (reemplazos de texto, elimina banners basados ​​en el tamaño, invisibles "web-bugs" y molestias HTML, etc)

Soporte para expresiones regulares de Perl compatibles en los archivos de configuración y una sintaxis de configuración más sofisticada y flexible.

GIF de animación.

Bypass muchos click-tracking (scripts de seguimiento de clics) (evita scripts de redirección).

Auto-detección y relectura de los cambios del archivo de configuración

Si tiene intención de encadenar Privoxy y Squid localmente, entonces el encadenamiento navegador > Squid > Privoxy es la forma recomendada.

Instalar los ports:
# pkg install privoxy squid webmin

Configuración de privoxy:
Copiar el archivo de user.action a la carpeta de privoxy
# cp /usr/local/share/examples/privoxy/user.action /usr/local/etc/privoxy/

Archivo de configuración de privoxy:
# ee /usr/local/etc/privoxy/config

user-manual /usr/local/share/doc/privoxy/user-manual
confdir /usr/local/etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites
actionsfile default.action   # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
logfile logfile
debug     1 # Log the destination for each request Privoxy let through. See also debug 1024.
debug  1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
debug  4096 # Startup banner and warnings.
debug  8192 # Non-fatal errors
toggle  1
enable-remote-toggle  0
enable-remote-http-toggle  0
enable-edit-actions 1
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
listen-address 127.0.0.1:8118
forwarded-connect-retries  0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300

Iniciar privoxy:
# echo 'privoxy_enable="YES"' >> /etc/rc.conf

# /usr/local/etc/rc.d/privoxy start
Starting privoxy..

Configurar Squid:
Archivo de configuración de Squid:

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
cache_peer localhost parent 8118 7 no-query
never_direct allow all
always_direct deny all
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
forwarded_for off
coredump_dir /var/squid/cache
# Define ACL for protocol FTP
acl ftp proto FTP
# Do not forward FTP requests to Privoxy
always_direct allow ftp


Iniciar Squid:
# echo 'squid_enable="YES"' >> /etc/rc.conf

# /usr/local/etc/rc.d/squid start
Starting squid.

Perfecto!.
Establecer la IP y puerto del proxy de la red en un pc cliente freebsd:


Configurar servidor proxy en Opera:

Configurar proxy en Chromium:




Entramos en una página que contiene mucha publicidad, por ejemplo, thepiratebay.se. Previamente hemos desactivado Adblock:



Listas de sockets abiertos (servidor):
# root@freebsdsvr: / # sockstat -4



Iniciar webmin:
# echo 'enable_webmin="YES"' >> /etc/rc.conf

Tiene que ejecutar /usr/local/lib/webmin/setup.sh script con el fin de configurar los distintos ficheros de configuración, escriba:
# /usr/local/lib/webmin/setup.sh
...

Web server port (default 10000):  [Press Enter]
Login name (default admin):  [Press Enter]
Login password: [type password]
Password again:
Use SSL (y/n): y

...

# /usr/local/etc/rc.d/webmin start
Starting webmin.
Pre-loaded WebminCore

Desde un navegador cliente de la red:
https://192.168.3.1:10000


BSD Magazine. - Rob Somerville
http://body0r.wordpress.com/2009/06/24/tor-privoxy-squid-a-little-howto/
http://www.privoxy.org/user-manual/index.html
http://www.privoxy.org/user-manual/introduction.html

Unix es genial!.

viernes, 13 de junio de 2014

FreeBSD cambiar disco duro


Cambiar disco duro conservando la configuración actual del sistema FreeBSD.

tar es una aplicacion creada alrededor de 1975 que trabaja en cooperación con el sistema de ficheros. En FreeBSD el comando por defecto es bsdtar.

En este caso se trata de duplicar un sistema FreeBSD instalado en un disco duro de 320 GB a otro un disco duro de 120 GB. El espacio utilzado en el disco duro actual (320 GB) es de 30 GB, por tanto un disco duro de 120 GB dispone de espacio suficiente.

Los pasos a seguir son:

Realizamos una instalación mínima en el disco duro de 120 GB que a partir de ahora llamaremos ada1. Igual que el disco duro de 320 GB que llamaremos ada0 el particionado utilizado desde el instalador es auto. Este es el resultado:

Disco ada0:
/dev/ada0p1 boot
/dev/ada0p2 raiz
/dev/ada0p3 swap

Disco ada1:
Disco ada0:
/dev/ada1p1 boot
/dev/ada1p2 raiz
/dev/ada1p3 swap


Comprobar que la instalación mínima (ada1) arranca.

El disco duro ada0 conectarlo como master
El disco duro ada1 conectar como esclavo.

Arrancar el sistema desde el disco duro ada0 (desde la bios puede cambiarse la secuencia de arranque) en modo single user pulsando la barra espaciadora en la cuenta atrás de 10 segundos y pulsar 6 (single user). Presionar Enter para la shell por defecto.

Desde el símbolo del sistema:

# fsck -p
# mount -u /
# mount -a
# swapon -a
# adjkerntz -i

Asegúrese que los archivos de dispositivos del disco duro esclavo (ada1) han sido creados:
# ls /dev/ada1*

/dev/ada1p1
/dev/ada1p2
/dev/ada1p3

Crear un sistema de ficheros nuevo en la partición raiz el disco nuevo ada1 (120 GB). Dejamos sin cambios la partición de arranque /dev/ada1p1:

# newfs /dev/ada1p2

Crear el punto de montaje
# mkdir /mnt/root

Montar la partición:
# mount /dev/ada1p2 /mnt/root

Vamos a crear un archivo tar.gz de la partición raiz /dev/ada0p2 (disco ada0). :
# cd /
# bsdtar czvf /mnt/root/ada0p2.tar.gz *

Si se fija este archivo tar.gz ha sido creado en la particion ada1p2 (raiz) del disco nuevo. Vamos a copiarlo al disco duro ada0 para dejar la partición raiz del disco duro nuevo libre:

# mkdir /dbackup
# cp /mnt/root/ada0p2.tar.gz /dbackup/

Si quiere puede borrar el archivo tar.gz del disco duro nuevo:
# rm -f /mnt/root/ada0p2.tar.gz

Restaurar los datos en el disco duro nuevo:
# cd /mnt/root/
# bsdtar xzvf /dbackup/ada0p2.tar.gz

Después de finalizar, desmonte la partición y permita softupdates en la nueva unidad.
# umount /mnt/root
# tunefs -n enable /dev/ada1p2

Todo lo que debe hacer ahora es apagar el sistema desconectar el disco duro viejo (ada0) y conectar el nuevo disco duro como master e iniciar el sistema desde el nuevo disco duro:
# shutdown -p now

Unix es genial!.

lunes, 26 de mayo de 2014

NFS Servidor FreeBSD


NFS FreeBSD

El Sistema de archivos de red o NFS, es la forma estándar para compartir archivos de UNIX a través de una red. Los usuarios del sistema NFS pueden acceder a ficheros ubicados físicamente en máquinas remotas de forma transparente, como si de ficheros locales se tratara.

Mi servidor ejecuta FreeBSD 9.1 con dos tarjetas de red:

em0 = 192.168.3.1 LAN
em1 = 192.168.1.250 WAN

La configuración de NFS es relativamente sencilla.

El servidor NFS debe ejecutar los demonios: nfsd, mountd, portmap (rpcbind); mountd se ejecuta de forma automática cuando se activa el servidor NFS.

Para que estos procesos se ejecuten en tiempo de arranque del sistema se incluyen las siguientes entradas en el archivo /etc/rc.conf:

inetd_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
rpcbind_enable="YES"
mountd_flags="-r"
mountd_enable="YES"

Algunos cambios en el archivo /etc/hosts.allow

# Rpcbind is used for all RPC services; protect your NFS!
rpcbind : ALL EXCEPT 192.168.3.0/24 : deny

Archivo /etc/inetd.conf


El archivo /etc/exports especifica los directorios o sistemas de archivos exportados al exterior por NFS. Cada línea especifica un sistema de ficheros y que máquinas tienen derechos de acceso sobre dicho sistema. Existen muchas opciones, consulte man exports.

La siguiente línea exporta el directorio /datan de forma que puedan acceder a dicho directorio máquinas situadas en el mismo dominio.

La opción -maproot=root permite que el usuario root de la máquina cliente modifique los datos del sistema de ficheros en red como si fuera el usuario root del servidor.

La opción -alldirs permite a los clientes remotos montar cualquier directorio del sistema de archivos directamente. Sin esta opción, los clientes remotos sólo pueden montar el directorio raíz de la sistema de archivos exportado

La opción -network restringe el acceso a los sistemas de la red especificada.

# ee /etc/exports
/datan -maproot=root -alldirs -network 192.168.3.0

Iniciar NFS en el servidor FreeBSD:
# rpcbind
# nfsd -u -t -n 4
# mountd -r

Una vez realice cambios en el archivo /etc/exports necesita reiniciar el demonio mountd:
# kill -HUP `cat /var/run/mountd.pid`

Ejecutar NFS En cliente FreeBSD:

Fichero /etc/rc.conf

nfs_client_enable="YES"
nfs_client_flags="-n 4"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"

Desde el cliente:
# nfsiod -n 4

Crear el punto de montaje:
# mkdir /media/datan

Nos interesa que el directorio pertenezca al grupo carles:
# chown carles /media/datan/

# ls -ld /media/datan/
drwxr-x---  2 root  carles  512 24 may 08:36 /media/datan/

Otorgar permisos rw al grupo propietario del directorio montado
# chmod 770 /media/datan
$ ls -ld /media/datan/
drwxrwx---  2 root  carles  512 24 may 08:00 /media/datan/

En este punto debería estar listo para anclar el sistema de ficheros remoto en la máquina cliente:
# mount_nfs 192.168.3.1:/datan /media/datan/

Montar automáticamente directorio compartido NFS:
teclee la siguiente línea a /etc/fstab:

freebsdsvr:/datan  /media/datan  nfs rw,bg,hard  0  0

Donde bg significa que si un primer intento de contacto con el servidor falla, seguirá intentando el montaje en segundo plano y hard quiere decir que si el servidor no responde, hacer que las operaciones que intenten accederlo se bloqueen hasta que el servidor esté activo (El cliente debe esperar hasta que el sistema exportado por el servidor este disponible.)

Ya puede copiar y pegar utilizando el navegador de archivos Nautilus.

http://www.freebsd.org/doc/es/books/handbook/network-nfs.html

Unix es genial!.

martes, 20 de mayo de 2014

FreeBSD Server NAT IPFW


FreeBSD Server NAT IPFW

Nuestro servidor FreeBSD está dotado con dos tarjetas de red.

em0 interface LAN IP 192.168.3.1/24
em1 interface WAN (internet) 192.168.1.250/24

Algunos pasos adicionales son necesarios para que el servidor FreeBSD se convierta en router intermedario entre Internet y la red interna.

Después de intalar FreeBSD 9.1-RELEASE tendremos que recompilar el KERNEL para Habilitar NAT + FIREWALL, no sin antes tener las fuentes del núcleo instaladas.

Instalar las fuentes del kernel:
Si el directorio /usr/src/sys no existe quiere decir que las fuentes del kernel no están instaladas.

# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.1-RELEASE/src.txz

Descomprimir el archivo en /usr/src:

# tar -C / -xvzf src.txz

Ahora desde el directorio arch/conf copiar el archivo de configuración GENERIC utilizando cualquier nombre:

# cp /usr/src/sys/amd64/conf/GENERIC /usr/src/amd64/conf/MYKERNEL

Añadir las siguientes opciones a /usr/src/sys/amd64/conf/MYKERNEL
# ee /usr/src/sys/amd64/conf/MYKERNEL
...
options    IPFIREWALL
options    IPFIREWALL_VERBOSE
options    IPFIREWALL_VERBOSE_LIMIT=5
options    IPFIREWALL_DEFAULT_TO_ACCEPT
options    IPDIVERT
...

Recompilar el kernel:
# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL

El nuevo kernel se copiará al directorio raíz como /kernel y el viejo kernel tendrá de nombre kernel.old.

Reiniciar el sistema con el nuevo kernel.

Nos conectamos vía SSH para comprobar el nuevo kernel:
$ ssh -p 2222 remoto@freebsdsvr
Password:

$ hostname
freebsdsvr.linux.bcn

$ uname -a


Archivos de configuración:

$ cat /etc/rc.conf
gateway_enable="YES"     # igual que net.inet.ip.forwarding=1
natd_enable="YES" # Habilita NAT
natd_interface="em1" # nombre de la interfaz NIC conecta a Internet
natd_flags="-dynamic -m" # -m = preserve port numbers; additional
firewall_enable="YES"    # activa ipfw firewall
firewall_type="simple"   # protege red interna (LAN)
firewall_logging="YES"   # habilita log
firewall_script="/etc/rc.firewall" # path scrip IPFW

$ cat /boot/loader.conf
ipfw_load="YES"
ipdivert_load="YES"
autoboot_delay="2"
loader_color="YES"

FreeBSD - The power to Serve!

http://www.pl.freebsd.org/doc/handbook/firewalls-ipfw.html

Unix es genial!.