Connessione wifi da terminale via nmcli

Connessione wifi da terminale via nmcli

Connessione wifi da terminale via nmcli

Come configurare la connessione wireless utilizzando il terminale ed nmcli Nelle distribuzioni Linux come Debian e SysLinuxOS, la connessione wireless può essere configurata utilizzando l’interfaccia grafica del sistema Network Manager, ma in alcuni casi può essere necessario utilizzare la riga di comando. In questa guida vedremo come configurare la connessione wireless utilizzando il terminale

In primo luogo, è necessario identificare il nome dell’interfaccia wireless utilizzando il comando seguente:

$ nmcli device status

L’output del comando mostrerà l’elenco delle interfacce di rete disponibili. In questo esempio, l’interfaccia wireless è denominata “wlo1“. Successivamente, è possibile connettersi a una rete wireless WPA/WPA2 utilizzando il comando seguente:

$ nmcli device wifi connect ID ifname wlo1 password PASSWORD_RETE private yes hidden no

Dove “ID” è il nome della rete wireless e “PASSWORD_RETE” è la password della rete wireless. Inoltre, in questo esempio “wlo1” è il nome dell’interfaccia wireless. Se la connessione viene stabilita correttamente, è possibile verificare lo stato della connessione utilizzando il comando seguente:

$ nmcli connection show
disconnettersi dalla rete wireless attualmente connessa:
$ nmcli device disconnect wlo1

visualizzare le informazioni dettagliate sulla connessione wireless attiva:

$ nmcli connection show ID --show-secrets

consultare l’elenco delle reti wireless disponibili, inclusi i loro canali, la qualità del segnale e altri dettagli:

$ nmcli device wifi list
mostrare password in chiaro e QRcode:
$ nmcli device wifi show-password ifname wlo1
rimuovere una connessione wireless:
$ nmcli connection delete ID
Interfaccia grafica:
$ nm-connection-editor
Connessione wifi da terminale via nmcli
enjoy 😉

 

Monitorare Raspberry Pi con RPI-Monitor

 

Monitorare Raspberry Pi con RPI-Monitor

Monitorare Raspberry Pi con RPI-Monitor

 

Guida su come monitorare via Web UI un server Raspberry Pi utilizzando RPI-Monitor.

sudo apt update
sudo apt install dirmngr -y
sudo wget http://goo.gl/vewCLL -O /etc/apt/sources.list.d/rpimonitor.list
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com E4E362DE2C0D3C0F
sudo apt update
sudo apt install rpimonitor
sudo /etc/init.d/rpimonitor update

abilitare rpi-monitor allo startup come servizio:

sudo nano /etc/systemd/system/rpimonitor.service

ed inserire le righe sotto:

[Unit]
Description=RPi-Monitor daemon
Before=multi-user.target
After=remote-fs.target
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
Restart=on-failure
KillMode=mixed
Nice=19
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/rpimonitord
ExecStop=/bin/kill $MAINPID
StandardOutput=append:/var/log/rpimonitor.log
StandardError=append:/var/log/rpimonitor.log

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl enable rpimonitor

a questo punto si può accedere ad rpi-monitor all’indirizzo:

http://ip_address:8888

Monitorare Raspberry Pi con RPI-Monitor

enjoy 😉

 

TorrentBox con qBittorrent su Raspberry Pi

Torrentbox con qBittorrent su Raspberry Pi

TorrentBox con qBittorrent su Raspberry Pi

Guida su come installare qBittorrent su Raspberry Pi, per ottenere un server Torrent e scaricare files h24 in sicurezza.

Login via ssh su Raspberry Pi

sudo apt update
sudo apt install qbittorrent-nox -y

Aggiungere l’utente qbitorrent al sistema come non root

sudo useradd -r -m qbittorrent
sudo usermod -a -G qbittorrent $USER

Creazione servizio:

sudo nano /etc/systemd/system/qbittorrent.service

ed inserire:

[Unit]
Description=BitTorrent Client
After=network.target

