Botón de Encendido apagado RASPBERRY PI 3

Instalar un botón de encendido no es complicado

 

Las Raspberry Pi tienen la particularidad de que se encienden al recibir tensión por el puerto de alimentación microUSB. Después de apagar el sistema, aunque la placa se queda en “stand by” debemos desconectar la fuente de alimentación y volverla a conectar para activarla.

Para no romper este conector. Podemos utilizar los pines marcados como RUN.

Para mayor protección, soldaremos unos terminales en dichas patillas, y a ellas conectaremos un pulsador.

Hace las dos funciones.

Si esta en “stand by”, la enciende.

Si esta encendida la pone en “stand by”.

MCP3008

Añadiendo un ADC a la Raspberry Pi

La raspberry no tiene entradas analógicas, para ello podemos utiliza el chip MCP3008. Y con un script en Python ya lo tenemos.

MCP3008

El chip MCP3008 es un convertidor analógico-digital con 8 canales de 10 bits de resolución e interfaz SPI,

Conexiones:

 

El ADC es 10bit por lo que puede informar un rango de números de 0 a 1023 (2 a la potencia de 10). Una lectura de 0 significa que la entrada es 0V y una lectura de 1023 significa que la entrada es 3.3V.

La conversión del valor se realiza de la siguiente forma:

Voltaje = (adc * Vref)/1023

Vref = Voltaje de referencia

Interfaz SPI en Raspberry Pi 2

Raspberry Pi no tiene habilitado el módulo de comunicación SPI, lo primero que hay que hacer es habilitar la interfaz para poder comunicarnos con nuestro MCP3008.

La forma de hacerlo es mediante:

Script de Python

Script de Python, para leer el canal 1 (CH0) la tension obtenida mediante un potenciometro:

Instalando TELEGRAM

Instalación

Para instalar en Raspbian ejecutamos desde la terminal:

instalamos lo siguiente:

Ejecutamos el archivo de configuración y copilamos el programa:

da el error: configure: error: no libevent found

volvemos a ejecutar

Ejecutamos

da el error:

make: *** No rule to make target ‘tgl/scheme.tl’, needed by ‘auto/scheme.tl’. Alto.

Se ha solucionado poniendo – – recursive en:

Simplemente debemos ejecutar en la terminal:

da lo siguiente:

pi@raspberrypi:~/tg $ sudo bin/telegram-cli -k tg-server.pub -W

change_user_group: can’t find the user telegramd to switch to

Telegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman

Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type show_license'.

This is free software, and you are welcome to redistribute it

under certain conditions; type show_license’ for details.

Telegram-cli uses libtgl version 2.1.0

Telegram-cli includes software developed by the OpenSSL Project

