Sunday, June 28, 2009

IPsec On slackware

Chapter 23. IPsec

Table of Contents
23.1. Theory
23.2. Linux configuration
23.3. Installing IPsec-Tools
23.4. Setting up IPsec with manual keying
23.5. Setting up IPsec with automatic key exchanging
23.1. Theory

IPsec is a standard for securing IP communication through authentication, and encryption. Besides that it can compress packets, reducing traffic. The following protocols are part of the IPsec standard:

AH (Authentication Header) provides authenticity guarantee for transported packets. This is done by checksumming the packages using a cryptographic algorithm. If the checksum is found to be correct by the receiver, the receiver can be assured that the packet is not modified, and that the packet really originated from the reported sender (provided that the keys are only known by the sender and receiver).

ESP (Encapsulating Security Payload) is used to encrypt packets. This makes the data of the packet confident, and only readable by the host with the right decryption key.

IPcomp (IP payload compression) provides compression before a packet is encrypted. This is useful, because encrypted data generally compresses worse than unencrypted data.

IKE (Internet Key Exchange) provides the means to negotiate keys in secrecy. Please note that IKE is optional, keys can be configured manually.

There are actually two modes of operation: transport mode is used to encrypt normal connections between two hosts, tunnel mode encapsulates the original package in a new header. In this chapter we are going to look at the transport mode, because the primary goal of this chapter is to show how to set up a secure connection between two hosts.

There are also two major methods of authentication. You can use manual keys, or an Internet Key Exchange (IKE) daemon, like racoon, that automatically exchanges keys securely betwoon two hosts. In both cases you need to set up a policy in the Security Policy Database (SPD). This database is used by the kernel to decide what kind of security policy is needed to communicate with another host. If you use manual keying you also have to set up Security Association Database (SAD) entries, which specifies what encryption algorithmn and key should be used for secure communication with another host. If you use an IKE daemon the security associations are automatically established.
23.2. Linux configuration

Native IPsec support is only available in Linux 2.6.x kernels. Earlier kernels have no native IPsec support. So, make sure that you have a 2.6.x kernel. The 2.6 kernel is available in Slackware Linux 10.0, 10.1, and 10.2 from the testing directory on CD2 of the Slackware Linux CD sets, or any of the official Slackware Linux mirrors. The 2.6 kernel is the default kernel since Slackware Linux 12.0. The default Slackware Linux 2.6 kernel has support for AH, ESP and IPcomp in for both IPv4 and IPv6. If you are compiling a custom kernel enable use at least the following options in your kernel configuration:
CONFIG_INET_AH=y
CONFIG_INET_ESP=y
CONFIG_INET_IPCOMP=y


Or you can compile support for IPsec protocols as a module:
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m


In this chapter we are only going to use AH and ESP transformations, but it is not a bad idea to enable IPComp transformation for further configuration of IPsec. Besides support for the IPsec protocols, you have to compile kernel support for the encryption and hashing algorithms that will be used by AH or ESP. Linux or module support for these algorithms can be enabled by twiddling the various CONFIG_CRYPTO options. It does not hurt to compile all ciphers and hash algorithms as a module.

When you choose to compile IPsec support as a module, make sure that the required modules are loaded. For example, if you are going to use ESP for IPv4 connections, load the esp4 module.

Compile the kernel as usual and boot it.
23.3. Installing IPsec-Tools

The next step is to install the IPsec-Tools. These tools are ports of the KAME IPsec utilities. Download the latest sources and unpack, configure and install them:
# tar jxf ipsec-tools-x.y.z.tar.bz2
# cd ipsec-tools-x.y.z
# CFLAGS="-O2 -march=i486 -mcpu=i686" \
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-hybrid \
--enable-natt \
--enable-dpd \
--enable-frag \
i486-slackware-linux
# make
# make install


Replace x.y.z with the version of the downloaded sources. The most notable flags that we specify during the configuration of the sources are:

--enable-dpd: enables dead peer detection (DPD). DPD is a method for detecting wether any of the hosts for which security associations are set up is unreachable. When this is the case the security associations to that host can be removed.

--enable-natt: enables NAT traversal (NAT-T). Since NAT alters the IP headers, this causes problems for guaranteeing authenticity of a packet. NAT-T is a method that helps overcoming this problem. Configuring NAT-T is beyond the scope of this article.
23.4. Setting up IPsec with manual keying
23.4.1. Introduction

We will use an example as the guideline for setting up an encrypted connection between to hosts. The hosts have the IP addresses 192.168.1.1 and 192.168.1.169. The “transport mode” of operation will be used with AH and ESP transformations and manual keys.
23.4.2. Writing the configuration file

The first step is to write a configuration file we will name /etc/setkey.conf. On the first host (192.168.1.1) the following /etc/setkey.conf configuration will be used:
#!/usr/sbin/setkey -f

# Flush the SAD and SPD
flush;
spdflush;

add 192.168.1.1 192.168.1.169 ah 0x200 -A hmac-md5
0xa731649644c5dee92cbd9c2e7e188ee6;
add 192.168.1.169 192.168.1.1 ah 0x300 -A hmac-md5
0x27f6d123d7077b361662fc6e451f65d8;

add 192.168.1.1 192.168.1.169 esp 0x201 -E 3des-cbc
0x656c8523255ccc23a66c1917aa0cf30991fce83532a4b224;
add 192.168.1.169 192.168.1.1 esp 0x301 -E 3des-cbc
0xc966199f24d095f3990a320d749056401e82b26570320292

spdadd 192.168.1.1 192.168.1.169 any -P out ipsec
esp/transport//require
ah/transport//require;

spdadd 192.168.1.169 192.168.1.1 any -P in ipsec
esp/transport//require
ah/transport//require;


The first line (a line ends with a “;”) adds a key for the header checksumming for packets coming from 192.168.1.1 going to 192.168.1.169. The second line does the same for packets coming from 192.168.1.169 to 192.168.1.1. The third and the fourth line define the keys for the data encryption the same way as the first two lines. Finally the “spadd” lines define two policies, namely packets going out from 192.168.1.1 to 192.168.1.169 should be (require) encoded (esp) and “signed” with the authorization header. The second policy is for incoming packets and it is the same as outgoing packages.

Please be aware that you should not use these keys, but your own secretly kept unique keys. You can generate keys using the /dev/random device:
# dd if=/dev/random count=16 bs=1 | xxd -ps


This command uses dd to output 16 bytes from /dev/random. Don't forget to add “0x” at the beginning of the line in the configuration files. You can use the 16 byte (128 bits) for the hmac-md5 algorithm that is used for AH. The 3des-cbc algorithm that is used for ESP in the example should be fed with a 24 byte (192 bits) key. These keys can be generated with:
# dd if=/dev/random count=24 bs=1 | xxd -ps


Make sure that the /etc/setkey.conf file can only be read by the root user. If normal users can read the keys IPsec provides no security at all. You can do this with:
# chmod 600 /etc/setkey.conf


The same /etc/setkey.conf can be created on the 192.168.1.169 host, with inverted -P in and -P out options. So, the /etc/setkey.conf will look like this:
#!/usr/sbin/setkey -f

# Flush the SAD and SPD
flush;
spdflush;

add 192.168.1.1 192.168.1.169 ah 0x200 -A hmac-md5
0xa731649644c5dee92cbd9c2e7e188ee6;
add 192.168.1.169 192.168.1.1 ah 0x300 -A hmac-md5
0x27f6d123d7077b361662fc6e451f65d8;

add 192.168.1.1 192.168.1.169 esp 0x201 -E 3des-cbc
0x656c8523255ccc23a66c1917aa0cf30991fce83532a4b224;
add 192.168.1.169 192.168.1.1 esp 0x301 -E 3des-cbc
0xc966199f24d095f3990a320d749056401e82b26570320292

spdadd 192.168.1.1 192.168.1.169 any -P in ipsec
esp/transport//require
ah/transport//require;

spdadd 192.168.1.169 192.168.1.1 any -P out ipsec
esp/transport//require
ah/transport//require;

23.4.3. Activating the IPsec configuration

The IPsec configuration can be activated with the setkey command:
# setkey -f /etc/setkey.conf


If you want to enable IPsec permanently you can add the following line to /etc/rc.d/rc.local on both hosts:
/usr/sbin/setkey -f /etc/setkey.conf


After configuring IPsec you can test the connection by running tcpdump and simultaneously pinging the other host. You can see if AH and ESP are actually used in the tcpdump output:
# tcpdump -i eth0
tcpdump: listening on eth0
11:29:58.869988 terrapin.taickim.net > 192.168.1.169: AH(spi=0x00000200,seq=0x40f): ESP(spi=0x00000201,seq=0x40f) (DF)
11:29:58.870786 192.168.1.169 > terrapin.taickim.net: AH(spi=0x00000300,seq=0x33d7): ESP(spi=0x00000301,seq=0x33d7)

23.5. Setting up IPsec with automatic key exchanging
23.5.1. Introduction

The subject of automatical key exchange is already touched shortly in the introduction of this chapter. Put simply, IPsec with IKE works in the following steps.

Some process on the host wants to connect to another host. The kernel checks whether there is a security policy set up for the other host. If there already is a security association corresponding with the policy the connection can be made, and will be authenticated, encrypted and/or compressed as defined in the security association. If there is no security association, the kernel will request a user-land IKE daemon to set up the necessary security association(s).

During the first phase of the key exchange the IKE daemon will try to verify the authenticity of the other host. This is usually done with a preshared key or certificate. If the authentication is successful a secure channel is set up between the two hosts, usually called a IKE security association, to continue the key exchange.

During the second phase of the key exchange the security associations for communication with the other host are set up. This involves choosing the encryption algorithm to be used, and generating keys that are used for encryption of the communication.

At this point the first step is repeated again, but since there are now security associations the communication can proceed.

The racoon IKE daemon is included with the KAME IPsec tools, the sections that follow explain how to set up racoon.
23.5.2. Using racoon with a preshared key

As usual the first step to set up IPsec is to define security policies. In contrast to the manual keying example you should not set up security associations, because racoon will make them for you. We will use the same host IPs as in the example above. The security policy rules look like this:
#!/usr/sbin/setkey -f

# Flush the SAD and SPD
flush;
spdflush;

spdadd 192.168.1.1 192.168.1.169 any -P out ipsec
esp/transport//require;

spdadd 192.168.1.169 192.168.1.1 any -P in ipsec
esp/transport//require;


Cautious souls have probably noticed that AH policies are missing in this example. In most situations this is no problem, ESP can provide authentication. But you should be aware that the authentication is more narrow; it does not protect information outside the ESP headers. But it is more efficient than encapsulating ESP packets in AH.

