Aug 22

OpenVPN between pfSense and Mikrotik

Reading time: 3 – 5 minutes

vpn-pfsense-mikrotik-schemaAssuming previous scenario I’m going to describe the required configurations on pfSense and Mikrotik. Certifcate creation is not part of the scope of this document, if you are not familiar about how to do that it’s a good idea to use the pfSense certificate manager to do it. My last advice is take care with certificates 90% of problems that I found in my life when I was working on VPNs are because of that. Take your time to check it before spend your time playing with other configurations.

In that scenario pfSense will play the role of the VPN server and Mikrotik will be the client, so I’m going to start describing pfSense configurations.

Create OpenVPN server on proper section:

pfsense-openvpn-server

 

Important things to take in account when you set up the parameters are socket has to be a TCP socket in my case I decided to use port 1201:

pfsense-openvpn-server-configNext settings on the same place are about local network and tunnel IP addresses, this is required to create proper routing rules on the server and the client.

pfsense-openvpn-server-config2

 

Last part to configure on this sections is extremly simple, only take care to unmark everything and check “address pool” setting.

pfsense-openvpn-server-config3

 

Remember to open that port on Firewall rules.

pfsense-firewall-rules

 

A VPN user is required to authenticate the process, just go to “User Management” inside the “System” menu:

pfsense-user-manager-oriol

 

pfSense is configured, now it’s time to set-up the OpenVPN client on Mikrotik using Winbox. Remember to import the certificates:

certificates-mikrotik

 

Click on “PPP” this on the left menu:

ppp-mikrotik

 

Add an OVPN Client connection using the “+” button, the parameters for that connection are:

ppp-interface

 

Another required thing to define on “PPP” is the profile, click on the tab “Profile” and using the button with symbol “+” create a new profile like that:

ppp-profile

 

Everything is ready, now it’s time to check if the connection is OK. First go to the OVPN client on Mikrotik, remember this is on “PPP” menu option and inside tab “Interfaces”. Clicking on the interface you’ll see the status details. If it’s disconnect going to pfSense or Mikrotik logs you can see the negotiation details.

Remember usually the problem is with your certificates, but first of all you have to ensure that the negotiation tries to start.

Enjoy it and good luck.

 

Jul 27

Mikrotik as a PPTP server for Android

Reading time: 4 – 6 minutes

Two years ago I installed a Mikrotik Cloud Switch and lately I stoped my pfSense and I started using that switch as my network router, firewall and also as a switch. RouterOS is really powerful and allows to do a lot of things with that hardware. One of those things is set-up a VPN server based on PPTP. This is not the most secure way to create VPNs but usually the only requirement is a little bit of security on top of an IP over IP service that allows us to use local service when we’re in remote. In my case I have a lot of services in my LAN and I need some of them when I’m out of home specially I need to use them from my mobile phone.

Next steps describe how I set-up a PPTP server on my Mikrotik server allowing my Android 6 device (Huawei Mate 8) to connect to my home services through the VPN. Bellow you have a simple schema representing the schenario of the solution:

architecture

I’m only going to describe steps from the web console, of course, all those steps can be done using Winbox or the command line. To be honest I’m not used to RouterOS CLI but I think it’s not difficult to figure out the CLI commands to get the same result.

First step is set-up a pool of IP addresses to be assigned to the tunnel endpoints.

01-ip-pool

02-ip-pool

Thanks to an ARP proxy those IP addresses will be available like local IPs, this is transparent for the VPN configuration.

00-arp-proxy

configuration of connection profile is done inside “Profiles” tab:

05-profiles

first of all create a new profile called “default-encription”:

061-profiles

and another profile called “pptp-profile”:

06-profiles

“Secrets” tab is where you have to manage users, in my case only two users are created:

07-secrets

configuration details about my user are:

08-secrets

Inside PPP menu there is a button with a label “PPTP server” click there…

03-pptp-server

… and copy next settings:

04-pptp-server

Don’t forget to check that your PPTP port is accessible from your public IP address. Remember it’s 1723/TCP.

Android configuration is simple, first of all go to “settings” icon. Look for a “More” section bellow network options, and you’ll find VPN managment. Add a new connection, define a name, the type and the IP address and leave the rest by default. After that when you come back to VPN list you’ll find your new VPN in the list, click there and just set-up your PPTP credentials.

