Articoli

Abilitare file di swap su linux dopo l’installazione

Dopo aver installato Manjaro, ho iniziato a lavoraci e mi sono accorto che non avevo creato la partizione di swap, motivo per cui aprendo due macchine virtuali il sistema diventava instabile.

Partizione di swap o swap file?

Non avendo spazio libero sul disco ho optato per creare un file di swap all’interno della partizione esistente. Premetto che comunque sui nuovi kernel, per quanto riguarda le prestazioni, utilizzare una partizione piuttosto che il file di swap sulla stessa non porta a nessun miglioramento.

“In current Linux kernels, it is possible to use a swap file instead of a dedicated partition and as from kernel 2.6 onwards there is no performance difference any more between the two.”

Step by step swapfile

Verifico che non ci sia nessun altro file di swap:

  • Dalla shell utilizzo il comando df
  • Creiamo tramite dd un file vuoto sulla root chiamandolo swapfile e assegnando la dimensione che più si adatta al nostro sistema.

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress

Il risultato dovrebbe essere pressappoco questo:

  • Fatto ciò verifichiamo che il file sia presente e modifichiamo i permessi con chmod:

sudo chmod 600 swapfile

  • Utilizziamo mkswap che si occuperà della parte più complicata a mio avviso, della procedura, cioè rendere il file che abbiamo creato un file di swap, un area che il sistema utilizzerà quando avrà saturato la memoria RAM a sua disposizione:

sudo mkswap swapfile

  • Abilitiamo il file di swap appena creato e aggiungiamolo al nostro fstab:

sudo swapon swapfile

sudo bash -c “echo /swapfile none swap defaults 0 0 >> /etc/fstab”

  • Verifichiamo il nostro swap file:

Non resta che verificare che il sistema gestisca correttamente il file di swap:

La guida completa è disponibile sul wiki di Manjaro.

Standard
Articoli

Python virtual environment

venv (Python 3) e virtualenv (Python 2), consentono di gestire installazioni di pacchetti separate per diversi progetti.

[walter@Manjaro-hp Scrivania]$ mkdir project1
[walter@Manjaro-hp Scrivania]$ cd project1/
[walter@Manjaro-hp project1]$
[walter@Manjaro-hp project1]$ python
Python 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

import site
print(site.getusersitepackages())
[‘/usr/lib/python3.10/site-packages’] <—– Rappresenta il percorso di sistema contenente le librerie che vengono installate.

Installiamo tramite il comando dalla shell la libreria “virtualenv”: pip install virtualenv
Verifichiamo:
[walter@Manjaro-hp project1]$ virtualenv –version
virtualenv 20.14.1 from /home/walter/.local/lib/python3.10/site-packages/virtualenv/init.py

Una volta installata la libreria possiamo creare il nostro ambiente virtuale da personalizzare sulla base dei progetti che vogliamo gestire tramite virtualenv:

[walter@Manjaro-hp project1]$ virtualenv venv

L’output dovrebbe essere il seguente:
created virtual environment CPython3.10.4.final.0-64 in 321ms
creator CPython3Posix(dest=/home/walter/Scrivania/project1/venv, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/walter/.local/share/virtualenv)
added seed packages: pip==22.0.4, setuptools==62.1.0, wheel==0.37.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

Una volta eseguito il comand virtualenv creerà una cartella con il nome venv contenente l’ambiente, ma non sarà ancora attivo.

Per attivarlo dobbiamo eseguire il file “activate”, contenuto all’interno della cartella venv/bin/.
[walter@Manjaro-hp project1]$ . venv/bin/activate

Noteremo che la parte iniziale della nostra shell verrà modificata con il nome della cartella contenente il nostro ambiente virtuale tra parentesi tonde:

(venv) [walter@Manjaro-hp project1]$

Per verificare che l’ambiente è in esecuzione:

(venv) [walter@Manjaro-hp project1]$ python
Python 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

import site
print(site.getusersitepackages()) <——- Eseguiamo nuovamente un print per verificare il path
/home/walter/.local/lib/python3.10/site-packages <——- percorso restituito

