<?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>proxy &#8211; SMsoft &#8211; informatica e dintorni</title>
	<atom:link href="https://blog.smsoft.it/tag/proxy/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>Tue, 26 May 2026 09:06:40 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=73364</generator>
	<item>
		<title>Come intercettare il traffico iOS</title>
		<link>https://blog.smsoft.it/2025/03/18/come-intercettare-il-traffico-ios/</link>
					<comments>https://blog.smsoft.it/2025/03/18/come-intercettare-il-traffico-ios/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 18 Mar 2025 09:30:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[mitmproxy]]></category>
		<category><![CDATA[mitmweb]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[sniffing]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6678</guid>

					<description><![CDATA[Questo articolo è specifico per iOS, ma la stessa modalità si può usare per un dispositivo Android o un PC, etc. La procedura che descrivo di seguito va utilizzata solo a scopo di debug con una propria applicazione che non sta funzionando come dovrebbe , al fine di capire meglio cosa accade. Per intercettare, o ... <a title="Come intercettare il traffico iOS" class="read-more" href="https://blog.smsoft.it/2025/03/18/come-intercettare-il-traffico-ios/" aria-label="Per saperne di più su Come intercettare il traffico iOS">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Questo articolo è specifico per iOS, ma la stessa modalità si può usare per un dispositivo Android o un PC, etc.</p>



<p class="wp-block-paragraph">La procedura che descrivo di seguito va utilizzata solo a scopo di debug con una propria applicazione che non sta funzionando come dovrebbe , al fine di capire meglio cosa accade.</p>



<p class="wp-block-paragraph">Per intercettare, o sniffare, il traffico di un dispositivo nella propria disponibilità, la cosa più semplice è impostare un proxy nella configurazione del dispositivo.</p>



<p class="wp-block-paragraph">Dato che stiamo facendo debug è necessario che il server proxy ed il client siano nella stessa rete (fermo restando che il server proxy potrebbe anche essere attivo su una rete differente ma comunque raggiungibile dal client).</p>



<p class="wp-block-paragraph">Per questa procedura voglio parlarvi di <a href="https://www.mitmproxy.org" target="_blank" rel="noreferrer noopener">mitmproxy</a>, un proxy HTTPS interattivo open-source, disponibili per diverse piattaforme.</p>



<p class="wp-block-paragraph">Vediamo quindi come installare/configurare <strong>mitmproxy</strong> su un <strong>Mac</strong> e configurare un dispositivo <strong>iOS</strong> come client; entrambe i dispositivi si trovano nella <strong>stessa rete wi-fi</strong>.</p>



<h2 class="wp-block-heading">Server proxy</h2>



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



<pre class="wp-block-code"><code>brew install mitmproxy</code></pre>



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



<pre class="wp-block-code"><code>/opt/homebrew/bin/mitmproxy</code></pre>



<p class="wp-block-paragraph">oppure, per avere un&#8217;interfaccia web più pratica da utilizzare:</p>



<pre class="wp-block-code"><code>/opt/homebrew/bin/mitmweb</code></pre>



<p class="wp-block-paragraph">Questo comando avvia il proxy sulla porta <strong>8080</strong> del Mac. Ora bisogna recuperare anche l&#8217;IP del Mac (tra le impostazioni di rete) in modo da avere i parametri da impostare nel client successivamente. In alternativa da CLI si può digitare:</p>



<pre class="wp-block-code"><code>ipconfig getifaddr en0</code></pre>



<p class="wp-block-paragraph">dove <strong>en0</strong> è la prima interfaccia di rete ed è solitamente quella utilizzata.</p>



<p class="wp-block-paragraph">Contestualmente viene aperta una pagina del browser dove verranno riepilogate le varie chiamate.</p>



<h2 class="wp-block-heading">Client iOS</h2>



<p class="wp-block-paragraph">Modificare le impostazioni wifi/ ed inserire il riferimento al proxy:<br>apri <strong>Impostazioni</strong> -&gt; <strong>Wi-Fi </strong>-&gt; cliccare sull&#8217;icona <strong>(i)</strong> a destra del nome della rete wi-fi -&gt; in basso scegliere &#8220;<strong>Configura Proxy</strong>&#8220;, abilitare &#8220;<strong>Manuale</strong>&#8221; ed inserire ip/porta recuperati prima dal server proxy</p>



<p class="wp-block-paragraph">Aprire l&#8217;indirizzo <strong>mitm.it</strong> nel browser Safari del client iOS e scaricare il certificato relativo ad iOS</p>



<p class="wp-block-paragraph">Aprire <strong>Impostazioni</strong> -&gt; <strong>Generali</strong> -&gt; <strong>VPN e gestione dispositivo</strong> ed installa il certificato chiamato &#8220;<strong>mitmproxy</strong>&#8220;</p>



<p class="wp-block-paragraph">Aprire <strong>Impostazioni</strong> -&gt; <strong>Generali</strong> -&gt; <strong>Info</strong> -&gt; <strong>Attendibilità certificati</strong> ed abilita il certificato chiamato mitmproxy</p>



<h2 class="wp-block-heading">Client MacOS</h2>



<p class="wp-block-paragraph">E&#8217; possibile impostare in modo similare anche la connessione del Mac tramite proxy. Aprire <strong>Impostazioni</strong> -> <strong>Wifi</strong> (oppure Rete se connessi con cavo) -> pulsante <strong>Dettagli</strong> vicino la connessione attiva -> <strong>Proxy</strong> -> abilitare <strong>Proxy web (HTTP)</strong> e <strong>Proxy web sicuro (HTTPS)</strong> -> infine indicare come Server <strong>127.0.0.1</strong> e come Porta <strong>8080</strong>.</p>



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



<h2 class="wp-block-heading">Verifica finale</h2>



<p class="wp-block-paragraph">Bene, a questo punto bisogna provare adaprire una pagina qualsiasi in <strong>Safari</strong>, es &#8220;www.google.com&#8221; e verificare che<strong> il browser non mostri errori.</strong> Se il sito richiamato si vede, contestualmente si può controllare su mitmproxy verificare che stia inizando a loggare le richieste.</p>



<p class="wp-block-paragraph">La documentazione è presente all&#8217;indirizzo <a href="https://docs.mitmproxy.org/stable/" target="_blank" rel="noopener">https://docs.mitmproxy.org/stable/</a> dove sono disponibile anche diversi video esemplificativi.</p>



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



<p class="wp-block-paragraph">In alternativa posso consigliare <a href="https://proxyman.com/" target="_blank" rel="noreferrer noopener">proxyman</a> da installare con:</p>



<pre class="wp-block-preformatted">brew install --cask proxyman</pre>



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



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2025/03/18/come-intercettare-il-traffico-ios/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker: come impostare un proxy su host Debian</title>
		<link>https://blog.smsoft.it/2024/08/20/docker-come-impostare-un-proxy-su-host-debian/</link>
					<comments>https://blog.smsoft.it/2024/08/20/docker-come-impostare-un-proxy-su-host-debian/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 20 Aug 2024 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[proxy]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6403</guid>

					<description><![CDATA[Per impostare il proxy per docker su Debian possiamo usare il file /etc/systemd/system/docker.service.d/http-proxy.conf in cui inseriamo: rileggiamo le modifiche effettuate: ed infine ricarichiamo il servizio: Per verificare che l&#8217;impostazione sia stata presa in considerazione: ATTENZIONE: Nel caso si utilizzi docker compose e si modifichino le impostazioni nella sezione environment, ad esempio: bisogna ricordarsi di rileggere ... <a title="Docker: come impostare un proxy su host Debian" class="read-more" href="https://blog.smsoft.it/2024/08/20/docker-come-impostare-un-proxy-su-host-debian/" aria-label="Per saperne di più su Docker: come impostare un proxy su host Debian">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Per impostare il <strong>proxy</strong> per <strong>docker</strong> su <strong>Debian </strong>possiamo usare il file <strong>/etc/systemd/system/docker.service.d/http-proxy.conf</strong> in cui inseriamo:</p>



<pre class="wp-block-code"><code>&#91;Service]
Environment="HTTP_PROXY=http://SERVER_PROXY:3128"
Environment="HTTPS_PROXY=http://SERVER_PROXY:3128"</code></pre>



<p class="wp-block-paragraph">rileggiamo le modifiche effettuate:</p>



<pre class="wp-block-code"><code>systemctl daemon-reload</code></pre>



<p class="wp-block-paragraph">ed infine ricarichiamo il servizio:</p>



<pre class="wp-block-code"><code>systemctl restart docker</code></pre>



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



<p class="wp-block-paragraph">Per verificare che l&#8217;impostazione sia stata presa in considerazione:</p>



<pre class="wp-block-code"><code>systemctl show --property=Environment docker</code></pre>



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



<p class="wp-block-paragraph"><strong>ATTENZIONE</strong>: Nel caso si utilizzi <strong>docker compose</strong> e si modifichino le impostazioni nella sezione <strong>environment</strong>, ad esempio:</p>



<pre class="wp-block-code"><code>environment:
  HTTP_PROXY: "http://SERVER_PROXY:3128/"
  HTTPS_PROXY: "http://SERVER_PROXY:3128/"
  NO_PROXY: "localhost,127.0.0.1"</code></pre>



<p class="wp-block-paragraph">bisogna ricordarsi di rileggere le impostazioni:</p>



<pre class="wp-block-code"><code>docker-compose stop &amp;&amp; docker-compose up -d --no-deps --build</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2024/08/20/docker-come-impostare-un-proxy-su-host-debian/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fail2ban e proxy: integrazione con htaccess per bloccare IP tramite apache</title>
		<link>https://blog.smsoft.it/2022/11/22/fail2ban-e-proxy-integrazione-con-htaccess-per-bloccare-ip-tramite-apache/</link>
					<comments>https://blog.smsoft.it/2022/11/22/fail2ban-e-proxy-integrazione-con-htaccess-per-bloccare-ip-tramite-apache/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 22 Nov 2022 09:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[proxy]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=5692</guid>

					<description><![CDATA[Se il nostro server web si trova dietro un proxy, è possibile che l&#8217;IP sorgente non sia quello reale del visitatore finale, ma sia quello del proxy e quindi avremo l&#8217;IP reale in qualche header tipo X-Forwarded-For; intanto potremo configurare apache per loggare l&#8217;IP in modo corretto, usando il modulo remoteip o rpaf in modo ... <a title="Fail2ban e proxy: integrazione con htaccess per bloccare IP tramite apache" class="read-more" href="https://blog.smsoft.it/2022/11/22/fail2ban-e-proxy-integrazione-con-htaccess-per-bloccare-ip-tramite-apache/" aria-label="Per saperne di più su Fail2ban e proxy: integrazione con htaccess per bloccare IP tramite apache">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Se il nostro server web si trova dietro un <strong>proxy</strong>, è possibile che l&#8217;IP sorgente non sia quello reale del visitatore finale, ma sia quello del proxy e quindi avremo l&#8217;IP reale in qualche header tipo  <strong>X-Forwarded-For</strong>; intanto potremo configurare apache per loggare l&#8217;IP in modo corretto, usando il modulo <strong>remoteip</strong> o <strong>rpaf</strong> in modo da avere nei log di accesso il corretto IP del visitatore finale, ma se volessimo bloccare tale IP con file2ban non sarebbe possibile direttamente, perché ricordo che l&#8217;IP sorgente delle richieste non è quello del visitatore finale, bensì quello del proxy.</p>



<p class="wp-block-paragraph">In questo caso possiamo limitare i danni (nel senso di bloccare le richieste per taluni IP), creando una regola nel file <strong>.htaccess</strong> posizionato nella nostra <strong>webroot</strong> che vada a bloccare le richieste se l&#8217;IP viene identificato da qualche regola di <strong>fail2ban</strong>.</p>



<p class="wp-block-paragraph">Ipotizziamo che la webroot sia <strong>/var/www/web1/htdocs</strong>  e che vogliamo usare la cartella <strong>blockedip</strong> per contenere i riferimenti per gli IP bloccati.</p>



<p class="wp-block-paragraph">Scriviamo all&#8217;inizio del nel nostro file <strong>.htaccess</strong> le seguenti direttive (le prime due righe non servono ma le lascio perché a qualcuno possono essere utili per farci altro):</p>



<pre class="wp-block-code"><code>RewriteCond %{DOCUMENT_ROOT}/blockedip/%{REMOTE_ADDR} -f
RewriteRule . - F]
RewriteCond %{DOCUMENT_ROOT}/blockedip/%{HTTP:X-FORWARDED-FOR} -f
RewriteRule . - F]</code></pre>



<p class="wp-block-paragraph">Dopo aver fatto la classica configurazione di <strong>fail2ban</strong> in coppia con <strong>nftables</strong>, bisognerà aprire il file <strong>/etc/fail2ban/action.d/nftables.conf</strong> e scrivere, sotto la direttiva <strong>actionban</strong>, la riga:</p>



<pre class="wp-block-code"><code>touch /var/www/web1/htdocs/blockedip/&lt;ip&gt;</code></pre>



<p class="wp-block-paragraph">e sotto la direttiva <strong>actionunban</strong>, la riga:</p>



<pre class="wp-block-code"><code>rm /var/www/web1/htdocs/blockedip/&lt;ip&gt;</code></pre>



<p class="wp-block-paragraph">Bene, ora riavviamo <strong>fail2ban</strong> e non appena ci saranno IP bloccati, li troverete riepilogati nella cartella <strong>/var/www/web1/htdocs</strong> e la regola di rewrite nel file <strong>.htaccess</strong> provvederà a bloccare le richieste per tali IP.</p>



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



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2022/11/22/fail2ban-e-proxy-integrazione-con-htaccess-per-bloccare-ip-tramite-apache/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Debian: come specificare il PROXY per i processi CRON</title>
		<link>https://blog.smsoft.it/2021/06/29/debian-come-usare-il-proxy-per-processi-cron/</link>
					<comments>https://blog.smsoft.it/2021/06/29/debian-come-usare-il-proxy-per-processi-cron/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 29 Jun 2021 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[profile]]></category>
		<category><![CDATA[proxy]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=5007</guid>

					<description><![CDATA[Se la vostra linux-box necessita di proxy per la navigazione internet, solitamente i parametri vanno specificati nel file /etc/profile, ad esempio: export http_proxy="http://user:pass@10.10.10.10:3180/" export https_proxy="http://user:pass@10.10.10.10:3180/" export no_proxy="www.google.it" Questo file viene &#8220;letto&#8221; dal sistema al login, quindi gli utenti ssh avranno sicuramente impostato queste informazioni per la navigazione. Sul sistema Debian GNU/Linux, CRON supporta il modulo ... <a title="Debian: come specificare il PROXY per i processi CRON" class="read-more" href="https://blog.smsoft.it/2021/06/29/debian-come-usare-il-proxy-per-processi-cron/" aria-label="Per saperne di più su Debian: come specificare il PROXY per i processi CRON">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Se la vostra linux-box necessita di proxy per la navigazione internet, solitamente i parametri vanno specificati nel file <code><strong>/etc/profile</strong></code>, ad esempio:</p>



<pre class="wp-block-preformatted">export http_proxy="http://user:pass@10.10.10.10:3180/"
export https_proxy="http://user:pass@10.10.10.10:3180/"
export no_proxy="www.google.it"</pre>



<p class="wp-block-paragraph">Questo file viene &#8220;letto&#8221; dal sistema al login, quindi gli utenti <strong>ssh</strong> avranno sicuramente impostato queste informazioni per la navigazione. </p>



<p class="wp-block-paragraph">Sul sistema Debian GNU/Linux, CRON supporta il modulo pam_env e carica l&#8217;ambiente specificato da <strong>/etc/environment</strong> e <strong>/etc/security/pam_env.conf.</strong> Legge anche le informazioni sulla localizzazione da <strong>/etc/default/locale</strong>.</p>



<p class="wp-block-paragraph">Pertanto, se è necessario far &#8220;navigare&#8221; uno script richiamato da <strong>CRON</strong>, i parametri vanno inseriti anche  nel file <code><strong>/etc/environment</strong></code> Per evitare di dove gestire eventuali modifiche su  più file, consiglio di aggiungere in coda al file di profile la seguente riga dopo la definizione delle variabili relative al proxy:</p>



<pre class="wp-block-code"><code>if &#91; "<code>id -u</code>" -eq 0 ]; then
  printenv |grep -i proxy>/etc/environment
fi</code></pre>



<p class="wp-block-paragraph">Per le macchine <strong>più vecchie</strong>, questa procedura è particolarmente utile quando la variabile <strong>no_proxy</strong> viene impostata con una <strong>classe IP</strong>, perché dato che <strong>non è possibile</strong> usare la classica notazione <strong>10.10.10.10/24</strong> ma nel file di <strong>profile</strong> possiamo usare comandi bash, in quest&#8217;ultimo potremmo scrivere qualcosa tipo:</p>



<pre class="wp-block-code"><code>export no_proxy="<code>echo 10.10.10.{1..255},</code> <code>echo 10.12.12.{1..255},</code> www.google.com"</code></pre>



<p class="wp-block-paragraph">ed automaticamente troveremmo tutti gli IP, delle classi indicate, riportati per esteso nel file <strong>environment</strong>.<br></p>



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



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



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2021/06/29/debian-come-usare-il-proxy-per-processi-cron/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Usare repository https con apt-cacher-ng</title>
		<link>https://blog.smsoft.it/2020/06/09/usare-repository-https-con-apt-cacher-ng/</link>
					<comments>https://blog.smsoft.it/2020/06/09/usare-repository-https-con-apt-cacher-ng/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 09 Jun 2020 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[apt-cache-ng]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[proxy]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4669</guid>

					<description><![CDATA[Di apt-cacher NG ne abbiamo parlato tempo fa, trovate anche qualche guida tra i vecchi articoli. In breve, apt-cacher-ng vi permette di creare un concentratore per pacchetti APT utile se bisogna aggiornare un parco macchine, in modo da non scaricare tutto dai repository ufficiali, ma di usare questo servizio come ulteriore repository locale con risparmio ... <a title="Usare repository https con apt-cacher-ng" class="read-more" href="https://blog.smsoft.it/2020/06/09/usare-repository-https-con-apt-cacher-ng/" aria-label="Per saperne di più su Usare repository https con apt-cacher-ng">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Di apt-cacher NG ne abbiamo parlato tempo fa, trovate anche qualche guida tra i vecchi articoli. In breve, <strong>apt-cacher-ng</strong> vi permette di creare un concentratore per pacchetti APT utile se bisogna aggiornare un parco macchine, in modo da non scaricare tutto dai repository ufficiali, ma di usare questo servizio come ulteriore repository locale con risparmio di tempo e banda.</p>



<p class="wp-block-paragraph">La configurazione è semplice (rif precedenti post), oggi volevo parlarvi di come abilitare il supporto per repository HTTPS. Ci sono diverse modalità per farlo, la cosa più semplice, <strong>che però non fa caching dei pacchetti scaricati</strong>, è inserire nel file <strong>/etc/apt-cacher-ng/acng.conf</strong> la direttiva:</p>



<pre class="wp-block-preformatted">PassThroughPattern: .*</pre>



<p class="wp-block-paragraph">e poi riavviare il servizio:</p>



<pre class="wp-block-preformatted">service apt-cacher-ng restart</pre>



<p class="wp-block-paragraph">Lato client invece non va fatto nulla, oltre la classica configurazione iniziale, es la riga:</p>



<pre class="wp-block-preformatted">Acquire::http::Proxy "http://10.0.0.16:3142";</pre>



<p class="wp-block-paragraph">nel caso 10.0.0.16 sia l&#8217;IP del server con apt-cacher-ng.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/06/09/usare-repository-https-con-apt-cacher-ng/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Apache: loggare il corretto IP se dietro proxy nginx</title>
		<link>https://blog.smsoft.it/2020/04/07/apache-loggare-il-corretto-ip-se-dietro-proxy-nginx/</link>
					<comments>https://blog.smsoft.it/2020/04/07/apache-loggare-il-corretto-ip-se-dietro-proxy-nginx/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 07 Apr 2020 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[rpaf]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4623</guid>

					<description><![CDATA[Ultimamente si usa spesso attivare nginx come proxy &#8220;davanti&#8221; ad Apache, magari per usare sistema di caching oppure per funzionalità particolari di bilanciamento, etc. Attivando semplicemente nginx come proxy, si vedrà che apache inizierà a loggare come IP visitatore sempre quello del proxy e non più quello del visitatore vero e proprio. Ipotizziamo di avere ... <a title="Apache: loggare il corretto IP se dietro proxy nginx" class="read-more" href="https://blog.smsoft.it/2020/04/07/apache-loggare-il-corretto-ip-se-dietro-proxy-nginx/" aria-label="Per saperne di più su Apache: loggare il corretto IP se dietro proxy nginx">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ultimamente si usa spesso attivare <strong>nginx</strong> come proxy &#8220;davanti&#8221; ad <strong>Apache</strong>, magari per usare <strong>sistema di caching</strong> oppure per funzionalità particolari di <strong>bilanciamento</strong>, etc.</p>



<p class="wp-block-paragraph">Attivando semplicemente nginx come proxy, si vedrà che apache inizierà a loggare come IP visitatore sempre quello del proxy e non più quello del visitatore vero e proprio.</p>



<p class="wp-block-paragraph">Ipotizziamo di avere sia nginx che apache sullo stesso nodo, praticamente nei logs di apache si vedrà sempre <strong>127.0.0.1</strong> come IP del visitatore.</p>



<p class="wp-block-paragraph">Per ovviare a questo, bastano due configurazioni. </p>



<h2 class="wp-block-heading"><strong>Su nginx:</strong></h2>



<p class="wp-block-paragraph">Modificare il file di configurazione del VirtualHost ed inserire nella sezione <strong>location</strong>:</p>



<pre class="wp-block-preformatted">proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;</pre>



<h2 class="wp-block-heading"><strong>Su apache &lt;2.4:</strong></h2>



<p class="wp-block-paragraph">Installare il modulo <strong>rpaf</strong>:</p>



<pre class="wp-block-preformatted">apt-get install libapache2-mod-rpaf</pre>



<p class="wp-block-paragraph">Poi modificare il file <strong>/etc/apache2/mods-enabled/rpaf.conf</strong> e modificare/inserire le direttive:</p>



<pre class="wp-block-preformatted">RPAFproxy_ips 127.0.0.1 ::1 
RPAFheader X-Forwarded-For</pre>



<h2 class="wp-block-heading"><strong>Su apache &gt;= 2.4:</strong></h2>



<p class="wp-block-paragraph">Creare il file <strong>/etc/apache2/mods-available/remoteip.conf</strong> con all&#8217;interno:</p>



<pre class="wp-block-preformatted">RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1</pre>



<p class="wp-block-paragraph">attiva il modulo remoteip:</p>



<pre class="wp-block-preformatted">a2enmod remoteip</pre>



<p class="wp-block-paragraph">Modificare le righe <strong>LogFormat</strong> nel file <strong>/etc/apache2/apache2.conf</strong> sostituendo <strong>%h</strong> con <strong>%a</strong>, es:</p>



<pre class="wp-block-preformatted">LogFormat "%v:%p %a %l %u %t \"%r\" %&gt;s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%a %l %u %t \"%r\" %&gt;s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %&gt;s %O" common</pre>



<p class="wp-block-paragraph">Ora riavviare apache ed nginx e nei files di logs ci saranno i corretti IP.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/04/07/apache-loggare-il-corretto-ip-se-dietro-proxy-nginx/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>nginx &#8211; reverse proxy</title>
		<link>https://blog.smsoft.it/2020/02/25/nginx-reverse-proxy/</link>
					<comments>https://blog.smsoft.it/2020/02/25/nginx-reverse-proxy/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 25 Feb 2020 09:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[proxy_pass]]></category>
		<category><![CDATA[reverse proxy]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4597</guid>

					<description><![CDATA[nginx è un web server con molti pregi e molte caratteristiche interessanti. Oggi vediamo come configurarlo per usarlo come proxy server per una serie di nomi a dominio che dovranno essere indirizzati verso server interni differenti, cosa che con iptables non possiamo fare perché lavora a livello IP e non DNS. Installiamo nginx: apt-get install ... <a title="nginx &#8211; reverse proxy" class="read-more" href="https://blog.smsoft.it/2020/02/25/nginx-reverse-proxy/" aria-label="Per saperne di più su nginx &#8211; reverse proxy">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>nginx</strong> è un web server con molti pregi e molte caratteristiche interessanti. Oggi vediamo come configurarlo per usarlo come proxy server per una serie di nomi a dominio che dovranno essere indirizzati verso server interni differenti, cosa che con <strong>iptables</strong> non possiamo fare perché lavora a livello IP e non DNS.</p>



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



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



<p class="wp-block-paragraph">Ora spostiamoci nella cartella <strong>/etc/nginx/sites-enabled</strong> e modifichiamo il file default per gestire la parte proxy, ad esempio per <strong>http://pippo.smsoft.it</strong> verso il server &#8220;interno&#8221; <strong>10.10.10.10</strong> ed http://pluto.smsoft.it verso il server &#8220;interno&#8221; <strong>10.10.10.12</strong> porta <strong>8080</strong>. Crediamo queste due sezioni nel file default:</p>



<pre class="wp-block-preformatted">server {
     listen 80;
     server_name pippo.smsoft.it;
     location / {
         proxy_pass http://10.10.10.10:80;
     }
 }
server {
       listen 80;
       server_name pluto.smsoft.it;
       location / {
           proxy_pass http://10.10.10.12:8080;
       }
   }</pre>



<p class="wp-block-paragraph">Inoltre, facciamo in modo che le richieste verso <strong>http://topolino.smsoft.it</strong> e <strong>http://www.topolino.smsoft.it</strong> vadano verso <strong>https://topolino.smsoft.it</strong>:</p>



<pre class="wp-block-preformatted">server {
     listen 80;
     server_name topolino.smsoft.it www.topolino.smsoft.it;
     return 301 https://topolino.smsoft.it$request_uri;
}</pre>



<p class="wp-block-paragraph">Ricarichiamo la configurazione di nginx:</p>



<pre class="wp-block-preformatted">service nginx reload</pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/02/25/nginx-reverse-proxy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>docker: come impostare l&#8217;uso del proxy</title>
		<link>https://blog.smsoft.it/2020/01/07/docker-come-impostare-luso-del-proxy/</link>
					<comments>https://blog.smsoft.it/2020/01/07/docker-come-impostare-luso-del-proxy/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 07 Jan 2020 09:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[proxy]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4531</guid>

					<description><![CDATA[Se siete &#8220;dietro&#8221; un proxy e richiamando docker viene visualizzato un messaggio tipo: docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp 34.199.40.84:443: connect: connection refused. è necessario impostare l&#8217;uso del proxy in docker. Crediamo una cartella in cui salvare le configurazioni: mkdir -p /etc/systemd/system/docker.service.d Crediamo un file chiamato /etc/systemd/system/docker.service.d/http-proxy.conf ed inseriamo: [Service] Environment="HTTPS_PROXY=https://proxy.example.com:443/" Environment="HTTPS_PROXY=https://proxy.example.com:443/" ... <a title="docker: come impostare l&#8217;uso del proxy" class="read-more" href="https://blog.smsoft.it/2020/01/07/docker-come-impostare-luso-del-proxy/" aria-label="Per saperne di più su docker: come impostare l&#8217;uso del proxy">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Se siete &#8220;dietro&#8221; un proxy e richiamando docker viene visualizzato un messaggio tipo:</p>



<p class="wp-block-paragraph">docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp 34.199.40.84:443: connect: connection refused.</p>



<p class="wp-block-paragraph">è necessario impostare l&#8217;uso del proxy in docker.</p>



<p class="wp-block-paragraph">Crediamo una cartella in cui salvare le configurazioni:</p>



<pre class="wp-block-preformatted"><code>mkdir -p /etc/systemd/system/docker.service.d</code></pre>



<p class="wp-block-paragraph">Crediamo un file chiamato <code><strong>/etc/systemd/system/docker.service.d/http-proxy.conf</strong></code> ed inseriamo:</p>



<pre class="wp-block-preformatted">[Service]
Environment="HTTPS_PROXY=https://proxy.example.com:443/"
Environment="HTTPS_PROXY=https://proxy.example.com:443/"
Environment="NO_PROXY=hostname.example.com,172.10.10.10"</pre>



<p class="wp-block-paragraph">Chiaramente le  variabili vanno personalizzate in base alle proprie esigenze.</p>



<p class="wp-block-paragraph">Bene, ora ricarichiamo le modifiche:</p>



<pre class="wp-block-preformatted"><code>systemctl daemon-reload</code></pre>



<p class="wp-block-paragraph">e riavviamo docker:</p>



<pre class="wp-block-preformatted"><code>systemctl restart docker</code></pre>



<p class="wp-block-paragraph">Per verificare che il parametro sia stato correttamente impostato, possiamo digitare:</p>



<pre class="wp-block-preformatted"><code>systemctl show --property=Environment docker</code></pre>



<p class="wp-block-paragraph">e verrà mostrata la riga relativa all&#8217;Environment.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2020/01/07/docker-come-impostare-luso-del-proxy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Usare apt-cacher-ng con repository https</title>
		<link>https://blog.smsoft.it/2019/11/26/usare-apt-cache-ng-con-repository-https/</link>
					<comments>https://blog.smsoft.it/2019/11/26/usare-apt-cache-ng-con-repository-https/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 26 Nov 2019 09:30:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[apt-cacher-ng]]></category>
		<category><![CDATA[proxy]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4514</guid>

					<description><![CDATA[Ci sono sempre più repository APT raggiungibili in HTTPS e questo non è un problema con una connessione diretta, ma se bisogna passare attraverso apt-cacher-ng, si ottiene l&#8217;errore: Invalid response from proxy: HTTP/1.0 403 CONNECT denied (ask the admin to allow HTTPS tunnels) La seguente configurazione permette anche di fare caching dei pacchetti scaricati, in ... <a title="Usare apt-cacher-ng con repository https" class="read-more" href="https://blog.smsoft.it/2019/11/26/usare-apt-cache-ng-con-repository-https/" aria-label="Per saperne di più su Usare apt-cacher-ng con repository https">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ci sono sempre più repository APT raggiungibili in HTTPS e questo non è un problema con una connessione diretta, ma se bisogna passare attraverso apt-cacher-ng, si ottiene l&#8217;errore:</p>



<p class="wp-block-paragraph"><code>Invalid response from proxy: HTTP/1.0 403 CONNECT denied (ask the admin to allow HTTPS tunnels)   </code></p>



<p class="wp-block-paragraph">La seguente configurazione permette anche di <strong>fare caching dei pacchetti scaricati</strong>, in modo diverso da quello che accade seguendo <a href="https://blog.smsoft.it/2020/06/09/usare-repository-https-con-apt-cacher-ng/">questo altro sistema</a>.</p>



<p class="wp-block-paragraph">Prendiamo ad esempio il repository di <strong>jitsi</strong> (https://download.jitsi.org) e diamo per scontato che APT nel client sia già configurato per usare il nostro server ap-cacher-ng con l&#8217;apposita direttiva nel file <strong>/etc/apt/apt.conf</strong>, es:</p>



<pre class="wp-block-preformatted">Acquire::http::Proxy "http://XX.XX.XX.XX:3142";</pre>



<p class="wp-block-paragraph">dove XX.XX.XX.XX è l&#8217;IP del nostro <strong>server apt-cacher-ng</strong></p>



<p class="wp-block-paragraph">CLIENT:<br>Nel file <strong>/etc/apt/sources.list.d/jitsi-stable.list</strong> inseriamo:</p>



<pre class="wp-block-preformatted">deb http://jitsi.cache stable/</pre>



<p class="wp-block-paragraph">e nel file <strong>/etc/hosts</strong>:</p>



<pre class="wp-block-preformatted">XX.XX.XX.XX    jitsi.cache</pre>



<p class="wp-block-paragraph">dove <strong>XX.XX.XX.XX</strong> è l&#8217;IP del nostro <strong>server apt-cacher-ng</strong></p>



<p class="wp-block-paragraph">SERVER:<br>Creiamo il file <strong>/etc/apt-cacher-ng/backends_jitsi_org</strong> e inseriamo:</p>



<pre class="wp-block-preformatted">https://download.jitsi.org</pre>



<p class="wp-block-paragraph">poi modifichiamo il file <strong>/etc/apt-cacher-ng/acng.conf</strong> ed aggiungiamo:</p>



<pre class="wp-block-preformatted">Remap-jitsiorg http://jitsi.cache ; file:backends_jitsi_org</pre>



<p class="wp-block-paragraph">Bene, ora riavviamo apt-cacher-ng e riproviamo la connessione al repository dal client.</p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2019/11/26/usare-apt-cache-ng-con-repository-https/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Apache: loggare il corretto IP chiamante se ci troviamo dietro un proxy server</title>
		<link>https://blog.smsoft.it/2018/04/24/apache-loggare-il-corretto-ip-chiamante-se-ci-troviamo-dietro-un-proxy-server/</link>
					<comments>https://blog.smsoft.it/2018/04/24/apache-loggare-il-corretto-ip-chiamante-se-ci-troviamo-dietro-un-proxy-server/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 24 Apr 2018 08:30:26 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[rpaf]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=4025</guid>

					<description><![CDATA[A volte può essere utile usare un proxy server (per velocità, per bilanciare, etc) davanti al propio webserver, ma vi sarete accorti che nei files di log ci sarà sempre l&#8217;IP del proxy al posto di quello del visitatore reale. Per sopperire a questa mancanza, si può ricorrere al modulo rpaf, installabile tramite apt-get: apt-get ... <a title="Apache: loggare il corretto IP chiamante se ci troviamo dietro un proxy server" class="read-more" href="https://blog.smsoft.it/2018/04/24/apache-loggare-il-corretto-ip-chiamante-se-ci-troviamo-dietro-un-proxy-server/" aria-label="Per saperne di più su Apache: loggare il corretto IP chiamante se ci troviamo dietro un proxy server">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[<p>A volte può essere utile usare un proxy server (per velocità, per bilanciare, etc) davanti al propio webserver, ma vi sarete accorti che nei files di log ci sarà sempre l&#8217;IP del proxy al posto di quello del visitatore reale.<br />
Per sopperire a questa mancanza, si può ricorrere al modulo <strong>rpaf</strong>, installabile tramite apt-get:<br />
<code>apt-get install libapache2-mod-rpaf</code></p>
<p>Aprire infine il file di configurazione <strong>/etc/apache2/mods-enabled/rpaf.conf</strong> ed aggiungere l&#8217;IP del server proxy nella riga <strong>RPAFproxy_ips</strong>, es:<br />
<code> RPAFproxy_ips 127.0.0.1 ::1 10.109.70.60</code></p>
<p>e decommentare la direttiva:<br />
<code>RPAFheader X-Real-IP</code></p>
<p>Bene, riavviamo apache e ci siamo:<br />
<code>service apache2 restart</code></p>
<p>enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2018/04/24/apache-loggare-il-corretto-ip-chiamante-se-ci-troviamo-dietro-un-proxy-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