android

If you have some trouble the only thing that you can do is go to Mikrotik logs or start sniffing to figure out where is the problem. I had to do some tests before it was working but in the end everything was so simple like I explained here.

Good luck and enjoy it.

Thanks to next blog entries to inspire me:

 

 

Feb 25

Setup a VPN with PPP and SSH

Reading time: < 1 minute

Fast trick for linux users, do you know how to setup a VPN using PPP and SSH? of course you can setup a secure tunnel using ‘-w- or ‘-W’ ssh parameters in last versions of SSH. But in this case I want to share with you this idea:

pppd updetach pty "ssh root@REMOTE_PUB_IP pppd notty 192.168.254.1:192.168.254.2"

I hope it’s useful for you.

Mar 03

Netgear ProSafe SSL VPN Concentrator SSL312

Reading time: 4 – 6 minutes

NetGear SSL312Havia tingut l’oportunintat de veure funcionar aquest tipus de concentradors d’VPN en diverses ocasions però mai n’havia configurat cap. De fet, el model en concret del que us parlo el vaig descobrir a través de Tecnología Pymes. El que més em va sorprendre és la quantitat d’VPNs que gestionava i el seu preu, són 25 VPNs concurrents per uns 350€ de PVD. Després vaig estar mirant-me a fons el manual i les seves especificacions tècniques i crec que és una de les solucions més competitives per montar VPNs a usuaris remots (roadwarriors) de forma senzilla. En aquest cas, senzilla vol dir que no s’hagi d’anar usuari per usuari a configurar-los l’VPN. Sinó que ells mateixos simplement accedint a una pàgina web i amb un simple usuari/password més el suport d’un plug-in Java/ActiveX passin a ser un client de l’VPN.

Al accedir via web després de l’autenticació el dispositiu facilita un portal d’enllaços als usuaris on poden amb un simple clic accedir a aplicacions a través del navegador, per exemple, usant VNC, RDP, Telnet, SSH, IE i d’altres protocols l’usuari pot iniciar per exemple una sessió amb una aplicació que estigui en un servidor local: Word, Excel, ERP, CRM, Web,  etc. O sigui, que és ideal per quan tenim usuaris amb coneixements molt bàsics perquè els podem donar accés directe a les típiques coses que usaran i per l’usuari és molt senzill d’entendre. Obviament si no volem accedir via web a la xarxa remota ho podem fer des del sistema, o sigui, que per exmemple si obrim una consola podem llençar un ping sense problemes als servidors remots. No deixa de ser una VPN de les de sempre, però usant com a client el navegador.

Pel que fa al firmware que usa després de connectar-hi via RS232 he pogut veure que és un Linux, al qual pel mateix CLI serie podem tenir-hi accés i tocar el que ens convingui. Per cert, enlloc he trobat la configuració del port serie per connectar-hi però fent proves la que m’ha funcionat ha estat: 9600 8N1 no control de fluxe per hardware ni tampoc per software.

Al iniciar el router aquest portava un firmware força antic que no suportava Windows Vista i que només podia treballar amb clients IE via ActiveX. Però després d’actualitzar el firmware a la versió 2.3.03 no només ja es suporta el Windows Vista sinó que també funciona amb clients Linux amb Firefox usant un applet de Java. Això si hem de tenir permisos d’administrador perquè sinó no pot crear les rutes i d’altres similars al sistema.

# uname -a
Linux vpn0 2.4.20-br264 #25 Fri Nov 14 12:23:42 IST 2008 POLO unknown

Els usuaris de l’VPN poden estar guardats en diversos llocs:

  • Local user database
  • Microsoft Active Directory
  • LDAP directory
  • NT domains
  • RADIUS (PAP, CHAP, MSCHAP, MSCHAPv2)

A més disposa d’un sistema de grups i de polítiques de permisos que malgrat no ser res de l’altre món ens permet crear certs tipus de perfils restringint els accessos de forma simple i fàcil de gestionar als grups o usuaris.

Quan montem aquesta solució podem treballar de diverses formes. Diposa de dues sortides ethernet i podem treballar amb només una sortida:

topologia 1

o usant dues interficies de xarxa:

topologia 2