[Service]
Type=forking
User=qbittorrent
Group=qbittorrent
UMask=002
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure

[Install]
WantedBy=multi-user.target

Avvio qBittorrent:

sudo systemctl start qbittorrent
sudo systemctl enable qbittorrent

Adesso abbiamo Accesso alla WEB UI con utente admin e password adminadmin

http://ip_address:8080

1) cambiare user e password

TorrentBox con qBittorrent su Raspberry Pi

2) installare una vpn

TorrentBox con qBittorrent su Raspberry Pi

enjoy 😉

 

Condividere terminale via Browser con ttyd

 

Condividere terminale via Browser con ttyd

 

Condividere terminale via Browser con ttyd

Guida su come condividere il proprio terminale via web browser utilizzando ttyd. Questo trucco è molto utile soprattutto se si vuole mostrare il terminale e di conseguenza renderlo leggibile a tutti, utilizzando lo zoom del proprio browser.

$ sudo apt update
$ sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev
$ git clone https://github.com/tsl0922/ttyd.git
$ cd ttyd
$ mkdir build; cd build
$ cmake ..
$ sudo make; sudo make install

Avviare da terminale con il comando:

$ ttyd -p 8080 bash

poi aprire il browser all’indirizzo:

http://localhost:8080

e continuare ad eseguire i comandi nella pagina web.

enjoy 😉

 

ChatGPT da Terminale in Linux

ChatGPT da Terminale in LinuxChatGPT da Terminale in Linux

Guida su come utilizzare ChatGPT direttamente da un terminale Linux, Debian, SysLinuxOS, utilizzando ChatGPT Wrapper, un tool opensource scritto in python che si interfaccia con ChatGPT.

Requisiti:

$ sudo apt-get update
$ sudo apt install python3-pip git-all

Installare: setuptools, pytest-playwright, rich

$ pip install setuptools
$ pip install pytest-playwright
$ python3 -m pip install rich

con playwright installare Firefox per fare il login su ChatGPT

$ python3 -m playwright install firefox
$ pip install pyreadline3

Installare adesso ChatGPT Wrapper

$ pip install git+https://github.com/mmabrouk/chatgpt-wrapper
$ chatgpt install

si aprirà Firefox, quindi fare il login e poi chiudere e riavviare il terminale. Ricordarsi di modificare il PATH, poiche ChatGPT crea le cartelle in /home/user/.local/bin, oppure avviarlo da lì.

$ chatgpt
ChatGPT da Terminale in LinuxChatGPT da Terminale in Linux

enjoy 😉

 

NordVPN su SysLinuxOS e Debian 11

 

NordVPN su SysLinuxOS e Debian 11

NordVPN su SysLinuxOS e Debian 11

 

Guida su come configurare NordVPN, su SysLinuxOS e Debian 11 Bullseye, in modo grafico utilizzando Network Manager oppure direttamente da terminale.

Prerequisiti:

  • Abbonamento a NordVPN
  • SysLinuxOS Debian Bullseye e derivate

SysLinuxOS:

cd /etc/openvpn
sudo wget https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip
sudo unzip ovpn.zip
sudo rm ovpn.zip
cd ovpn_udp
ls -al

Debian:

sudo apt-get install openvpn network-manager-openvpn-gnome ca-certificates unzip
sudo service network-manager restart
cd /etc/openvpn
sudo wget https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip
sudo unzip ovpn.zip
sudo rm ovpn.zip
cd ovpn_udp
ls -al

per far partire la VPN, basta scegliere un server della lista:

sudo openvpn de1022.nordvpn.com.udp.ovpn

OpenVPN chiederà le credenziali, quindi inserire user e password.

Per utilizzare Network Manager, basta solo importare la configurazione del server scelto

NordVPN su SysLinuxOS e Debian 11

NordVPN su SysLinuxOS e Debian

 

enjoy 😉

 

Nextcloud Server su Raspberry Pi

 

 Nextcloud Server su Raspberry Pi

Nextcloud Server su Raspberry Pi

 

