Cisco IOS Split Tunnel IPSec VPN configuration

ขอเขียนเรื่องนี้หลังจากผ่านการงมในกอง Sheet หนังสือ จมกับเเบบฝึกหัดมาหลายวัน เลยมาเขียนเรื่องนี้แก้เครียด ฮ่าๆๆๆ

หลักการแบบเข้าใจง่ายๆของ Split Tunnel VPN ก็คือ

หาก User ต้องการออกเน็ตหรือไปหา Network อื่นๆที่อยู่นอกเหนือ Policy ที่เรากำหนดก็จะวิ่งไปหา Default Gateway ของ Device นั้นๆ เช่น Router ที่บ้านเรา

แต่ถ้า User เชื่อมต่อไปยัง Network ภายในองค์กร ตามที่เราใส่ Policy เอาไว้ Route ก็จะออกไปทาง IPSec VPN Tunnel ครับ

ข้อดีอย่างเห็นได้ชัดคือ ไม่ต้องให้ Internet Traffic ที่ไม่เกี่ยวอะไรกับองค์กรมาออกเน็ตที่องค์กร ซึ่งก็ช่วยลดระยะเวลาในการออกเน็ตด้วย เพราะออกเน็ตทาง Default Gateway ที่เราใช้อยู่เเทน และในเรื่องของความปลอดภัยอีกด้วย

วิธีเซทแบบนี้ไม่ work สำหรับการเซทให้ User ออกเน็ตกับไอพีขององค์กร อย่างเช่นในมหาวิทยาลัยมี Licen เกี่ยวกับพวก Research Database อย่างเช่นของ IEEE ที่อนุญาตให้ไอพีขององค์กรที่จ่ายตังค์เท่านั้นจึงจะมีสิทธ์เข้าถึง ถ้าอยากเซทแบบนี้ วิธีนี้มันใช้ไม่ได้นะ ยกเว้นจะเพิ่ม route ให้ไปออกเน็ตทาง VPN Tunnel เอา

มาดู Config เลยเเล้วกันครับ

### ตั้งชื่อก่อน เพื่อความเป็นสิริมงคล (เกี่ยวมั๊ย ??) ##

hostname VPN-Server-Mycorporate

## เปิดการใช้ AAA ##

aaa new-model

## กำหนดให้ user authen กับ Radius Server หรือจะกำหนดให้ authen กับ Router ตัวนี้ก็ได้ ##

aaa authentication login vpn-group group radius local

## กำหนดการ authorization ของ network ##

aaa authorization network vpn-group local

## กำหนด Domain Name ให้ Router ตัวนี้ ##

ip domain name vpn.mycorporate.net

## กำหนด DNS Server ให้ ##

ip name-server 172.16.55.5

## สร้าง isakmp policy หมายเลข 100 ขึ้นมา (เลขอื่นก็ได้) ##

crypto isakmp policy 100

encr 3des //เลือก Encryption เป็น 3des

authentication pre-share //กำหนดการ authen โดยใช้ Pre-share Key

group 2 //กำหนด group เป็น 2 ซึ่งก็คือ Diffie-Hellman group 2 (ขนาด 1024 bit)

!

## สร้าง isakmp client profile สำหรับกำหนดค่าให้ vpn client ใส่ชื่อกรุ๊ปด้วย ในที่นี้ ชื่อ netadmin ##

crypto isakmp client configuration group netadmin

key netadmin1234//กำหนด Key สำหรับการเชื่อมต่อ

dns 172.16.0.10 172.16.0.11 //กำหนด DNS Server ที่จะให้ vpn client ใช้

domain mycorporate.com //กำหนด Domian name ที่จะเเจกให้ vpn client (ทางเลือก)

pool remote-pool //กำหนด IP Pool ที่จะเเจกให้ vpn client

acl netadmin-vpn-acl//กำหนดให้ใช้ Access list เบอร์ 102 เพื่อทำ Split tunnel

save-password //ใส่คำสั่งนี้เพื่ออนุญาตให้ user ไม่ต้องป้อน password ทุกครั้งเวลาจะเชื่อมต่อ (ทางเลือก)