a partir d’aquí podem adaptar el sistema d’VPN al que més ens interessi dins de l’empresa.

Abans d’acabar només un apunt sobre el tema de la configuració. Cal dir que no és complicat de configurar, però en primera instància és una mica engorrós tenir tantes opcions i tan poc intuitives. Una bona recomanació és que no deixeu de llegir-vos atentament l’ajuda en línia (apareix a la part dreta) que es mostra en la WebUI de configuració.

Un altre cop doncs NetGear ens ha presentat un producte molt decent i recomanable, he de dir que és una marca que al igual que Linksys m’acostuma a deixar un bon gust de boca.

Pàgina del producte:  ProSafe SSL VPN Concentrator SSL312

Sep 30

Yoggie Security Systems

Reading time: 3 – 4 minutes

Aquesta empresa de capital risc acaba de presentar un mini-caixa de la mida d’una targeta de crèdit, amb dues connexions ethernet una cap a l’ordinador i l’altre cap a internet. La idea és fer de firewall personal per ordinadors aïllats o com a molt protegir petites xarxes de fins a 5 o 6 ordinadors connectant-hi un petit switch (o HUB). Com no podia ser d’una altre manera aquesta caixeta porta un Linux que s’encarrega de fer el que a Yoggie en diuen Personal Security Gatekeeper, o sigui donar funcions de:

  • Stateful inspection firewall
  • VPN client
  • Intrusion detection and prevention
  • Four transparent proxies: HTTP, FTP, POP3 (Pro model only), and SMTP (Pro model only)
  • Antivirus, antispyware, antispam (Pro model only), antiphishing (Pro model only)
  • Yoggie “Layer 8” security engine (patent pending)
  • Yoggie multilayer security agent
  • Content filtering
  • White and black lists
  • Yoggie health monitoring
  • Web management and monitoring said to provide “real time, constant, consistent and un-paralleled visibility into distributed laptop platforms, regardless of location”
yoggie_gateway.jpg

Tot això en ordinador ben petit però ben potent al mateix temps, de fet, esta disponible en dues versions la versió basic i la pro; les característiques del hardware són les següents:

  • Intel PXA270 (Bulverde) a 416MHz (basic) o 642MHz (pro)
  • 64 o 128Mb SDRAM
  • 64 o 128Mb Flash
  • SD slot (suport SDIO)
  • 4Mb de secured flash
  • 2 port 10/100 Ethernet
  • USB OTG (on-the-go)
yoggie_gateway_boards.jpg

El producte es comercialitzarà al novembre a través de distribuidors a EUA, UK i Alemanya. El model basic costarà uns 180$ i el Pro uns 220$. Realment crec que relació qualitat preu és un molt bon producte per molts tipus d’usuaris. Sobretot en el camp del SOHO o els RoadWarriors que van per tot arreu amb el portàtil. Esta clar que pels professionals de les TIC no és res de l’altre món però pels usuaris en general crec que per fi hi ha una bona alternativa a les appliances que treuen les companyies d’antivirus que sota la meva opinió en general són lamentables i una presa de pel.

El producte l’he tret de linuxdevices per variar, concretament de l’article Tiny Linux gadget protects Windows XP laptops. Si com a mi el que més us ha agradat del producte és la placa base podeu ampliar informació sobre el tema a l’article Freescale ships “SideShow” devkit — but where’s the Linux?. També podeu buscar més informació a google amb la keywordBulverde“.

Sep 27

kvpnc: client universal d’VPN per kde

Reading time: 1 – 2 minutes

GUI per clients d’VPN universal, suporta openVPN, cisco VPN client, FreeS/WAN (Linux 2.4.x), ipsec-tools support (Linux 2.6.x/BSD native), PPTP support (pptpclient). A més s’encarrega de fer la gestió de certificats i perfils dins d’un mateix tipus d’VPN. Realment molt útil si com jo heu de tenir a mà múltiples sistemes de connexió remots per diferents empreses i entorns de xarxa molt canviants.

screenshot-kvpnc.png

Val la pena que hi doneu un cop d’ull a la infinitat de funcionalitats que ofereix el programa. A més de ben segur que el podeu fer correr amb l’idioma que més us agradi i, com no, esta suportat al portage de gentoo. Així que ja només queda que proveu l’kvpnc i a veure si us agrada tan com a mi.

