×

ARDUINO

Control d’accés amb contrasenya. Orgue de llums. Comparativa de editors Arduino. Projecte bon Nadal. Sensor de gas i de fums. Control de la qualitat del aire interior (CO2) amb semàfor LED.

NodeMCU

NodeMCU-ThingSpeak. ThingSpeak. NodeMCU com AccessPoint. Control de la llum de casa per web. Control de un led per el mòbil. Sistema de fitxers en ESP8266. Altura del nivell d'aigua. Avis d’alarma a Telegram. Control de la llum de casa des de Telegram. Control de la intensitat de llum de un LED per Internet. Magatzematge de temperatura i humitat en Thinger. Publicar temperatura i humitat en Google Sheets. ESP8266 i Firebase. ESP8266-BME280 Firebase. La bàscula. ESP8266 NodeMCU amb cèl·lula de càrrega..

ESP32

ESP32-CAM, exemple de prova. Esp32-Cam captura fotos per ser vistes en la WEB. Pujar fotos a un servidor FTP amb ESP32-CAM. Foto amb ESP32-CAM i Telegram. Alarma amb avis a Telegram, utilitzant la placa ESP32-CAM.

PROGRAMACIÓ

Matemàtiques. App Inventor tutorial. MicroPython en ESP8266. Visual Estudio Code per Arduino

Intel·ligència artificial

Classificador d’imatges.

SERVIDORS

Instal·lar i configurar Apache en Ubuntu. Accés a un servidor Linux remotament. Client i Servidor FTP.

MÀQUINES VIRTUALS

Màquina virtual UBUNTU. WindowsXP en Virtualbox.

ELECTRÒNICA

Simulador Multisim. Simulador Proteus.

BASE DE DADES

MySQL. Instal·lació. MySQL. Aplicacions.

JAVA

Netbeans Maven MySQL. Java+Netbeans+Maven+EclipseLink+MySQL Aplicació d’escriptori JavaFX App JavaFX amb SceneBuilder App Java-Swing
favicon
logo

Tresavis

Benvinguts al blog de tresavis de noves tecnologies i més.

Correu : tresavis3@gmail.com

facebook   Instagram   youtube   x   tiktok

☰ Pràctiques   ☰ Articles

Descripció.

En aquesta practica instal·lem i configurem el servidor WEB Apache en un sistema operatiu Ubuntu.

Taques a realitzar.

.- Sistema operatiu.

.- Re-adreçar els ports del router.

.- Instal·lar Apache.

.- Configurar Apache.

.- Crear un certificat SSL auto firmat.

.- Instal·lar PHP 8.0.

.- Instal·lar i configurar OpenSSH. Es opcional però es recomanable realitzar-ho.

logo

Sistema operatiu.

Fem servir el sistema operatiu Ubuntu-20, també funciona en Linux Mint 19.

Es important saber treballar amb el terminal de Ubuntu, però no es del tot necessari, es copiar i enganxar les comandes en el terminal.

Re-adreçar els ports del router.

Primer que tot, el nostre servidor WEB Apache te que tenir una IP privada estàtica i també la IP publica estàtica.

La IP publica ens la don el nostre proveïdor de Internet ISP. Normalment els ISP ens dona una IP publica variable. La IP estàtica es té que demanar i te un cost addicional.

La IP privada del nostre servidor Apache, la escollim nosaltres a dins del rang que subministra el router. En Ubuntu tenim que configurar la IP privada, com estàtica.

Re-adreçar el port 80 per el servei HTTP, les peticions entrants per el port extern 80 van dirigides a la IP privada en el port intern 80. Pot ser que el port 80 estigui ocupat. La única solució es que el nostre servidor de Internet el canvi. En el nostre cas el port 80 estava ocupat per entrar en el router, per entrar en el router escrivíem en el navegador la IP del router 192.168.1.1 sense port, això vol dir que agafa el port per defecte que es el 80. La nostre ISP (Internet Service Provider) ha canviat el port del router i ha deixat lliure el port 80.

Re-adreçar el port 443 per servei HTTPS, per les peticions entrants per el port 443 van dirigides a la IP privada en el port intern 443. No oblidar aquest últim pas si volem que les nostres connexions siguin segures amb el protocol HTTPS.

ports

Instal·lar i configurar Apache

PAS 1.- Instal·lar Apache.

sudo apt update
sudo apt install apache2 
          

PAS 2.- Ajustar el firewall.

Per permetre el accés extern als ports web predeterminats.

Llista de les aplicacions que pot habilitar / des habilitar el Firewall:

sudo ufw app list
          
apache1

Tres perfils per Apache:

Apache : obre només el port 80 (transit web normal no xifrat).

