sábado, 23 de septiembre de 2017

Servidor de impresión y Punto de acceso wifi con Raspberry Pi

Con el fin de obtener una red doméstica controlada, con un entorno adecuado, configuraremos un punto de acceso wifi Firewall con filtro de contenidos impidiendo el acceso a páginas ilícitas.

Además, nuestro Firewall, conectará una impresora a la red para que cualquier Pc de esta pueda utilizarla, sin depender de otro PC, es decir, actuará como servidor de impresión.






Requisitos hardware:

  • Raspberry pi
  • Antena wifi ( si no la trae incorporada la Raspberry)
  •  Cable usb
Requisitos Software:
  •  Sistema Operativo (Openwrt)
  • Filtro de contenidos (dansguardian)
  • Servicio de impresión (cups, P910nd)

-------------------------------------------

Destalles

1. Descarga imagen de la página oficial openwrt 

2. Grabar la imagen, en caso de ser Windows se puede emplear win32diskimage o Rufu.
Seleccionamos la img descargada, el “device” nuestra SD y escribimos “Write”

3. Instalar driver adaptador USB-WIFI (dependerá de nuestro modelo específico)

root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-rt73-usb


4. Comprobar IP asignada por DHCP para acceder a través del navegador.



5. Accedemos desde el navegador y añadimos una nueva interfaz



6. Crear interfaz WAN


7. Editar interfaz wan
Se leccionamos DHCP Client para que reciba IP automática por DHCP


8. Añadir servicio DHCP




9. Agregar DHCP Server en interfaz lan

10. Instalación configuración tinyproxy / e2guardian


root@OpenWrt:~# opkg install tinyproxy luci-app-tinyproxy e2guardian 


11. Configuracion TinyProxy
root@OpenWrt:~# cat /etc/config/tinyproxy
config tinyproxy
        option User 'nobody'
        option Group 'nogroup'
        option Port '3128'
        option Timeout '600'
        option DefaultErrorFile '/usr/share/tinyproxy/default.html'
        option StatFile '/usr/share/tinyproxy/stats.html'
        option MaxClients '100'
        option MinSpareServers '5'
        option MaxSpareServers '20'
        option StartServers '10'
        option MaxRequestsPerChild '0'
        option ViaProxyName 'tinyproxy'
        list ConnectPort '443'
        list ConnectPort '563'
        option enabled '1'
        option FilterExtended '1'
        option FilterURLs '1'
        option LogLevel 'Connect'
        option Syslog '1'
        option Listen '0.0.0.0'
        list Allow '127.0.0.1'


12. Configurar proxy transparente

root@OpenWrt:~# tail /etc/config/firewall
config redirect
        option name 'transparent proxy'
        option src 'lan'
        option proto 'tcp'
        option dest_port '8080' #dansguardian
        option src_dip '!192.168.2.1'
        option src_dport '80'
        option dest 'lan'
        option dest_ip '192.168.2.1'

13. Reiniciar tinyproxy

root@OpenWrt:~# cat /etc/crontabs/root
0 22 * * * /etc/init.d/tinyproxy restart


14. Configurar e2guardian
root@OpenWrt:~# cat /etc/config/e2guardian
config e2guardian 'e2guardian'
        option config_file '/etc/e2guardian/e2guardianf1.conf'
        option languagedir '/usr/share/e2guardian/languages'
        option language 'spanish'
        option loglevel '2'
        option logexceptionhits '2'
        option logfileformat '1'
        option loglocation '/dev/null'
        option maxuploadsize '-1'
        option filterip ''
        option filterports '8080'
        option proxyip '127.0.0.1'
        option proxyport '3128'
        option proxytimeout '20'
        option proxyexchange '20'
        option pcontimeout '55'
        option accessdeniedaddress 'http://YOURSERVER.YOURDOMAIN/cgi-bin/e2guardian.pl'
        option usecustombannedimage 'on'
        option custombannedimagefile '/usr/share/e2guardian/transparent1x1.gif'
        option usecustombannedflash 'on'
        option custombannedflashfile '/usr/share/e2guardian/blockedflash.swf'
        option filtergroups '1'
        option filtergroupslist '/etc/e2guardian/lists/filtergroupslist'
        option bannediplist '/etc/e2guardian/lists/bannediplist'
        option exceptioniplist '/etc/e2guardian/lists/exceptioniplist'
        option perroomdirectory '/etc/e2guardian/lists/bannedrooms/'
        option showweightedfound 'on'
        option weightedphrasemode '2'
        option urlcachenumber '1000'
        option urlcacheage '900'
        option scancleancache 'on'
        option phrasefiltermode '2'
        option preservecase '0'
        option hexdecodecontent 'off'
        option forcequicksearch 'off'
        option reverseaddresslookups 'off'
        option reverseclientiplookups 'off'
        option logclienthostnames 'off'
        option createlistcachefiles 'on'
        option prefercachedlists 'off'
        option maxcontentfiltersize '256'
        option maxcontentramcachescansize '2000'
        option maxcontentfilecachescansize '20000'
        option filecachedir '/tmp'
        option deletedownloadedtempfiles 'on'
        option initialtrickledelay '20'
        option trickledelay '10'
        option downloadmanager '/etc/e2guardian/downloadmanagers/default.conf'
        option contentscannertimeout '60'
        option contentscanexceptions 'off'
        option recheckreplacedurls 'off'
        option forwardedfor 'off'
        option usexforwardedfor 'off'
        option logconnectionhandlingerrors 'on'
        option logchildprocesshandling 'off'
        option maxchildren '180'
        option minchildren '20'
        option minsparechildren '16'
        option preforkchildren '10'
        option maxsparechildren '32'
        option maxagechildren '500'
        option maxips '0'
        option ipcfilename '/tmp/.dguardianipc'
        option urlipcfilename '/tmp/.dguardianurlipc'
        option ipipcfilename '/tmp/.dguardianipipc'
        option nodaemon 'off'
        option nologger 'off'
        option logadblocks 'off'
        option loguseragent 'off'
        option softrestart 'off'