With the security policies set up you can configure racoon. Since the connection-specific information, like the authentication method is specified in the phase one configuration. We can use a general phase two configuration. It is also possible to make specific phase two settings for certain hosts. But generally speaking a general configuration will often suffice in simple setups. We will also add paths for the preshared key file, and certification directory. This is an example of /etc/racoon.conf with the paths and a general phase two policy set up:
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

sainfo anonymous {
{
pfs_group 2;
lifetime time 1 hour;
encryption_algorithm 3des, blowfish 448, rijndael;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
}


The sainfo identifier is used to make a block that specifies the settings for security associations. Instead of setting this for a specific host, the anonymous parameter is used to specify that these settings should be used for all hosts that do not have a specific configuration. The pfs_group specifies which group of Diffie-Hellman exponentiations should be used. The different groups provide different lengths of base prime numbers that are used for the authentication process. Group 2 provides a 1024 bit length if you would like to use a greater length, for increased security, you can use another group (like 14 for a 2048 bit length). The encryption_algorithm specifies which encryption algorithms this host is willing to use for ESP encryption. The authentication_algorithm specifies the algorithm to be used for ESP Authentication or AH. Finally, the compression_algorithm is used to specify which compression algorithm should be used when IPcomp is specified in an association.

The next step is to add a phase one configuration for the key exchange with the other host to the racoon.conf configuration file. For example:
remote 192.168.1.169
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
}


The remote block specifies a phase one configuration. The exchange_mode is used to configure what exchange mode should be used for phase. You can specify more than one exchange mode, but the first method is used if this host is the initiator of the key exchange. The my_identifier option specifies what identifier should be sent to the remote host. If this option committed address is used, which sends the IP address as the identifier. The proposal block specifies parameter that will be proposed to the other host during phase one authentication. The encryption_algorithm, and dh_group are explained above. The hash_algorithm option is mandatory, and configures the hash algorithm that should be used. This can be md5, or sha1. The authentication_method is crucial for this configuration, as this parameter is used to specify that a preshared key should be used, with pre_shared_key.

With racoon set up there is one thing left to do, the preshared key has to be added to /etc/racoon/psk.txt. The syntax is very simple, each line contains a host IP address and a key. These parameters are separated with a tab. For example:
192.168.1.169 somekey

23.5.3. Activating the IPsec configuration

At this point the configuration of the security policies and racoon is complete, and you can start to test the configuration. It is a good idea to start racoon with the -F parameter. This will run racoon in the foreground, making it easier to catch error messages. To wrap it up:
# setkey -f /etc/setkey.conf
# racoon -F


Now that you have added the security policies to the security policy database, and started racoon, you can test your IPsec configuration. For instance, you could ping the other host to start with. The first time you ping the other host, this will fail:
$ ping 192.168.1.169
connect: Resource temporarily unavailable


The reason for this is that the security associations still have to be set up. But the ICMP packet will trigger the key exchange. ping will trigger the key exchange. You can see whether the exchange was succesful or not by looking at the racoon log messages in /var/log/messages, or the output on the terminal if you started racoon in the foreground. A succesful key exhange looks like this:
Apr 4 17:14:58 terrapin racoon: INFO: IPsec-SA request for 192.168.1.169 queued due to no phase1 found.
Apr 4 17:14:58 terrapin racoon: INFO: initiate new phase 1 negotiation: 192.168.1.1[500]<=>192.168.1.169[500]
Apr 4 17:14:58 terrapin racoon: INFO: begin Aggressive mode.
Apr 4 17:14:58 terrapin racoon: INFO: received Vendor ID: DPD
Apr 4 17:14:58 terrapin racoon: NOTIFY: couldn't find the proper pskey, try to get one by the peer's address.
Apr 4 17:14:58 terrapin racoon: INFO: ISAKMP-SA established 192.168.1.1[500]-192.168.1.169[500] spi:58c4669f762abf10:60593eb9e3dd7406
Apr 4 17:14:59 terrapin racoon: INFO: initiate new phase 2 negotiation: 192.168.1.1[0]<=>192.168.1.169[0]
Apr 4 17:14:59 terrapin racoon: INFO: IPsec-SA established: ESP/Transport 192.168.1.169->host1ip; spi=232781799(0xddff7e7)
Apr 4 17:14:59 terrapin racoon: INFO: IPsec-SA established: ESP/Transport 192.168.1.1->192.168.1.169 spi=93933800(0x59950e8)


After the key exchange, you can verify that IPsec is set up correctly by analyzing the packets that go in and out with tcpdump. tcpdump is available in the n diskset. Suppose that the outgoing connection to the other host goes through the eth0 interface, you can analyze the packats that go though the eth0 interface with tcpdump -i eth0. If the outgoing packets are encrypted with ESP, you can see this in the tcpdump output. For example:
# tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
17:27:50.241067 IP terrapin.taickim.net > 192.168.1.169: ESP(spi=0x059950e8,seq=0x9)
17:27:50.241221 IP 192.168.1.169 > terrapin.taickim.net: ESP(spi=0x0ddff7e7,seq=0x9)









VPN نظري و عملي











VPN
نظري و عملي



 



برقرار
كردن امنيت براي يك شبكه درون يك ساختمان كار ساده اي است . اما هنگامي كه بخواهيم
از نقاط دور رو ي داده هاي مشترك كار كنيم ايمني به مشكل بزرگي تبديل مي شود . در
اين بخش به اصول و ساختمان يك
VPN براي سرويس گيرنده هاي ويندوز و لينوكس مي پردازيم .



 



اصول VPN



فرستادن
حجم زيادي از داده از يك كامپيوتر به كامپيوتر ديگر مثلا” در به هنگام رساني بانك
اطلاعاتي يك مشكل شناخته شده و قديمي است . انجام اين كار از طريق
Email به دليل محدوديت
گنجايش سرويس دهنده
Mail
نشدني است .



استفاده
از
FTP هم به سرويس دهنده
مربوطه و همچنين ذخيره سازي موقت روي فضاي اينترنت نياز دارد كه اصلا” قابل
اطمينان نيست .



يكي از
راه حل هاي اتصال مستقيم به كامپيوتر مقصد به كمك مودم است كه در اينجا هم علاوه
بر مودم ، پيكر بندي كامپيوتر به عنوان سرويس دهنده
RAS لازم خواهد بود . از اين
گذشته ، هزينه ارتباط تلفني راه دور براي مودم هم قابل تامل است . اما اگر دو
كامپيوتر در دو جاي مختلف به اينترنت متصل باشند مي توان از طريق سرويس به اشتراك
گذاري فايل در ويندوز بسادگي فايل ها را رد و بدل كرد . در اين حالت ، كاربران مي
توانند به سخت ديسك كامپيوترهاي ديگر همچون سخت ديسك كامپيوتر خود دسترسي داشته
باشند . به اين ترتيب بسياري از راه هاي خرابكاري براي نفوذ كنندگان بسته مي شود .



شبكه هاي
شخصي مجاري يا
VPN ( Virtual
private Network
) ها اينگونه مشكلات را حل مي كند . VPN به كمك رمز گذاري روي
داده ها ، درون يك شبكه كوچك مي سازد و تنها كسي كه آدرس هاي لازم و رمز عبور را
در اختيار داشته باشد مي تواند به اين شبكه وارد شود .

مديران شبكه اي كه بيش از اندازه وسواس داشته و محتاط هستند مي توانند
VPN را حتي روي شبكه محلي
هم پياده كنند . اگر چه نفوذ كنندگان مي توانند به كمك برنامه هاي
Packet sniffer جريان داده ها را
دنبال كنند اما بدون داشتن كليد رمز نمي توانند آنها را بخوانند .



 



-4.1.1 VPN چيست ؟



VPN
دو كامپيوتر يا دو شبكه را به كمك يك شبكه ديگر كه به عنوان مسير انتقال به كار مي
گيرد به هم متصل مي كند . براي نمونه مي توان ب دو
كامپيوتر يكي در تهران و ديگري در مشهد كه در فضاي اينترنت به يك شبكه وصل شده اند
اشاره كرد .
VPN
از نگاه كاربر كاملا” مانند يك شبكه محلي به نظر مي رسد .
براي پياده سازي چنين چيزي ،
VPN
به هر كاربر يك ارتباط
IP

مجازي مي دهد .



داده هايي
كه روي اين ارتباط آمد و شد دارند را سرويس گيرنده نخست به رمز در آورده و در قالب
بسته ها بسته بندي كرده و به سوي سرويس دهنده
VPN مي فرستد . اگر بستر اين
انتقال اينترنت باشد بسته ها همان بسته هاي
IP خواهند بود .



سرويس
گيرنده
VPN
بسته ها را پس از دريافت رمز گشايي كرده و پردازش لازم را روي آن انجام مي دهد .
در آدرس
http://www.WOWN.COM\W-baeten\gifani\vpnani.gif

شكل بسيار جالبي وجود دارد كه چگونگي اين كار را نشان مي دهد . روشي كه شرح داده
شد را اغلب
Tunneling
يا تونل زني مي نامند چون داده ها براي رسيدن به كامپيوتر مقصد از چيزي مانند تونل
مي گذرند . براي پياده سازي
VPN
راه هاي گوناگوني وجود دارد كه پر كاربرد ترين آنها عبارتند از



Point to
point Tunneling protocol
يا PPTP كه براي انتقال NetBEUI روي يك شبكه بر پايه IP مناسب است .



Layer 2
Tunneling protocol
يا L2TP كه براي انتقال IP ، IPX
يا
NetBEUI
روي هر رسانه دلخواه كه توان انتقال
Datagram هاي نقطه به نقطه ( Point to point ) را داشته باشد مناسب است . براي نمونه مي توان به IP ، X.25 ، Frame Relay يا ATM اشاره كرد .



IP
Security protocol
يا Ipsec كه براي انتقال داده هاي IP روي يك شبكه بر پايه IP مناسب است .



 



-4.1.2
پروتكل هاي درون تونل



Tunneling
را مي توان روي دو لايه از لايه هاي
OSI پياده كرد . PPTP و L2TP از لايه 2 يعني پيوند داده
استفاده كرده و داده ها را در قالب
Frame هاي پروتكل نقطه به نقطه ( PPP

) بسته بندي مي كنند . در اين حالت مي توان از ويژگي هاي
PPP همچون تعيين اعتبار كاربر ،
تخصيص آدرس پويا ( مانند
DHCP
) ، فشرده سازي داده ها يا رمز گذاري داده ها بهره برد.



