<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Open Source &#8211; SMsoft &#8211; informatica e dintorni</title>
	<atom:link href="https://blog.smsoft.it/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.smsoft.it</link>
	<description>consigli settimanali su MacOS, GNU/Linux ed Open Source</description>
	<lastBuildDate>Mon, 22 Jun 2026 10:34:08 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=87199</generator>
	<item>
		<title>Migrare un ambiente Python venv su una nuova macchina</title>
		<link>https://blog.smsoft.it/2026/02/24/migrare-un-ambiente-python-venv-su-una-nuova-macchina/</link>
					<comments>https://blog.smsoft.it/2026/02/24/migrare-un-ambiente-python-venv-su-una-nuova-macchina/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 24 Feb 2026 09:30:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[pip]]></category>
		<category><![CDATA[requirements.txt]]></category>
		<category><![CDATA[venv]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6966</guid>

					<description><![CDATA[Python Venv è un modulo python che permette di attivare un ambiente python separato rispetto a quello di sistema. In questo modo possiamo installare una serie di librerie o fare delle configurazione ad-hoc che restano relative solo ad un progetto. Utile per fare dei test senza &#8220;sporcare&#8221; l&#8217;ambiente python di sistema oppure per gestire differenti ... <a title="Migrare un ambiente Python venv su una nuova macchina" class="read-more" href="https://blog.smsoft.it/2026/02/24/migrare-un-ambiente-python-venv-su-una-nuova-macchina/" aria-label="Per saperne di più su Migrare un ambiente Python venv su una nuova macchina">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Python Venv è un modulo python che permette di attivare un ambiente python separato rispetto a quello di sistema. In questo modo possiamo installare una serie di librerie o fare delle configurazione ad-hoc che restano relative solo ad un progetto. Utile per fare dei test senza &#8220;sporcare&#8221; l&#8217;ambiente python di sistema oppure per gestire differenti progetti con differenti librerie. Ci sono anche altri sistemi similari, ma venv è sicuramente tra i più diffusi.</p>



<p class="wp-block-paragraph">Partiamo intanto vedendo come si crea un ambiente venv:</p>



<pre class="wp-block-code"><code>python3 -m venv ambiente_venv</code></pre>



<p class="wp-block-paragraph">questo crea nella cartella chiamata <strong>ambiente_venv</strong> il nostro ambiente di sviluppo. All&#8217;interno di questa cartella vengono create una serie di altre cartelle (es bin, lib) con quello che ci occorre. Una volta creato l&#8217;ambiente bisogna attivarlo e questo si fa scrivendo:</p>



<pre class="wp-block-code"><code>cd ambiente_venv
source bin/activate</code></pre>



<p class="wp-block-paragraph">mentre per uscire basterà digitare:</p>



<pre class="wp-block-code"><code>deactivate</code></pre>



<p class="wp-block-paragraph">Nota: Ovviamente possiamo anche eseguire gli script python direttamente scrivendo <strong>bin/python3</strong> in modo da avviare automaticamente l&#8217;ambiene per lo script richiamato.</p>



<p class="wp-block-paragraph">A questo punto ipotizziamo di aver installato una serie di librerie e che sia necessario replicare questo ambiene su una seconda macchina. Sulla prima macchina scriviamo:</p>



<pre class="wp-block-code"><code>pip freeze > requirements.txt</code></pre>



<p class="wp-block-paragraph">se abbiamo prima attivato l&#8217;ambiente, oppure direttamente:</p>



<pre class="wp-block-code"><code>bin/pip freeze > requirements.txt</code></pre>



<p class="wp-block-paragraph">e questo creerà il classico file <strong>requirements.txt</strong> con l&#8217;elenco delle librerie installate. Ora creiamo l&#8217;ambiene venv nella seconda macchina con:</p>



<pre class="wp-block-code"><code>python3 -m venv ambiente_venv</code></pre>



<p class="wp-block-paragraph">poi copiamo il file <strong>requirements.txt</strong>  dalla prima alla seconda macchina, attiviamo l&#8217;ambiente venv:</p>



<pre class="wp-block-code"><code>cd ambiente_venv
source bin/activate</code></pre>



<p class="wp-block-paragraph">ed infine reinstalliamo tutte le librerie necessarie:</p>



<pre class="wp-block-code"><code>pip install -r requirements.txt</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2026/02/24/migrare-un-ambiente-python-venv-su-una-nuova-macchina/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fare il dump di un database sqlite3</title>
		<link>https://blog.smsoft.it/2025/06/03/fare-il-dump-di-un-database-sqlite3/</link>
					<comments>https://blog.smsoft.it/2025/06/03/fare-il-dump-di-un-database-sqlite3/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 03 Jun 2025 08:30:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6764</guid>

					<description><![CDATA[Questa la situazione che ci si è presentata oggi, abbiamo un database sqlite ed occorre un dump per poter fare l&#8217;import su un altro database. Per fare un dump completo del database chiamato raccolta.db, basta scrivere nel nostro terminale: Se invece occorre il dump di una sola tabella, ad esempio users, possiamo scrivere questo: enjoy!]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Questa la situazione che ci si è presentata oggi, abbiamo un database sqlite ed occorre un dump per poter fare l&#8217;import su un altro database.</p>



<p class="wp-block-paragraph">Per fare un dump completo del database chiamato <strong>raccolta.db</strong>, basta scrivere nel nostro terminale:</p>



<pre class="wp-block-code"><code>sqlite3 raccolta.db .dump >dump.sql</code></pre>



<p class="wp-block-paragraph">Se invece occorre il dump di una sola tabella, ad esempio <strong>users</strong>, possiamo scrivere questo:</p>



<pre class="wp-block-code"><code>sqlite3 raccolta.db '.dump users' >dump.sql</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2025/06/03/fare-il-dump-di-un-database-sqlite3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tunnel SSH: raggiungere un terzo host ssh usando un secondo host ssh come ponte</title>
		<link>https://blog.smsoft.it/2021/07/06/tunnel-ssh-raggiungere-un-terzo-host-ssh-usando-un-secondo-host-ssh-come-ponte/</link>
					<comments>https://blog.smsoft.it/2021/07/06/tunnel-ssh-raggiungere-un-terzo-host-ssh-usando-un-secondo-host-ssh-come-ponte/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 06 Jul 2021 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[ProxyCommand]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tunnel]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4988</guid>

					<description><![CDATA[Ci sono diversi casi in cui è necessario accedere ad un server SSH dietro una NAT dove il gateway può essere raggiunto via SSH che a sua volta può raggiungere il server SSH interno. Normalmente avremmo bisogno di collegarci al gateway e poi da gateway avviare una nuova connessione SSH all&#8217;interno. Ci sono due soluzioni ... <a title="Tunnel SSH: raggiungere un terzo host ssh usando un secondo host ssh come ponte" class="read-more" href="https://blog.smsoft.it/2021/07/06/tunnel-ssh-raggiungere-un-terzo-host-ssh-usando-un-secondo-host-ssh-come-ponte/" aria-label="Per saperne di più su Tunnel SSH: raggiungere un terzo host ssh usando un secondo host ssh come ponte">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ci sono diversi casi in cui è necessario accedere ad un server SSH dietro una NAT dove il gateway può essere raggiunto via SSH che a sua volta può raggiungere il server SSH interno. Normalmente avremmo bisogno di collegarci al gateway e poi da gateway avviare una nuova connessione SSH all&#8217;interno.</p>



<p class="wp-block-paragraph">Ci sono due soluzioni che consentono di velocizzare questa procedura, una l&#8217;abbiamo vista tempo fa ed è il port forwarding, dove il server dietro la NAT effettua una connessione SSH al gateway e gli chiede di mettersi in ascolto su una certa porta ed inoltrare tutto quello che riceve su questa porta al server che ha avviato il port forwarding.</p>



<p class="wp-block-paragraph">Un&#8217;altra soluzione, qualora non sia possibile aprire porte sul gateway o non si possa raggiungere prima il server dietro la NAT, è fare una doppia connessione SSH (prima al gateway e poi dal gateway verso il server interno) e questa cosa&#8230; <strong>può essere automatizzata</strong>.</p>



<p class="wp-block-paragraph">In base alla versione di OpenSSH installata, la configurazione è leggermente diversa. Ricordo che la configurazione ssh va fatta nel file <strong>~/.ssh/config</strong> in cui andremo a creare una sezione per la connessione che ci interessa. Ipotizziamo che il gateway abbia IP <strong>10.10.10.10</strong> (il nostro proxyserver) ed il server dietro NAT abbia IP <strong>192.168.1.20 </strong>(il nostro server finale), la configurazione nel nostro client sarà:</p>



<h2 class="wp-block-heading">OpenSSH 7.3 o superiore:</h2>



<p class="wp-block-paragraph">Configurazione in <strong>~/.ssh/config</strong> del client:</p>



<pre class="wp-block-preformatted">Host dietro_nat
  Hostname 192.168.1.20
  ProxyJump 10.10.10.10</pre>



<p class="wp-block-paragraph">e ci colleghiamo con:</p>



<pre class="wp-block-preformatted">ssh dietro_nat</pre>



<p class="wp-block-paragraph">Oppure, senza la configurazione, ci possiamo collegare direttamente con:</p>



<pre class="wp-block-preformatted">ssh 192.168.1.20 -o 'ProxyJump 10.10.10.10' </pre>



<p class="wp-block-paragraph">o, in alternativa:</p>



<pre class="wp-block-preformatted">ssh -J user@10.10.10.10 user@192.168.1.20</pre>



<h2 class="wp-block-heading">OpenSSH superiore alla 5.4:</h2>



<p class="wp-block-paragraph">Configurazione in <strong>~/.ssh/config</strong> del client:</p>



<pre class="wp-block-code"><code>Host dietro_nat
  Hostname 192.168.1.20
  ProxyCommand ssh 10.10.10.10 -W %h:%p</code></pre>



<p class="wp-block-paragraph">e ci colleghiamo sempre con:</p>



<pre id="block-2f3a5aec-bae3-47fa-9942-9e4e91450ebd" class="wp-block-preformatted">ssh dietro_nat</pre>



<p class="wp-block-paragraph">Oppure, senza la configurazione, ci possiamo collegare direttamente con:</p>



<pre class="wp-block-code"><code>ssh 192.168.1.20 -o 'ProxyCommand ssh 10.10.10.10 -W %h:%p'</code></pre>



<h2 class="wp-block-heading">OpenSSH inferiore alla 5.4:</h2>



<p class="wp-block-paragraph">Configurazione in <strong>~/.ssh/config</strong> del client:</p>



<pre class="wp-block-code"><code>Host dietro_nat
  Hostname 192.168.1.29
  ProxyCommand ssh 10.10.10.10 nc %h %p 2&gt; /dev/null</code></pre>



<p class="wp-block-paragraph">e ci colleghiamo con:</p>



<pre id="block-c932fe8c-6af9-41a7-85b1-2fc3e5ce6904" class="wp-block-preformatted">ssh dietro_nat</pre>



<p class="wp-block-paragraph">Oppure, senza la configurazione, ci possiamo collegare direttamente con:</p>



<pre class="wp-block-code"><code>ssh 192.168.1.20 -o 'ProxyCommand ssh 10.10.10.10 nc %h %p 2&gt; /dev/null'</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2021/07/06/tunnel-ssh-raggiungere-un-terzo-host-ssh-usando-un-secondo-host-ssh-come-ponte/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Convertire un file .po in .mo</title>
		<link>https://blog.smsoft.it/2021/06/08/convertire-un-file-po-in-mo/</link>
					<comments>https://blog.smsoft.it/2021/06/08/convertire-un-file-po-in-mo/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 08 Jun 2021 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[.mo]]></category>
		<category><![CDATA[.po]]></category>
		<category><![CDATA[gettext]]></category>
		<category><![CDATA[msgfmt]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4966</guid>

					<description><![CDATA[Su sistemi Linux, ma anche su MacOS si può usare il comando msgfmt per la conversione di file .po in .mo. In alternative ci sono anche editor più completi, ma se necessitate di piccole modifiche del .po e della riconversione, msgfmt è l&#8217;ideale. Se nel sistema non è installato, si può installare con apt install ... <a title="Convertire un file .po in .mo" class="read-more" href="https://blog.smsoft.it/2021/06/08/convertire-un-file-po-in-mo/" aria-label="Per saperne di più su Convertire un file .po in .mo">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Su sistemi <strong>Linux</strong>, ma anche su <strong>MacOS</strong> si può usare il comando <strong>msgfmt</strong> per la conversione di file <strong>.po</strong> in <strong>.mo</strong>. In alternative ci sono anche editor più completi, ma se necessitate di piccole modifiche del .po e della riconversione, <strong>msgfmt</strong> è l&#8217;ideale.</p>



<p class="wp-block-paragraph">Se nel sistema non è installato, si può installare con</p>



<pre class="wp-block-preformatted">apt install gettext</pre>



<p class="wp-block-paragraph">o</p>



<pre class="wp-block-preformatted">yum install gettext</pre>



<p class="wp-block-paragraph">e poi convertire con:</p>



<pre class="wp-block-preformatted">msgfmt it_IT.po -o it_IT.mo</pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2021/06/08/convertire-un-file-po-in-mo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sincronizzare due cartelle via FTP</title>
		<link>https://blog.smsoft.it/2020/11/10/sincronizzare-due-cartelle-via-ftp/</link>
					<comments>https://blog.smsoft.it/2020/11/10/sincronizzare-due-cartelle-via-ftp/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 10 Nov 2020 09:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[sync]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4816</guid>

					<description><![CDATA[Tra i vari tool a riga di comando che preferisco c&#8217;è lftp, un client FTP molto funzionale di cui ho parlato anche in passato. Ecco qui uno script bash per mantenere sincronizzate due cartelle FTP. Prima di tutto alcune informazioni sul parametri che andremo a specificare: lftp : il nome del comando -c : il ... <a title="Sincronizzare due cartelle via FTP" class="read-more" href="https://blog.smsoft.it/2020/11/10/sincronizzare-due-cartelle-via-ftp/" aria-label="Per saperne di più su Sincronizzare due cartelle via FTP">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Tra i vari tool a riga di comando che preferisco c&#8217;è lftp, un client FTP molto funzionale di cui ho parlato anche in passato.</p>



<p class="wp-block-paragraph">Ecco qui uno script bash per mantenere sincronizzate due cartelle FTP. Prima di tutto alcune informazioni sul parametri che andremo a specificare:</p>



<pre class="wp-block-preformatted">lftp : il nome del comando
-c   : il comando che verrà eseguito
open mysite : apre la connessione verso mysite
mirror : effettua una copia dalla source directory verso la target directory
-continue : continua in caso si errori
-reverse : fai un reverse mirror (invia i files)
-delete : rimuovi i files che non sono più presenti in source
source : cartella sorgente
destination : cartella di destinazione</pre>



<p class="wp-block-paragraph">Con il seguente codice si sincronizzando i contenuti dal server verso la cartella locale:</p>



<pre class="wp-block-preformatted">#!/bin/bash

USER=username #L'username FTP
PASS=password #La password
HOST="hostname" #L'hostname
LCD="~/down" #La cartella locale
RCD="/htdocs/down" #La cartella nel server FTP

lftp -f "
open $HOST
user $USER $PASS
lcd $LCD
mirror --continue --delete --verbose $RCD $LCD
bye
"</pre>



<p class="wp-block-paragraph">Con lo script seguente, si sincronizzano i contenuti locali verso il server remoto:</p>



<pre class="wp-block-preformatted">#!/bin/bash

USER=username #L'username FTP
PASS=password #La password
HOST="hostname" #L'hostname
LCD="~/down" #La cartella locale
RCD="/htdocs/down" #La cartella nel server FTP

lftp -f "
open $HOST
user $USER $PASS
lcd $LCD
mirror --continue --reverse --delete --verbose $LCD $RCD
bye
"</pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/11/10/sincronizzare-due-cartelle-via-ftp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>tcpdump: recuperare gli header delle richieste verso apache/nginx</title>
		<link>https://blog.smsoft.it/2020/07/28/tcpdump-recuperare-gli-header-delle-richieste-verso-apache-nginx/</link>
					<comments>https://blog.smsoft.it/2020/07/28/tcpdump-recuperare-gli-header-delle-richieste-verso-apache-nginx/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 28 Jul 2020 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[headers]]></category>
		<category><![CDATA[sniff]]></category>
		<category><![CDATA[tcpdump]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4715</guid>

					<description><![CDATA[Oggi vediamo come recuperare l&#8217;elenco degli headers inviati nelle richieste al server web per individuare i parametri che il software client ci invia. Innanzitutto individuiamo il nome della scheda di rete con il comando: ip a Ipotizziamo ens192 sia la scheda primaria di default attiva nelle ultime distribuzioni GNU/Debian. A questo punto, per recuperare le ... <a title="tcpdump: recuperare gli header delle richieste verso apache/nginx" class="read-more" href="https://blog.smsoft.it/2020/07/28/tcpdump-recuperare-gli-header-delle-richieste-verso-apache-nginx/" aria-label="Per saperne di più su tcpdump: recuperare gli header delle richieste verso apache/nginx">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Oggi vediamo come recuperare l&#8217;elenco degli <strong>headers</strong> inviati nelle richieste al server web per individuare i parametri che il software client ci invia.</p>



<p class="wp-block-paragraph">Innanzitutto individuiamo il nome della scheda di rete con il comando:</p>



<pre class="wp-block-preformatted">ip a</pre>



<p class="wp-block-paragraph">Ipotizziamo <strong>ens192</strong> sia la scheda primaria di default attiva nelle ultime distribuzioni GNU/Debian. A questo punto, per recuperare le richieste GET eseguiamo:</p>



<pre class="wp-block-preformatted">tcpdump -i ens192 -s 0 -A 'tcp[((tcp[12:1] &amp; 0xf0) >> 2):4] = 0x47455420'</pre>



<p class="wp-block-paragraph">Dove <code>0x47455420</code> è il valore ASCII dei caratteri  <code>'G' 'E' 'T' ' '</code></p>



<p class="wp-block-paragraph">e per limitare le sole richieste GET sulla porta 80:</p>



<pre class="wp-block-preformatted">tcpdump -i ens192 -s 0 -A 'tcp dst port 80 and tcp[((tcp[12:1] &amp; 0xf0) >> 2):4] = 0x47455420'</pre>



<p class="wp-block-paragraph">Se volessimo recuperare le richieste POST:</p>



<pre class="wp-block-preformatted">tcpdump -i ens192 -s 0 -A 'tcp[((tcp[12:1] &amp; 0xf0) >> 2):4] = 0x504F5354'</pre>



<p class="wp-block-paragraph">Dove <code>0x504F5354</code> rappresenta il valore ASCII per  <code>'P' 'O' 'S' 'T'</code></p>



<p class="wp-block-paragraph">Per catturare sia la <strong>richiesta</strong> che la <strong>risposta</strong>, per chiamate GET e POST ma limitate all&#8217;IP client 192.168.100.10, possiamo usare:</p>



<pre class="wp-block-preformatted">tcpdump -i ens192 -s 0 -A 'tcp dst port 80 and tcp[((tcp[12:1] &amp; 0xf0) >> 2):4] = 0x47455420 or tcp[((tcp[12:1] &amp; 0xf0) >> 2):4] = 0x504F5354 or tcp[((tcp[12:1] &amp; 0xf0) >> 2):4] = 0x48545450 or tcp[((tcp[12:1] &amp; 0xf0) >> 2):4] = 0x3C21444F and host 192.168.100.10'</pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/07/28/tcpdump-recuperare-gli-header-delle-richieste-verso-apache-nginx/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>snmp: come controllare se il servizio risponde</title>
		<link>https://blog.smsoft.it/2020/07/21/snmp-come-controllare-se-il-servizio-risponde/</link>
					<comments>https://blog.smsoft.it/2020/07/21/snmp-come-controllare-se-il-servizio-risponde/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 21 Jul 2020 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[snmp]]></category>
		<category><![CDATA[snmpwalk]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4709</guid>

					<description><![CDATA[Come posso controllare se il servizio SNMP risponde? Intanto bisogna avere aperte le porte 161 e 162 e/o per la connessione sicura 10161 e 10162, solitamente UDP. Se avete installato il demone pacchetto SNMP, sicuramente avrete anche l&#8217;utility snmpwalk. Se non siete sicuri, digitate: apt install snmpd snmp Successivamente basterà: snmpwalk -v 1 -c public ... <a title="snmp: come controllare se il servizio risponde" class="read-more" href="https://blog.smsoft.it/2020/07/21/snmp-come-controllare-se-il-servizio-risponde/" aria-label="Per saperne di più su snmp: come controllare se il servizio risponde">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Come posso controllare se il servizio SNMP risponde? Intanto bisogna avere aperte le porte 161 e 162 e/o per la connessione sicura 10161 e 10162, solitamente UDP.</p>



<p class="wp-block-paragraph">Se avete installato il demone pacchetto SNMP, sicuramente avrete anche l&#8217;utility <strong>snmpwalk</strong>. </p>



<p class="wp-block-paragraph">Se non siete sicuri, digitate:</p>



<pre class="wp-block-preformatted">apt install snmpd snmp</pre>



<p class="wp-block-paragraph">Successivamente basterà:</p>



<pre class="wp-block-preformatted">snmpwalk -v 1 -c public localhost .1.3</pre>



<p class="wp-block-paragraph">oppure:</p>



<pre class="wp-block-preformatted">snmpwalk -v 1 -c public XX.XX.XX.XX .1.3</pre>



<p class="wp-block-paragraph">dove XX.XX.XX.XX è l&#8217;IP dell&#8217;host remoto per verificare se il servizio risponde.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/07/21/snmp-come-controllare-se-il-servizio-risponde/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OpenJDK 6, 7, 8, 9, 10, 11, 12, 13, 14 e 15 EA precompilato per Linux, Windows, Solaris e macOS</title>
		<link>https://blog.smsoft.it/2020/07/07/openjdk-6-7-8-9-10-11-12-13-14-e-15-ea-precompilato-per-linux-windows-solaris-e-macos/</link>
					<comments>https://blog.smsoft.it/2020/07/07/openjdk-6-7-8-9-10-11-12-13-14-e-15-ea-precompilato-per-linux-windows-solaris-e-macos/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 07 Jul 2020 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OpenJDK]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4689</guid>

					<description><![CDATA[Occorre una versione di OpenJDK ma non la trovate disponibile per il vostro sistema operativo? Sfido a non trovarla disponibile sul sito della Zulu Community: clicca qui. enjoy!]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Occorre una versione di OpenJDK ma non la trovate disponibile per il vostro sistema operativo? Sfido a non trovarla disponibile sul sito della Zulu Community: <a href="https://www.azul.com/downloads/zulu-community/?package=jdk" target="_blank" rel="noreferrer noopener">clicca qui</a>.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/07/07/openjdk-6-7-8-9-10-11-12-13-14-e-15-ea-precompilato-per-linux-windows-solaris-e-macos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VIM: aprire un file remoto via SSH</title>
		<link>https://blog.smsoft.it/2020/06/23/vim-aprire-un-file-remoto-via-ssh/</link>
					<comments>https://blog.smsoft.it/2020/06/23/vim-aprire-un-file-remoto-via-ssh/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 23 Jun 2020 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4682</guid>

					<description><![CDATA[In qualche caso potrebbe essere comodo aprire (per modifiche, nuova creazione, etc) un file su un server remoto, senza dover prima fare la connessione SSH. Ipotizziamo di voler aprire il file /etc/apache2/apache2.conf sul server 10.10.10.10, il comando da eseguire sarà: vi scp://10.10.10.10//etc/apache2/apache2.conf Colgo l&#8217;occasione per ricordarvi che per eseguire un comando remoto, es riavviare apache, ... <a title="VIM: aprire un file remoto via SSH" class="read-more" href="https://blog.smsoft.it/2020/06/23/vim-aprire-un-file-remoto-via-ssh/" aria-label="Per saperne di più su VIM: aprire un file remoto via SSH">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In qualche caso potrebbe essere comodo aprire (per modifiche, nuova creazione, etc) un file su un server remoto, senza dover prima fare la connessione SSH. Ipotizziamo di voler aprire il file <strong>/etc/apache2/apache2.conf</strong> sul server <strong>10.10.10.10</strong>, il comando da eseguire sarà:</p>



<pre class="wp-block-preformatted">vi scp://10.10.10.10//etc/apache2/apache2.conf</pre>



<p class="wp-block-paragraph">Colgo l&#8217;occasione per ricordarvi che per eseguire un comando remoto, es riavviare apache, si può usare:</p>



<pre class="wp-block-preformatted">ssh 10.10.10.10 'service apache2 restart'</pre>



<p class="wp-block-paragraph">Nei due esempi precedenti, non ho passato l&#8217;user/password di connessione, perché abitualmente <a href="https://blog.smsoft.it/2017/09/19/ssh-aggiornare-la-propria-chiave-rsa/">uso un certificato per farlo</a>.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/06/23/vim-aprire-un-file-remoto-via-ssh/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Debian: Installare jitsi</title>
		<link>https://blog.smsoft.it/2020/02/04/debian-installare-jitsi/</link>
					<comments>https://blog.smsoft.it/2020/02/04/debian-installare-jitsi/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 04 Feb 2020 09:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[jitsi]]></category>
		<category><![CDATA[videoconferenze]]></category>
		<category><![CDATA[WebRTC]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4577</guid>

					<description><![CDATA[Jitsi è un software open-source multipiattaforma per videoconferenze. Questi passi per l&#8217;installazione su Debian Stretch e Debian Buster Innanzitutto assicuriamoci che il FQDN che abbiamo scelto per il server sia correttamente impostato. Ad esempio se il servizio dovrà chiamarsi video.smsoft.it, digitiamo: poi assicuriamoci che nel file /etc/hosts sia impostata una entry per l&#8217;hostname scelto che ... <a title="Debian: Installare jitsi" class="read-more" href="https://blog.smsoft.it/2020/02/04/debian-installare-jitsi/" aria-label="Per saperne di più su Debian: Installare jitsi">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://jitsi.org/" target="_blank" rel="noreferrer noopener" aria-label="Jitsi (apre in una nuova scheda)">Jitsi</a> è un software open-source multipiattaforma per videoconferenze.</p>



<p class="wp-block-paragraph">Questi passi per l&#8217;installazione su Debian Stretch e Debian Buster</p>



<p class="wp-block-paragraph">Innanzitutto assicuriamoci che il FQDN che abbiamo scelto per il server sia correttamente impostato. Ad esempio se il servizio dovrà chiamarsi video.smsoft.it, digitiamo:</p>



<pre class="wp-block-code"><code>hostnamectl set-hostname video.smsoft.it</code></pre>



<p class="wp-block-paragraph">poi assicuriamoci che nel file /etc/hosts  sia impostata una entry per l&#8217;hostname scelto che punti all&#8217;<strong>IP pubblico</strong>, nel seguente esempio ho messo <strong>x.x.x.x</strong>, es:</p>



<pre class="wp-block-code"><code>127.0.0.1 localhost 
x.x.x.x video.smsoft.it</code></pre>



<p class="wp-block-paragraph">Per assicurarci che sia tutto ok, vediamo se il seguente comando:</p>



<pre class="wp-block-code"><code>ping "$(hostname)"</code></pre>



<p class="wp-block-paragraph">risponde con nostro FQDN (es video.smsoft.it).</p>



<p class="wp-block-paragraph">Installiamo i pacchetti che servono:</p>



<pre class="wp-block-code"><code>apt install apt-transport-https
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
echo 'deb https://download.jitsi.org stable/' &gt; /etc/apt/sources.list.d/jitsi-stable.list
apt-get -y update
apt-get -y install jitsi-meet</code></pre>



<p class="wp-block-paragraph">Durante l&#8217;installazione viene chiesto il nome a dominio da usare per il server. Mettete il nome reale che avete configurato prima e che deve essere raggiungibile da internet se necessitate di usare pubblicamente il server. Il certificato HTTPS può essere generato in automatico durante l&#8217;installazione e poi sostituito con uno di Let&#8217;s Encrypt a fine installazione. Se occore installare il certificato di Let&#8217;s Encrypt:</p>



<pre class="wp-block-code"><code>wget https://raw.githubusercontent.com/jitsi/jitsi-meet/master/resources/install-letsencrypt-cert.sh
chmod 755 install-letsencrypt-cert.sh
./install-letsencrypt-cert.sh</code></pre>



<p class="wp-block-paragraph">Infine, se il server non è direttamente raggiungibile tramite internet ma è dietro un router NAT, ricordarsi di abilitare NAT in <strong>/etc/jitsi/videobridge/sip-communicator.properties</strong> con le seguenti righe:</p>



<pre class="wp-block-code"><code>org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=y.y.y.y
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=x.x.x.x</code></pre>



<p class="wp-block-paragraph">dove <strong>y.y.y.y</strong> è l&#8217;IP privato del server e <strong>x.x.x.x</strong> è l&#8217;IP pubblico su internet.</p>



<p class="wp-block-paragraph">Per riavviare:</p>



<pre class="wp-block-code"><code>service prosody restart
service jitsi-videobridge2 restart
service jicofo restart</code></pre>



<p class="wp-block-paragraph">Per sostituire il logo che appare in alto a sinistra, basta sostituire l&#8217;immagine <strong>watermark.png</strong> (ed eventualmente <strong>favicon.ico</strong>) nella cartella <strong>/usr/share/jitsi-meet/images/</strong></p>



<p class="wp-block-paragraph"><em>Per modificare la lingua dell&#8217;interfaccia, modificare la variabile <strong>defaultLanguage</strong> nel file <strong>/etc/jitsi/meet/nomedominio-config.js</strong> dove <strong>nomedominio</strong> è ovviamente il nome DNS per raggiungere il servizio.</em></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Le porte da aprire nel firewall sono:</p>



<pre class="wp-block-code"><code>80/tcp
443/tcp
10000/udp</code></pre>



<p class="wp-block-paragraph">Se dovesse essere necessario reinstallare tutto (magari per aggiornare il nome a dominio o altro):</p>



<pre class="wp-block-code"><code>apt-get remove --purge jitsi-meet jitsi-meet-prosody jitsi-meet-web-config jitsi-meet-web jicofo jitsi-videobridge
apt-get install -y jitsi-meet</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Nota</strong>: qualora si dovesse riscontrare un problema di disconnessione, sicuramente vanno controllati i log in <strong>/var/log/jitsi</strong> e <strong>/var/log/prosody</strong>. Se nel file <strong>/var/log/jitsi/jicofo.log</strong> trovate qualcosa tipo:</p>



<pre class="wp-block-code"><code>The following addresses failed: 'RFC 6120 A/AAAA Endpoint + <a href="localhost/127.0.0.1:5222" target="_blank" rel="noopener">localhost:5222</a>'</code></pre>



<p class="wp-block-paragraph">provate ad aggiornare i certificati delle CA:</p>



<pre class="wp-block-code"><code>update-ca-certificates -f</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/02/04/debian-installare-jitsi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