15. Activar proxy y dansguardian
root@OpenWrt:~# /etc/init.d/tinyproxy enable
root@OpenWrt:~# /etc/init.d/tinyproxy start
root@OpenWrt:~# /etc/init.d/firewall restart

Ya esta nuestro Control de contenidos activo por el puerto 8080.
Para configurar que tipo de contenido queremos bloquear, nos vamos a /etc/e2guardian/list/
Se puede bloquear / permitir contenido por diferentes criterios.
Para evitar que el filtro de contenidos no aplique las restricciones a la IP de nuestro host,
Añadimos dicha IP en /etc/e2guardian/list/exceptioniplist

Algunos de los posibles filtros:

Bannediplist: bloquear IPs concretas
Bannedphraselist: bloquear contenido de una página.
Bannedregexpurllist: bloquear url página




16. Instalación y configuración servidor de impresión

El servidor de impresión debe ser añadido de versiones anteriores, ya que no esta dispobible para la última versión.
root@OpenWrt:~# opkg install kmod-usb-printer
root@OpenWrt:~# wget http://downloads.openwrt.org/attitude_adjustment/12.09/brcm2708/generic/packages/p910nd_0.95-2_brcm2708.ipk
root@OpenWrt:~# opkg install p910nd_0.95-2_brcm2708.ipk

root@OpenWrt:~# wget http://downloads.openwrt.org/attitude_adjustment/12.09/brcm2708/generic/packages/luci-app-p910nd_0.11.1-1_brcm2708.ipk
Connecting to downloads.openwrt.org (78.24.191.177:80)
luci-app-p910nd_0.11 100% |**********************************************************************************************************|  6479   0:00:00 ETA
root@OpenWrt:~# opkg install luci-app-p910nd_0.11.1-1_brcm2708.ipk
Installing luci-app-p910nd (0.11.1-1) to root...
Configuring luci-app-p910nd.

Ya podemos acceder a él a través de la interfaz web:

En Device añadimos el nombre de nuestro dispositivo, especificamos la red, interface lan, el puerto y aplicamos cambios.



17. Desde terminar podemos ver /editar la configuración en /etc/config/p910nd

root@OpenWrt:/etc# cat config/p910nd
config p910nd
        option port '0'
        option bidirectional '1'
        option enabled '1'
        option device '/dev/usb/lp0'
        option bind '192.168.2.1'

*Abrir Puerto 9100 en el firewall
root@OpenWrt:/etc# cat config/firewall
config 'rule'                 
        option 'src' 'lan'
        option 'proto' 'tcp'
        option 'dest_port' '9100'
        option 'target' 'ACCEPT'


Para imprimir desde la propia PI, basta con re direccionar lo que queremos imprimir a >/dev/usb/lp0


18. Agregar impresora en Windows

Desde el panel de control, agregar nueva impresora

*Debemos seleccionar agregar impresora por medio de una dirección TCP/IP 

*Añadir IP correspondiente. IP interfaz lan de la PI

Instalar controladores para nuestro modelo de impresora (LaserJet CP2025n)

Si no encontramos el controlador para nuestro modelo, debemos buscar uno compatible.




Una vez instalados ya podemos hacer uso de nuestra impresora y acceso Wifi.



--------------------------------------------------------------------------------------------------------

ANEXO. Algunos detalles sobre la configuración.

  • Driver kmod-rt73-usb. Driver según modelo de usb wifi
  •  Configuración Interfaz WAN
    • Corresponde con la eth0, conectada directamente al router. 
    • Recibe IP por DHCP
  • Configuración Interfaz LAN
    • IP estática 192.168.2.1 / 255.255.255.0
  • Servidor DHCP
    • Se proporciona concesión IP por interfaz LAN (192.168.2.1)
    • Rango IPs 192.168.2.100 – 192.168.2.254. 
    • Definir rango en /etc/dnsmasq.conf con el siguiente formato: 
      • dhcp-range=NOMBRE INTERFAZ, Rango IPs, Máscara,Tiempo de concesión.
      • Ejemplo: dhcp-range=lan,192.168.2.100,192.168.2.254,255.255.255.0,24h      
  •  Módulo tinyproxy
    • Archivo configuración /etc/config/tinyproxy
    • Importante, definir puerto, por defecto 3128
  • Módulo e2guardian
    • Archivo configuración: /etc/config/e2guardian
    • Asignar puerto proxy (mismo que tinyproxy) y puerto filtro (por defecto, 8080)
    • Definir filtros: /etc/e2guardian/list
    • Listas predefinidas /etc/e2guardian/list/phraselist. Deben ser incluidas en /etc/e2guardian/list/bannedpharelist
    • Definir “peso” en /etc/e2guardian/e2guardianf1.conf 
      • Ejemplo: naughtynesslimit = 50
  • Configuración Servidor impresión
    • Archivo configuración /etc/config/p910nd
  •  Configuración firewall /etc/config/firewall
    • Abrir puerto para servidor de impresión 9100
    • Re direccionar tráfico LAN a puerto e2guardian (8080)



No hay comentarios:

Publicar un comentario