In article < .com>,
<> wrote:
:Eventually I would like to allow vpn access for outbased employees. I
:do not have experience implementing VPNs.
:I think I'm still a little confused as to how VPNs interact with the
:network, and how access is granted.
There's more than one way to impliment VPNs ("Virtual Private Network"
is the generic concept and there are several different ways to
achieve it.)
Some of the implimentations require special setup or equipment
from the service provider between the endpoints (remote users, remote
offices, home offices, whatever) and the central location. Such
setups tend to be more secure but more expensive, and they can be
impractical if the remote locations move (e.g., salesman traveling
around and needing to access the order database.)
The common methods that do not require special intervention by the
ISPs, is to use any one of several security protocols that involve
using software or hardware that takes a plain original packet,
encrypting it, wrapping a new packet around the encrypted data
("encapsulating" the packet), and addressing the encapsulated packet to
the security gateway device at the main office (e.g., router with
firewall feature set, VPN Concentrator, PIX firewall, or similar). The
encapsulating packet travels over the insecure Internet, but all the
interesting information in the packet is encrypted, making it difficult
for any intruder to gleen anything useful out of it. When the
encapsulating packet reaches the security gateway, the security gateway
removes the wrapping packet and decrypts the packet that was enclosed.
It then takes the packet that was enclosed and puts it onto the LAN --
usually with the IP source and IP destination that was originally
written into the packet.
What the destination sees is a plain packet, just as if the two
networks were directly connected. The destination device (e.g., server)
often does not need any special setup at all: as far as it is
concerned, it is just talking to yet another device on the LAN.
Sometimes, though, it is desireable for the destination to
react differently to local requests than to remote requests; those
cases can be handled by looking at the source IP address and
by knowing what source IP address ranges need to be handled in which
way. On the other hand, if one has configured a web server to
do IP based authentication, then it may be necessary to add the
potential remote address ranges to the list of authorized addresses.
This would be most common on a web server that is set up to be
both an Internet server (content to the public) and an Intranet
server (content only visible to the organization.)
When the LAN device (e.g., application server) replies, the
IP addresses get flipped around as per usual, and normal
routing rules apply. Those routing rules must be set up to direct
the outgoing reply packets back to the security gateway -- that
happens automatically if your security gateway is your WAN router or is
a firewall that is interposed between the WAN and your LAN, and
extra internal routing configuration is mostly an issue when you
are using a VPN concentrator. When the outgoing reply packet
makes it to the security gateway, the security gateway will notice
that there is a VPN tunnel between that particular source and
destination, and instead of sending the packet out raw to the
network, it will encrypt the packet, encapsulate it, and send the
encapsulating packet back to the public IP of the original device
[which it has kept track of.] When it gets to the other end,
the remote software or hardware will strip off the encapsulating
packet, decrypt, and inject the packet into the remote LAN as if
it had always been local to there.
This description of the general workings of VPN tunnels applies
to at least four of the most common tunneling protocols:
IPSec, PPTP, L2TP, and GRE. These protocols differ in the variety
of encryptions offered; in the ability to detect attempted misuse
of the tunnel (e.g., by recording encrypted packets and "playing them
back"); in the level of assurance that the packet really came from
where it says it did; and in the methods used to authenticate
a remote site or user when the remote site connects to the
security gateway and asks to be trusted. GRE tends to use a fixed
"shared secret". IPSec can use fixed shared secrets for Lan-to-Lan
connections. PPTP and L2TP tend to use username and password
combinations; those usernames and passwords might be registered
with the security gateway itself, or might be registered with
a database (a RADIUS or TACACS+ server.) IPSec can also use
public key encryption authentication methods; PKE is usually
too much of a nuisance to bother with if you only have a small number
of offices, but it is the only practical way to go if you have
a large number of offices that might need to talk directly to
each other without going through a central security server.
A further note about authentication and special configuration for
remote access:
In some situations (particularily in larger organizations), it is
important to be quite restrictive about who can access what, and about
what access methods they can use, and about when they can undertake
that access. For example, it may be prudent that the master override
system for a bank only be useable by a small number of people during
regular office hours and only from one or two designated systems. Or
secret military information should only be accessible by those who can
"prove" they have the right of access. In cases like these, it isn't
good enough for a security gateway to just pop decapsulated packets
onto the network: someone else (e.g., "an inside job") could get onto
the same network and push those packets on instead, and intercept the
replies before the replies went out.
If your security requirements are such that relying on IP address
is not good enough, and HTTPS or SSL or ssh do not provide fine-
enough grained controls, then you may need to get into
comprehensive security layers that go far beyond the facilities
provided by IPSec and similar protocols. One particular security
framework that gets used for those more demanding purposes is 'DCE'.
DCE is big and complex, and requires that the applications themselves
be written to be DCE aware.
You don't want to impliment DCE if simpler methods are "good enough":
you don't even really want to read more than a brief overview of it
unless you have strict security procedures that you must follow. If you
need DCE, then you need DCE; and if you don't, then, in the immortal
words of Monty Python, "Run away! Run away!!"
--
'ignorandus (Latin): "deserving not to be known"'
-- Journal of Self-Referentialism