با توجه
به اهميت ايمني انتقال داده ها در
VPN ، دراين ميان تعيين اعتبار كاربر نقش بسيار مهمي دارد . براي اين
كار معمولا” از
CHAP
استفاده مي شود كه مشخصات كاربر را در اين حالت رمز گذاري شده جابه جا ميكند .
Call back هم دسترسي به سطح
بعدي ايمني را ممكن مي سازد . در اين روش پس از تعيين
اعتبار موفقيت آميز ، ارتباط قطع مي شود . سپس سرويس دهنده براي برقرار كردن
ارتباط جهت انتقال داده ها شماره گيري مي كند . هنگام انتقال داده ها ،
Packet هاي IP ، IP X يا NetBEUI در قالب Frame هاي PPP بسته بندي شده و
فرستاده مي شوند .
PPTP

هم
Frame هاي PPP را پيش از ارسال روي
شبكه بر پايه
IP
به سوي كامپيوتر مقصد ، در قالب
Packet هاي IP بسته بندي مي كند . اين پروتكل در سال
1996 از سوي شركت هايي چون مايكرو سافت ،
Ascend ، 3 com و Robotics US پايه گذاري شد .
محدوديت
PPTP

در كار تنها روي شبكه هاي
IP
باعث ظهور ايده اي در سال 1998 شد .
L2TP روي X.25 ،Frame
Relay
يا ATM
هم كار مي كند . برتري
L2TP

در برابر
PPTP
اين است كه به طور مستقيم روي رسانه هاي گوناگون
WAN قابل انتقال است .



 



4.1.3 - VPN-Ipsec فقط براي اينترنت



Ipsec
برخلاف
PPTP
و
L2TP روي لايه شبكه يعني
لايه سوم كار مي كند . اين پروتكل داده هايي كه بايد
فرستاده شود را همراه با همه اطلاعات جانبي مانند گيرنده و پيغام هاي وضعيت رمز
گذاري كرده و به آن يك
IP
Header
معمولي اضافه كرده و به آن سوي تونل مي فرستد .



كامپيوتري
كه در آن سو قرار دارد
IP
Header
را جدا كرده ، داده ها را رمز گشايي كرده و آن را به كامپيوتر
مقصد مي فرستد .
Ipsec
را مي توان با دو شيوه
Tunneling
پيكر بندي كرد . در اين شيوه انتخاب اختياري تونل ، سرويس گيرنده نخست يك ارتباط
معمولي با اينترنت برقرار مي كند و سپس از اين مسير براي ايجاد اتصال مجازي به
كامپيوتر مقصد استفاده مي كند . براي اين منظور ، بايد روي كامپيوتر سرويس گيرنده
پروتكل تونل نصب شده باشد . معمولا” كاربر اينترنت است كه به اينترنت وصل مي شود .
اما كامپيوترهاي درون
LAN
هم مي توانند يك ارتباط
VPN
برقرا كنند . از آنجا كه ارتباط
IP از پيش موجود است تنها برقرار كردن ارتباط VPN كافي است . در شيوه تونل
اجباري ، سرويس گيرنده نبايد تونل را ايجاد كند بلكه اين كار ار به عهده فراهم ساز
(
Service provider

) است . سرويس گيرنده تنها بايد به
ISP وصل شود . تونل به طور خودكار از فراهم ساز تا ايستگاه مقصد وجود
دارد . البته براي اين كار بايد همانگي هاي لازم با
ISP انجام بگيرد .ٍ



 



ويژگي هاي
امنيتي در
IPsec



Ipsec

از طريق
Authentication Header
( AH
) مطمئن مي شود كه Packet هاي دريافتي از سوي
فرستنده واقعي ( و نه از سوي يك نفوذ كننده كه قصد رخنه دارد ) رسيده و محتويات
شان تغيير نكرده .
AH
اطلاعات مربوط به تعيين اعتبار و يك شماره توالي (
Seguence Number ) در خود دارد تا از حملات Replay جلوگيري كند . اما AH رمز گذاري نمي شود .
رمز گذاري از طريق
Encapsulation
Security Header
يا ESH انجام مي گيرد . در اين شيوه داده هاي اصلي رمز گذاري شده و VPN اطلاعاتي را از طريق ESH ارسال مي كند .



ESH
همچنين كاركرد هايي براي تعيين اعتبار و خطايابي دارد .
به اين ترتيب ديگر به
AH
نيازي نيست . براي رمز گذاري و تعيين اعتبار روش مشخص و ثابتي وجود ندارد اما با
اين همه ،
IETF
براي حفظ سازگاري ميان محصولات مختلف ، الگوريتم هاي اجباري براي پياده سازي
Ipsec تدارك ديده . براي
نمونه مي توان به
MD5 ،

DES يا Secure Hash Algorithm اشاره كرد . مهمترين
استانداردها و روش هايي كه در
Ipsec به كار مي روند عبارتند از :



Diffie-Hellman براي مبادله كليد ها
ميان ايستگاه هاي دو سر ارتباط .



• رمز
گذاري
Public Key
براي ثبت و اطمينان از كليدهاي مبادله شده و همچنين اطمينان از هويت ايستگاه هاي
سهيم در ارتباط .




الگوريتم هاي رمز گذاري مانند
DES براي اطمينان از درستي داده هاي انتقالي .




الگوريتم هاي درهم ريزي (
Hash
) براي تعيين اعتبار تك تك
Packet

ها .



• امضاهاي
ديجيتال براي تعيين اعتبارهاي ديجيتالي .



 



4.1.5 - Ipsec بدون تونل



Ipsec
در مقايسه با ديگر روش ها يك برتري ديگر هم دارد و آن اينست كه مي تواند همچون يك
پروتكل انتقال معمولي به كار برود .



در اين
حالت برخلاف حالت
Tunneling
همه
IP packet
رمز گذاري و دوباره بسته بندي نمي شود . بجاي آن ، تنها داده هاي اصلي رمزگذاري مي
شوند و
Header
همراه با آدرس هاي فرستنده و گيرنده باقي مي ماند . اين باعث مي شود كه داده هاي
سرباز (
Overhead
) كمتري جابجا شوند و بخشي از پهناي باند آزاد شود . اما روشن است كه در اين وضعيت
، خرابكاران مي توانند به مبدا و مقصد داده ها پي ببرند . از آنجا كه در مدل
OSI داده ها از لايه 3 به
بالا رمز گذاري مي شوند خرابكاران متوجه نمي شوند كه اين داده ها به ارتباط با
سرويس دهنده
Mail

مربوط مي شود يا به چيز ديگر .



 



4.1.6 –
جريان يك ارتباط
Ipsec



بيش از آن
كه دو كامپيوتر بتوانند از طريق
Ipsec داده ها را ميان خود جابجا كنند بايد يكسري كارها انجام
شود .



• نخست
بايد ايمني برقرار شود . براي اين منظور ، كامپيوترها براي يكديگر مشخص مي كنند كه
آيا رمز گذاري ، تعيين اعتبار و تشخيص خطا يا هر سه آنها بايد انجام بگيرد يا نه .



• سپس
الگوريتم را مشخص مي كنند ، مثلا”
DEC براي رمزگذاري و MD5 براي خطايابي.



• در گام
بعدي ، كليدها را ميان خود مبادله مي كنند .



Ipsec
براي حفظ ايمني ارتباط از
Security
Association (SA )
استفاده مي كند . SA

چگونگي ارتباط ميان دو يا چند ايستگاه و سرويس هاي ايمني را مشخص مي كند .
SA
ها از سوي
SPI ( Security parameter Index ) شناسايي مي شوند . SPI از يك عدد تصادفي و
آدرس مقصد تشكيل مي شود . اين به آن معني است كه همواره
ميان دو كامپيوتر دو
SPI

وجود دارد :



يكي براي
ارتباط
A و B و يكي براي ارتباط B به A . اگر يكي از كامپيوترها
بخواهد در حالت محافظت شده داده ها را منتقل كند نخست شيوه رمز گذاري مورد توافق
با كامپيوتر ديگر را بررسي كرده و آن شيوه را روي داده ها اعمال مي كند . سپس
SPI را در Header نوشته و Packet را به سوي مقصد مي
فرستد .



 



4.1.7 -
مديريت كليدهاي رمز در
Ipsec



اگر چه Ipsec فرض را بر اين مي
گذارد كه توافقي براي ايمني داده ها وجود دارد اما خودش براي ايجاد اين توافق نمي
تواند كاري انجام بدهد .



Ipsec
در اين كار به
IKE ( Internet Key Exchange ) تكيه مي كند كه
كاركردي همچون
IKMP ( Key
Management Protocol
) دارد. براي ايجاد SA هر دو كامپيوتر بايد نخست
تعيين اعتبار شوند . در حال حاضر براي اين كار از راه هاي زير استفاده مي شود :



Pre shared keys : روي هر دو كامپيوتر
يك كليد نصب مي شود كه
IKE
از روي آن يك عدد
Hash
ساخته و آن را به سوي كامپيوتر مقصد مي فرستد . اگر هر دو كامپيوتر بتوانند اين
عدد را بسازند پس هر دو اين كليد دارند و به اين ترتيب تعيين هويت انجام مي گيرد .



• رمز
گذاري
Public Key
: هر كامپيوتر يك عدد تصادفي ساخته و پس از رمز گذاري آن با كليد عمومي كامپيوتر
مقابل ، آن را به كامپيوتر مقابل مي فرستد .اگر كامپيوتر مقابل بتواند با كليد
شخصي خود اين عدد را رمز گشايي كرده و باز پس بفرستد برا ي ارتباط مجاز است . در
حال حاضر تنها از روش
RSA

براي اين كار پيشنهاد مي شود .



• امضاء
ديجيتال : در اين شيوه ، هر كامپيوتر يك رشته داده را علامت گذاري ( امضاء ) كرده
و به كامپيوتر مقصد مي فرستد . در حال حاضر براي اين كار از روش هاي
RSA و DSS ( Digital Singature Standard
) استفاده مي شود . براي امنيت بخشيدن به تبادل داده ها بايد هر دو سر ارتبا طنخست
بر سر يك يك كليد به توافق مي رسند كه براي تبادل داده ها به كار مي رود . برا ي
اين منظور مي توان همان كليد به دست آمده از طريق
Diffie Hellman را به كاربرد كه سريع
تر است يا يك كليد ديگر ساخت كه مطمئن تر است .



 



4.1.8 –
خلاصه



