Slashdot Mirror


VPN Solutions for Distributed Installations?

merreborn asks: "I work for a very small software company (10 employees) that's developing a Point of Sale solution for a small retail chain (~20 stores in several states) on the other side of the country. We're going to be shipping Debian systems with our software installed to these locations -- all of which are connected to the Internet via consumer-grade DSL, and inevitably behind some sort of NAT box. Our office is similarly connected, and we've got a couple of dedicated, co-located servers off-site with static IPs. We'd like to be able to access these systems remotely for maintenance from the office -- what would that entail? Which VPN solutions are best suited to this situation these days (IPSec, PPTP, vtun, ssh, ssl/OpenVPN)? Are there any detailed, current books on the subject? (O'reilly's VPN book is 6 years old now)"

85 comments

  1. Yes. by numbski · · Score: 4, Informative

    Next question? :D

    Seriously, OpenVPN would do the trick, and I do it right now. The only thing that bugs me about OpenVPN is that you either have to set up a key signing authority, or use pre-shared keys. The key signing authority process is well documented, it's just that I've never actually been able to make it work. Pre-shared keys works just fine though. The protection isn't as good however.

    Once I get key signed OpenVPN working then this solution is a no-brainer.

    --

    Karma: Chameleon (mostly due to the fact that you come and go).

    1. Re:Yes. by kotj.mf · · Score: 1

      What the parent said. Actually, OpenVPN will really only work if you can garuntee that you're the only people who will ever be using the link. If you're ever going to have to interoperate with any outside trading partners, though, you're stuck with an IPSec solution. If you decide to go that route, feel free to futz around with OpenS/WAN, or just buy a bunch of PIX 500's on ebay.

      --
      hang brain.
    2. Re:Yes. by caluml · · Score: 1

      Yep, it's used on Anonet in varying numbers, and works very well.

    3. Re:Yes. by kotj.mf · · Score: 0
      Also, I found this sentance in TFA a little disturbing:
      Our office is similarly connected, and we've got a couple of dedicated, co-located servers off-site with static IPs.
      It implies that the remote sites, and maybe even home base, don't have static IPs.

      Dude, seriosly. Pay the phone company the extra five bucks a month for an IP at each site. You'll thank me later.

      --
      hang brain.
    4. Re:Yes. by HotNeedleOfInquiry · · Score: 0

      What he said. Don't even fsking think about VPN without fixed IP's everywhere.

      --
      "Eve of Destruction", it's not just for old hippies anymore...
    5. Re:Yes. by walt-sjc · · Score: 1

      Pay the phone company the extra five bucks a month for an IP at each site.

      In Verizon land, it's $30 / month nearly doubling the cost of a business line. Still worth it IMHO.

    6. Re:Yes. by arivanov · · Score: 5, Informative
      If you are doing it yourself the choice is between OpenVPN and OpenVPN.

      Advantages:

      • Ease of setup. Once you have an SSL CA setup the OpenVPN part is a piece of cake
      • Possibility to use multiple links, load balance, failover, hang yourself by any means necessary. See Caveats though...
      • Possibility to use QoS and run VOIP on top with no worries. While IPSEC security is considerably better studied than OpenVPN (this does not mean it is better, it is just a devil we know), IPSEC has a major failing. In its most common VPN use which is tunnel mode it is utter piece of horrid shite as far as QoS is concerned. Shameless plug: you can lift off QoS setup for OpenVPN off my website
      • Possibility to get hardware acceleration on the cheap. It is trivial to get OpenVPN to work with an SSL library which has via padlock support. A padlock capable motherboard is around 120$. This theoretically gives you 50Mbit hardware accelerated AES. Practically - see caveats
      • Ease of debug and understanding. It provides you with the notion of interface. You can tcpdump it, collect stats, check its status, you name it. You do not get any of that with IPSEC.
      What you need to keep in mind are a list of

      Caveats:

      • OpenVPN will copy from userland to kernel and back to perform its task. As a result it has a speed limit per client which cannot be worked around. It is a fundamental limitation and is around 5MBit per client (multiple clients bandwidth grows as a log of the number to a total of around 15-20MBit). For a distributed installation or road warriors this may prove to your advantage, because no single client can eat all the resources. There is always some resource to go around. If you want higher speeds on a single encrypted point to point link you are better off with IPSEC transport mode overlay of IP-in-IP or IPSEC overlay of PPTP.
      • OpenVPN route mechanism has minimal error checks and will bugger up your routing table majestically of you decide to do something really fancy. If you want to run a large distributed infrastructure you have to run quagga and use OSPF or RIP for routing. Either works fine provided that you can do them and you use peer-to-peer mode of OpenVPN. This also allows you to interoperate nicely with any failover within your network and this is something you never get out of IPSEC.
      • You cannot use the Server mode of OpenVPN along with routing protocols. Actually I think that there are some fixes in the Quagga CVS head that will allow this but I will advise against this. This is a mode for road warriors. If you want infrastructure you better set your tunnels properly as peer mode ones.
      If you are doing it vs someone else, especially someone with an overgrown IT department full of certification waving droids you have to use IPSEC. I have had some bad experience with SWAN varieties and personally I would suggest using Racoon and the KAME stack. Anything else aside they have some good debugging and so far I have managed to make them interop versus every implementation I have tried.
      --
      Baker's Law: Misery no longer loves company. Nowadays it insists on it
      http://www.sigsegv.cx/
    7. Re:Yes. by Deagol · · Score: 1
      The company I work for right now is rolling out OpenVPN. Our 2 main offices are connected via the shared static key method, our employees and vendors are issues certificates to log into another server. It works really well and is *much* faster than the MPD solution we used before.

      I love how you can customize each client connection's routes and stuff, but this only works if you use the certificate method. Our vendors are allowed only to the 2 subnets they need, while us employees and admins get full run of the internal network.

      I don't know what your problem was w/ the certificates. I got it running the first try, as the online HOWTO is *excellent*. The scripts in the easy-rsa/2.0 directory do all the work for you. All you need to do is copy the key to the servers and clients.

      We use FreeBSD the servers, and the excellent OpenVPN GUI for our Windows clients. I use FreeBSD from home to connect. And since some other VPN solutions apparently don't play well behind NAT devices, I'll say that multiple OpenVPN clients can connect just fine from behind a single NAT device.

      OpenVPN is a really great product.

    8. Re:Yes. by AmericanInKiev · · Score: 1

      My understanding is the OpenVPN will navigate dynamic IP pretty well - provided at least one link is static - but that it also supports dual dynamic ip (so long as you are not the unhappy victim of simultaneous changes.

      As it was explained to me, by my good friend Jim (who wrote the thing) Both connections will attempt to reconnect and rebroadcast the return IP. (presumably this is configurable).

      AIK

    9. Re:Yes. by nmos · · Score: 1

      I'm not sure why you keep comparing OpenVPN VS. IPSEC. Openvpn is a product and IPsec is a protocol (actually a set of protocols) and in fact OpenVPN USES IPsec.

    10. Re:Yes. by arivanov · · Score: 2, Informative

      Under IPSEC I mean any standards compliant implementation floating around. I am speaking based on some experience with Checkpoint, Cisco, Nortel, KAME, FreeSwan and a few others. When used in tunnel mode they all suck by design because they do not offer an interface notion to the OS so there is no way to run a routing protocol on the tunnel. They similarly suck QoS-wise. I am using IPSEC because the suckiness is actually a natural result of the RFC definitions of the protocol.

      If you use transport mode IPSEC to protect a suitable tunnel protocol like IP in IP you are OK. Unfortunately, this is not an IPSEC use which is common and well supported by most security vendors. Most have serious performance problems when running in this mode.

      As far as OpenVPN you are deeply mistaken. It has nothing to do with IPSEC. It uses TLS over TCP or TLS over UDP. The second case requires some sequencing. None of the packet formats has anything to do with the IPSEC RFCs, the OS level abstractions have nothing to do with the RFCs and the keying is not anywhere near the madness specified in the IKE RFC.

      --
      Baker's Law: Misery no longer loves company. Nowadays it insists on it
      http://www.sigsegv.cx/
    11. Re:Yes. by Christopher+Cashell · · Score: 1

      As far as OpenVPN you are deeply mistaken. It has nothing to do with IPSEC. It uses TLS over TCP or TLS over UDP. The second case requires some sequencing. None of the packet formats has anything to do with the IPSEC RFCs, the OS level abstractions have nothing to do with the RFCs and the keying is not anywhere near the madness specified in the IKE RFC.

      "OpenVPN uses an industrial-strength security model designed to protect against both passive and active attacks. OpenVPN's security model is based on using SSL/TLS for session authentication and the IPSec ESP protocol for secure tunnel transport over UDP." -- http://openvpn.net/

      IPSec's biggest problem is the complexity of the tunnel setup (IKE). The ESP protocol is pretty decent.

      --
      Topher
    12. Re:Yes. by Christopher+Cashell · · Score: 1

      Did you use the OpenVPN provided scripts for managing the keys?

      Because I managed to setup a new OpenVPN server from scratch, using certificates for authentication, in less than an hour this afternoon. Admittedly, I've used OpenVPN quite a bit in the past, but I did this setup from scratch, using the provided scripts, and it was *really* easy. Everything "just worked".

      Additionally, OpenVPN also supports making use of PAM for authentication, giving you lots of other options. You can even setup OpenVPN to authenticate via RADIUS to an RSA Authentication Manager Server, using RSA SecurID keyfobs. It's pretty slick. ;-)

      --
      Topher
    13. Re:Yes. by Christopher+Cashell · · Score: 1

      You don't understand OpenVPN. ;-)

      OpenVPN operates very much in a Client-Server style, similar to many commercial VPN Concentrators. The server has a fixed IP address, and the clients connect to the server. After authenticating and establishing a connection, the server gives the client a DHCP-style assigned VPN IP address. Any communication done through the VPN is done between that IP and a tunnel-specific IP on the OpenVPN Server.

      If you have fixed Peer-to-Peer tunnels, IPSec is the standard, and it works quite well. However, for ease of use, ease of deployment, ease of setup, and cases where you have dynamic clients accessing a single remote network, you really can't beat OpenVPN.

      --
      Topher
    14. Re:Yes. by thegrassyknowl · · Score: 1

      Another vote for OpenVPN. Its flaws aside, it is the most reliable VPN software to use through a NAT device. I tried PPTP and IPSEC and both needed extensive configuration to make them even useable. OpenVPN was a matter of forwarding a single UDP port into the VPN server and it just works (TM).

      --
      I drink to make other people interesting!
    15. Re:Yes. by TCM · · Score: 1

      OpenVPN to the rescue again. It has options to specify the peer by name instead of IP address. Together with options to periodically ping the peer and re-resolve its name upon timeout, you can even establish VPN connections between two peers with dynamic addresses, as long as they both have a fixed name, e.g. *.dyndns.org.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
    16. Re:Yes. by Christopher+Cashell · · Score: 1

      OpenVPN will copy from userland to kernel and back to perform its task. As a result it has a speed limit per client which cannot be worked around. It is a fundamental limitation and is around 5MBit per client (multiple clients bandwidth grows as a log of the number to a total of around 15-20MBit). For a distributed installation or road warriors this may prove to your advantage, because no single client can eat all the resources. There is always some resource to go around. If you want higher speeds on a single encrypted point to point link you are better off with IPSEC transport mode overlay of IP-in-IP or IPSEC overlay of PPTP.

      While you are correct that OpenVPN is a userland application, and doesn't run in kernel mode, and that can have performance implications, you are way off on your fundamental limitation.

      A co-worker and I have personally tested throughput over an OpenVPN connection on a Gigabit ethernet network and observed speeds over 40 MBit/sec. Yes, this was very beefy hardware, and across an otherwise unutilized network segment. . . but this is rather significantly greater than 5Mbit per client.

      Heck, what cipher you pick can have a much greater impact on throughput than whether you go with IPSec or OpenVPN. I guarantee that IPSec with 3DES is going to be slower than OpenVPN with blowfish.

      Also. . . 5Mbit per client. . . for a VPN. . . and this is supposed to be a major limitation? If someone has a need for greater traffic point-to-point than 5Mbit, they're probably going to end up with a leased line solution anyway. 5Mbit/sec is not chump bandwidth.

      --
      Topher
    17. Re:Yes. by arivanov · · Score: 1

      Nope. Whoever wrote it is a dolt (though it is on the OpenVPN pages).

      ESP per its RFC definition is a protocol in its own right. It is not over UDP.

      Granted, OpenVPN UDP frame format closely resembles the payload part of ESP in uncompressed mode (no point to reinvent the wheel). IIRC the source correctly, once you start using compression the format differs from for both compressed and uncompressed frames (lzo versus deflate compression). In addition to that keying and keepalive are inband on the same UDP connection. This completely kills any resemblance of ESP because every 30 seconds (or whatever you set your ping to) you have a frame which is not present in the ESP RFC definition.

      --
      Baker's Law: Misery no longer loves company. Nowadays it insists on it
      http://www.sigsegv.cx/
    18. Re:Yes. by arivanov · · Score: 1

      My fault. Numbers quoted are for TCP encaps tested over an uncongested 100MB link. UDP goes higher several times. Possibly in the 10s of MBit so 40Mbit you have seen is achievable. Hardware in my deployments has been P4 on one side and Via with hardware AES acceleration on the other. P4 on the other makes no difference. Dropping to Via on both sides also makes no difference.

      As far as the CPU it is not the limitation by any means. At least with TCP the client gets to its max throughput long before the CPU has choked on the cipher. I have tried throwing beafy hardware at it with minimal effect. It also very much depends on your kernel options. Turning preemption on, raising HZ, etc raises performance. Leaving at normal server settings drops it.

      Overall, it will always be lower than IPSEC which does all of the processing in kernel space and does not have to do two copies between userspace and kernel space for nothing. Its advantages are elsewhere. You can actually build infrastructure with it.

      --
      Baker's Law: Misery no longer loves company. Nowadays it insists on it
      http://www.sigsegv.cx/
    19. Re:Yes. by Christopher+Cashell · · Score: 1

      You are correct, ESP is a separate IP protocol (Protocol 50), and from that standpoint, has nothing to do with UDP. However, there is also RFC 3948, which specifies tunneling ESP over UDP.

      Now, I've been using OpenVPN for a long time, but I will readily grant that I've never dug into the nitty gritty details of it's protocol, so I don't know for sure if this is what OpenVPN is doing. When I saw the comment on the OpenVPN page, I assumed they were using ESP over UDP for the transport protocol, though.

      --
      Topher
    20. Re:Yes. by Jacco+de+Leeuw · · Score: 1

      Many vendors support L2TP/IPsec.

      (By the way, it's IPsec, not IPSEC).

      --
      -------
      Warning: Slashdot may contain traces of nuts.
  2. Debian... and PPTP by strredwolf · · Score: 1

    You may be stuck, unless you're willing to switch to Ubuntu. I've tried them all, and only PPTP on a Ubuntu server or a recompiled Debian kernel w/the MPPE patches (or the latest 2.6.15+ kernel) works very well. I'm not sure how Debian is reacting that 2.6.x is standard now, but it's slow to change away from 2.4. Ubuntu is better in that reguard (it's base is 2.6 with patches).

    --

    --
    # Canmephians for a better Linux Kernel
    $Stalag99{"URL"}="http://stalag99.net";
    1. Re:Debian... and PPTP by Rekolitus · · Score: 2, Informative

      Or you could install Debian with boot: linux26.

    2. Re:Debian... and PPTP by merreborn · · Score: 1

      Due to hardware issues, we're using the Testing branch (which is obviously less than ideal) which ships with 2.6.15.

    3. Re:Debian... and PPTP by nmos · · Score: 1

      I've got several Debian Sarge boxes running OpenVPN with 2.4 series kernels and it works fine. In fact some of these were Woody boxes until fairly recently.

  3. IPCOP Works Well by Anonymous Coward · · Score: 2, Informative

    In a similar fashion we provide support for an application base that we are growing. If they want "Premium" support then we provide an IPCOP firewall for the location and turn the VPN tunnels on only when we need to support them. IPCOP is free and very reliable and we then deploy it on a low profile microATX desktop case not much larger than a Cisco PIX. Works well.

    1. Re:IPCOP Works Well by Rob_Bryerton · · Score: 1

      I second the IPCop suggestion. We have deployed several, and setting up a net-to-net VPN is a snap.

      To the parent (or anyone else): any suggestions or links for suitable diskless/alternative hardware for IPCop other than a standard PC? I don't like the idea of a hard drive in the box running for years, being reset occasionally by people used to unplugging linksys 'routers' etc

    2. Re:IPCOP Works Well by Anonymous Coward · · Score: 0

      We are at the same point as you. We have identified 3 diskless "device" type solutions, but we are still about 1-2 months out till we are done with the evanuation.

    3. Re:IPCOP Works Well by oops.sgw · · Score: 1

      WRAPcop: A guy that calls himself xpapa provides images for the WRAP-platform from PCengines (already mentioned in this thread by the guy running m0n0wall on that hardware).

      IPCOP then runs from CF-cards (>=128 MB), the whole box pulls about 5 W max and is QUIET. I run a few of those for clients, and one for my own office.

      WRAP-hardware:
      www.pcengines.ch

      Xpapa's IPCOP-images:
      http://www.xpapa.de/modules.php?name=Downloads&d_o p=viewdownload&cid=1

    4. Re:IPCOP Works Well by oops.sgw · · Score: 1

      following up myself:

      IPCOP brings IPSEC-based VPN, but is also able to do OpenVPN (even in parallel with IPSEC-VPN) by using the Zerina-Addon.

    5. Re:IPCOP Works Well by nmos · · Score: 1

      I don't know how much space IPcop takes up but you can get cf -> ide adapters and cf cards pretty cheap these days. I just picked up a couple of extra 256MB CF cards from Newegg for $12 each and I think the CF -> IDE adapters were in the $20 range.

  4. Tinc by rdejean · · Score: 1

    Someone already mentioned OpenVPN, i would also look at tinc (http://www.tinc-vpn.org/). It supports full mesh routing between all your sites, which would be a pain with OpenVPN. Of course if everyone is connecting back to a hub, then not a big deal.

    Also for your NAT boxes, if you want to do it cost effectively, get some Linksys WRT54GL's and install OpenWRT. You can then run your VPN (openvpn or tinc) on those routers, which would make a much cleaner VPN network.

    1. Re:Tinc by TCM · · Score: 1

      DON'T use tinc, CIPE, vtun or PPTP!

      http://www.cs.auckland.ac.nz/~pgut001/pubs/linux_v pn.txt

      Really, OpenVPN must be the best thing since sliced bread. Runnable as non-user, chrootable, interfacing with standard tun/tap devices, certs. None of the complexity of IPsec. I love it.

      My 266MHz Geode WRAP can handle 6Mbps which is enough to connect a LAN wirelessly. Faster boxes should handle more than that, despite someone else saying 5Mbps would be a limit.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
    2. Re:Tinc by gsliepen · · Score: 1
      Disclaimer: I am currently the main author of tinc.

      Please read http://www.tinc-vpn.org/security. I agree that OpenVPN has better security, but it is focussed on a centralised client-server model, while tinc is focussed on a decentralised peer-to-peer model. So if the latter fits better, and you can live with a protocol that is not as secure as the current SSL protocol, then you should definitely give tinc a try. It is unfortunate that OpenVPN hasn't copied tinc's distinctive features (yet), and personally I haven't had the time to work a lot on a redesigned tinc with better security.

  5. Openswan by Anonymous Coward · · Score: 0

    I've deployed this in over 50 sites. Works really well.

    http://www.openswan.com/

  6. ssh could be good enough by georgewilliamherbert · · Score: 4, Informative

    If you know what the remote IP addresses are going to be (consumer grade but fixed IP addresses at remote ends) then ssh would be an adequate solution by itself, and a lot simpler than most of the alternatives. With its ability to forward ports and X windows displays, it can handle pretty much anything.

    If you need constant monitoring and interaction a real VPN may make more sense, but ... think carefully about how much complexity you add in the management layer here. Does that overall improve or degrade the total environment's reliability and managability?

    1. Re:ssh could be good enough by Homology · · Score: 1
      If you know what the remote IP addresses are going to be (consumer grade but fixed IP addresses at remote ends) then ssh would be an adequate solution by itself, and a lot simpler than most of the alternatives. With its ability to forward ports and X windows displays, it can handle pretty much anything.

      It's peculiar that this is the only post that recommends ssh for remote administration. It is very easy to setup and make work, in contrast to VPN in general.

    2. Re:ssh could be good enough by homer_ca · · Score: 1

      For connecting to single hosts like the co-located servers, you're better off with ssh. Use RSA authentication instead of passwords to be safe. A VPN is still useful for connecting a client to a network or a network to another network.

  7. Bad Ideas by Anonymous Coward · · Score: 0

    First, don't deploy Debian to a client if you aren't familiar with it. That's a Bad Idea. Use RHEL, or the equivalent from Novell, or use Windows or Solaris. With those you can get support, which you will need if you don't have the expertise yourself (and from your question it is pretty obvious you don't yet have the expertise yourself--get that expertise on your own time, not your client's).

    Secondly, why do you want a VPN? I could understand a VPN for your client's needs, for example to connect the all POS devices in all locations to a database for inventory control and accounting. But for maintenance there shouldn't be any need for a VPN. All you need is a ssh tunnel into one of the machines on each subnet.

    If you do need a VPN, I suggest PPTP. Google it, it's not hard to set up.

  8. one word... Hamachi by pagebt · · Score: 1

    http://www.hamachi.cc/ Hamachi is a very easy to use and extreemly hard to block VPN that looks to your system as if it was another network device. these days I leave my laptop at home and access all of my daily needed data + VNC as if it was sitting right next to me

    1. Re:one word... Hamachi by TCM · · Score: 1

      Right, isn't Hamachi using a central point which you don't control? I wouldn't want to send any data - let alone sensitive data - over such a "VPN".

      This might be adequate for gamers and equally "sophisticated" user groups. Using it for a company? Bad idea.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
    2. Re:one word... Hamachi by Anonymous Coward · · Score: 0

      the dependency on external service is certainly a liability. security-wise hamachi seems solid though. it surfaced on cryptography maillist and it had all signs of a professional design effort. most interestingly, no trust in a server is required to securily utilize the system. the server has few ways to exploit the trust if it is present, but it's easily detected and countered on the user side. very clever.

    3. Re:one word... Hamachi by tweek · · Score: 1

      As much as I think it's a bad idea, how is this any different from outsourcing your VPN solution to a third party such as Netifice or someone else?

      --
      "Fighting the underpants gnomes since 1998!" "Bruce Schneier knows the state of schroedinger's cat"
    4. Re:one word... Hamachi by TCM · · Score: 1

      I was wrong. Indeed, Hamachi only serves to bring peers together which then establish a connection among themselves. But how is this better than using OpenVPN with static hostnames? DynDNS should be common enough.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
  9. compartmentalize! by TheSHAD0W · · Score: 1

    I'd have to disrecommend running a VPN between these sites simply for your convenience; it would mean that a security failure at any point on the network could jeopardize all of the machines in the network. I recommend you stick with ssh/scp for access to those machines.

    1. Re:compartmentalize! by gregmac · · Score: 2, Insightful

      I'd have to disrecommend running a VPN between these sites simply for your convenience; it would mean that a security failure at any point on the network could jeopardize all of the machines in the network. I recommend you stick with ssh/scp for access to those machines.

      Actually the way the OpenVPN server is configured by default, each machine is put onto its own network basically (ie, you get a 10.8.0.9, with netmask 255.255.255.252), and the server will not route between clients. If you're running the VPN network in a different subnet from your regular network, you can tightly control the routing between the two. A security failure at one endpoint will only comprimise that endpoint and provide access to what it can normally access on the server - not the whole network. You still need to provide other protection on the client (eg, tripwire) to protect it seperately.

      Comprimising the server is still going to get you access to everything, and this is true with pretty much any setup.

      --
      Speak before you think
    2. Re:compartmentalize! by AmericanInKiev · · Score: 1

      I believe OpenVPN is written using OpenSSH - so cake and eat it too?

      AIK

    3. Re:compartmentalize! by Homology · · Score: 1
      I believe OpenVPN is written using OpenSSH

      You are wrong in that belief. OpenVPN uses OpenSSL.

    4. Re:compartmentalize! by TheSHAD0W · · Score: 1

      No matter what crypto method used, I was warning against leaving a network between a large number of distant computers open.

  10. Try SSH by dantal · · Score: 1

    I've has a very simmilar situation last year and we found that ssh was much easier to work with and any vpn solution. The only potenial issue is since you are using consumper grade DSL ip address may change. But that is very easy to get arround by having the remote systems cheching there ip address every so often and when is changes sending it to you either by email or posted to a web server.

    1. Re:Try SSH by walt-sjc · · Score: 1

      ... Or by using one of the many dyndns services, or even running your own dyndns service.

  11. "Some sort of NAT box" by Gothmolly · · Score: 2, Insightful

    Its called a commercial firewall. Its tempting to roll your own using a $45 Linksys and CIPE/OpenVPN/IPSEC/PPTP/Freeswan, but seriously, do you want to spend your time watching messages like "Processing a NONCE.." ?

    Buy some small, even older, used, Netscreen firewalls for a few hundred each. If you do the preshared keys trick, and put them in aggressive mode, they'll all connect back to the central hub firewall, a Netscreen 10, or whatever model replaced it.

    It just works, no dicking around with /etc/ubuntu/foo.key or chintzy NAT boxes that can't pass protocol 50, etc. etc.

    --
    I want to delete my account but Slashdot doesn't allow it.
    1. Re:"Some sort of NAT box" by walt-sjc · · Score: 1

      A linksys RV082 works quite well for VPN's like this, and are reasonably priced.

    2. Re:"Some sort of NAT box" by tweek · · Score: 1

      I second this. We do this for our retail locations. We have two ns-208 models running in Active/Passive mode and install either Netopia 3386 or Netscreen-5gt models in our stores.

      The total cost on the concentrator side was 30K but it's redundant and the cost of the remote routers are $250/$400 respectively.

      --
      "Fighting the underpants gnomes since 1998!" "Bruce Schneier knows the state of schroedinger's cat"
    3. Re:"Some sort of NAT box" by Jacco+de+Leeuw · · Score: 1

      Aggressive mode isn't very safe (read why).

      --
      -------
      Warning: Slashdot may contain traces of nuts.
  12. OpenVPN rocks for this by pavera · · Score: 4, Informative

    We currently use openvpn for a remote management service that my company offers have been using it for over a year now, more than 50 customers up, works from behind nat, with dynamic IPs, through all sorts of nasty things, and as long as the internet is up, the VPN is up and we have connectivity. Ive used alot of different VPNs (openswan, cisco, PPTP) nothing comes close to the stability of openvpn tunnels, especially when dealing with adverse network conditions (NAT of any sort, multiple NATs, poor link quality, etc) even if the internet link is pretty spotty, openvpn does a very good job of automatically renegotiating the tunnels as soon as it has connectivity.

  13. Quick breakdown of obvious options by Anonymous Coward · · Score: 1, Interesting

    Basically there are three groups of VPN "solutions" these days: IPSec, PPTP, and everything else.

    I use IPSec pretty extensively. If you're dealing with inter-Linux-server communications where each end has a static IP address, IPSec is hard to beat. It's simple and pretty easy.

    PPTP is mainly a Microsoft thing. Not applicable here obviously.

    "Everything else" breaks down into application-specific protocols for specific applications. This is what I would recommend. Go take a look at OpenVPN. When you don't know the remote IP address, it's a great way to go. You give it a static IP address (I use 10.2.0.0/16 for this) via OpenVPN, and you can log in quickly and easily. OpenVPN has a plethora of options which make it very useful for unknown remote networks. The most useful ones are its decent support for TCP/IP (so you set your colo'd server's OpenVPN to listen on TCP/IP port 80), and the ability to use arbitrary ports (TCP/IP isn't the best protocol for a VPN application; UDP is better - set it to port 53, and that'll get past most over-anal firewalls).

    Have fun

  14. ZyWalls by beavis88 · · Score: 1

    We're using ZyWall 2 boxes for NAT/routing/IPsec VPN. At ~US$200 each they are pretty economical, and very easy to setup via http config. Even has support for being a DynDNS client, which is just fantastic for DSL without static IP. You would need a beefier model as the concentrator, but they arent much more expensive - eg Zywall 35 supports 35 sessions @ around US$600. They also can be configured to play nice with just about any other hardware (Sonicwall, etc) with proper IPsec support.

  15. So even the "experts" don't know jack, eh? by Anonymous Coward · · Score: 0

    One method I have successfully used in the past is a reverse SSH connection. This is where the client initiates a SSH connection via whatever software interface they have (web or other local client software/GUI) to our server which is behind a NAT box but has a specific port that forwards to an internal server. This SSH connection opens a port on our server that connects back to their server via the normal SSH port forwarding.

    Then from inside our network we can connect to their server via SSH or any other port(s) we want to forward. All authentication is PKI so no user interaction is needed other than sometimes we use smartcards which require a PIN.

    I highly recommend that the client needs to initiate the connection just for security purposes. Although you could set up a persistant SSH connection from their machine to yours.

    This is tons easier than a VPN through two firewalls.

  16. Easier by ratboy666 · · Score: 2, Informative

    Create a web site that echoes back the requesters IP address. Put it on the "dark web" so it isn't spidered, and you don't get hit with traffic.

    On your client box, run a script that hits the web site (wget) and fetches the IP address. If that has changed, post the new IP address, and installation name.

    Now you have the clients and the assigned IP addresses. You can then use SSH to build whatever infrastructure you need to the client box, securely. No need to worry about the brand of router used, etc. About the only problem is if the client uses a dialup on demand connection. To accomodate this, the "poll for IP" can be modified to always submit information, and ask if the connection should be retained.

    If the connection should be retained, the remote operator can be notified.

    I used this approach to securely administer remote Linux machines over direct connection and dialup for years. Now I find none of my users use dialup anymore (finally).

    Ratboy

    --
    Just another "Cubible(sic) Joe" 2 17 3061
    1. Re:Easier by corbettw · · Score: 1

      Wouldn't it be easier to have this cron job?

      #!/bin/bash

      [[ ! -f /tmp/last_ip ]] && touch /tmp/last_ip
      ifconfig eth0|grep inet |awk -F: '{print $2}'|awk '{print $1}' > /tmp/curr_ip
      diff /tmp/curr_ip /tmp/last_ip 2>&1 > /dev/null
      [[ $? -eq "1" ]] &&
          cat /tmp/curr_ip | mailx -s "$HOSTNAME current IP" reports@yourcompany.com
      mv /tmp/curr_ip /tmp/last_ip

      Set it to run every minute, and you'll always know what the IP address of your remote site is. On the receiving end, you could use procmail and/or a perl script to enter the IP address in a db.

      It's the simplest solutions that work best, I think.

      --
      God invented whiskey so the Irish would not rule the world.
    2. Re:Easier by TCM · · Score: 2, Insightful

      I disagree, it's quite a hack. Personally, I use a script that gets invoked whenever a new PPPoE connection is established. From there, I do an update to a DNS server.

      Voila, DNS is my "db", I don't run a script every minute and still get better time granularity, because the update is only done when a state change on the interface occurs.

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
    3. Re:Easier by corbettw · · Score: 1

      Personally, I use a script that gets invoked whenever a new PPPoE connection is established.

      That is cleverer, I'll have to go that route next time something like this comes up.

      --
      God invented whiskey so the Irish would not rule the world.
    4. Re:Easier by ratboy666 · · Score: 1

      This won't work. Behind a NAT router, the local ip address will be (say) 192.168.1.120. Not routeable. Giving this IP to the remote site is useless.

      What you want is the IP address assigned to the router. To get that: use SNMP to the router. Yes, but SMC Barricades (and others) don't do SNMP. Hit the configuration web page for the router, and figure out how to get its status. Different for every NAT router. Hit an external computer: easy!

      The reason to make it a web page: ease of local debugging.

      Once the IP address is determined, email it, sure, or whatever.

      Ratboy

      --
      Just another "Cubible(sic) Joe" 2 17 3061
  17. Hamachi by Anonymous Coward · · Score: 0

    We're in the same situation. We use Hamachi from www.hamachi.cc

  18. Groove by CrosbieFitch · · Score: 1

    http://www.groove.net/ is what you need. Supported by Microsoft too.

  19. OpenVPN by dimss · · Score: 2, Interesting

    I would recommend OpenVPN because I have some experience with it. OpenVPN is very reliable solution when you have to connect several remote sites to single L2 (ethernet) segment.

    We use Intel-based Linux server at our datacenter as VPN server. It runs several instances of OpenVPN on different UDP ports (OpenVPN can use TCP as well) for different customers. Endpoints are Asus WL-500g Deluxe routers with OpenWRT Linux and OpenVPN installed. Maximum throughput is 3Mbps with blowfish encryption and authentication (limited by 200 MHz CPU). These devices are small, silent, inexpensive and reliable enough. Endpoints are connected using various types of Internet access -- DSL, Cable, LAN, WiFi etc. Some customers have ~70 endpoints without problems.

    If you insist on using Debian computers as VPN endpoints, do not use harddisks!!! They will die. Use IDE flash, for example. Use fanless CPU and PSU if possible.

    1. Re:OpenVPN by Rekolitus · · Score: 1
      If you insist on using Debian computers as VPN endpoints, do not use harddisks!!! They will die.

      Wait, what? Why?

      (I always thought those "don't blame us if it blows up your computer" disclaimers were exaggerating!)

  20. Made in Japan - The Teriyaki Experience by viewtouch · · Score: 3, Interesting

    This Canadian customer of ours has about 80 restaurants and has fully deployed our Linux & X Window System POS solution in all of its restaurants all across Canada. HQ enjoys an open VPN link with each of them and all data from the restaurants, including credit/debit cards is remotely synchronized with the storage system at their Toronto HQ. The company's IT staff is actually just one person, Doug deLeeuw. The company is increasing its units by about 25% this year. When you have the kind of control that this company has you find something like that much easier to undertake and you're much more likely to succeed. I doubt that there's another restaurant organization in the world with this kind of advanced POS deployment, not to mention that one person did it all by himself. Perhaps in another five to ten years you'll be able to read about it in a book.

    1. Re:Made in Japan - The Teriyaki Experience by janic · · Score: 1

      Okay, what do they use for the VPN link?

      For that matter, which company do you work for? I am terribly curious.

      Very tasty food, BTW.

      Thanks.
      John

    2. Re:Made in Japan - The Teriyaki Experience by nmos · · Score: 1

      Do you have a link to more info on your POS solutions? Also, do you have solutions for other markets or just restaurants?

      Feel free to email me if you prefer. ray AT sonictech DOT net

    3. Re:Made in Japan - The Teriyaki Experience by viewtouch · · Score: 1

      Their using openVPN. When Doug first set openVPN up there was something not quite right with it so he brought the problem to the attention of the person behind openVPN and paid him for several hours of work to address the issue and make it all work just fine. He also makes use of rsync and dynamic DNS. The neat thing, in my opinion, is that none of these components have to either be aware of the POS app and the POS app doesn't have to be aware of them, yet, from the user viewpoint the overall effect of all these systems running together is that they are a monolithic, smooth-running system, even when it's anything but monolithic.

      My company is ViewTouch.

    4. Re:Made in Japan - The Teriyaki Experience by viewtouch · · Score: 1

      Our web site is viewtouch.

    5. Re:Made in Japan - The Teriyaki Experience by Anonymous Coward · · Score: 0
      I doubt that there's another restaurant organization in the world with this kind of advanced POS deployment, not to mention that one person did it all by himself.
      Umm.... no. Lot's of restaurant organizations have this.

      I have to deal with DOS/Windows-based POS software. I use linux boxes at all locations that either act as the fileserver or that can mount the filserver. I have corporate HQ synced up with all the stores using SCP and Rsync over SSH. I also use dyndns.org to deal with all stores b/c backup dial-up internet IP addresses are different than static ones assigned by DSL or cable modems.

      The coolest thing I have got going is using apache and PHP to make a website that shows real time and historic sales data from multiple restaurant locations. The sales data is exported from the POS as a text file, sent to HQ over SSH, read and processed by PHP/Apache, displayed in HTML over SSL in the end user's web browser.

      I have considered a VPN solution, but there are too many risks involved with that. The requisite knowledge/skill required to use SSH prevents any ordinary computer user from doing anything disasterous.
    6. Re:Made in Japan - The Teriyaki Experience by Anonymous Coward · · Score: 0

      It's only in your imagination that you have something similar to this. If you were to see the Made in Japan - The Teriyaki Experience deployment close up you'd find no need for the DOS-Windows POS equipment and software that you say you use. And there's no extra Linux box that is needed to act as a fileserver. The solution is actually available for sale - anybody can buy it, unlike the system that you set up where you work, which isn't available on the market. The differences between this system that is available in the market and doesn't need a system administrator like you and the system that you put together that requires you, are many, not the least of which is that you are not needed in the POS solution that is available in the market.

  21. Oh, and... by beavis88 · · Score: 1

    I hate replying to myself, but FWIW, the ZyWall 2s I have also support a serial modem connection that will auto-dialup if the broadband fails. Pretty slick, especially for something like a retail environment.

  22. Hardware by bomonguny · · Score: 1
    If you really want a trouble free setup, I recommend using some sort of hardware VPN. Firewall/VPN boxes can be purchased for less than $400 and are great (Juniper Netscreens, Sonicwall, Watchgaurd). If setup correctly, the boxes will almost never fail. You can also use the firewalls/vpns in a situation where the client networks have dynamic routable IP's. This assumes that your office has a static.

    This approch can even be taken to the open source "fanboys" Just download a firewall distro like smoothwall. Install on cheap whitebox.

    Hardware is so much easier to maintain then maintaining each client and dealing with "some sort of NAT box"

    --
    and to you, I say,.. good day
  23. m0n0 baby!!! by jcims · · Score: 1

    We use m0n0wall (http://www.m0n0.ch/wall) for this exact thing...it supports a number of different hardware platforms, including PC, but my favorite is the pcengines WRAP boards (pictured in silver with antennas here)

    http://img.m0n0.ch/gallery/brandon_kahler/01_19_06 _WRAP_Wireless_DSL_Large_Text.jpg

    They run off of compact flash and the WRAP boards + case are ~$200. They will act as your NAT firewall behind the commodity broadband interface (dsl/cable) and have a great number of features, including a captive portal if you want to allow customers to use the wireless network.

    pfsense is based on m0n0, but not meant for the embedded platforms

  24. OpenVPN all the way! by forsetti · · Score: 1

    OpenVPN all the way! My server and client config files are each < 10 lines long. I manage my certificates with TinyCA. I think all of this is readily available via apt. Also has Windows and OSX clients.

    --
    10b||~10b -- aah, what a question!
  25. There is an OpenVPN alternative by Anonymous Coward · · Score: 0

    Everyone speaks about OpenVPN, which is a good piece of software, but software diverisity is desirable, especially in the field of security. It's better if all the Internet is not hacked through a single buffer overflow. IPsec-tools is an alternative to OpenVPN: different implementation, different protocol. A bunch of IPsec extensions have recently been added to cope with NAT, automatic configuration, and user authentication, so it is now really usable for remote user access, which was not the case in the past.

    Check Emmanuel Dreyfus' paper on Remote user acces VPN with IPsec presented at EuroBSDCon 2005 for the background about it. There is also a how-to configure it for NetBSD (most of the document apply to Linux).

    And you can also check IPsec-tools home page

  26. Router-based (Cisco 800) by dago · · Score: 3, Informative

    I guess that if you're asking this question, you don't have any experience with linux-based VPN. I also think that if you are have to do troubleshooting, the last thing you want to debug is your VPN.

    For my part, I also started with linux-based VPN (openvpn, ipsec) for private use (3 sites), but then, I come to the conclusion it wasn't worth the effort & time spent. I switched to the Cisco SoHo routers (the 800 series) who are just working. I have automatic tunnels between all sites, and can to VPN connection directly to any of the sites, plus many other funny things (IPv6). All this with just simple configurations, mostly through the wizard (SDM) or by copy, adaptation & paste of sample configs.

    Of course, these routers may be a little bit too much (of configuration or price) for you, so you may also want to try consumer-grade solutions (e.g. Linksys BEFSX41, Netgear FR114P, ...).

    Disclaimer : I wish I could get a percentage of Cisco sales ;)

    PS : oh, and port tunneling with SSH is, from my experience, an awful solution for VPN.

    --
    #include "coucou.h"
  27. Openvpn & hardware solution by Abstract · · Score: 1

    hi, everone already has given their opinion about openvpn. so here's mine:

    i've run an openvpn solution between corporate LAN and datacenter, and it worked okay but i'll take a look at some dedicated hardware box for the next implementation. maybe netscreen or so.

    why?

    Well first off, when one doesnt yet have a linux router/fw available one has to buy that. this'll probably cost as much as a cheap netscreen box.

    second, when running openvpn on a nondedicated box openvpn has to fight over resources with other services on that box. with a netscreen box this is not a problem.

  28. seconded by Anonymous Coward · · Score: 0

    I second the nomination of OpenVPN. I have one machine in a rack as my OpenVPN hub. All of my travelling laptops are configured with tunnels to it. My house's WRT54GS running OpenWRT has a routed tunnel to it (meaning my laptops can access any home machine from whereever they are). I even have a box at my parents house for off-site backups.

    You can do all sorts of crimes with the "up" script in the openvpn config. Nowadays I think true nerds will want the WRT54GL; According to openwrt.org's FAQ, the v5.0 hardware of the WRT54G no longer runs linux, and openwrt never plans to support it.

  29. vtun devices by RobiOne · · Score: 1

    Check out http://vtun.sourceforge.net/. I know of at least one VoIP appliance company that uses vtun links to their home base for updates and managment.

    --
    -- Robi
  30. FreeSwan by camrocks · · Score: 1

    Having used FreeSwan on a few linux clarkconnect systems, I have found it to be a most reliable package when installed under debian, however, if you are a newb, and are feeling a bit out of your depth here, clarkconnect can offer a really cheap easy to set up solution that is well maintained software wise.