minor changes

This commit is contained in:
piccihud 2024-11-23 19:01:50 +01:00
parent 01c09855eb
commit fc03b72b17
4 changed files with 26 additions and 159 deletions

View File

@ -1,5 +1,5 @@
--- ---
title: chroot title: Come accedere a file-system danneggiati con il comando chroot
date: 2024-11-23 date: 2024-11-23
description: il comando chroot è uno strumento potente per il recupero del sistema in Linux. Ad esempio, puoi usarlo da un ambiente live per accedere a un filesystem danneggiato description: il comando chroot è uno strumento potente per il recupero del sistema in Linux. Ad esempio, puoi usarlo da un ambiente live per accedere a un filesystem danneggiato
tags: tags:

View File

@ -1,5 +1,5 @@
--- ---
title: diff title: diff, confrontare file e directory
date: 2024-11-23 date: 2024-11-23
description: diff è un comando della shell Linux utilizzato per confrontare file e directory, mostrando le differenze tra di essi description: diff è un comando della shell Linux utilizzato per confrontare file e directory, mostrando le differenze tra di essi
tags: tags:

View File

@ -11,10 +11,12 @@ tags:
# Snikket # Snikket
Si tratta di un progetto che, tramite l'utilizzo di container Docker, permette di installare un servizio su un server fisico o virtuale per configurarlo in modo da riuscire a gestire autonomamente la messaggistica tramite il protocollo XMPP. Si tratta di un progetto che, tramite l'utilizzo di container Docker, permette di installare un server XMPP per la messaggistica istantanea.
## DNS ## DNS
Aggiungere i seguenti record DNS:
```bash ```bash
# Domain TTL Class Type Target # Domain TTL Class Type Target
chat.example.com. 300 IN A 203.0.113.123 chat.example.com. 300 IN A 203.0.113.123
@ -22,37 +24,10 @@ groups.chat.example.com 300 IN CNAME chat.example.com.
share.chat.example.com 300 IN CNAME chat.example.com. share.chat.example.com 300 IN CNAME chat.example.com.
``` ```
## Docker ## Installare docker
```bash
apt update && apt upgrade
```
Per Debian, seguire le istruzioni alla pagina [ufficiale](https://docs.docker.com/install/linux/docker-ce/debian/). In particolare: Per Debian, seguire le istruzioni alla pagina [ufficiale](https://docs.docker.com/install/linux/docker-ce/debian/). In particolare:
```bash
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# To install the latest version, run:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Verify that the installation is successful by running the hello-world image:
sudo docker run hello-world
```
## Installazione di Snikket ## Installazione di Snikket
```bash ```bash
@ -111,17 +86,6 @@ Status: active
[ 9] 5349 ALLOW IN Anywhere [ 9] 5349 ALLOW IN Anywhere
[10] 5350 ALLOW IN Anywhere [10] 5350 ALLOW IN Anywhere
[11] 49152:65535/udp ALLOW IN Anywhere [11] 49152:65535/udp ALLOW IN Anywhere
[12] 1222/tcp (v6) ALLOW IN Anywhere (v6)
[13] 80/tcp (v6) ALLOW IN Anywhere (v6)
[14] 443/tcp (v6) ALLOW IN Anywhere (v6)
[15] 5222/tcp (v6) ALLOW IN Anywhere (v6)
[16] 5269/tcp (v6) ALLOW IN Anywhere (v6)
[17] 5000/tcp (v6) ALLOW IN Anywhere (v6)
[18] 3478 (v6) ALLOW IN Anywhere (v6)
[19] 3479 (v6) ALLOW IN Anywhere (v6)
[20] 5349 (v6) ALLOW IN Anywhere (v6)
[21] 5350 (v6) ALLOW IN Anywhere (v6)
[22] 49152:65535/udp (v6) ALLOW IN Anywhere (v6)
``` ```
In particolare: In particolare:
@ -155,13 +119,13 @@ docker compose up -d
```bash ```bash
docker exec snikket create-invite --admin --group default docker exec snikket create-invite --admin --group default
```
Viene generato un link utilizzabile una sola volta. Tutti gli altri utenti possono essere creati dal pannello di controllo una volta eseguito laccesso. Viene generato un link utilizzabile una sola volta. Tutti gli altri utenti possono essere creati dal pannello di controllo una volta eseguito laccesso.
```
## Troubleshooting ## Troubleshooting
[https://snikket.org/service/help/setup/troubleshooting/](https://snikket.org/service/help/setup/troubleshooting/)
```bash ```bash
# Checking for errors # Checking for errors
@ -178,8 +142,6 @@ docker-compose exec snikket_certs su letsencrypt -- -c "certbot renew --config-d
```bash ```bash
> cat /etc/snikket/docker-compose.yml > cat /etc/snikket/docker-compose.yml
version: "3.3"
services: services:
# nome del servizio # nome del servizio
snikket_proxy: snikket_proxy:
@ -228,32 +190,6 @@ volumes:
snikket_data: snikket_data:
``` ```
### cli dei volumi
```bash
> docker volume help
Usage: docker volume COMMAND
Manage volumes
Commands:
create Create a volume
inspect Display detailed information on one or more volumes
ls List volumes
prune Remove all unused local volumes
rm Remove one or more volumes
```
## Comandi docker compose (in riferimento ai volumi)
Docker Compose fornisce diversi comandi che aiutano a gestire in modo efficace lapplicazione e le sue risorse. Nel dettaglio questi comandi e il loro rapporto con i volumi:
- `docker compose up`: crea e avvia lapplicazione, compresi i servizi, le reti e i volumi. Se si definisce un volume denominato nel file docker-compose.yml prima che esista, questo comando lo creerà automaticamente.
- `docker compose down`: arresta e rimuove i servizi e le reti dellapplicazione. Per impostazione predefinita, non rimuove i volumi denominati. Per rimuovere i volumi denominati, usare il flag `--volumes` o `-v`.
- `docker compose ps`: elenca i container e il loro stato attuale, comprese le informazioni relative ai volumi.
- `docker compose config`: convalida e visualizza la configurazione effettiva generata dal file docker-compose.yml, comprese le definizioni dei volumi.
## Update Snikket ## Update Snikket
```bash ```bash
@ -263,7 +199,7 @@ docker compose pull
docker compose up -d docker compose up -d
``` ```
Per maggiori dettagli: [https://snikket.org/service/help/setup/upgrading/](https://snikket.org/service/help/setup/upgrading/) Per maggiori dettagli: [upgrading](https://snikket.org/service/help/setup/upgrading/)
## Riferimenti ## Riferimenti
@ -273,3 +209,5 @@ Per maggiori dettagli: [https://snikket.org/service/help/setup/upgrading/](https
- [https://wiki.xmpp-it.net/index.php/Installazione_di_un_server_Snikket](https://wiki.xmpp-it.net/index.php/Installazione_di_un_server_Snikket) - [https://wiki.xmpp-it.net/index.php/Installazione_di_un_server_Snikket](https://wiki.xmpp-it.net/index.php/Installazione_di_un_server_Snikket)
- [https://snikket.org/service/help/advanced/firewall/](https://snikket.org/service/help/advanced/firewall/) - [https://snikket.org/service/help/advanced/firewall/](https://snikket.org/service/help/advanced/firewall/)
- [https://snikket.org/](https://snikket.org/) - [https://snikket.org/](https://snikket.org/)
- [troubleshooting](https://snikket.org/service/help/setup/troubleshooting/)

View File

@ -23,7 +23,7 @@ sudo systemctl enable ssh #Abilita SSH all'accensione della macchina
## Creazione chiave SSH ## Creazione chiave SSH
Il protocollo SSH utilizza una tecnica di crittografia chiamata crittografia asimmetrica. Fondamentalmente, la crittografia asimmetrica è un sistema che usa una coppia di chiavi, cioè la *chiave pubblica* e quella *privata*. Il protocollo SSH utilizza una tecnica di crittografia chiamata `crittografia asimmetrica`. Fondamentalmente, la crittografia asimmetrica è un sistema che usa una coppia di chiavi, cioè la *chiave pubblica* e quella *privata*.
La chiave pubblica può essere condivisa con chiunque, avendo come scopo principale quello di criptare i dati, convertendo il messaggio in un codice segreto. Questa chiave viene solitamente inviata ad altri sistemi, per esempio i server, per criptare i dati prima di inviarli su Internet. La chiave pubblica può essere condivisa con chiunque, avendo come scopo principale quello di criptare i dati, convertendo il messaggio in un codice segreto. Questa chiave viene solitamente inviata ad altri sistemi, per esempio i server, per criptare i dati prima di inviarli su Internet.
@ -50,53 +50,32 @@ ssh-keygen -t ed25519 -C "<commento>" -f /home/user/.ssh/key_name
Ecco un esempio: Ecco un esempio:
```bash ```bash
dado@WORKSTATION03:~ ssh-keygen -t ed25519 -C "dado" -f ~/.ssh/key_name
ssh-keygen -t ed25519 -C "dado"
Generating public/private ed25519 key pair. Generating public/private ed25519 key pair.
Enter file in which to save the key (~/.ssh/id_ed25519): ~/.ssh/<file_name>
``` ```
- <file_name> indica il nome del file in cui sarà salvata la chiave. Poi verrà chiesta una *passphrase* da aggiungere alla coppia di chiavi. Questo aggiunge un ulteriore livello di sicurezza se, in qualsiasi momento, il vostro dispositivo venisse compromesso. Non è obbligatorio aggiungere una passphrase, ma è sempre raccomandato.
Poi verrà chiesta una *passphrase* da aggiungere alla coppia di chiavi. Questo aggiunge un ulteriore livello di sicurezza se, in qualsiasi momento, il vostro dispositivo viene compromesso. Non è obbligatorio aggiungere una passphrase, ma è sempre raccomandato.
Questo comando genera due file nella directory selezionata (comunemente ~/.ssh): Questo comando genera due file nella directory selezionata (comunemente ~/.ssh):
- la chiave pubblica con lestensione `.pub`; - la chiave pubblica con lestensione `.pub`;
- e quella privata senza estensione. - e quella privata senza estensione.
La chiave pubblica può essere vista con un semplice comando: ## Caricamento della chiave SSH nella macchina remota
L'output del comando precedente deve essere copiato nel file `.ssh/authorized_keys` presente sulla macchina remota.
```bash ```bash
dado@WORKSTATION03:~ ssh-copy-id -i ~/.ssh/key_name.pub -p <port_number> <username>@<host>
cat /home/dado/.ssh/<file_name>.pub
``` ```
## Caricamento della chiave SSH nella macchina remota (server)
L'output del comando precedente deve essere copiato nel file **.ssh/authorized_keys** presente sulla macchina remota.
Per prima cosa, Si accede tramite SSH alla macchina remota:
```bash
ssh user@indirizzo_ip
dado@WORKSTATION03:~
ssh root@10.21.81.138 -p 1220 (per una porta differente dalla 22)
[15:33:25]root@server:~
cd .ssh
[15:33:31]root@server:~/.ssh
echo ssh-ed25519 ******************************************************* dado >> authorized_keys
```
Oppure, se si preferisce, si può utilizzare Nano ovvero Vim. Tramite il comando `cat .ssh/authorized_keys` o `less .ssh/authorized_keys` è possibile vedere la propria chiave nel file di configurazione.
### Configurazione SSH sulla macchina locale ### Configurazione SSH sulla macchina locale
Nel file di configurazione locale, va indicato come raggiungere l'host remoto: Nel file di configurazione locale, va indicato come raggiungere l'host remoto:
```bash ```bash
dado@WORKSTATION03:~ cat .ssh/config
vim .ssh/config
host <key_name> #il nome della macchina remota alla quale si accederà host <key_name> #il nome della macchina remota alla quale si accederà
hostname 10.21.81.138 #indirizzo ip della macchina remota hostname 10.21.81.138 #indirizzo ip della macchina remota
user root user root
@ -107,61 +86,11 @@ port 22
### Accedere alla macchina remota ### Accedere alla macchina remota
Per accedere a una macchina server tramite SSH è necessario conoscere l'indirizzo ip di questa macchina e il nome dell'utente. Ciò è possibile scoprirlo con questi semplici comandi: Ora, per accedere alla macchina basta digitare: `ssh <key_name>`
```bash
hostname -I
192.168.0.115
whoami
dado
```
In assenza della chiave, quindi si può sempre accedere in questo modo:
```bash
ssh dado@192.168.0.115
```
Altrimenti, per accedere alla macchina basta digitare:
`ssh <key_name>`
Ad esempio:
```bash
dado@WORKSTATION03:~
ssh mnt-bbb
```
## Aggiungere la Chiave SSH allAccount Git
Nelle impostazioni del proprio account, aggiungere la propria chiave pubblica nel campo `SSH and GPG keys`.
Quindi, configurare il file .ssh/config nella macchina locale:
```bash
# host gitea.it/dado
# hostname 10.97.57.55
user <name>
IdentityFile /home/user/.ssh/<file>
TCPKeepAlive yes
port 22
```
Modificare le impostazioni di `git`:
`git config --global --edit`
## Copiare la chiave pubblica in remoto
```bash
ssh-copy-id -i ~/.ssh/id_rsa.pub -p <port_number> <username>@<host>
```
## Riferimenti ## Riferimenti
- [https://linuxhint.com/enable-ssh-server-debian/](https://linuxhint.com/enable-ssh-server-debian/) - [enable-ssh-server-debian](https://linuxhint.com/enable-ssh-server-debian/)
- [SSH](https://wiki.debian.org/it/SSH)
- [https://wiki.debian.org/it/SSH](https://wiki.debian.org/it/SSH) - [connecting-to-github-with-ssh](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)
- [generare-chiavi-ssh](https://kinsta.com/it/blog/generare-chiavi-ssh/)
- [https://docs.github.com/en/authentication/connecting-to-github-with-ssh](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)
- [https://kinsta.com/it/blog/generare-chiavi-ssh/](https://kinsta.com/it/blog/generare-chiavi-ssh/)