تبادل
داده ها روي اينرنت چندان ايمن نيست . تقريبا” هر كسي كه در جاي مناسب قرار داشته
باشد مي تواند جريان داده ها را زير نظر گرفته و از آنها سوء استفاده كند . شبكه
هاي شخصي مجازي يا
VPN
ها كار نفوذ را برا ي خرابكاران خيلي سخت مي كند



VPN
با ويندوز



 



استفاده
از اينترنت به عنوان بستر انتقال داده ها هر روزگسترش بيشتري پيدا مي كند . باعث
مي شود تا مراجعه به سرويس دهندگان وب و سرويس هاي
Email هر روز بيشتر شود . با كمي
كار مي توان حتي دو كامپيوتر را كه در دو قاره مختلف قرار دارند به هم مرتبط كرد .
پس از برقراري اين ارتباط ،‌هر كامپيوتر،كامپيوتر ديگر را طوري مي بيند كه گويا در
شبكه محلي خودش قرار دارد. از اين رهگذر ديگر نيازي به ارسال داده ها از طريق
سرويس هايي مانند
Email

نخواهند بود. تنها اشكال اين كار اين است كه در صورت عدم استفاده از كاركردهاي
امنيتي مناسب،‌كامپيوترها كاملا در اختيار خرابكارن قرار مي گيرند.
VPN ها مجموعه اي از
سرويس هاي امنيتي ردر برابراين عمليات رافراهم مي كنند.
در بخش قبلي با چگونگي كار VPN ها آشنا شديد و در
اينجا به شما نشان مي دهيم كه چگونه مي توان در ويندوز يك
VPN شخصي راه انداخت. براي اين
كار به نرم افزار خاصي نياز نيست چون مايكروسافت همه چيزهاي لازم را در سيستم عامل
گنجانده يا در پايگاه اينترنتي خود به رايگان در اختيار همه گذاشته.



 



پيش
نيازها



براي
اينكه دو كامپيوتر بر پايه ويندوز بتواند از طريق
VPN به هم مرتبط شوند دست كم يكي
از آنها بايد به ويندوز
NT
يا 2000 كار كند تا نقش سرويس دهنده
VPN را به عهده بگيرد. ويندوز هاي 9x يا Me تنها مي توانند سرويس گيرنده VPN باشند. سرويس دهنده VPN بايد يك IP ثابت داشته باشد.
روشن است كه هر دو كامپيوتر بايد به اينترنت متصل باشند. فرقي نمي كند كه اين
اتصال از طريق خط تلفن و مودم باشد يا شبكه محلي.
IP در سرويس دهنده VPN بايد مجاز (Valid) باشد تا سرويس
گيرنده بتواند يك مستقيما آن را ببيند.
در شبكه هاي محلي كه اغلب از IP هاي شخصي (192.168.x.x) استفاده مي شود VPN را بايد روي شبكه
ايجاد كرد تا ايمني ارتباط بين ميان كامپيوترها تامين شود. اگر سرويس گيرنده
VPN با ويندوز 95 كار مي
كند نخست بايد
Dial up
Networking Upgrade 1.3
را از سايت مايكروسافت برداشت
كرده و نصب كنيد. اين مجموعه برنامه راه اندازهاي لازم براي
VPN را در خود دارد . البته
مايكروسافت پس از
Upgrade 1.3
Networking Dial up
نگارش هاي تازه تري نيز عرضه كرده كه بنا بر گفته خودش
ايمني و سرعت ارتباط
VPN

را بهبود بخشيده است .



 



نصب سرويس
دهنده
VPN



روي
كامپيوتر بر پايه ويندوز
NT
نخست بايد در بخش تنظيمات شبكه، راه انداز
Point to Point Tunneling را نصب كنيد. هنگام اين كار،
شمار ارتباط هاي همزمان
VPN

پرسيده مي شود. در سرويس دهنده هاي
NT اين عدد مي تواند حداكثر 256 باشد. در ايستگاه كاري NT،‌ اين عدد بايد 1
باشد چون اين سيستم عامل تنها اجازه يك ارتباط
RAS را مي دهد. از آنجا كه ارتباط
VPN در قالب Remote Access برقرار مي شود ويندوز
NT به طور خودكار پنجره
پيكر بندي
RAS

را باز مي كند. اگر
RAS
هنوز نصب نشده باشد ويندوز
NT
آن را نصب مي كند. هنگام پيكربندي بايد
VPN Adapter را به پورت هاي شماره گيري اضافه كنيد. اگر مي خواهيد
كه چند ارتباط
VPN
داشته باشيد بايد اين كار را براي هر يك از
VPN Adapter ها انجام دهيد .



 



پيكربندي
سرويس دهنده
RAS



اكنون
بايد
VPN Adapterرا به گونه اي پيكربندي كنيد كه ارتباطات به
سمت درون (
incoming)
اجازه بدهد. نخست بايد پروتكل هاي مجاز براي اين ارتباط را مشخص كنيد . همچنين
بايد شيوه رمز گذاري را تعيين كرده و بگوييد كه آياسرويس دهنده تنها اجازه دسترسي
به كامپيوترهاي موجود در شبكه كامپيوتر ويندوز
NT، در اين وضيعت، سرويس دهنده VPN مي تواند كار مسير
يابي را هم انجام دهد. براي بالاتر بردن ايمني ارتباط، مي توانيد
NetBEUI را فعال كرده و از
طريق آن به كامپيوترهاي دور اجازدسترسي به شبكه خود را بدهيد. سرويس گيرنده، شبكه
و سرويس هاي اينترنتي مربوط به سرويس دهنده
VPN را نمي بينيد . براي راه
انداختن
TCP/IP

همراه با
VPN
چند تنظيم ديگر لازم است. اگر سرويس دهنده
DHCP نداريد بايد به طور دستي يك فضاي آدرس(Adress Pool ) IP را مشخص كنيد. به
خاطر داشته باشيد كه تنها بايد از
IP هاي شخصي (Private)
استفاده كنيد.



اين فضاي
آدرس بايد دست كم 2 آدرس داشته باشد ،‌يكي براي سرويس دهنده
VPN و ديگري براي سرويس گيرنده VPN . هر كار بر بايد
براي دسترسي به سرويس دهنده از طريق
VPN مجوز داشته باشد. براي اين منظور بايد در User Manager در بخش Dialing اجازه دسترسي از دور
را بدهيد . به عنوان آخرين كار،
Remote Access Server را اجرا كنيد تا ارتباط VPN بتواند ايجاد شود.



سرويس
گيرنده
VPN
روي ويندوز
NT



نصب سرويس
گيرنده
VPN
روي ويندوز
NT
شبيه راه اندازي سرويس دهنده
VPN

است بنابراين نخست بايد 4 مرحله گفته شده براي راه اندازي سرويس دهنده
VPN را انجام بدهيد،‌
يعني:



. نصب PPTP



. تعيين
شمار ارتباط ها



. اضافه
كردن
VPN به عنوان دستگاه
شماره گيري



. پيكر
بندي
VPN Adapter
در
RAS، تنها تفاوت در پيكر
بندي
VPN Adapter
آن است كه بايد به جاي ارتباط هاي به سمت درون به ارتباط هاي به سمت بيرون (
out going) اجاز ه بدهيد .



. سپس
تنظيمات را ذخيره كرده و كامپيوتر را بوت كنيد. در گام بعدي، در بخش
Networking يك ارتباط(Connection) تلفني بسازيد . به
عنوان دستگاه شماره گير يا همان مودم بايد
VPN Adapter را انتخاب كرده و بجاي شماره تلفن تماس، IP مربوط به سرويس دهنده

VPN را وارد كنيد. در
اينجا پيكر بندي سرويس گيرنده
VPN روي ويندوز NT
به پايان مي رسد و شبكه هاي شخصي مجازي ساخته مي شود.



 



سرويس
گيرنده
VPN
روي ويندوز 2000



راه
اندازي سرويس گيرنده
VPN
ساده تر و كم زحمت تر از سرويس دهنده آن است. در ويندوز 2000 به بخش مربوط به
تنظيمات شبكه رفته يك
Connection
تازه بسازيد.



 



گام نخست
:
Assistant
در ويندوز 2000 پيكر بندي
VPN

را بسيار ساده كرده.



به طور
معمول بايد آدرس
IP
مربوط به سرويس دهنده
VPN
ر اداشته باشد. در اينجا بايد همان
IP معمولي را وارد كنيد و نه IP مربوط به شبكه VPNرا، با اين كار ، VPN پيكر بندي شده و
ارتباط بر قرار مي شود.



براي
تعيين صلاحيت، بايد نام كاربري و رمز عبور را وارد كنيد كه اجازه دسترسي از طريق
Remote Access را داشته باشيد.
ويندوز 2000 بي درنگ ارتباط برقرار كرده و شبكه مجازي كامل مي شود.



 



گام دوم:
كافي است آدرس
IP
مربوط به سرويس دهنده
VPN
را وارد كنيد.



 



گام سوم:
در پايان فقط كافي است خود را معرفي كنيد.



 



سرويس
گيرنده
VPN
روي ويندوز 9
x



نصب سرويس
گيرنده
VPN

روي ويندوز هاي 95، 98 و
SE 98
مانند هم است . نخست بايد پشتيباني از
VPN فعال شود. در اينجا بر خلاف ويندوز NT به جاي اضافه كردن پروتكل بايد
يك كارت شبكه نصب كنيد. ويندوز
x 9 همه عناصر لازم را نصب مي كند. به اين ترتيب كار نصب راه اندازاها
را هم كامل مي گردد. در قدم بعدي بايد
Dialup adapter يك Connection بسازيد. به عنوان دستگاه شمار گير بايد VPN adapter را معرفي كنيد.



 



گام نخست:
نصب
VPN adapter



 



گام دوم:
يك
Connection
تازه روي
VPN dapter



در ويندوز
x9، سيستم عامل IP مربوط به سرويس 90
دهنده
VPN
را در خواست مي كند.



 



گام سوم:
آدرس
IP مربوط به سرويس دهنده

VPN را وارد كنيد. پيكر
بندي سرويس گيرنده
VPN
در اينجا پايان يافته و ارتباط مي تواند برقرار شود. تنها كافي است كه نام كاربري
و رمز عبور را وارد كنيد. اكنون ويندوز به اينترنت وصل شده و تونل را مي سازد و
داده هاي خصوصي مي تواند حركت خود را آغاز كنند.



 



برنامه
هاي كمكي