Jul 21

Tipus d’VPNs

Reading time: 7 – 12 minutes

Quan parlem d’VPNs gairebé tothom té clar perquè serveixen i què fan. El fotut és quan comencem a parlar de quin tipus d’implementació s’ha d’usar o s’ha usat per montar-la. Això fa que un munt de sigles comencin a saltar sobre la taula i al final si no tenim una molt bona base tècnica som incapaços d’entendre a què es refereixen. Aprofitant un article que ha aparegut a Network Systems DesignLine, de fet, és la primera part d’una serie encara incompleta anomenada Compare, design, and deploy VPNs–A tutorial–Part I he decidit fer un petit resum dels tipus d’VPN més comuns.

Dispositius d’una VPN

Per tal de poder parlar en propietat quan parlem dels elements de la VPN a continuació s’intenta definir una mica els dispositius que intervenen (o poden intervenir) en una VPN i on estan situats.

En el costat del client:

  • Customer (C) devices els dispositius C són simples, per exemple routers i switchos dins de la xarxa del client. Aquests dispositius no estan connectats a la xarxa del proveedor de servei. Aquests dispositius no saben distingir si estan o no dintre d’una VPN.
  • Customer Edge (CE) devices són els dispotius del client que donen conectivitat a la xarxa del proveedor de serveis.(via Provider Edge [PE]).
    • CE-r routers
    • CE-s switches

En les VPNs basades en CE, els dispositius CE si que estan disponibles per ser usades amb la VPN. Si les VPNs estan basades en els PE, els dispositius CE no estan disponibles per la VPN.

En les VPNs site-to-site, els dispositius del proveidor de serveis es poden classificar en:

  • Service Provider (P) devices els dispositius P com ara routers i switches dins de la xarxa del proveedor que no es connecten directament a la xarxa del client.
  • Service Provider Edge (PE) devices connectats directament a la xarxa del client a través dels dispositius CE. En les VPNs basades en PE aquests dispositius són visibles des de l’VPN, en les basades en CE no són visibles.
    • PE-r Provider Edge routers
    • PE-s Provider Edge switches
    • PE-rs Provider Edge devices that are capable of both routing and switching
VPNFigure1.gif

VPNs de capa 2, com ara VPLS, afegeixen un nivell a la gerarquia per ser més escalable (VPLS llavors passa a ser Hierarchical VPLS [H-VPLS]). En aquest cas, les funcionalitats dels dispositius PE, es divideixen en dos parts U-PE i N-PE.

Cal que no oblidem que els U-PE i els N-PE són equivalents al PE-CLE i al PE-POP, respectivament. Quan tenim un dispositiu PE-U de capa 2, podem referir-nos a ell com un MTU-s.

VPNFigure2.gif

Altres dispositius d’una VPN poden ser els NAS i els concentradors o gateways d’VPN. Un NAS és un dispositiu que fa d’interficie entre la xarxa d’accés (com ara PSTN) i les xarxes de conmutació de paquets (com ara un backbone IP). En un accés remot VPN el NAS pot treballar com a finalitzador de tunel.

Depenent del protocol usat per establir un accés remot el NAS es pot anomenar de diferents formes Layer Two Forwarding (L2F) Protocol NAS, Layer Two Tunneling Protocol (L2TP) Access Concentrator (LAC),o Point-to-Point Tunneling Protocol (PPTP) Access Concentrator (PAC).

Un gateway o concentrador d’VPNs actua com a punt final d’un túnel (VPN endpoint), especialment quan parlem d’accessos remots o VPNs basades en CEs (site-to-site).

Segons el protocol usat per aquests accessos remots el gateway o concentrador d’VPNs es pot anomenar, per exemple, L2F Home Gateway, L2TP Network Server (LNS), o PPTP Network Server (PNS).

Tecnologies i protocols usats en VPN del tipus Site-to-Site (o LAN-to-LAN)

