MIKROTIK VPN SERVER – OPENVPN
MIKROTIK – ACCESSO A PLC SIEMENS
Programmazione e collaudo di un server VPN Mikrotik, che vi permetterà di accedere e configurare il vostro PLC da remoto con OPEN VPN.
Componenti Neccessari:
- Un Router Mikrotik hAP ac2
- Una connessione internet con IP PUBBLICO.
- Un pc con Winbox, OpenVPN e LogoSoftConfort.
- Un PLC Logo Siemens.
Livello difficoltà: Medio-Alta
Analizziamo il seguente diagramma:
Obbiettivo 1: Configurare il router con la configurazione base:
Qui di seguito scrivo il codice che andrebbe incollato nel terminale del Router Mikrotik dopo averlo resettato, se sei alle prime armi con i router Mikrotik e il tool di configurazione Winbox, ti consiglio di seguire questa guida Configurazione base Router Mikrotik.
E’ fondamentale prima di iniziare resettare il Router.
Da Terminale digitate la stringa:
/system reset-configuration no-default-configuration=yes
Il router si riavvierà. A Riavvio completato digitare sul terminale il seguente codice:
/interface bridge add name=bridge_LAN
/interface ethernet
set [ find default-name=ether1 ] comment=Interfaccia_pubblica
set [ find default-name=ether2 ] comment=--------------------------LAN-----------------------------
/interface wireless
set [ find default-name=wlan1 ] band=2ghz-b/g/n channel-width=20/40mhz-Ce country=italy disabled=no installation=indoor mode=ap-bridge ssid=GREENET wireless-protocol=802.11 \
wps-mode=disabled
set [ find default-name=wlan2 ] band=5ghz-a/n/ac channel-width=20/40/80mhz-Ceee country=italy disabled=no frequency=5260 installation=indoor mode=ap-bridge ssid=GREENET \
wireless-protocol=802.11 wps-mode=disabled
/interface lte apn
set [ find default=yes ] ip-type=ipv4-ipv6
/interface wireless security-profiles
set [ find default=yes ] authentication-types=wpa2-psk eap-methods="" mode=dynamic-keys supplicant-identity=MikroTik wpa2-pre-shared-key=green2805
/ip pool
add name=pool-dhcp ranges=192.168.120.100-192.168.120.200
/ip dhcp-server
add address-pool=pool-dhcp disabled=no interface=bridge_LAN lease-time=12h name=dhcp-server
/interface bridge port
add bridge=bridge_LAN interface=ether2
add bridge=bridge_LAN interface=ether3
add bridge=bridge_LAN interface=ether4
add bridge=bridge_LAN interface=ether5
add bridge=bridge_LAN interface=wlan1
add bridge=bridge_LAN interface=wlan2
/ip settings
set max-neighbor-entries=2048
/interface ovpn-server server
set auth=sha1,md5
/ip address
add address=1.2.3.4 interface=ether1 network=10.246.159.50
add address=192.168.120.1/24 interface=bridge_LAN network=192.168.120.0
/ip dhcp-server network
add address=192.168.120.0/24 dns-server=192.168.120.1 domain=WORKGROUP gateway=192.168.120.1 netmask=24
/ip dns
set allow-remote-requests=yes servers=1.1.1.1,208.67.222.220
/ip dns static
add address=192.168.120.1 regexp=router.lan
/ip firewall filter
add action=accept chain=input connection-state=established,related,untracked
add action=drop chain=input connection-state=invalid
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1 src-address=192.168.120.0/24
/ip route
add distance=1 gateway=10.246.159.50
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www address=192.168.120.0/24
set ssh address=192.168.120.0/24
set api disabled=yes
set winbox address=192.168.120.0/24
set api-ssl disabled=yes
/system clock
set time-zone-name=Europe/Rome
/system identity
set name=Router-ufficio
Nel mio caso è stato configurato l’IP pubblico statico direttamente nell’interfaccia ether1.
Se per caso il router Mikrotik VPN Server viene installato a valle del Router del vostro operatore, il Router Mikrotik lavorerà in doppio NAT quindi andrebbero aperte le porte 1194 UDP e TCP o una DMZ verso il Mikrotik stesso.
Obbiettivo 2: Aggiornare il Router
Dopo aver creato la configurazione di base, aggiorna RouterOS alla versione 7.9 dal terminale:
/system package update set channel=stable
/system/package/update/install
La Routerboard si riavvierà per eseguire l’aggiornamento. Al riavvio inserisci la seguente stringa nel terminale per aggiornare anche il firmware:
/system/routerboard/upgrade
#Do you really want to upgrade firmware? [y/n]
#(premere Y per confermare)
Obbiettivo 3: Creare i certificati per OVPN:
Per quanto riguarda la configurazione di OpenVPN, può sembrare un pò ostica inizialmente, ma dopo capito il meccanismo è abbastanza automatica da configurare.
Iniziamo con il creare i certificati da terminale:
/certificate
add name=CA locality=Milano organization=green-net unit=VPN common-name=CA subject-alt-name=DNS:CA-ike days-valid=3650 key-usage=digital-signature,key-encipherment,data-encipherment,key-cert-sign,crl-sign
add name=server country=IT locality=Milano organization=green-net unit=VPN common-name=server subject-alt-name=DNS:server days-valid=3650 key-usage=tls-server
add name=mario.rossi@italia.it country=IT locality=Milano organization=green-net common-name=mario.rossi@italia.it subject-alt-name=email:mario.rossi@italia.it days-valid=3650 key-usage=tls-client
#--------->SOSTITUIRE 1.2.3.4 CON IL TUO IP PUBBLICO O IL TUO DDNS
/certificate sign CA ca-crl-host=1.2.3.4
:delay 5s
/certificate sign server ca=CA
:delay 5s
/certificate sign mario.rossi@italia.it ca=CA
:delay 5s
/certificate set server trusted=yes
Obbiettivo 4: Configurare il server vpn Mikrotik OpenVPN:
Dopo aver creato i certicati, vedremo di esportarli e abbinarli al server OVPN.
Apri New Terminal e digita:
/certificate export-certificate file-name=CA-ovpn CA
/ip firewall nat add chain=srcnat src-address=10.165.46.0/24 action=masquerade
/ip pool add name=pool_OVPN ranges=10.165.46.100-10.165.46.110
/certificate export-certificate file-name=client mario.rossi@italia.it export-passphrase=12345678
/ppp profile add name=OVPN-profile local-address=10.165.46.1 remote-address=pool_OVPN
/interface ovpn-server server
set auth=sha1 certificate=server cipher=aes256-gcm default-profile="OVPN-profile" enabled=yes require-client-certificate=yes protocol=udp
/interface ovpn-server server set enabled=yes
Ora creiamo un utente sicuro con password OTP per la nostra vpn sempre dal terminale Mikrotik.
- Per comodità puoi scaricare questo file user-vpn.rsc e modificarne l’user.
- Clicca sul tab New Terminal, e Incolla il seguente testo o quello modificato dal file sopra citato:
{
### modificare nome utente (es: :local user "Giovanni" )
:local user "user32"
#----------NO MODIFY THIS SECTION----------
:local otpPw ([/certificate scep-server otp generate minutes-valid=2 as-value]->"password")
/ppp secret add name=$user password=$otpPw profile=OVPN-profile
}
Qui di seguito ti allego uno screen delle varie finestre di Winbox come riepilogo.
Obbiettivo 5: Creare un file con estensione .ovpn da utilizzare sul client.
Apriamo un file blocco note nel nostro PC e inseriamo il seguente testo avendo premura di modificare l’ip pubblico nel campo remoto:
client
dev tun
proto udp
remote 1.2.3.4
port 1194
resolv-retry infinite
nobind
persist-tun
persist-key
cipher AES-256-GCM
auth SHA1
pull
auth-user-pass login.cfg
remote-cert-tls-server
route 192.168.120.0 255.255.255.0
ping 15
verb 3
tls-client
Ora dovremo scaricare dalla sezione file del nostro router Mikrotik, i certificati precedentemente esportati:
Clicca sul tab File e dovresti trovare i certificati come da immagine seguente.
Clicca con il tasto destro del mouse su i vari certificati e clicca su Donwload.
Una volta scaricati i certificati, aprili con blocco note o un qualsiasi editor di testo, e copiane il contenuto. Per comodità ti allego qui un file pronto da modificare Scarica file client.ovpn
Il contenuto dovrà essere incollato nel file .ovpn come qui di seguito:
client
dev tun
proto udp
remote 1.2.3.4
port 1194
resolv-retry infinite
nobind
persist-tun
persist-key
cipher AES-256-GCM
auth SHA1
pull
auth-user-pass login.cfg
remote-cert-tls-server
route 192.168.120.0 255.255.255.0
ping 15
verb 3
tls-client
<ca>
-----BEGIN CERTIFICATE-----
MIIDgzCCAmugAwIBAgIIXLVRE1KMwekwDQYJKoZIhvcNAQELBQAwQDEPMA0GA1UE
BwwGTWlsYW5vMRIwEAYDVQQKDAlncmVlbi1uZXQxDDAKBgNVBAsMA1ZQTjELMAkG
A1UEAwwCQ0EwHhcNMjMwNTA4MjE1MTA3WhcNMzMwNTA1MjE1MTA3WjBAMQ8wDQYD
VQQHDAZNaWxhbm8xEjAQBgNVBAoMCWdyZWVuLW5ldDEMMAoGA1UECwwDVlBOMQsw
CQYDVQQDDAJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKSw6Nm1
skdVw3Adzrlsangd06R+4ozxqVz2hks1us05r9ZJfHUMZI9phbBlYUFRQZou9iDe
ReZY4N4EF8VcTG9EO+5WBX531N28Wtstzri6GcqxlaVBKFtnbArtWnWJ7kJqdsqi
aVTJLqXYH227QbOR3+YuvnRH9YlK1cw26PwMxmHDS3g2f/YvA59staclVVjAtcD6
i/gaRMCHZnWnwoxfmNJEn+2wOrvMrl74Blj8eGMEI2cmulOmTwD2cinSXAi5oNpI
99J4QsqZOrCjFuJ7S6nLyerCgO7XzvPdltFHuopSwvHxJN0eI3mIrxidFvVz/kXR
Bqfs6KNO5lhPlpUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
BAQDAgG2MB0GA1UdDgQWBBT6lh2mAYb+TLFnv8FS25fJRXmDijApBgNVHR8EIjAg
MB6gHKAahhhodHRwOi8vMS4yLjMuNC9jcmwvMS5jcmwwEQYDVR0RBAowCIIGQ0Et
aWtlMA0GCSqGSIb3DQEBCwUAA4IBAQAGGx5jag5Pjta/mrW7GChsXbqGcTrSFr6O
AJaYqAGbaGzFuBjKxKttUCQC5QI7lTx7qsSRSa6ifyjiaMvFtRj4Vw1W5F1exRs0
jdctg/0/2pUZGcM/ErBFYz58u3SgnyjAONKKCep/i0D8h82XYShfuyRI3KjaMQDV
VmsPpMIgVxZiem37foseAHPc5ybfPW50MKdOYgaXcfjoDepYIdiAD3UIlcreNENP
i6LhBpac1VygqzQBUBfXckb78FRn/vBy9B5Q8sZUndCPHAQHdbaUIyncA0wTQuJe
4fvWMBw32Hs71AVxLAxIgW9elvLAYliSVnBTPc67MQKVjgl0/GMQ
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIDjTCCAnWgAwIBAgIIS93TI3NYO+8wDQYJKoZIhvcNAQELBQAwQDEPMA0GA1UE
BwwGTWlsYW5vMRIwEAYDVQQKDAlncmVlbi1uZXQxDDAKBgNVBAsMA1ZQTjELMAkG
A1UEAwwCQ0EwHhcNMjMwNTA4MjE1MjM4WhcNMzMwNTA1MjE1MjM4WjBSMQswCQYD
VQQGEwJJVDEPMA0GA1UEBwwGTWlsYW5vMRIwEAYDVQQKDAlncmVlbi1uZXQxHjAc
BgNVBAMMFW1hcmlvLnJvc3NpQGl0YWxpYS5pdDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBALlJUN06jCaO7fAcM4+M//Dws0IpzOFfHd3W6fGxBTXlaGpS
ZJGPgGwsrNVOW6PcZ1naSbsX6aJxieo3YIuEoI0dGUWMtTNzSP69iqIAxdljpxjb
ttDM4lP/5A5QmgBrshVs0fdpenOHKIcIXaGKmXskUTg+AT9c8bpnDuykNd/tv/uI
WIdNnOWW1g2TR1QyUprgJPiFsVC7iLAx0C137j9hxHuWaiZVJaVYj7T+jJ3PTrfK
HL3VE19Vg/kBk7pFg54XDHtyckt0RxR4AyM19EvgPiWrEYcefPX+tJ5MiVoNkFIh
zR4KGcor71+FPW8nDDsgvpxK6Jj5uD8TMOkn1JUCAwEAAaN5MHcwEwYDVR0lBAww
CgYIKwYBBQUHAwIwHQYDVR0OBBYEFH+Du1ysQ2C+2hWSmWjFGp/fPbMVMB8GA1Ud
IwQYMBaAFPqWHaYBhv5MsWe/wVLbl8lFeYOKMCAGA1UdEQQZMBeBFW1hcmlvLnJv
c3NpQGl0YWxpYS5pdDANBgkqhkiG9w0BAQsFAAOCAQEAcRnm7UYBNxnuQxjZzmgZ
BeCJ5yjxKXY2CEul0ZnVikr+gRE8182m/PhX/7pyIPAukmJ4DU2EcnYmcL4i86Mu
MR6f+Q6IPj2QVBKUH66NLtE24krWLNquLhPlvTZrH0rHIOb/a+cPttWzwJDe35zk
FGJFMPXncbkY9ORwhzrQsLb2WntrE8LZrwOjRlXxImYlVtcqHQx0Le7MBOz0DSWL
5kxcd9vS9mPvbSmGGqHF0QZO7114Nr98BGmgCHuUcFwpD5ej61rTN6dKcyQgmsCo
Z2oHyA0lYCREtTxnEjMvmTJLVTgwCeyc8Ydf9hYHuRebhxiE7NMgETieWZft05R3
MA==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQI5vlk/XmjO/UCAggA
MB0GCWCGSAFlAwQBKgQQnfUMXKEqSV0kEQwM8ZH91QSCBND7+MLYEvQsSDiX+vJb
2G+59JF/i042WzwTjyCfRtO/rTFZuHroyrqhM8eAssvvsOos7KGQQpAccfQO7lej
DtuZUQbNJm9pLNnAsEKBeCmZrgVBQLzKkRKfHntsgMzmX9iX+M9pWxihAKhbhS0v
/jmLM1G5sU4puuzG9Cpsm1usmsWmf2CC8rnyme5lA/y1bxn4wJbcUhIpI/yyAI6S
AKZe1I4a4t+tV6l7q0U7yr9opDBUp4ArwOZuf1B671O3JC9D7adbRmXxdj/xeYAU
eQ906K/R11FXhVMSd8LmkcZ6QZO85Rsufv1s0CtfVTT2Fuaji3Svqo6nEagehVY4
tSlu2hcONdLJmFeYtRZAKUPtwtw8Ur/PDt7xnF+4FMuylr0zS/gkfsxR/R8ZO9HM
DmELr+iTx8otsd1KfnERtdysp/UVVm35qo4mTAtEwfN/Yi2tPSjKqn4FivGw3Ym+
0vgrYtsS2Y0pO+ZHjlGehoYfO5PjQb8QacfoAUftfBYmxTwaLygQDhIYN79R9r2r
rzxc/6rFDX9YpF/VcDgTkQUB+BGXZxSb38P9wRNw/OKeY/dOJeAF06Qu7WGczpAU
7aJ99NMmS8Lh35YGzlhrK30t5J0Njwwzz+8ICW8gqcedwV20nUnt5iZwfu1tPtFT
W3udrgoOKoEmQNKCRFYsq79yI+InYP8lio9zF9dpkymgZNZ3o06bSQIBP25z4N0G
z9neWPMSWEVlQsfy7TjhD229nDijR3CP6wZ9rCyJu4CrxAEzradbQsmmaIbx1/8b
pM8WErfWcL2rjbrPRF7PDolVcUYYBQSvtZbIjv2eVc0akKrVkv+46qBqQWkMQzWS
nn2eNvY0H587PhHZ7BcnyK0fmTSE8uWetdncaKv9W0Bu/92Hvr3rFvALhE5mPL08
u5Vj/mzyytyxPvnZYcJlHAwBMWAp3QoWQFfV3aG1X00HxxRJSV63xMYAT+b+c6Ps
nAAConKcCeADoXMGDtnv7wj2OXgAuQh7VvdRCerodMZcWOs6199iv9IvpkCpV7VU
4jGSscwcA9yx7nLbTKNuG/xJebusfoLJiEa7vopLYKNRq62vMqV/Ba4sCpMBwJIF
87mdp5En0Hh43if6BV90kZXi3rBnCuNNOVLfTfzQ3AHM1DmN+SRWM1LYqrbhn9sQ
ab6EtVBVMAoolHULCq+Csk1goE3mAbCkscHL+zCs8V40Yn3uW5FBSv1MdeJflVTQ
px8iul/LAYfrkA0vIRAUo03rGaI1JhSJlx4RQfIDU4jaJqoOSf3dtqWfo4PJaRva
c2DXE9lNj2cPWSFlfLJkhFOwsq6xVmJ23sGJ4oDkd+TOoziH9bNRsBtuGov6HA1+
O5VJoFC5ddHuJeaMtIr41hA4Nlt9IZQigapyPMpjlbSjEpOJdB8MIcfx5v0URrmf
YdrE9beGc1tJfO7xRVaG8RTnZUhB4PgXU1r3e/40fBjnljTjRBqOZGpLxQ6IE9uI
EHte4yiknJNAZ4epVXXMb2vhlLtZ+QZb6vrnBIF2TcR3k/ClRkgtji+ja26wjz06
DWi2266GJhfSxbiU3y4znWuy3c5IQh2qIGkbki0BudG51R9jCSUrWVyc7JyXSsyV
uSM4rZoye0gF8c9/HaFpLsPdYA==
-----END ENCRYPTED PRIVATE KEY-----
</key>
Ora il file di testo andrebbe salvato con estensione .ovpn
Se non riesci a salvarlo ti consiglio di scaricare il file di esempio presente prima delle istruzioni per la creazione e modificarlo come indicato.
Ora, dovremo ora creare un altro file con estensione .cfg che riporta le credenziali di OpenVPN.
Per comodità te lo allego qui: login.cfg
Dovresti modificare le credenziali precedentemente create.
Le puoi visualizzare su Winbox, digitando nel terminale:
/ppp secret export show sensitive
Dovrebbero appararti così:
Salvale nel file .cfg in sostituzione a quelle esistenti e inserisci i due file, all’interno di un unica cartella.
Dopo aver scaricato i file, installate OpenVPN Connect sul pc che dovrete utilizzare per il collegamento da remoto.
Obbiettivo 6: Configurare il client OpenVPN
Aprendo il Tool OpenVPN appena scaricato, si presenterà un’interfaccia come questa:
Io ho già dei profili esistenti, se avete appena installato il software non avrete nessun profilo.
Ora vediamo come importare il file .ovpn precedentemente creato
- Cliccate sul tasto +, in basso a destra.
- Cliccate sul tab FILE, in alto a destra.
- Cliccate ora sul tasto BROWSE.
Selezionate il file client.ovpn e importatelo.
Nella voce Profile Name scrivete un nome per identificare il server (es. Server PLC SIEMENS)
Se vi richiede la Private Key Password inserite: 12345678
Questa password l’abbiamo creata in fase di esportazione del certificato client (Obbiettivo 4).
Infine cliccate su Connect
Se tutto è corretto OPENVPN si dovrebbe connettere con successo, se eventualmente non si connettesse, riverifica i vari passaggi dell’obbiettivo 6. Se non riuscissi a farlo connettere scrivi il problema nei commenti o contattami dalla scheda Contatti.
Obbiettivo 7: Configurare l’interfaccia di rete del PLC.
Collega il PLC al router e impostali indirizzo IP statico in classe 192.168.120.0/24
Io sul mio ho impostato 192.168.120.2 come da diagramma ad inizio guida.
Obbiettivo 8: Accertare la cominunicazione remota con il PLC.
Dal pc remoto, colleghiamoci ad una rete estranea, rispetto a quella del router dove è sito il vpn server.
Potremo usare anche l’hotspot del nostro smartphone.
Connettiamo la VPN e da terminale del pc (Prompt dei commandi su Windows), digitiamo il seguente comando:
ping 192.168.120.2
Se il collegamento è avvenuto correttamente vedremo una risposta al ping come da immagine seguente.
Obbiettivo 9: Configurare il PLC da remoto
Ora possiamo aprire il Software Siemens Logo Confort, inseriamo il plc come configurazione hardware specificando modello e indirizzo ip 192.168.120.2 senza preoccuparci se il nostro PC sta su una classe IP differente.
Scriviamo il programma su Logo Confort. Poi proviamo a collegarci al plc, specifichiamo come “Tipo di connessione: DNS Dinamico”.
Ora prima di scrivere faciamo un test di connessione.
Come possiamo vedere, la connessione con il PLC remoto è avvenuta.
Ora proviamo a scrivere il software.
Come possiamo notare, il software viene scritto correttamente sfruttando la nostra openVPN.
Considera che questo sistema si può espandere con altri plc sia sulla stessa rete dove abbiamo messo il logo, che creando delle sedi esterne utilizzando altri router mikrotik che faranno da client al nostro server già esistente.
Inoltre, eventuali altre sedi che fanno da client possono essere prive di IP pubblico (es. SIM 4G).
Vuoi ulteriori infomazioni su questa configurazione, o vuoi fare qualche domanda per approfondire?
Scrivi nei commenti o contattami attraverso la sezione Contatti.
Scopri gli altri PLC Siemens che potresti usare per questo lab.
Ti è piaciuta questa guida MIKROTIK SERVER VPN Segui tutte le guide su RouterOS alla pagina: Guide Mikrotik e le guide Siemens alla pagina: Guide Automazione
Da oggi puoi rimanere sempre informato sui nuovi articoli iscrivendoti alla newsletter o al nostro canale telegram: Guide Mikrotik – foisfabio.it.
Puoi inviare il tuo contributo Paypal oppure commenta e condividi questo contenuto.
Hai riscontrato errori in questa guida?? segnalacelo tramite la scheda CONTATTI
Quanto è stato utile questo post?
Clicca su una stella per valutarla!
Voto medio 5 / 5. Conteggio dei voti: 1
Nessun voto finora! Sii il primo a valutare questo post.