اگر
بخواهيد براي نمونه از دفتر كار( سرويس گيرنده
VPN) به كامپيوتر خود در خانه (
سرويس گيرنده
VPN)
وصل بشويد با دو مشكل روبرو خواهيد شد. نخست اينكه كامپيوتري كه در خانه داريد
پيوسته به اينترنت متصل نيست و ديگري اينكه سرويس گيرنده
VPN به يك آدرس IP نياز دارد. اين IP را هنگامي كه از يك
شركت فراهم ساز (
ISP)
سرويس مي گيريد از پيش نمي دانيد چون به صورت پويا(
dynamic) به شما تخصيص داده مي شود. Online Jack

برنامه اي است كه براي هر دو مشكل راه حل دارد.



Online Jack يك برنامه كوچك است كه بايد روي كامپيوتر خانه نصب شود. از دفتر كار خود مي توانيد از طريق سايت Online Jack و با نام كاربري و
رمز عبور به كامپيوتر خود در خانه متصل شويد. با اين كار،
IP كه شركت فراهم ساز به شما
تخصيص داده مشخص مي شود كه از روي آن، سرويس گيرنده
VPN پيكر بندي شده و كار خود را
آغاز مي كند. از اين دست برنامه هاي كمكي موارد زيادي وجود دارد كه با جستجو در
اينترنت مي توانيد آنها را بيابيد.



 



خلاصه



دامنه
كاربردي
VPN
گسترده و گوناگون است.
VPN را مي توان براي متصل كردن كاربران بيروني به شبكه محلي،‌ارتباط
دو كامپيوتر يا دو شبكه در دو شهر مختلف يا دسترسي از دفتر كار به كامپيوتر منزل
بكار برد.



VPN نه تنها داده ها را با ايمني بيشتر منتقل مي كند بلكه وقتي از آن
براي مرتبط كردن دو كامپيوتر دور از هم استفاده مي كنيم هزينه ها بسيار كاهش مي
يابد.
آخرين نكته اينكه
راه اندازي
VPN

ساده و رايگان است.



 



 



با لينوكس
(1)



يكي از
توانايي هاي
VPN
امكان كاربران دور از شبكه(
Remote)
در دسترسي به آ ن است .
IPsec

در اين ميان نقش مهمي در فراهم كردن ايمني لازم براي داده ها دارد
.
يكي از مناسب ترين و به صرفه ترين وسيله ها در پياده سازي اين امكانات
لينوكس و
Free S/WAN
كه در اين بخش به آن مي پردازيم .



 



IPsec
و
Free S/WAN



اگر چه
لينوكس هم به دليل توانايي هاي خوب
Firewall بستر بسيار مناسبي براي يك دروازه امنيتي(Security Gateway) برپايه IPsec است مال خودش به طور
پيش فرض بخش هاي لازم براي
IPsec
را به همراه ندارد. اين برنامه ها را مي توانيد در مجموعه
Free S/WAN بيابيد. Free S/WAN (www.fresswan.org)
در اصل مجمعي متشكل از برنامه نويسان زبده و تامين كنندگان مالي است كه برنامه هاي
ويژه لينوكس را فراهم مي كنند. برنامه
Free S/WAN از دو بخش اصلي تشكيل شده يكي KLIPS(Kernel IPsec ) است كه پروتكل هاي
لازم را به
Kernel

اضافه مي كند و ديگري
Daemon
كه وظيفهبرقراري ارتباط و رمز گذاري را بر عهده دارد.



در اين
بخش مي بينيد كه
IPsec
چگونه كار مي كند و چگونه بايد آن را به كمك
Free S/WAN در لينوكس براي VPN پيكر بندي كرد. در
ادامه خواهيم گفت كه با
X.509

چطور زير ساخت هاي لازم براي يك شركت پياده سازي مي شود.



 



نگاهي به IPsec



IPsec در اصل مجموعه اي از پروتكل ها و روش هايي است كه به
كمك آنها مي توان روي اينترنت يك ارتباط مطمئن و ايمن ايجاد كرد.



جزييات IPsec يا Internet Protocol Security

در
RFC هاي شماره 2401 تا
2410 آمده.
IPsec براي اطمينان بخشيدن به ارتباط هاي اينترنتي از شيوه
هاي تعيين اعتبار و رمز گذاري داده ها استفاده مي كند.
براي اين منظور در لايه شبكه دو حالت
انتقال و دو لايه ايمني فراهم مي كند.



 



Transport
در مقايسه با
Tunnel



در حالت Transport دو ميزبان به طور
مستقيم روي اينترنت با هم گفتگو مي كنند. در اين حالت مي توان
IPsec را براي تعيين اعتبار
و همچنين يكپارچگي و درستي داده ها به كار برد. به كمك
IPsec نه تنها مي توان از هويت طرف
گفتگو مطمئن شدبلكه مي توان نسبت به درستي و دست نخوردگي داده هاهم اطمينان حاصل
كرد . به كمك عملكرد رمز گذاري مي توان افزون بر آن خوانده شدن داده ها از سوي
افراد غير مجاز جلوگيري كرد.



اما از
آنجا كه در اين شيوه،‌ دو كامپيوتر به طور مستقيم داده ها را مبادله ميكنند نمي
توان مبدا و مقصد داده ها را پنهان كرد. از حالت
Tunnel هنگامي كه استفاده مي شود كه
دست كم يكي از كامپيوترها به عنوان
Security Gateway به كار برود. در اين وضعيت حداقل يكي از كامپيوترهايي
كه در گفتگو شركت مي كند در پشت
Gateway قراردارد و در نتيجه ناشناس مي ماند. حتي اگر دو شبكه
از از طريق
Security Gateway

هاي خود با هم داده مبادله كنند نمي توان از بيرون فهميد كه دقيقا كدام كامپيوتر
به تبادل داده مشغول است. در حالت
Tunnel هم مي توان از كاركردهاي تعيين اعتبار ،كنترل درستي
داده ها و رمز گذاري بهره برد.



 



Authentication
Header



وظيفه Authentication Header IP
آن است كه داده هاي در حال انتقال بدون اجازه از سوي شخص سوم مورد دسترسي و تغيير
قرار نگيرد . براي اين منظور از روي
Header مربوط به IP و داده هاي اصلي يك عددHash به دست آمده و به همراه فيلدهاي كنترلي ديگر به انتهاي Header اضافه مي شود. گيرنده
با آزمايش اين عدد مي تواند به دستكاري هاي احتمالي در
Header يا داده هاي اصلي پي ببرد. Authentication Header

هم در حالت
Transport
و هم در حالت
Tunnel
كاربرد دارد.



AH
در حالت
Transport
ميان
Header

مربوط به
IP
و داده هاي اصلي مي نشيند . در مقابل، در حالت
Tunneling ، Gateway كل Paket را همراه با Header مربوط به داده ها در
يك
IP Packet

بسته بندي مي كند. در اين حالت،
AH ميان Header
جديد و
Packet
اصلي قرار مي گيرد.
AH
در هر دو حالت، اعتبار و سلامت داده ها را نشان مي دهد اما دليلي بر قابل اطمينان
بودن آنها نيست چون عملكرد رمز گذاري ندارد.



 



Encapsulated
Security Payload



Encapsulated
Security Payload IP
براي اطمينان از ايمني داده ها به كار مي رود . اين پروتكل داده ها در قالب يك Header و يك Trailer رمز گذاري مي كند. به طوري
اختياري مي توان به انتهاي
Packet

يك فيلد
ESP Auth
اضافه كرد كه مانند
AH
اطلاعات لازم براي اطمينان از درستي داده ها رمز گذاري شده را در خود دارد. در
حالت
Transport،
Header مربوط به ESP و Trailer تنها داده هاي اصلي IP از پوشش مي دهند و Header مربوط به Packet بدون محافظ باقي مي
ماند.



اما در
حالت
Tunneling
همه
Packet
ارسالي از سوي فرستنده،‌ داده اصلي به شمار مي رود و
Security Gateway آن را در قالب يك Packet مربوط به IP به همراه آدرس هاي
فرستنده و گيرنده رمز گذاري مي كند. در نتيجه،
ESP نه تنها اطمينان از داده ها
بلكه اطمينان از ارتباط را هم تامين مي كند . در هر دوحالت،‌
ESP در تركيب با AH ما را از درستي
بهترين داده هاي
Header

مربوط به
IP
مطمئن مي كند.



 



Security
Association



براي
اينكه بتوان
ESP/AH
را به كار برد بايد الگوريتم هاي مربوط به درهم ريزي(
Hashing)، تعيين اعتبار و رمز گذاري
روي كامپيوترهاي طرف گفتگو يكسان باشد. همچنين دو طرف گفتگو بايد كليدهاي لازم و
طول مدت اعتبار آنها را بدانند. هر دو سر ارتباط
IPsec هر بار هنگام برقرار كردن
ارتباط به اين پارامترهاي نياز دارند.
SA يا Security Association به عنوان يك شبه
استاندارد در اين بخش پذيرفته شده.
براي بالا بردن امنيت، از طريق SA مي توان كليدها را تا زماني كه ارتباط برقرار است عوض كرد. اين
كار را مي توان در فاصله هاي زماني مشخص يا پس از انتقال حجم مشخصي از داده ها
انجام داد.



 



Internet
Key Exchang



پروتكل Internet Key Exchang يا IKE( RFC 2409 ) روند كار روي IPsec SA را تعريف مي كند. اين
روش را
Internet Security
Association and Key Management Protocol
يا ISAKMP نيز مي نامند. اين
پروتكل مشكل ايجاد ارتباط ميان دو كامپيوتر را كه هيچ چيز از هم نمي دانند و هيچ
كليدي ندارند حل مي كند. در نخستين مرحله
IKE(IKE Phase 1) كه به آن حالت اصلي(Main Mode) هم گفته مي شود دو
طرف گفتگو نخست بر سر پيكر بندي ممكن براي
SA و الگوريتم هاي لازم براي درهم ريزي (Hashing)، تعيين اعتبار و
رمزگذاري به توافق مي رسند.



آغاز
كننده(
Initiator)
ارتباط به طرف مقابل(يا همان
Responder)
چند گزينه را پيشنهاد مي كند.
Responder هم مناسب ترين گزينه را انتخاب كرده و سپس هر دو طرف
گفتگو، از طريق الگوريتم
Diffie-Hellman
يك كليد رمز(
Secret Key) مي سازند كه پايه همه رمز گذاري هاي بعدي است. به اين
ترتيب صلاحيت طرف مقابل براي برقراري ارتباط تاييد مي شود.