En les VPNs site-to-site (o LAN-to-LAN) la informació del client viatja entre dispositius CE o entre dispositius PE.

  • IPsec són un conjunt de protocols dissenyats per protegir el tràfic IP entre gateways o hosts. Normalment s’usa aquest protocol per establir VPNs entre CEs.
  • GRE usat per fer túnels i transport de multiprotocols entre CEs. La seguretat de GRE és baixa o no inherent al protocol, però si volem podem aprofitar IPSsec per securitzar els túnels montats en GRE.
  • Draft Martini (Any Transport over MPLS–AToM) permet transportar protocols punt a punt com ara Frame Relay, ATM, Ethernet, Ethernet VLAN (802.1Q), High-Level Data Link Control (HDLC), i tràfic PPP sobre MPLS.
  • L2TPv3 permet transportar protocols com ara Frame Relay, ATM, Ethernet, Ethernet VLAN, HDLC, i tràfic PPP sobre IP o altres protocols de backbone.
  • IEEE 802.1Q tunneling (Q-in-Q) permet als proveedors de servei transportar tagged Ethernet (802.1Q) entre xarxes dels clients a través d’un backbone compartit. Per tal de fer això l’únic que es fa és tornar a afegir una altre etiqueta, a la afegida pel 802.1Q de la xarxa del client, aquesta vegada l’etiqueta 802.1Q és de la xarxa del proveedor.
  • MPLS LSPs (Label Switch Routers) els paquets es conmuten segons l’etiqueta afegida al paquet. LSPs poden rebre senyals de TDP, el LDP, o el RSVP.

Tecnologies i protocols usats en accessos remots

  • The Layer Two Forwarding (L2F) Protocol és propietari de Cisco. Bàsicament es va dissenyar per fer túnels PPP (o SLIP) per enllaços entre NAS i VPN gateways en oficines centrals. Els usuaris remots connecten al NAS, i les trames PPP de l’usuari remot són enviades pel túnel cap al VPN gateway.
  • The Point-to-Point Tunneling Protocol (PPTP) el van desenvolupar Microsoft, 3com i Ascend Communications. Com el L2F, el PPTP permet crear túnels per accessos remots a través de trames PPP entre un NAS i un VPN gateway. PPTP també permet crear túnels entre l’usari remot i el VPN gateway. PPP encapsula els paquets enviats a través dels túnels PPTP i sovint com a mètode de protecció s’usa MPPE.
  • The Layer 2 Tunneling Protocol versions 2 i 3 (L2TPv2/L2TPv3) és un estàndard de la IETF i combina les millors funcionalitats del L2F i el PPPTP. En un entorn d’accés remot, L2TP permet enviar trames PPP del client a través del NAS contra el VPN gateway o concentrador de túnels. L2TP té la seguretat com a element intrinsec, sovint s’usa IPSec per protegir-los.
  • IPSec permet establir túnels tipus site-to-site (LAN-to-LAN>), accessos remots o usuaris mòbils.
  • The Secure Sockets Layer (SSL) és un protocol de seguretat que va ser desenvolupat per Netscape Communications (SSL v1,v2 i v3). Ens permet crear enllaços remots segurs als usuaris mòbils. Funcionalment esta molt limitat, perquè no ens cal un client d’VPN. Cal no oblidar que TLS és un estàndard IETF molt similar la SSLv3.

Per tal de disfrutar d’un conjunt de funcionalitats més potent cal instal·lar un client d’VPN SSL específic.

Modelant i Caracteritzant una VPNs

Un bon mapa perno perdres en el món de les VPNs:

VPNFigure3.gif

VPNs creades pel proveedor o pel client

Exemples d’VPNs creades pels proveedors:

  • Virtual Private Wire Service (VPWS) VPNs
  • Virtual Private LAN Service (VPLS) VPNs
  • IP-Only Private LAN Service (IPLS) VPNs
  • BGP/MPLS (RFC4364/2547bis) VPNs (BGP/MPLS VPNs are also known as MPLS Layer 3 VPNs.)
  • Virtual Router (VR)-based VPNs
  • IPsec VPNs

Exemples d’VPN creades en el client:

  • GRE VPNs
  • IPsec VPNs
  • SSL VPNs

Site-to-Site i VPNs d’accés remot

Les VPNs les crei el proveidor o el client, només poden oferir dos tipus d’accés:

  • Site-to-site ofereixen connectivitat entre xarxes distants geograficament connectant-les com si es tractes d’una xarxa local. Bàsicament es ditingeixen dos tipus les intranet i les extranet segons si connecten xarxes de la mateixa organització o de diferents organitzacions, respectivament.