for use in the OpenSSL Toolkit. (http://www.openssl.org/)

I: config dir=[/root/.telegram-cli]

[/root/.telegram-cli] created

[/root/.telegram-cli/downloads] created

> telegram-cli: tgl/mtproto-utils.c:101: BN2ull: Assertion `0′ failed.

SIGNAL received

Grabar Tarjeta SD en Linux


Sin conectar la tarjeta, saldra una pantalla parecida a esta:

Colocamos la tarjeta SD y repetimos el comando.

Vemos que apararece un dispositivo nuevo, /dev/sdc1. Esta es la tarjeta SD

Ahora desmontamos la SD (hacedlo con todas las particiones de esta):

copiamos la imagen con el comando:

no hay que poner el numero de la partición.

Este comando no muestra ninguna salida, parece que está ‘congelado’. Hay que esperar ya que puede tardar unos minutos.

Lighttpd con php

Instalación del servidor Web (lighttpd) 

Para la instalación ejecutaremos

Por defecto, las paginas están en /var/www/html, para cambiarlo a /var/www.

Editamos en el fichero /etc/lighttpd/lighttpd.conf con:

server.document-root        = “/var/www/html»

por

server.document-root        = “/var/www»

Para cambiarlo al puerto 8080

 

server.pot=8080

server.socket = “[::]:8080′′

En este caso pusimos en escucha el puerto 8080.

Después hay que reiniciar el servicio con:

Instalación/configuración de PHP

Para su instalación ejecutamos:

Una vez instalado PHP, hemos de efectuar alguna configuración adicional para que el servidor reconozca los scripts PHP, por ello habilitamos el módulo fastcgi-php mediante

y, a continuación, reiniciamos el servicio ya actualizado mediante

Para comprobar que el servidor web está ejecutándose miramos que el puerto 80 esté en modo Listen

Ahora podemos ir a un navegador y poner en la dirección lo siguiente: http://IP_Raspberry

 

Activar y desactivar el servicio manualmente

Si hace falta parar el servidor web la orden es:

Para volver a ponerlo en marcha:

Para reiniciarlo:

Ver los Logs

Para ver el log de acceso a la pagina, este fichero es  /var/log/lighttpd/access.log

Modificamos el fichero:

server.modules = (

«mod_access»,

«mod_alias»,

«mod_compress»,

«mod_accesslog»,

«mod_redirect»,

# «mod_rewrite»,

)

server.document-root = «/var/www»

server.upload-dirs = ( «/var/cache/lighttpd/uploads» )

server.errorlog = «/var/log/lighttpd/error.log»

accesslog.filename = «/var/log/lighttpd/access.log» — creas el archivo access.log

server.pid-file = «/var/run/lighttpd.pid»

server.username = «www-data»

server.groupname = «www-data»

server.port = 80

index-file.names = ( «index.php», «index.html», «index.lighttpd.html» )

url.access-deny = ( «~», «.inc» )

static-file.exclude-extensions = ( «.php», «.pl», «.fcgi» )

compress.cache-dir = «/var/cache/lighttpd/compress/»

compress.filetype = ( «application/javascript», «text/css», «text/html», «text/plain» )

# default listening port for IPv6 falls back to the IPv4 port

include_shell «/usr/share/lighttpd/use-ipv6.pl » + server.port

include_shell «/usr/share/lighttpd/create-mime.assign.pl»

include_shell «/usr/share/lighttpd/include-conf-enabled.pl»

reiniciamos el servicio de lighttpd

Ya con esto, ya se genera el archivo access.log, se nos guardara los accesos a la web

 

WebMin

Instalación de WEBMIN

Webmin, nos servirá para configurar a la Raspberry de forma grafica, el sistema operativo.

En la página web de Webmin podemos veremos cuál es la última versión. En este momento es la 1.820.

Nos descargaremos dicha version con el comando:

Antes de instalarla, hay que comprobar que tenemos las dependencias necesarias:

Si no da, ningún error, realizamos la instalación de Webmin:

Para acceder a la interfaz web de webmin con el navegador mediante https, poniendo la IP local de la Raspberry y el puerto 10000,:

Debemos añadir una excepción de seguridad en el navegador. Se nos pedirá el nombre de usuario y la contraseña.

Una vez que accedamos a Webmin, a la izquierda el menú de configuración del sistema. Tiene la posibilidad de ponerlo en español.

Fail2Ban

Vigila el fichero de log de los servidores que tengamos instalados y banea aquellas IPs que hayan hecho un intento ilegal de entrar en el sistema mediante fuerza bruta:

Ahora copiaremos el archivo de configuración por defecto de Fail2Ban como jail.local que sera ejecutado y nos sobreescribira las configuraciones que tengamos en jail.conf , ponemos el siguiente comando en el terminal SSH:

Y ahora abriremos el archivo copiado con el comando:

En la sección [DEFAULT], esta la configuración genérica del servicio:

ignoreip (IPs que no deseemos que se baneen, son las correspondientes al localhost y a la IP local del PC desde el que accedemos normalmente).

bantime (tiempo de baneo, expresado en segundos).

maxretry (numero de intentos fallidos de login para que se active el baneo).

En las secciones ([ssh] y [ssh-ddos]) se activa la seguridad del servidor SSH contra ataques de fuerza bruta y/o contra ataques DDoS (Distributed Denial of Service):

enabled = true al comienzo de cada una, para que se active.

port = ssh si se esta usando el puerto (22) o bien ponemos el número del puerto por el que este corriendo.

Modificamos su contenido, que quedará así:

Fail2ban se puede aplicar también a otros web, servidores FTP o de correo.

Al acabar la configuración hay que reiniciar el servicio:

Podemos comprobar:

Como conocer su estado:

Ver los servicos activos:

O el estado actual de un servicio, que nos mostrará si tiene alguna IP baneada en este momento.  En el caso del ssh :

También se puede analizar fichero de log para comprobar si ha habido intentos de acceso no autorizados:

 

RECIBIR UN CORREO DE ALERTA AL BLOQUEAR UNA IP (aun por probar)

Podemos hacer que Fail2ban nos envíe un correo cuando detecte un intento de intrusión y bloquee una determinada IP, informándonos de este hecho. Para lograrlo, lo primero que hemos de hacer es  instalar un sistema de envío de correos desde la terminal.

Luego volvemos al fichero de configuración de Fail2ban:

Dentro de él, en la sección # ACTIONS, localizamos y configuramos los siguientes parámetros:

destemail = Dirección de email para recibir los avisos

sender = pi@raspberrypi [Este es el email del remitente]

mta = mail [Servidor de correo que usamos]

action = %(action_mw)s [Está al final de la sección]

En la primera línea hemos de escribir la dirección de email en la que deseamos recibir los avisos, mientras que en las demás pondremos únicamente lo que aparece en color rojo.

Hecho lo anterior, guardamos los cambios realizados en el fichero y reiniciamos el servicio:

Así, cada vez que haya un intento de acceso no autorizado y se bloquee la IP correspondiente, enviando un aviso a la dirección de correo indicado con información sobre la IP y el ISP desde los que se ha intentado acceder sin permiso a nuestra máquina. También también avisará cada vez que se detenga o se reactive el servicio.