اكنون
مرحله دوم
IKE(2 ( IKE Phase
آغاز مي گردد كه حالت سريع (
Ouick
Mode
) هم ناميده مي شود. اين مرحله SA مربوط به IPsec را از روي پارامترهاي
مورد توافق برا ي
ESP
و
AH مي سازد.



 



گواهينامه
x.506



همانطور
كه پيش از اين گفتيم بهترين راه براي تبادل
Public Key ها x.509 Certificate(RFC شماره 2495( است. يك
چنين گواهينامه اي يك
Public
Key
براي دارنده خود ايجاد مي كند. اين گواهينامه، داده هايي مربوط به
الگوريتم به كار رفته براي امضاء ايجاد كننده، دارنده و مدت اعتبار در خود دارد كه
در اين ميان،
Public Keyمربوط به دارنده از بقيه مهمتر است. CA هم گواهينامه را با
يك عدد ساخته شده از روي داده ها كه با
Public Key خودش تركيب شده امضاء مي كند.



براي
بررسي اعتبار يك گواهينامه موجود، گيرنده بايد اين امضاء را با
Public Key مربوط به CA رمز گشايي كرده و سپس
با عدد نخست مقايسه كند . نقطه ضعف اين روش در طول مدت اعتبار گواهينامه و امكان
دستكاري و افزايش آن است. اما استفاده از اين گواهينامه ها در ارتباطهاي
VPN مشكل چنداني به همراه
ندارد چون مدير شبكه
Security
Gateway
و همه ارتباط ها را زير نظر دارد.



 



IPsec
يا
FreeS/WAN



همانطور
كه گفتيم
FreeS/WAN
مجموعه كاملي براي راه اندازي
IPsec روي لينكوس است . البته بيشتر نگارش هاي لينوكس برنامه
هاي لازم براي اين كار را با خود دارند. اما بر اساس تجربه بهتر است
FreeS/WANرا به كار ببريد.



در اينجا
ما از
RedHatLinux
نگارش 2/7 با هسته 2.4.18 و
FreeS/WAN197
(ftp://ftp.xs4all.nl/pub/cryypto/freesean
/ ) استفاده كرده ايم.
درصورت لزوم مي توان
FreeS/WAN
را با هسته هسته هاي خانواده 2.2 هم به كار برد. البته در اين حالت دست كم به
نگارش 2.2.19 لينوكس نياز داريد. اين را هم بايد در نظر داشته باشيد كه راه
انداختن
VPN Gateway
همراه با ديواره آتش سودمنداست و هسته نگارش 2.4 امكانات خوبي براي راه انداختن
ديواره آتش دارد.



 



نصب



براي نصب
بايد هسته را در/
usr/ser/linux
و
Free S/WAN
را در /
usr/scr/freeswan-versionnumber
باز كنيد. سپس با فرمان هاي
make
menuconfig
و make
xconfig
پيكربندي هسته را انجام بدهيد. گزينه هاي لازم براي تنظيمات اضافي
را در
Networking
Options\IPsec Options
مي يابيد كه معمولا نيازي به
تغيير دادن تنظيمات پيش فرض آن نيست . براي راه انداختن
x.509 patch بايد بسته مربوطه را
باز كرده و فايل
freewan.diff

را در فهرست
Free S/WAN
كپي كنيد. پس از آن، فرمان
patch-p1
< freewan.diff
همه چيز را برايتان تنظيم مي كند. در پايان بايد هسته
را كه اكنون تغيير كرده كامپايل كنيد. اين مار را با صادر كردن فرمان
make kinstall وقتي در فهرست Free S/WAN هستيد انجام بدهيد.



پس از
اضافه كردن هسته تازه به مدير بوت و راه اندازي كامپيوتر مي توانيد نتيجه كارهايي
كه انجام داديد را ببينيد. فرمان
dmesg پيام هاي آغاز به كار KLIPS را نشان مي دهد. لازم است كه
روي
Runlevel
ها هم كارهايي انجام بدهيد. از آنجا كه
Free S/WAN بع رابط هاي eth0 و eth1،

ipsec0 را اضافه مي كند،
سيستم نخست
Networking
سپس
Free S/WAN
و در پايان
iptables
را اجرا مي كند.



 



پيكر بندي



ما قصد
داريم كه
Security Gateway
خود را به گونه اي پيكربندي كنيم كه يك
Firewall هم باشد. اين ديواره آتش بايد به هر كامپيوتر از فضاي
اينترنت با هر
IP
دلخواه اجازه ارتباط با شبكه داخلي(172.16.0.0/16) را بدهد . اين كامپيوتر براي
اين كار دو رابط
Ethernet(eth0
براي شبكه داخلي (172.16.0.0/16) و
eth1 براي محيط بيروني)‌دارد . بايد ميان اين دو رابط عملكرد

IP-Forwarding
فعال باشد. نخست بايد ديواره آتش را در اين
Security Gateway طوري تنظيم كنيم كه Packet هاي AH و ESP را بپذيرد. به همين
دليل روي رابط بيروني(همان
eth1)
Packet
هاي UDP

را روي پورت 500(
ESP)
مي فرستيم.



تنظيمات FreeS/WAN در فايل /etc/ipsec.conf ثبت مي شود . اين
تنظيمات به سه گروه تقسيم مي شوند.
Config setup به تنظيمات پايه اي مربوط مي شود و conn%default تنظيمات مشترك براي
همه ارتباط ها را در خود دارد. گروه سوم كه با لغت كليدي
conn و يك نام دلخواه مشخص مي شود
پارامترهاي ارتباطي با همان نام را در خود دارد. در اين مثال ما نام اين بخش را
Roadwarrior گذاشته ايم كه
كاربراني كه از بيرون با كامپيوترهاي همراه به شبكه متصل مي شوند مربوط مي شود.



 



/etc/ipsec.conf



در بخش Config setup پيش از هر چيز بايد
رابطي كه درخواست ارتباط هاي
IPsec
روي آن مي روند رامشخص كرد. براي اين منظور، فرمان
interfaces=%defaultroute كافي است كه البته مي
توانيد بجاي %
defaultroute

آدرس
IP مربوط به كارت را هم
وارد كنيد. با تنظيم كردن
kilpsdebug
و
plutodebug
روي
none حالت Debug را غير فعال مي كنيم
.
Plutoload

و
plutostart
را روي %
search
تنظيم مي كنيم تا ارتباط ها پس از درخواست از سمت مقابل ، ايجاد شوند.



دربخشي conn %defqult فرمان keyingtries = 0 به Gateway مي گويد كه در صورت
تغيير كليدهاي رمز تا پيدايش آنها صبر كند. براي انتخاب اين روش تعيين اعتبار
فرمان
authby = rsasig

باعث مي شود تا هر دو طرف گفتگو حتما ميان خود گواهينامه مبادله كنند:
leftrsasigkey = %cert rightsasigkey =
%cert



براي left هم دوباره %defaultroute را اعلام مي كنيم كه
به عنوان
left subnet
شبكه داخلي(172.16.0.0/16) به كار مي رود. كمي بعد اين بخش رابا
leftid كامل مي كنيم كه
گواهينامه ما را براي
Gateway

مشخص مي كند. در بخش
conn
Roadwarrior
هم با فرمان right = %any به همه كساني كه بتوانند گواهينامه ارائه كننداجازه
دسترسي مي دهيم. حالت ارتباط را هم با
type = tunnel مشخص مي كنيم كه در آن تبادل كليدها از طريق IKE(key exchang = ike) با Perfect Forwarding Secrecy (pfc = yes)
انجام مي گيرد.
Auto = add
هم به
Free S/WAN

مي گويد كه ارتباط در پي در خواست از سوي كاربران بيرون از شبكه برقرار شود.



 



گواهينامه



اكنون S/WAN Free براي برقرار كردن
ارتباط با يك رمز گذاري قوي از طريق تبادل گواهينامه پيكربندي شده. گواهينامه لازم
براي
Gateway
و كاربران بيرون از شبكه را خودمان مي سازيم. براي اين كار از توانايي هاي
SSL open بهره مي گيريم. نخست
يك ساختار فهرست براي ايجاد گواهينامه مي سازيم. براي نمونه فهرست /
etc/fenrisCA را در نظر مي گيريم.
اينجا فهرست هاي
certs

و
private key
ها مي سازيم.



فهرست private به طور منطقي بايد در
دسترس
root
باشد. در فهرست/
etc/fenrisCA
به دو فايل
index.txt

و
serial نياز داريم. با touch، index.txt را خالي مي كنيم. Open SSL بعدا در اين فايل
ليستي از گواهينامه هاي صادر شده ثبت مي كند. اكنون در فايل
OPENSSL.CNF (كه در /usr/ssl يا /usr/share/ssl قرار دارد) مسير
فهرست
CA را به عنوان پارامتر dir وارد مي كنيم.



 



RootCA



اكنون به
سراغ
RootCA مي رويم . براي اين كار نخست يك RSAPrivate به طول 2048 بيت مي
سازيم :
openssl gersa –des3
–out private/caKey.pem2048
گزينه des3 باعث مي شود كه از طريق روش Triple DES ساخته شود تا افراد
غير مجاز نتوانند گواهينامه را درستكاري كنند. البته اكنون گواهينامه را درستكاري
كنند. البته اگر خودمان هم
Passphrase

را فراموش كنيم امكان انجام اين كار را نخواهيم داشت.



اكنون
گواهينامه
RootCA
خودمان را ايجاد كرده و آن را به يك بازه زماني محدوده مي كنيم:



Openssl
req –new-x509 –days = 1825 – key private/cakey.pem out caCert.pem
به عنوان passphrase
از همان چيزي كه براي
Private
Key
كار برديم استفاده كرده ايم. سپس openssl تك تك عناصر مربوط به شناسايي
دارنده گواهينامه مي پرسد.



در پايان
گواهينامه
Root CA
را در /
eht/ipsec.d/cacerts
براي
Free S/WAN
كپي مي كنيم.



 



گواهينامه
Gateway



ساختن
گواهينامه براي
Gateway
دقيقا همانند روشي است كه براي گواهينامه
Root CA شرح داديم. به كمك گواهينامه Gateway به كاربران بيرون از شبكه
اجازه ارتباط و استفاده از آن ر امي دهيم .



نخست به
يك
Private key
نياز داريم كه اين بار طول آن 1024 بيت است:



openssl gersa
–des3 –out private/gwKey.pem1024



اكنون گام
بعدي را بر مي داريم:



openssl req
–new-key private/gwKey.pem –out geReq.pem



اكنون Request را به عنوان Root CA امضاء مي كنيم:



Openssl
ca –notext –in gwReq.pem –out gwCert.pem



اين
گواهينامه را بايد در قالب فايل /
etc/x509cert.der به شكل باينر روي Gateway ذخيره كنيم . عمل تبديل با
فرمان زير انجام مي گيرد:



openssl x509 –in
gwcwert.pem –outform der –out /etc/x509cert.der



Private
key
با نام gwkey.pem
را براي
Free S/WAN
در /
etc/ipsec.d/private
كپي مي كنيم. از اين گذشته بايد
Passphrase مربوطه به طور واضح در فايل /etc/ipsec.secrets آمده باشد. اگر Passphrase به طور نمونه « asample Passphrase » باشد آن را در سطر
زير مي نويسيم :



« asample Passphrase » :RAS gwkey.pem



روشن است
كه تنها
root
بايد به
ipsec.secrets
دسترسي داشته باشد. اكنون آخرين جاي خالي را در /
etc/ipsec.conf پر مي كنيم.



Leftid =
"C = IR,ST = Tehran,
L = Tehran, O =
Rayaneh Magazine, OU = Editorial,CN = fashkain, Email = fashkain@rayanehmag.net
"



 



گواهينامه
هاي كاربران



اكنون
بايد عمل تعيين اعتبار را براي هر كاربر يكبار انجام بدهيم. در فرمان زير كه براي
ساختن
Private key
براي يك كاربر به كار مي رود:



openssl genrsa
–des3 –out private/userkey.pem –out 1024



بايد براي
هر كاربر
Passphrase
جداگانه اي وارد كنيد. در گام بعدي فرمان زير را به كار ببريد:



openssl req
–new-key private/gwKey.pem –out geReq.pem



اكنون
بايد گواهينامه اي را كه آن را در قالب
Root CA امضاءخواهيد كرد بسازيد.-enddate در اينجا براي مشخص
كردن مدت اعتبار به كار مي رود:



Openssl
ca –notext –eddate 020931200z in gwReq.pem –out gwCert.pem



در آخرين مرحله
روي اين گواهينامه يك فايل باينري با فرمت
PKCS#12 مي سازيم كهدر ادامه براي سرويس گيرنده هاي ويندوز xp /2000 لازم داريم.



Openssl
pkcs12 –export –inusercert.pem –inkey private/userkey.pem –certfile
caCert.pem-out user.p12



 



چشم انداز



پيكربندي Security Gateway را با موفقيت پشت سر
گذاشتيم. در بخش بعدي به سرويس گيرنده هاي
VPN در ويندوز مي پردازيم. براي اين كار از ابزارهاي موجود در ويندوز
2000 و
xp
بهره خواهيم برد.



با لينوكس
(2)



در بخش
پيش بر پايه لينوكس 2.4 و
Free
S/WAN
يك VPN
Security Gateway
راه انداختيم. با نصب patch هاي x.509 (www.strongsec.com/freewan/) Gateway
را با تنامين اعتبار هاي مطمئن و رمز گذاري هاي قوي كامل كرديم. به اين ترتيب پيكر
بندي سرويس دهنده به پايان مي رسد. اكنون بايد سرويس گيرنده ها را براي دسترسي به
VPN تنظيم كنيم. فرض مي
كنيم كه سيستم عامل مورد استفاده كاربران بيرون از شبكه ويندوز 2000 و
xp است كه هر دوي آنها
برنامه هاي لازم براي ايجاد و مديريت ارتباط هاي
IPsec را در خود دارند.



البته
بايد اين احتمال را نيز در نظر گرفت كه شايد برخي كاربران با سيستم ويندوز 9
x/Me قصد استفاده از VPN را داشته باشند. در
اين حالت به يك برنامه سرويس گيرنده
IPsec نياز داريم. يكبار معروفترين اين برنامه ها كه براي
كاربردهاي شخصي رايگان است
PGPnet
مي باشد. اين برنامه را مي توان حتي روي ويندوز هاي
NT و 2000 هم بكار برد.



 



ويندوز
2000 و
XP



ويندوز
هاي 2000و
XP
با توجه به پشتيباني از
IPsec
براي استفاده به عنوان سرويس گيرنده
IPsec بسيار مناسبند. اين دو سيستم عامل افزون بر سرويس هاي IPsec امكاناتي هم براي
ايمني
IP دارند. براي ساختن يك
تونل
VPN، كافي است كه به
كاربر تنها سرويس
IPsec

را اجرا كرده و گزينه هاي لازم را در آن تنظيم كند.



البته فرض
بر اين است كه تنظيمات امنيتي از پيش انجام شده باشد. انجام اين كار در ويندوز
چندان ساده نيست. در ويندوز 2000 بايد برنامه
IPsecPOL



http://agent.microsoft.com/windows2000/techinfo/reskit/tools/existing/ipsecpol-o.asp



را از ResourceKit نصب كنيد. در ويندوز XP بجاي آن به IPsecCmd نياز داريم. براي
دستيابي به اين برنامه بايد
Support
Tools
را در ويندوز XP به طور كامل نصب كنيد(فهرست \SUPPORT\TOOLS روي CD ويندوز XP).



 



تنظيم ipsec.conf



اكنون ipsec.conf را كه قبلا آماده
كرده بوديم مطابق كاربردمان تنظيم كنيم. در
conn %default ارتباط هاي تلفني(Dail up) كه بايد به طور
خودكار فعال شوند مشخص مي شوند.



سپس بخشي
قرار مي گيرد كه با
conn
آغاز مي شود و پارامترهاي ارتباط
VPN را در خود دارد. آدرس هاي محلي كه به طور خودكار براي آدرس هاي
سرويس گيرنده ها به كار مي روند با با
left = %any مشخص مي شوند. در right آدرس IP مربوط به VPNGateway را واردكنيم. پارامترrightsubnet هم آدرس IP و ماسك شبكه اي كه
ارتباط با آن برقرار مي شود را در خود دارد. در اينجا مي توانيد از هر دو شيوه
نوشتن آدرس ها يعني 172.16.0.0/16 يا172.16.0.0/255.255.0.0 استفاده كنيد.
Network مشخص مي كند كه
ارتباط از طريق تماس تلفني (
network
= ras
شبكه (network = lan) يا هر دو (network = both) برقرار شود.



 



پيكر بندي
سرويس گيرنده



اكنون
بايد فايل آرشيوي كه براي گواهينامه كاربر، رمز عبور،
IPsec و ipsec.conf ساختيم را از يك راه
مطمئن (مثلا
Email
رمز گذاري شده) به كامپيوتر سرويس گيرنده بفرستيم. پس از باز كردن اين فايل، بايد
يك
Snap in

را همان طور كه در شكل مي بينيد اضافه كنيد . براي اين منظور در "
Start,Run" ، mmc را وارد كنيد. سپس از
طريق "
File,Add/Remove
Snap-in
" يك Plug
in
از از جنس Certificate
بسازيد. اين
Plug in

بايد از جنس
Compeuter account
براي
Local computer
باشد. پس از اتمام كار و زدن كليدهاي
Finish ، Close
و
Ok ،Plug in را در پنجره MMC خواهيد ديد.



 



خلاصه



لينوكس و Free S/WAN براي ساختن VPN راه حل هايي هستند كه
در مقايسه با راه حل هاي سخت افزاري بسيار ساده تر و كم هزينه تر است. به ويژه
سرويس گيرنده هاي ويندوز 2000 و
XP با توجه به دسترس بودن برنامه هاي لازم بسيار ساده و سريع
پيكربندي مي شوند. اما هنگام راه اندازي
VPN نبايد يك نكته فراموش كرد. VPN اگر چه مطمئن است اما
اين اطمينان تا وقتي است كه كامپيوترها در هماهنگي كامل با يكديگر باشند.
اگر از VPN به درستي محافظت نشود بستر
بسيار مناسبي براي ويروس ها، كرم ها، اسب هاي تروآيي و كاربران غير مجاز خواهد
بود. بنابراين استفاده از برنامه هاي ضد ويروس و ديواره آتش را نبايد فراموش كنيد.



 



 



شبكه
خصوصي مجازي يا
VPN (Virtual
Private Network
) در اذهان تصور يك مطلب پيچيده براي استفاده و پياده
كنندگان آن به وجود آورده است . اما اين پيچيدگي ، در مطالب بنيادين و مفهومي آن
است نه در پياده‌سازي .



اين نكته
را بايد بدانيد كه پياده‌سازي
VPN داراي روش خاصي نبوده و هر سخت‌افزار و نرم‌افزاري روش پياده‌سازي
خود را داراست و نمي‌توان روش استانداردي را براي كليه موارد بيان نمود . اما اصول
كار همگي به يك روش است .



 



مختصري
درباره تئوري
VPN



مفهوم
اصلي
VPN چيزي جز برقراري يك
كانال ارتباطي خصوصي براي دسترسي كاربران راه دور به منابع شبكه نيست . در اين
كانال كه بين دو نقطه برقرار مي‌شود ، ممكن است كه مسيرهاي مختلفي عبور كند اما
كسي قادر به وارد شدن به اين شبكه خصوصي شما نخواهد بود . گرچه مي‌توان از
VPN در هر جايي استفاده
نمود اما استفاده آن در خطوط
Dialup
و
Leased كار غير ضروري است (در
ادامه به‌دليل آن پي خواهيد برد).



در يك
ارتباط
VPN
شبكه يا شبكه‌ها مي‌توانند به هم متصل شوند و از اين طريق كاربران از راه دور به
شبكه به راحتي دسترسي پيدا مي‌كنند. اگر اين روش از ارائه دسترسي كاربران از راه
دور را با روش خطوط اختصاصي فيزيكي (
Leased) مقايسه كنيم ، مي‌بينيد كه ارائه يك ارتباط خصوصي از
روي اينترنت به مراتب از هر روش ديگري ارزان‌تر تمام مي‌شود .



از اصول
ديگري كه در يك شبكه
VPN
در نظر گرفته شده بحث امنيت انتقال اطلاعات در اين كانال مجازي مي‌باشد . يك
ارتباط
VPN
مي‌تواند بين يك ايستگاه كاري و يك شبكه محلي و يا بين دو شبكه محلي صورت گيرد. در
بين هر دو نقطه يك تونل ارتباطي برقرار مي‌گردد و اطلاعات انتقال يافته در اين
كانال به صورت كد شده حركت مي‌كنند ، بنابراين حتي در صورت دسترسي مزاحمان و هكرها
به اين شبكه خصوصي نمي‌توانند به اطلاعات رد و بدل شده در آن دسترسي پيدا كنند.



جهت
برقراري يك ارتباط
VPN
، مي‌توان به كمك نرم‌افزار يا سخت‌افزار و يا تركيب هر دو ، آن را پياده‌سازي
نمود . به طور مثال اكثر ديواره‌هاي آتش تجاري و روترها از
VPN پشتيباني مي‌كنند . در زمينه
نرم‌افزاري نيز از زمان ارائه ويندوز
NT ويرايش 4 به بعد كليه سيستم عامل‌ها داراي چنين قابليتي هستند .



در اين
مقاله پياده‌سازي
VPN
بر مبناي ويندوز 2000 گفته خواهد شد .



 



پياه‌سازي
VPN



براي
پياده‌سازي
VPN بر روي ويندوز 2000 كافيست كه از منوي Program/AdministrativeTools/ ، گزينه Routing and Remote Access
را انتخاب كنيد . از اين پنجره گزينه
VPN را انتخاب كنيد . پس از زدن دكمه Next وارد پنجره ديگري مي‌‌شويد كه
در آن كارت‌هاي شبكه موجود بر روي سيستم ليست مي‌شوند .



براي راه‌اندازي
يك سرور
VPN
مي‌بايست دو كارت شبكه نصب شده بر روي سيستم داشته باشيد .



از يك
كارت شبكه براي ارتباط با اينترنت و از كارت ديگر جهت برقراري ارتباط با شبكه محلي
استفاده مي‌شود. در اين‌جا بر روي هر كارت به‌طور ثابت
IP قرار داده شده اما مي‌توان
اين
IPها را به صورت پويا بر روي كارت‌هاي شبكه قرار داد .



در پنجره
بعد نحوه آدرس‌دهي به سيستم راه دوري كه قصد اتصال به سرور ما را دارد پرسيده مي‌شود
. هر ايستگاه كاري مي‌ تواند يك آدرس
IP براي كار در شبكه محلي و يك IP براي اتصال VPN داشته باشد . در منوي
بعد نحوه بازرسي كاربران پرسيده مي‌شود كه اين بازرسي مي‌ تواند از روي كاربران
تعريف شده در روي خود ويندوز باشد و يا آنكه از طريق يك سرويس دهنده
RADIUS صورت گيرد در صورت
داشتن چندين سرور
VPN

استفاده از
RADIUS
را به شما پيشنهاد مي‌كنيم . با اين روش كاربران ، بين تمام سرورهاي
VPN به اشتراك گذاشته شده
و نيازي به تعريف كاربران در تمامي سرورها نمي‌باشد.



 



پروتكل‌هاي
استفاده شونده



عملياتي
كه در بالا انجام گرفت تنها پيكربندي‌هاي لازم جهت راه‌اندازي يك سرور
VPN مي‌باشد .



اما (Remote Routing Access Service) RRAS
داراي دو پروتكل جهت برقراري تونل ارتباطي
VPN مي‌باشد. ساده‌ترين پروتكل آن PPTP (Point to Point Tunneling Protocol)
است ، اين پروتكل برگرفته از
PPP
است كه در سرويس‌هاي
Dialup
مورد استفاده واقع مي‌شود ،‌ در واقع
PPTP همانند PPP عمل مي‌كند .



پروتكل PPTP در بسياري از موارد
كافي و مناسب است ،‌ به كمك اين پروتكل كاربران مي‌توانند به روش‌هاي
PAP (Password Authentication Protocol)
و
Chap (Challenge Handshake
Authentication Protocol
) بازرسي شوند. جهت كد كردن
اطلاعات مي‌توان از روش كد سازي
RSA استفاده نمود.



PPTP
براي كاربردهاي خانگي و دفاتر و افرادي كه در امر شبكه حرفه‌اي نيستند مناسب است
اما در جايگاه امنيتي داراي پايداري زيادي نيست . پروتكل
ديگري به نام
L2TP (Layer2 Forwarding)
به وسيله شركت
CISCO

ارائه شده كه به لحاظ امنيتي بسيار قدرتمندتر است.



اين
پروتكل با استفاده از پروتكل انتقال اطلاعات
UDP (User Datagram Protocol) به‌جاي استفاده از TCP به مزاياي زيادي دست
يافته است . اين روش باعث بهينه و ملموس‌تر شدن براي ديواره‌هاي آتش شده است ، اما
باز هم اين پروتكل در واقع چيزي جز يك كانال ارتباطي نيست . جهت حل اين مشكل و هر
چه بالاتر رفتن ضريب امنيتي در
VPN شركت مايكروسافت پروتكل ديگري را به نام IPSec (IP Security) مطرح نموده كه
پيكربندي
VPN
با آن كمي دچار پيچيدگي مي‌گردد.



اما در
صورتي كه پروتكل
PPTP
را انتخاب كرده‌ايد و با اين پروتكل راحت‌تر هستيد تنها كاري كه بايد در روي سرور
انجام دهيد فعال كردن قابليت دسترسي
Dial in مي‌باشد. اين كار را مي‌توانيد با كليك بر روي Remote Access Polices در RRAS انجام دهيد و با
تغيير سياست كاري آن ، آن را راه‌اندازي كنيد (به‌ طور كلي پيش‌فرض سياست كاري ،
رد كليه درخواست‌ها مي‌باشد).



 



دسترسي ايستگاه
كاري از طريق
VPN



حالا كه
سرور
VPN آماده سرويس‌دهي شده
، براي استفاده از آن بايد بر روي ايستگاه كاري نيز پيكربنديهايي را انجام دهيم . سيستم
عاملي كه ما در اين‌جا استفاده مي‌كنيم ويندوز
XP مي‌باشد و روش پياده‌سازي VPN را بر روي آن خواهيم
گفت اما انجام اين كار بر روي ويندوز 2000 نيز به همين شكل صورت مي‌گيرد . بر روي
ويندوزهاي 98 نيز مي‌توان ارتباط
VPN را برقرار نمود ، اما روش كار كمي متفاوت است و براي انجام آن
بهتر است به آدرس زير مراجعه كنيد :



www.support.microsot.com



بر روي
ويندوزهاي
XP
، يك نرم‌افزار جهت اتصال به
VPN
براي هر دو پروتكل
PPTP
و
L2TP وجود دارد. در صورت
انتخاب هر كدام ،‌ نحوه پيكربندي با پروتكل ديگر تفاوتي ندارد . راه‌اندازي
VPN كار بسيار ساده‌اي
است ، كافيست كه بر روي
Network
Connection
كليك نموده و از آن اتصال به شبكه خصوصي از طريق اينترنت
(
Private Network Through
Internet
) را انتخاب كنيد .



در انجام
مرحله بالا از شما يك اسم پرسيده مي‌شود . در همين مرحله خواسته مي‌شود كه براي
اتصال به اينترنت يك ارتباط تلفني (
Dialup) تعريف نماييد ، پس از انجام اين مرحله نام و يا آدرس
سرور
VPN پرسيده مي‌شود .



مراحل
بالا تنها مراحلي است كه نياز براي پيكربندي يك ارتباط
VPN بر روي ايستگاه‌هاي كاري مي‌باشد
. كليه عمليات لازمه براي
VPN
به صورت خودكار انجام مي‌گيرد و نيازي به انجام هيچ عملي نيست . براي برقراري
ارتباط كافيست كه بر روي آيكوني كه بر روي ميز كاري ايجاد شده دو بار كليك كنيد پس
از وارد كردن كد كاربري و كلمه عبور چندين پيام را مشاهده خواهيد كرد كه نشان‌دهنده
روند انجام برقراري ارتباط
VPN

است .



اگر همه
چيز به خوبي پيش رفته باشد مي‌توانيد به منابع موجود بر روي سرور
VPN دسترسي پيدا كنيد اين
دسترسي مانند آن است كه بر روي خود سرور قرار گرفته باشيد .



 



ارتباط
سايت به سايت (
Site-to-Site
VPN
)



در صورتي
كه بخواهيد دو شبكه را از طريق يك سرور
VPN دومي به يكديگر وصل كنيد علاوه بر مراحل بالا بايد چند كار اضافه‌تر
ديگري را نيز انجام دهيد .



جزئيات
كار به پروتكلي كه مورد استفاده قرار مي‌گيرد . جهت اين كار بايد سرور را در پنجره
RRAS انتخاب كرده و منوي
خاص (
Properties)
آن را بياوريد .



در قسمت General مطمئن شويد كه گزينه‌هاي
LAN و Demand Dial انتخاب شده باشند (به
طور پيش گزيده انتخاب شده هستند). هم‌چنين اطمينان حاصل كنيد كه پروتكل را كه قصد
روت (
Route)
كردن آن را داريد فعال است .



پس از
مراحل بالا نياز به ايجاد يك
Demand
Dial
داريد ، اين كار را مي‌توانيد با يك كليك راست بر روي واسط روت (Routing Interface) انجام دهيد .



در پنجره
بعدي كه ظاهر مي‌شود بايد براي اين ارتباط
VPN خود يك نام تعيين كنيد اين نام بايد همان اسمي باشد كه در طرف
ديگر كاربران با آن به اينترنت متصل مي‌شوند در صورتي كه اين مطلب را رعايت نكنيد
ارتباط
VPN
شما برقرار نخواهد شد .



پس از اين
مرحله بايد آدرس
IP
و يا نام دامنه آن را مشخص كنيد و پس از آن نوع پروتكل ارتباطي را تعيين نمود .



اما مرحله
نهايي تعريف يك مسير (
Route)
بر روي سرور ديگر مي‌باشد بدين منظور بر روي آن سرور در قسمت
RRAS ، Demand Dial را انتخاب كنيد و
آدرس
IP و ساب‌نت را در آن
وارد كنيد و مطمئن شويد كه قسمت



Use This
to Initate Demand



انتخاب
شده باشد . پس از انجام مرحله بالا كار راه‌اندازي اين نوع
VPN به پايان مي‌رسد .



 



پايان



همان‌طور
كه ديديد راه‌اندازي يك سرور
VPN

بر روي ويندوز 2000 تحت پروتكل
PPTP كار ساده‌اي بود اما اگر بخواهيد از پروتكل L2TP/IPSec استفاده كنيد كمي كار
پيچيده خواهد شد . به خاطر بسپاريد كه راه‌اندازي
VPN بار زيادي را بر روي پردازنده
سرور مي‌گذارد و هرچه تعداد ارتباطات
VPNبيشتر باشد بار زيادتري
بر روي سرور است كه مي‌توانيد از يك وسيله سخت‌افزاري مانند روتر جهت پياده‌سازي
VPN كمك بگيرد .