In questo caso il percorso contenente le librerie sarà quello del nostro ambiente virtuale e tutte le librerie che andremo ad aggiungere verranno installate all’interno di questo isolando di fatto l’ambiente di sistema.

Standard
Articoli

Scrivere ISO Windows da Linux

Alternativa a Rufus per Linux.

WoeUSB è un ottimo sostituto di Rufus, visto che per Linux non è stato fatto nessun porting.

La versione “ng” si basa un folk del progetto originario, ma creata al 100% con Python interfaccia grafica inclusa. Il link del progetto è il seguente:

https://github.com/WoeUSB/WoeUSB-ng

Ho eseguito l’installazione su Linux Manjaro tramite yay (Yet Another Yaourt), quindi verifica se presente yay eseguendo dalla shell yay –version. Se non lo hai installato devi prima eseguire questi 2 comandi:

1 – pacman -Syu
2 – pacman -S yay

Una volta installato yay eseguire come utente: yay -S woeusb-ng, yay si occuperà di tutto.

Trovate l’icona per eseguire WoeUSB-ng sotto la voce di menù: Accessori.

L’utilizzo è semplice, selezionare prima la ISO di Windows che si vuole scrivere sull’USB e come Target device la memoria USB, che in genere ha un nome del tipo: /dev/sdb(Nome_device).
Fatto ciò confermiamo con “Install”.

Installazione su Mint

walter@walter-SVE1511C4E:~/Scrivania/WoeUSB-ng-master$ sudo apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin parted dosfstools ntfs-3g
[sudo] password di walter:            
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze       
Lettura informazioni sullo stato... Fatto
dosfstools è già alla versione più recente (4.1-2).
p7zip-full è già alla versione più recente (16.02+dfsg-7build1).
grub-pc-bin è già alla versione più recente (2.04-1ubuntu26.16).
grub2-common è già alla versione più recente (2.04-1ubuntu26.16).
ntfs-3g è già alla versione più recente (1:2017.3.23AR.3-3ubuntu1.3).
parted è già alla versione più recente (3.3-4ubuntu0.20.04.1).
python3-pip è già alla versione più recente (20.0.2-5ubuntu1.8).
I seguenti pacchetti aggiuntivi saranno inoltre installati:
  git-man liberror-perl python3-sip
Pacchetti suggeriti:
  git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk
  gitweb git-cvs git-mediawiki git-svn wx3.0-doc
I seguenti pacchetti NUOVI saranno installati:
  git git-man liberror-perl python3-sip python3-wxgtk4.0
0 aggiornati, 5 installati, 0 da rimuovere e 0 non aggiornati.
È necessario scaricare 12,2 MB di archivi.
Dopo quest'operazione, verranno occupati 80,0 MB di spazio su disco.
Continuare? [S/n] s
Scaricamento di:1 http://archive.ubuntu.com/ubuntu focal/main amd64 liberror-perl all 0.17029-1 [26,5 kB]
Scaricamento di:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 git-man all 1:2.25.1-1ubuntu3.11 [887 kB]
Scaricamento di:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 git amd64 1:2.25.1-1ubuntu3.11 [4.605 kB]
Scaricamento di:4 http://archive.ubuntu.com/ubuntu focal/universe amd64 python3-sip amd64 4.19.21+dfsg-1build1 [87,9 kB]
Scaricamento di:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 python3-wxgtk4.0 amd64 4.0.7+dfsg-2build1 [6.569 kB]
Recuperati 12,2 MB in 3s (3.910 kB/s)         
Selezionato il pacchetto liberror-perl non precedentemente selezionato.
(Lettura del database... 375855 file e directory attualmente installati.)
Preparativi per estrarre .../liberror-perl_0.17029-1_all.deb...
Estrazione di liberror-perl (0.17029-1)...
Selezionato il pacchetto git-man non precedentemente selezionato.
Preparativi per estrarre .../git-man_1%3a2.25.1-1ubuntu3.11_all.deb...
Estrazione di git-man (1:2.25.1-1ubuntu3.11)...
Selezionato il pacchetto git non precedentemente selezionato.
Preparativi per estrarre .../git_1%3a2.25.1-1ubuntu3.11_amd64.deb...
Estrazione di git (1:2.25.1-1ubuntu3.11)...
Selezionato il pacchetto python3-sip non precedentemente selezionato.
Preparativi per estrarre .../python3-sip_4.19.21+dfsg-1build1_amd64.deb...
Estrazione di python3-sip (4.19.21+dfsg-1build1)...
Selezionato il pacchetto python3-wxgtk4.0 non precedentemente selezionato.
Preparativi per estrarre .../python3-wxgtk4.0_4.0.7+dfsg-2build1_amd64.deb...
Estrazione di python3-wxgtk4.0 (4.0.7+dfsg-2build1)...
Configurazione di liberror-perl (0.17029-1)...
Configurazione di git-man (1:2.25.1-1ubuntu3.11)...
Configurazione di python3-sip (4.19.21+dfsg-1build1)...
Configurazione di python3-wxgtk4.0 (4.0.7+dfsg-2build1)...
Configurazione di git (1:2.25.1-1ubuntu3.11)...
Elaborazione dei trigger per man-db (2.9.1-1)...
walter@walter-SVE1511C4E:~/Scrivania/WoeUSB-ng-master$ sudo pip3 install WoeUSB-ng
Collecting WoeUSB-ng
  Downloading WoeUSB-ng-0.2.12.tar.gz (164 kB)
     |████████████████████████████████| 164 kB 1.2 MB/s 