VPNFigure4.gif
  • Accés remot també anomenades VPNs d’accés permeten a un usuari mòbil o domèstic accedir a la xarxa de l’organització i accedir als seus recursos de xarxa com si estiguessis físicament a la xarxa.
VPNFigure5.gif
Oct 29

Cisco 837 VPN LAN-to-LAN i VPN Client (v4.0.x)

Reading time: 2 – 3 minutes

Aquesta tarda he configurat dos Cisco 837 per dos clients, un per fer un enllaç LAN2LAN entre Alacant i Vic, i un altre per fer enllaçar una oficina amb els seus usuaris en iterància, que connectaran amb VPNClient des de qualsevol lloc. Doncs bé no faré el típic mini-manual o cookbook per explicar com ho he fet. Ja que Cisco si algo té ben parit és la documentació tècnica que es pot obtenir a través del CCO (Cisco Connection Online). També s’ha de dir que si no teniu uns coneixements mínims e Cisco o un CCNA, almenys, no és tasca fàcil barallar-se de bones a primeres amb la CLI de Cisco.

cisco837.jpg

Pels que no conegueu els routers 837 de Cisco, són els que últimament més es monten ja que són routers ADSL i amb una gran diversitat de IOS per instal·lar, a més suporten moltes funcions de seguretat: VPNs, firewall, ssh, etc. Doncs bé a continuació us poso els links del CCO d’on he tret la informació per configurar el router i al costat un link amb el pdf en local, per la gent que no tingui accés al CCO de Cisco.

Oct 17

OpenVPN roadwarrior over PROXY

Reading time: 2 – 4 minutes

Com ja sabeu fa uns dies em vaig montar un sistema per poder anar pel món amb el portàtil i connectar-me a la xarxa interna de casa, des de qualsevol lloc. Doncs bé hi ha llocs on no tenim una sortida a internet sinó que aquesta és a través d’un proxy, a vegades fins hi tot autenticat. Fins hi tot ens podem trobar en que no tenim ni DNS a la xarxa en la que estem sinó que tot es fa a través de l’HTTP PROXY.

Doncs bé quan ens ho posen tan difícil també podem usar l’OpenVPN per connectar a casa i fins hi tot navegar per internet a través de la xarxa de casa disfrutant de tots els serveis de la xarxa i no amb els ports ‘capats’ com ens obliga el proxy/firewall de torn. L’únic que cal és modificar la configuració del client d’OpenVPN per poder sortir a través del proxy de torn contra el port del servidor de l’OpenVPN que tenim a casa.

Al document on explicava com connectar-nos per VPN a casa, sent nosaltres roadwarriors, vaig posar el servidor al port 443/TCP. Doncs ara veieu el motiu, la idea és que si el servidor esta en aquest port el servidor proxy ens deixa passar a través seu per connectar-hi pensant que on connecteu és una web segura (HTTPs), al accedir a un servei xifrat el proxy/firewall no poden inspeccionar els paquets que passen a través seu i podem establir la VPN usant com a protcol de transport el SSL.

A continuació encomptes d’ensenyar-vos una connexió real amb un proxy d’una empresa el que faig és usar un proxy públic dels que hi ha per poder navegar de forma anònima per internet. Si en voleu una llista la podeu trobar a: llista pública de proxies. Concretament per la configuració de prova jo he usat el 194.80.193.161 pel port 8082. Així doncs al fitxer de configuració del client he afegit:

http-proxy 194.80.193.161 8082

Per disimular encara més el rastre de la vostre VPN podeu usar les següents comandes i el firewall en qüestió, ni tan sols olorarà que monteu una VPN:

http-proxy-option VERSION 1.1
http-proxy-option AGENT "compatible; MSIE 6.0; Windows NT 5.1"

Molt senzill,oi? si el proxy és autenticat podeu consultar el man openvpn les comandes per enviar l’usuari i el password. A mi de moment no m’ha calgut.

Apa doncs ja poden anar posant servidors proxy i firewalls que nosaltres ens les continuarem empescant per sortir a internet com deu mana i no pas reduint internet al servei de web. Que tot i ser dels més usats sempre és limitadíssim.