Permettere la Navigazione solo da IP italiani con web.config (IIS)

E’ possibile utilizzare web.config di IIS per permettere la navigazione, di un determinato servizio, solo da IP di un certo paese (e/o escludere il range di IP di un paese)
Per farlo possiamo iniziare dal sito web : ip2location che ci fornirà una lista già adattata per Apache, Web.Config od altri sistemi (es. Ngnix, ecc.)
Per elaborare questa lista e generare questo files, vedere in fondo alla pagina : https://www.ip2location.com/free/visitor-blocker
Generare una lista dedicata a gli ip Italiani per web.config > Allow

Adesso dobbiamo apportare una modifica al sistema seguendo questo articolo:
Web.Config – Cannot read configuration file because it exceeds the maximum file size

questo perchè il web.config che si verrà a creare, con l’intera lista di IP al suo interno, avrà una dimensione tale da violare una policy sulla sicurezza (che istruisce il sistema sul fatto che il file web.config non deve essere più grande di tot bytes, altrimenti potrebbe essere compromesso).

Dopo questa modifica dobbiamo installare questo componente di IIS:

Senza questo componente, tutto quello che scriveremo in web.config > system.webServer> <security> > <ipSecurity allowUnlisted…. non sarà “considerato” dal sistema.
Pertanto l’installazione di questo componente è vitale alle istruzioni che si andranno a scrivere.

Se vogliamo permettere solo la navigazione da IP Italiani, l’istruzione principale a cui fare riferimento sarà : <ipSecurity allowUnlisted=”false”>
dobbiamo però modificare il file generato da ip2location in quanto ogni singola linea dovrà essere trasformata da:

<add ipAddress=”212.177.58.32″ subnetMask=”255.255.255.248″/>
<add ipAddress=”212.177.58.40″ subnetMask=”255.255.255.252″/>

alla forma :

<add ipAddress=”212.177.58.32″ subnetMask=”255.255.255.248″ allowed=”true”/>
<add ipAddress=”212.177.58.40″ subnetMask=”255.255.255.252″ allowed=”true”/>

come ultimo step dobbiamo modificare il file : applicationHost.config
Ubicato in : %windir%\system32\inetsrv\config\applicationHost.config

sotituendo questa riga : <section name=”ipSecurity” overrideModeDefault=”Deny” />
con questa : <section name=”ipSecurity” overrideModeDefault=”Allow” />

se non lo facciamo otterremo un errore : HTTP Error 500.19 – Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
0x80070021
Sull’istruzione : <ipSecurity allowUnlisted=”false”>
Config Error This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault=”Deny”), or set explicitly by a location tag with overrideMode=”Deny” or the legacy allowOverride=”false”.

Permettere la Navigazione solo da IP italiani con web.config, IP italiani con web.config, blocco web.config ip, web.config ip blocco, permit italian ip web.config, italian ip classes, list mask italian ip, lista ip italiani, tutti lista ip italiani, lista tutti ip italiani, indirizzi ip italiani, permit italian ip IIS, Permettere la Navigazione solo da IP italiani con IIS, IP italiani con IIS, blocco IIS ip