Apache full : obre el port 80 i també el 443 transit TLS/SSH xifrat.

Apache Secure : només obre el port 443.

Al no tenir encara configurat el protocol SSH, permeti’m el transit en el port 80.

sudo ufw allow 'Apache'
          
apache2
sudo ufw status
          
apache3

PAS 3.- Comprovar el servidor web.

sudo systemctl status apache2
          
apache4

Per obtenir la IP privada del servidor:

hostname -I
          
apache5

Per obtenir la IP publica del servidor:

curl -4 icanhazip.com
          

Escrivim en el navegador:

192.168.1.112
apache7

El servidor Apache mostra la pagina per defecte, implica que funciona correctament.

PAS 4.- Administrar el procés de Apache.

Per detenir el servidor web:

sudo systemctl stop apache2
          

Per iniciar el servidor web:

sudo systemctl start apache2
          

Per reiniciar el servidor web:

sudo systemctl restart apache2
          

Per recarregar sense tancar la connexió:

sudo systemctl reload apache2
          

Des-habilitar:

sudo systemctl disable apache2
          

Per habilitar el servidor:

sudo systemctl enable apache2
          

PAS 5.- Horst virtuals.

Serveix per allotjar mes de un domini en un mateix servidor.

Configurem els dominis tresavis i tresavis.cat.

Per defecte Ubuntu allotja el lloc WEB en /var/www/html. Per un sol lloc web i es el predeterminat.

Creem dos directoris dins de /var/www, per allotjar els 2 dominis.

sudo mkdir /var/www/tresavis
sudo mkdir /var/www/tresavis.cat            
          

Assignar la propietat del directori amb la variable de entorn $USER

sudo sudo chown -R $USER:$USER /var/www/tresavis
sudo chown -R $USER:$USER /var/www/tresavis.cat           
          

Escrivim la primera pagina web de tresavis.cat, el index:

En el nostre cas ho fem en llenguatge php. Normalment les pagines web s’escriuen en HTML.

sudo gedit /var/www/tresavis.cat/index.php              
          
apache9

Mes fàcilment podem escriure el index en llenguatge html, per exemple de la següent manera:

apache10

Guardem i tanquem el arxiu.

Apache proporciona el contingut de la pagina tresavis.cat si creem un host virtual amb les directius correctes.

Arxiu del host virtual.

El arxiu de configuració predeterminat del host virtual es:

/etc/apache2/sites-available/000-default.conf

Creem un nou arxiu de host virtual per el domini tresavis: tresavis.conf

sudo gedit /etc/apache2/sites-available/tresavis.conf

Escrivim el següent:

<VirtualHost *:80>
    ServerAdmin tresavis3@gmail.com
    ServerName tresavis
    ServerAlias www.tresavis.cat
    DocumentRoot /var/www/html/tresavis
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>  
           

Creem un nou arxiu: tresavis.cat.conf, per el domini tresavis.cat

sudo gedit /etc/apache2/sites-available/tresavis.cat.conf
apache11

Habilitem els arxius amb l’eina a2ensite :

sudo a2ensite tresavis.conf
sudo a2ensite tresavis.cat.conf               
           
apache12

Tornem a carregar Apache, per activar la nova configuració:

systemctl reload apache2               
           

Deshabilitem el lloc predeterminat:

sudo a2dissite 000-default.conf               
           
apache13

Prova de errors de configuració:

sudo apache2ctl configtest              
           
apache14

Syntax OK, però si el missatge del terminal es com el següent:

apache15
Tenim que configurar una Global ServerName Directive:

Modifiquem el arxiu apache2.conf. Afegim ServerName 127.0.0.1 al final.

sudo gedit /etc/apache2/apache2.conf
apache16
systemctl reload apache2
sudo apachectl configtest               
           
apache17

Reiniciem el servei Apache.

sudo systemctl restart apache2.service

Posem els nostres arxius html i php de la nostre pagina web en els directoris:

var/www/tresavis
var/www/tresavis.cat
           

En el navegador escrivim localhost o la IP del localhost que es 127.0.0.1 i es mostra la pagina de la nostre WEB:

apache18

PAS 6.- Arxius importants de Apache.

/var/www/html conté la pagina web predeterminada de Apache. Això es pot canviar amb els arxius de configuració de Apache.

/etc/apache2: directori de configuració d'Apache. S'hi troben tots els arxius de configuració d'Apache.

/etc/apache2/apache2.conf: l'arxiu principal de configuració d'Apache. Això es pot modificar per fer canvis en la configuració general d'Apache. Aquest fitxer administra la càrrega de molts dels altres arxius de directori de configuració.