Collecting termcolor
  Downloading termcolor-2.3.0-py3-none-any.whl (6.9 kB)
Requirement already satisfied: wxPython in /usr/lib/python3/dist-packages (from WoeUSB-ng) (4.0.7)
Collecting numpy
  Downloading numpy-1.24.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
     |████████████████████████████████| 17.3 MB 6.8 MB/s 
Building wheels for collected packages: WoeUSB-ng
  Building wheel for WoeUSB-ng (setup.py) ... done
  Created wheel for WoeUSB-ng: filename=WoeUSB_ng-0.2.12-py3-none-any.whl size=190601 sha256=db7f3de56dcdeb28ef63ff80e380eb195a96d042136c66da58d1b9ef3550dc17
  Stored in directory: /root/.cache/pip/wheels/6b/2a/27/da1cdfb0883e4c1052a8771a291da46bf45d18306b3034cfac
Successfully built WoeUSB-ng
Installing collected packages: termcolor, WoeUSB-ng, numpy
Successfully installed WoeUSB-ng-0.2.12 numpy-1.24.3 termcolor-2.3.0
Standard
Articoli

Cloud MEGA su Linux

Sincronizzazione automatica tra il computer e il cloud MEGA su Linux.

Con Mega hai la possibilità di avere a disposizione 85 GB di spazio in Cloud e integrarlo all’interno del tuo file manager preferito (Dolphin, Nautilus, Nemo e Thunar) come una normale cartella, ma sincronizzata direttamente in cloud.

Step 1 – Download dell’app e del plug-in per il sistema Linux da configurare

Dal sito web https://mega.io/sync

Per il mio sistema ho selezionato come distribuzione OpenSuse Leap 15 e gestore file Dolphin.

Step 2 – Installazione sulla nostra piattaforma

Scaricato i due file rpm procedere con l’installazione. Per evitare di scaricare manualmente le dipendenze non ho utilizzato il classico comando rpm -Uvh, ma nel mio caso zypper (in altri casi potrebbe essere yum o apt-get):

Step 3 – Configurazione account MEGA

Una volta eseguita l’installazione dei due pacchetti troveremo sul menù dei nostri programmi, nel mio caso “> Internet >” l’applicazione MEGASync (quella che si occupa d’instaurare la connessione e sincronizzare i nostri contenuti con il cloud di MEGA):

Eseguire l’applicazione e procedere con la configurazione dell’account.

Fatto questo possiamo già sincronizzare i nostri file per averli a disposizione sempre online:

Considerazioni su MEGA