banner ^CNR-v6-vIOS-VPN-IPSec //สร้าง Banner นิดนึง (ทางเลือก)

## สร้าง transform-set ขึ้นมาชื่อ netadmin-vpn-transform เลือก esp-3des esp-sha-hmac ด้วย ##

crypto ipsec transform-set netadmin-vpn-transform esp-3des esp-sha-hmac

mode tunnel //กำหนดเป็น Tunnel mode

!

!

!

##สร้าง Dynamic-Map ขึ้นมาชื่อ dynamic-netadmin-vpn ##

crypto dynamic-map dynamic-netadmin-vpn 10

set transform-set netadmin-vpn-transform //ดึงค่า netadmin-vpn-transform มาใช้

reverse-route //กำหนดค่าให้ทำ Reverse Route Injection

!

!

## เอา vpn-group authen มา map กับ netadmin-vpn-map ##

crypto map netadmin-vpn-map client authentication list vpn-group

##เอา vpn-group authorization มา map กับ netadmin-vpn-map ##

crypto map netadmin-vpn-map isakmp authorization list vpn-group

## เอา netadmin-vpn-map มากำหนด Client config address ##

crypto map netadmin-vpn-map client configuration address respond

## เอา netadmin-vpn-map เบอร์ 10 มา map กับ dynamic-netadmin-vpn ##

crypto map netadmin-vpn-map 10 ipsec-isakmp dynamic dynamic-netadmin-vpn

interface GigabitEthernet0/0

description Connect to Internet

ip address 5.5.5.10 255.255.255.224 //ตั้งค่า Interface ฝั่งที่ vpn client ต่อเข้ามาให้เป็น Public IP

no ip redirects

duplex auto

speed auto

crypto map netadmin-vpn-map //เอา netadmin-vpn-map มา map กับ Interface นี้

interface GigabitEthernet0/1.214

description VPN-router-to-Private-Network

encapsulation dot1Q 214

ip address 192.168.98.18 255.255.255.252 //ตั้งค่า IP Address สำหรับ PtP Connection เพื่อใช้ในการ Route ไปหา Network ภายในองค์กร

!

ip local pool remote-pool 10.10.206.10 10.10.206.30 //สร้าง pool ชื่อ remote-pool ขึ้นมา กำหนดไอพีเลขเเรก กับเลขสุดท้าย เพื่อเอาไปเเจกให้ VPN Client

## ต่อไปเป็นการ Route จะใช้ EIGRP หรือ OSPF ก็เเล้วเเต่เลยครับ แต่ในที่นี้ ใช้ Static Route ##

ip route 0.0.0.0 0.0.0.0 5.5.5.1 //ใส่ Default Route

ip route 10.10.200.0 255.255.255.0 192.168.98.17 // Route วงที่ต้องการติดต่อ

ip route 10.10.202.0 255.255.255.0 192.168.98.17 // Route วงที่ต้องการติดต่อ

ip route 10.10.201.0 255.255.255.0 192.168.98.17 // Route วงที่ต้องการติดต่อ

## สร้าง radius server profile ขึ้นมา เพื่อให้ user authen กับ radius server ##

radius server [name_of_radius_server] //ตั้งชื่อ radius server

address ipv4 172.16.0.5 auth-port 1812 acct-port 1813 //ใส่ IP กำหนด auth,acct port

timeout 30 //ตั้งค่า timeout

retransmit 3 //ตั้งค่าให้ authen อีกครั้ง

key [radius_key] //ใส่ key ที่กำหนดจาก Radius Server

##สร้าง ACL ของ Network ภายในองค์กรที่ต้องการเข้าถึง โดยใส่ต้นทางเป็น Network ภายในองค์กร ปลายทางเป็น network ของ vpn client (จาก ip pool) ในที่นี้ชื่อ netadmin-vpn-acl##

ip access-list extended netadmin-vpn-acl

permit ip 10.10.200.0 0.0.0.255 10.10.206.0 0.0.0.255

permit ip 10.10.201.0 0.0.0.255 10.10.206.0 0.0.0.255

//ต้องการให้เข้าถึง Network อะไรบ้างก็ใส่เพิ่มลงไปเลยครับ

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.