/etc/apache2/ports.conf: aquest arxiu especifica els ports en què Apache escoltarà. Per defecte, Apache escolta al port 80. De forma addicional, ho fa en el 443 quan s'habilita un mòdul que proporciona capacitats SSL.

/etc/apache2/sites-available/: directori en el qual es poden emmagatzemar llocs web. Apache no utilitzarà els arxius de configuració d'aquest directori llevat que estiguin vinculats a directori sites-enabled. Normalment, tota la configuració de blocs de servidor es realitza en aquest directori i després s'habilita el vincular-se a l'altre directori amb la comanda a2ensite.

/etc/apache2/sites-enabled/: directori on s'emmagatzemen hosts virtuals per lloc habilitats. Normalment, es creen vinculant els arxius de configuració de directori sites-available amb a2ensite. Apache llegeix els fitxers de configuració i els enllaços d'aquest directori quan s'inicia o es torna a carregar per a compilar una configuració completa.

/etc/apache2/conf-available/ i /etc/apache2/conf-enabled/: aquests directoris tenen la mateixa relació que els directoris sites-available i sites-enabled, però s'utilitzen per emmagatzemar fragments de configuració que no pertanyen a un amfitrió virtual. Els arxius de directori conf-available poden habilitar amb la comanda a2enconf i deshabilitar amb la comanda a2disconf.

/etc/apache2/mods-available/ i /etc/apache2/mods-enabled/: aquests directoris contenen els mòduls disponibles i habilitats, respectivament. Els arxius que acaben en .load contenen fragments per carregar mòduls específics, mentre que els arxius que acaben en .conf contenen la configuració per a aquests mòduls. Els mòduls es poden habilitar i deshabilitar amb les ordres a2enmod i a2dismod.

Registres de servidor.

/var/log/apache2/access.log: per defecte, cada sol·licitud enviada al seu servidor web s'assenta en aquest fitxer de registre a menys que Apache estigui configurat per no fer-ho.

/var/log/apache2/error.log: per defecte, tots els errors es registren en aquest arxiu. La directiva loglevel de la configuració d'Apache especifica el nivell de detall dels registres d'error.

Certificat SSL auto firmat per Apache en Ubuntu 20.04.

TLS, protocol de seguretat en la capa de transport i el seu predecessor SSL, serveixen per protegir el transit de dades en un entorn xifrat.

El certificat auto firmat xifra la comunicació entre client servidor. No està validat per cap autoritat certificadora. El usuari veurà un error en el navegador.

Let’s Encrypt es una endidat de certificació (CA) que facilita la obtenció i a instal·lació de certificats TLS/SSL gratuïts i habilita HTTPS xifrat en servidors web.

ledsEncryp

Cerbor es un programari per automatitzar el procés de obtenció i configuració del certificat i que es renovi automàticament.

S'utilitza un arxiu de host virtual diferent del predeterminat de Apache per poder configurar el lloc web protegit amb Let’s Encrypt. Els arxius predeterminats queden com de reserva.

Requisits previs.

· Servidor Ubuntu 20.4.

· Registre A amb el domini orientat a la IP publica, en el nostre cas tresavis.cat

· Arxiu de host virtual per el domini /etc/apache2/sites-available/tresavis.cat.conf

Configurar els registres A del DNS.

Nominalia ens proporciona el domini tresavis.cat.

Entrem en nominalia i comprovem que el nostre domini estigui vinculat correctament amb la nostre IP publica.

Registra A del DNS:

dns
Pas 1. instal·lar Cerbot.

Cerbot permet automatitzar la obtenció de certificats i configurar HTTPS.

Per obtenir el certificat SSL amb Let’s Script, primer tenim que instal·lar Cerbot. Necesitem 2 paquets cerbot i python3-cerbot apache.Aquest segon paquet integra Cerbot amb Apache.

sudo apt install certbot python3-certbot-apache
Pas 2. Comprovar el host virtual de Apache.

Cerbot ha de poder trobar les directives ServerName i ServerAlias en el nostre host virtual establert en /etc/apache2/sites-available/tresavis.cat.conf.

sudo gedit /etc/apache2/sites-available/tresavis.cat.conf
cerbot1

Per validar els canvis:

sudo apache2ctl configtest

Te que sortir Syntax OK. Si es així carreguem Apache:

sudo systemctl reload apache2
Pas 3. Habilitar HTTPS a traves del Firewall.

Tenim que habilitar el perfil Apache full per permetre tan el transit HTTP com també HTTPS.

sudo ufw status
cerbot2

Permetre el perfil Apache Full i eliminar el perfil Apache:

sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'              
          

El estat ha canviat, ho comprovem:

sudo ufw status
cerbot3
Pas 4. Obtenir un certificat SSL.