MEGA è un servizio che utilizza una crittografia “end-to-end”, la password che inserisci viene utilizzata (come radice) per criptare tutti i dati che salverai sul cloud. Questo significa che una password sicura ti aiuterà a proteggere i tuoi dati. Conserva in un posto sicuro la chiave di recupero di cui potrai farne una copia quando effettui l’accesso e abilita l’autenticazione a due fattori.

Standard
Soluzioni

Verifica porta/servizio su Linux

Comandi da eseguire sul Server:

netstat -apnt | grep 5060

ss -aln

lsof -i:5060

Comando da eseguire sul Client per verificare lo stato della porta:

sudo nmap -v -sV 192.168.1.83 -p 5060

Test comunicazione:

1- Stop del Servizio sul Server per liberare la porta: systemctl stop asterisk

2- netcat -v -u -l 5060 (In questo caso -u UDP)

3- sul Client netcat -v -u 192.168.1.83 5060 (In questo caso -u UDP), se non riesce a connettersi provare a stoppare il firewall temporaneamente sul Server: systemctl stop firewalld

Standard
Articoli

Veracrypt: installarlo su Linux

Veracrypt permette di cryptare interi volumi o creare volumi cryptati all’interno di un file. E’ disponibile per tutti i sistemi operativi più utilizzati.

L’installazione su linux è possibile farla scaricandolo da git o aggiungendo i repository.

Per semplicità ho installato su Mint tramite repository:

  1. walter@walter-SVE1511C4E:~$ sudo add-apt-repository ppa:unit193/encryption (Aggiungiamo il repository)
  2. walter@walter-SVE1511C4E:~$ sudo apt update (scarica la lista aggiornata dei pacchetti e delle nuove versioni disponibili nei repository)
  3. walter@walter-SVE1511C4E:~$ sudo apt install veracrypt (eseguiamo installazione)
Standard
Articoli

IPFire: Next-Generation Firewall (NGFW)

IPFire è un firewall di nuova generazione che non si limitano al filtraggio dei pacchetti, ma utilizza un firewall SPI (Stateful Packet Inspection), basato su Netfilter.

Lo stateful firewall controlla il flusso dati tra i dispositivi connessi utilizzando una state table (tabella di stato) che ne tiene traccia. In questo modo se un pacchetto in ingresso o in uscita è relativo a una connessione già iniziata precedentemente e non ancora terminata esso viene automaticamente lasciato passare senza dover ripetere i controlli.
La verifica della connessione viene fatta solo sul primo pacchetto, se esso supera i controlli allora tutti i pacchetti successivi e relativi alla stessa connessione sono accettati.

IPFire integra un IPS, un sistema di prevenzione delle intrusioni, che analizza le attività sospette come possibili exploit e fuga di dati, generando alert e bloccando la connessione.

Sono disponibili varie impostazioni per mitigare e bloccare gli attacchi Denial of Service filtrandoli direttamente sul firewall e non consentendo loro di arrestare i server.

La sua interfaccia utente web multi lingua, consente di creare gruppi di host e reti che possono essere utilizzati per mantenere un insieme di regole, cosa molto importante in ambienti complessi con un rigoroso controllo degli accessi.

E’ possibile integrare diversi plug-in e gestire i pacchetti, tramite Pakfire, direttamente dall’interfaccia web.

I report di registrazione e i grafici forniscono una analisi approfondita del sistema e del flusso dei dati.

Punto di riferimento italiano: https://www.ipfireitalia.it/

Standard
Articoli

VM con Google Colab

Colab è una macchina virtuale Linux a cui puoi accedere direttamente da browser, ma non solo!!!

Con Colab hai a disposizione un editor Jupyter Python pronto all’uso e un ambiente dove puoi condividere i tuoi progetti per lavorare collaborando attraverso un collegamento a Git o salvando un file condiviso su Driver.

Per testarlo ho utilizzato una libreria Python che visualizza le informazioni di sistema, poi ho provato ad eseguire qualche comando shell.

Per eseguire i comandi è semplicissimo, basta anteporre alla riga un punto esclamativo.

Sotto il codice di esempio con uno screenshot:

Standard