Guida su come installare un server, utilizzando Nextcloud su Raspberry Pi 3/4. A differenza della guida precedente, dove ho utilizzato Nginx come web server, adesso utilizzerò Apache2.  Ci saranno anche 10 consigli per rendere più sicuro il server.

Prerequisiti ed info
  • Raspberry Pi 3/4
  • Raspberry Pi OS Bullseye già installato con accesso ssh.
  • Consiglio di utilizzare rpi-imager per preparare la sd card, e nelle impostazioni abilitare subito ssh, e sopratutto creare un nuovo utente.
  • La guida è stata testata su una installazione pulita di Raspberry Pi OS Lite.
1) Accedere al Raspberry via ssh ed aggiornare
sudo apt update; sudo apt upgrade -y
sudo reboot
2) Installazione php8.0 Mariadb Apache2
sudo apt install apache2 php8.0 php8.0-gd php8.0-sqlite3 php8.0-curl php8.0-zip php8.0-xml php8.0-mbstring php8.0-mysql php8.0-bz2 php8.0-intl php-smbclient php8.0-imap php8.0-gmp libapache2-mod-php8.0 mariadb-server python3-certbot-apache
3) Verifica Apache2
sudo systemctl restart apache2
sudo systemctl status apache2
4) Creazione utente nextcloud e db
sudo mysql -u root -p

ed invio

create database nextcloud_db;
create user nextclouduser@localhost identified by 'YOUR-STRONG-PWD';
grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'YOU-STRONG-PWD';
flush privileges;
exit
5) Download Nextcloud
cd /var/www/
sudo wget -v https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo rm latest.zip

creazione  della directory di storage, quest’ultima può essere creata anche all’esterno della cartella Nextcloud o su unità esterna.

sudo mkdir -p /var/www/nextcloud/data
sudo chown -R www-data:www-data /var/www/nextcloud/
sudo chmod 750 /var/www/nextcloud/data
6) Configurazione Apache2
sudo nano /etc/apache2/sites-available/nextcloud.conf

ed incollare questa semplice configurazione, che punterà a http://ip-server/nextcloud/

<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

<IfModule mod_dav.c>
Dav off
</IfModule>

</Directory>
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2

se si volesse utilizzare invece un proprio dominio:

<VirtualHost *:80>
DocumentRoot /var/www/nextcloud/
ServerName your.domain.com

<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews

<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2
7) Nextcloud post installazione

 

Nextcloud Server su Raspberry Piandare all’indirizzo del server: http://my-ip-address/nextcloud/

# hostname -I

creare username e password per l’accesso via web, e poi inserire nextclouduser e nextclouddb. I dati di default saranno in /var/www/nextcloud/data, ma si possono anche spostare successivamente.

8) Tuning Apache2

alcune essenziali modifiche:

sudo nano /etc/php/8.0/apache2/php.ini

trovare queste tre stringhe e modificarle da così:

memory_limit = 128M
post_max_size = 8M
upload_max_filesize = 2M

a così:

memory_limit = 512M
post_max_size = 1024M
upload_max_filesize = 1024M
sudo systemctl restart apache2
9) Certificato SSL

nell’esempio sotto, userò un auto-certificato, ma è consigliato un certificato del tipo Let’s Encrypt, come mostrato nella guida precedente.

sudo mkdir -p /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
sudo a2enmod ssl
sudo systemctl restart apache2

trovare queste due stringhe:

sudo nano /etc/apache2/sites-available/default-ssl.conf

e modificarle da così:

SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

a così:

SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
sudo a2ensite default-ssl.conf
sudo systemctl reload apache2
10) Sicurezza

10.1) Installazione e configurazione firewall ufw:

sudo apt install ufw
sudo ufw enable

bloccare tutte le connessioni in ingresso:

sudo ufw default allow outgoing
sudo ufw default deny incoming

aprire solo le porte interessate, come quella ssh o https, ad ogni modo mai utilizzare porte standard:

sudo ufw allow 22
sudo ufw allow 443/tcp

verifica:

sudo ufw status verbose
sudo iptables -S