Per habilitar HTTPS necessitem de Let’s Encrypt que es una Autoritat de Certificació (AC). Cerbot es l’eina per instal·lar el certificat en Apache. Fa sevir el protocol ACME.

intro-cerbot

Cerbot ofereix varies alternatives per obtenir certificats SSL. Fem servir el complement --apache

sudo certbot --apache
cerbot4

Posem el nostre correu.

cerbot5

Cliquem 2, però millor clicar enter per obtenir el certificat en els dos dominis.

cerbot6

El certificat està instal·lat i configurat en el servidor web Apache. Comprovem el funcionament del certificat, escrivint en el navegador:

https://www.tresavis.cat
Cerbot amb el comando snap

Si no funciona amb el mètode anterior, podem fer servir el següent mètode per des-instal·lar Cerbot i tornar a començar amb el comando snap:

Instal·lar snap:

sudo snap install core; sudo snap refresh core

Eliminar els paquet previs de Cerbot instal·lats amb apt, després instal·larem Cerbot snap.

sudo apt-get remove certbot
sudo snap install --classic certbot            
        
snap1

Preparar el comando Cerbot:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Instal·lem els certificats en Apache automàticament, tenir accés HTTPS en un sol pas:

sudo cerbot --apache
snap2

Comprovem escrivin les URLs en el navegador:

https://tresavis.cat
https://www.tresavis.cat            
        

Instal·lar PHP 8.0.

PHP (Hypertext Preprocessor) es un llenguatge de codi-obert molt popular especialment adequat per el desenvolupament web i que pot ser incrustat en HTML.

php1

Actualitzar els paquets del sistema:

sudo apt update; sudo apt upgrade

Dependències:

sudo apt install -y software-properties-common

Actualitzar:

sudo apt-get update
sudo apt full-upgrade
sudo apt autoremove (nomes si es necessari)           

Afegir el PPA de ondrej:

sudo add-apt-repository ppa:ondrej/php

Actualitzar els paquets:

sudo apt upgrade -y

Instal·lar php 8.0:

sudo apt -y install libapache2-mod-php

Instal·lar i configurar OpenSSH.

SSH (Secure Shell) es un protocol per accedir a una maquina remota de forma segura.

openssh

OpenSSH es un conjunt d’eines de codi lliure basat en el protocol SSH.

Actualitzem el sistema:

sudo apt-get update

Instal·lem el servidor OpenSSH i les seves dependències:

sudo apt-get install openssh-server

Iniciem el servei:

sudo systemctl start sshd.service

Per detenir el servei:

sudo systemctl stop sshd.service

Que el servei inicií amb el sistema:

sudo systemctl enable sshd.service

Per saber el estat del servei:

sudo systemctl status sshd.service
ssh1

Permetre les connexions SSH per part del Firewall:

sudo ufw app list
ssh4
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status              
ssh4

Connectar amb la maquina Ubuntu remotament on tenim el servidor.

Des de una maquina en aquest cas Linux Mint que es troba en la mateixa xarxa local, escrivim ssh i la ip de la maquina que volem connectarar:

ssh 192.168.1.2

Posem el password per poder entrar en la maquina remota:

ssh6

Tenim accés total a la maquina remota. Des de la maquina nomenada josep (Linux Mint) hem connectat a la maquina nomenada ubuntu (Ubuntu).

Contingut.


Nosaltres

casa1
flors
lluna
casa2
canyelles
casa3

As Time Goes By

Cal recordar-ho

You must remember this

Un petó és només un petó

A kiss is just a kiss

Un sospir és només un sospir

A sigh is just a sigh

S'apliquen les coses fonamentals

The fundamental things apply

Amb el pas del temps

As time goes by

I quan dos amants cortegen

And when two lovers woo

Encara diuen "t'estimo"

They still say "I love you"

En això es pot confiar

On that you can rely

No importa el que aporti el futur

No matter what the future brings

Amb el pas del temps

As time goes by

Cançons de clar de lluna i d’amor

Moonlight and love songs

Mai desfasat

Never out of date

Cors plens de passió

Hearts full of passion

Gelosia i odi

Jealousy and hate

La dona necessita l’home i l’home ha de tenir la seva parella

Woman needs man, and man must have his mate

Això ningú no ho pot negar

That no one can deny

Segueix sent la mateixa història antiga

It's still the same old story

Una lluita per l’amor i la glòria

A fight for love and glory

Un cas de fer o morir

A case of do or die

El món sempre acollirà els amants

The world will always welcome lovers

Amb el pas del temps

As time goes by


Tags

Noves tecnologies WEB Arduino Domótica MycroPython NodeMCU IoT Java ESP8266 Lora C++ Programació Server-Client