10.2) Installazione e configurazione fail2ban:

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

proteggere tutti i servizi usati, utilizzando /etc/fail2ban/jail.local, fail2ban arriva già con dei filtri predefiniti che possono essere abilitati:

ls /etc/fail2ban/filter.d/

esempio:

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 120
ignoreip = whitelist-IP

# detect password authentication failures
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6

# detect potential search for exploits and php vulnerabilities
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6

# detect Apache overflow attempts
[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2

# detect failures to find a home directory on a server
[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
logpath = /var/log/apache*/*error.log
maxretry = 2
sudo systemctl restart fail2ban 
sudo fail2ban-client status

10.3) Trusted Domain

indicare solo gli ip ed i domini che possono accedere:

sudo nano /var/www/nextcloud/config/config.php
'trusted_domains' => 
array (
0 => '192.168.1.122',
1 => 'my-domain.com',

10.4) Forzare la connessione via SSL

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

sostituire http con https:

<VirtualHost *:80>
ServerAdmin admin@example

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

10.5) Aggiornamenti di sicurezza automatici giornalieri:

sudo apt install unattended-upgrades
sudo nano /etc/apt/apt.conf.d/02periodic

inserire:

APT::Periodic::Enable "1";
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::Verbose "2";

aggiornare:

sudo unattended-upgrades -d

10.6) Sudo DEVE sempre chiedere la password:

sudo nano /etc/sudoers.d/010_pi-nopasswd

diventa da così:

YOUR-USER ALL=(ALL) NOPASSWD: ALL

a così:

YOUR-USER ALL=(ALL) PASSWD: ALL

10.7) Mysql in sicurezza

sudo mysql_secure_installation
Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y 
Remove anonymous users? [Y/n] Y 
Disallow root login remotely? [Y/n] Y 
Remove test database and access to it? [Y/n] Y 
Reload privilege tables now? [Y/n] Y

10.8) SSH in sicurezza

cambiare subito la porta di default e verificare che non sia abilitato il login come root, ma soprattutto usare una chiave ssh:

sudo nano /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
Port 2223
10.9) Backup

backup da eseguire periodicamente su supporti esterni ed in remoto. Si può utilizzare rsync (guida), tar (guida), dd (guida), scp (guida), lsyncd (guida).

10.10) VPN

il sistema più sicuro per accedere da remoto è tramite vpn, se si ha un router che supporta ipSec o Wireguard (fritzbox 7590) il tutto è semplice, in alternativa si può creare un server vpn, utilizzando openvpn o wireguard

Nextcloud Server su Raspberry Pi

enjoy 😉

Configurare Samba server su Debian 11 e SysLinuxOS

 

Samba è un software gratuito che consente di condividere file in rete utilizzando il protocollo SMB (Server Message Block). Samba è supportato su varie piattaforme come i sistemi operativi Windows e Unix. Guida per OS Debian based e SysLinuxOS

Step 1 Installazione
sudo apt install samba smbclient cifs-utils
Step 2 Creazione cartelle condivisione:
sudo mkdir /mnt/{private,public}
Step 3 Configurazione smb.conf
sudo nano /etc/samba/smb.conf

ed aggiunger in fondo:

[public]
comment = Public Folder
path = /mnt/public
writable = yes
guest ok = yes
guest only = yes
force create mode = 775
force directory mode = 775


[private]
comment = Private Folder
path = /mnt/private
writable = yes
guest ok = no
valid users = @smbshare
force create mode = 770
force directory mode = 770
inherit permissions = yes
Step 4 Creazione utente e gruppo:
sudo groupadd smbshare
sudo chgrp -R smbshare /mnt/private/
sudo chgrp -R smbshare /mnt/public
sudo chmod 770 /mnt/private/
sudo chmod 775 /mnt/public
sudo useradd -M -s /sbin/nologin sambauser
sudo usermod -aG smbshare sambauser
sudo smbpasswd -a sambauser
sudo smbpasswd -e sambauser

Verificare funzionamento:

sudo touch /mnt/private/test1.txt /mnt/public/test2.txt
sudo systemctl restart smbd

Accesso locale:

smbclient '\\localhost\public' -U sambauser

output ls:

edmond@syslinuxbox:~$ smbclient '\\localhost\public' -U sambauser
Enter WORKGROUP\sambauser's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Sat May 28 16:52:47 2022
.. D 0 Sat May 28 16:48:41 2022
test2.txt N 0 Sat May 28 16:52:47 2022

69977312 blocks of size 1024. 40744856 blocks available
smb: \>

Accesso da client Linux:

un metodo veloce è quello di aprire il proprio file manager, nel mio caso Caja, ed inserire il percorso:

smb://sambauser@ip_address/public/

Configurare Samba server su Debian 11 e SysLinuxOS

Configurare Samba server su Debian 11 e SysLinuxOS

enjoy 😉

Installare Docker su Debian 11 e SysLinuxOS

 

Installare Docker su Debian 11

Installare Docker su Debian 11 e SysLinuxOS

Docker è un programma che consente di impacchettare software in contenitori, ed eseguirli su macchine virtuali . Questi contenitori sono completamente indipendenti, il che aumenta la sicurezza del contenitore, ed inoltre sono molto più leggeri rispetto a delle macchine virtuali.

Prerequisiti Debian 11 bullseye e SyslinuxOS

$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

Chiave

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Repository

$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Installazione

$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io

Docker versione

$ docker --version
Docker version 20.10.14, build a224086

Verfica servizi

$ sudo systemctl status docker
$ sudo systemctl stop docker
$ sudo systemctl start docker

Abilitazione disabilitazione al boot

$ sudo systemctl enable docker
$ sudo systemctl enable containerd.service
$ sudo systemctl disable docker

Aggiungere user al gruppo docker per evitare i privilegi root

$ sudo usermod -aG docker $USER
$ sudo reboot

Test

$ docker run hello-world

Installare Docker su Debian 11

oppure

$ docker run -it debian bash

Rimozione:

$ sudo apt autoremove docker-ce docker-ce-cli containerd.io
$ sudo rm /etc/apt/sources.list.d/docker.list
$ sudo apt update
Installare Docker su Debian 11 e SysLinuxOS

 

enjoy 😉

 

XAMPP PHP 8 su Debian Bullseye

 

XAMPP PHP 8 su Debian Bullseye

XAMPP PHP 8 su Debian Bullseye

XAMPP è una suite completamente gratuita e facile da installare che contiene Apache, MariaDB, PHP, e Perl. La pagina di download è la seguente, una volta scaricato l’installer, cambiare i permersi ed iniziare l’installazione:

$ chmod 755 xampp-linux-*-installer.run
$ sudo ./xampp-linux-*-installer.run --mode gtk --installer-language it

alla fine si potrà scegliere di lanciare subito xampp, e quindi andare in Manage-Servers per avviare i servizi. La schermata iniziale è raggiungibile all’indirizzo https://localhost/. Per avviare xampp da interfaccia grafica quindi utilizzare:

$ sudo /opt/lampp/manager-linux-x64.run

altrimenti si possono utilizzare i seguenti singoli comandi:

$ sudo /opt/lampp/xampp start
$ sudo /opt/lampp/xampp stop
$ sudo /opt/lampp/xampp restart
$ sudo /opt/lampp/xampp startapache
$ sudo /opt/lampp/xampp startmysql
$ sudo /opt/lampp/xampp startftp
$ sudo /opt/lampp/xampp stopapache
$ sudo /opt/lampp/xampp stopmysql
$ sudo /opt/lampp/xampp stopftp
$ sudo /opt/lampp/xampp enablessl
$ sudo /opt/lampp/xampp disablessl

Per il server ProFTP: nome utente «nobody», password «lampp». E’ necessario mettere in sicurezza xampp, creando le password di accesso per i vari servizi. Il comando è il seguente:

$ sudo /opt/lampp/xampp security
XAMPP PHP 8 su Debian Bullseye

enjoy 😉