PDA

View Full Version : Vấn đề split tunneling trong IPSec VPN



dangquangminh
25-03-2008, 01:45 AM
Vấn đề split tunneling trong IPSec VPN


Split tunneling là quá trình gửi một vài traffic trên một tunnel và một vài traffic khác ở dạng clear text. Trong mô hình dùng remote access Ipsec VPN, việc sử dụng split tunneling là một chính sách được định nghĩa trên vpn gateway và sau đó áp đặt (push) xuống client. Trong cách hiện thực của cisco, mặc định split tunneling là tắt trong gateway. Vì vậy, khi Ipsec tunnel đã up giữa client và gateway, tất cả các traffic gửi từ client sẽ chui vào tunnel. Không có tuỳ chọn nào trên client cho phép thay đổi tình trạng này. Do đó, ta phải kiểm soát traffic nào sẽ được bảo vệ (đi vào tunnel).


Trong cisco, có hai loại lưu lượng là ngoại lệ đối với chính sách này:



* Arp: các client nếu dùng cổng Ethernet có thể học địa chỉ mac của thiết bị ở phía ISP.
* Dhcp: các client có thể xin địa chỉ thường là từ isp và sẽ renew khi địa chỉ hết hiệu lục.

Cấu hình trên VPN server lúc này như sau:


Creating Groups

Nếu bạn dùng local authorization trong câu lệnh aaa authorization, bạn phải định nghĩa các nhóm (group) một cách cục bộ trên router. Dùng đoạn cấu hình dưới đây để định nghĩa một nhóm Easy VPN server cho các người dùng:


Router(config)# ip local pool pool_name first_IP_address last_IP_address

Router(config)# crypto isakmp client configuration address-pool local pool_name

Router(config)# crypto isamkp client configuration group {group_name | default}

Router(config-isakmp-group)# key pre_shared_key

Router(config-isakmp-group)# pool pool_name

Router(config-isakmp-group)# domain domain_name

Router(config-isakmp-group)# dns 1st_DNS_server [2nd_DNS_server]

Router(config-isakmp-group)# split-dns domain_name

Router(config-isakmp-group)# wins 1st_WINS_server [2nd_WINS_server]

Router(config-isakmp-group)# include-local-lan

Router(config-isakmp-group)# acl ACL_name_or_#

Router(config-isakmp-group)# firewall are-u-there

Router(config-isakmp-group)# backup-gateway {IP_address | hostname}

Router(config-isakmp-group)# save-password

Router(config-isakmp-group)# pfs

Router(config-isakmp-group)# max-logins #_of_simultaneous_logins

Router(config-isakmp-group)# max-users #_of_users

Router(config-isakmp-group)# access-restrict interface_name

Router(config-isakmp-group)# group-lock

Router(config-isakmp-group)# exit

Lệnh acl cho phép ta chỉ ra nhiều cấu hình split tunneling phức tạp hơn. Với cấu hình này, bạn tham chiếu đến nhiều dạng acl như named, number. Các acl sẽ chỉ ra những lưu lượng nào sẽ được bảo vệ. Lệnh deny sẽ chỉ ra các lưu lượng gửi ở dạng clear text bởi client.

Router(config)# ip access-list extended splitengineering

Router(config-ext-nacl)# remark Protect this traffic

Router(config-ext-nacl)# permit ip 192.168.0.0 0.0.0.255 any

Router(config-ext-nacl)# remark Send all other traffic in clear-text

Router(config-ext-nacl)# deny ip any any

Chú ý rằng khi thiết lập ACL để chỉ ra split tunneliing, địa chỉ nguồn trong ACL là địa chỉ mà client được cấp và địa chỉ đích là địa chỉ của chính client.

Tóm lại, split tunneling giúp ta chỉ định rõ những traffic nào sẽ được mã hóa, những traffic nào gửi ở dạng không mã hóa, clear text. Việc phân loại thường dựa trên công cụ ACL.

Begin
26-03-2008, 04:49 PM
Thong tin nay qua tuyet. Thanks a lot!

belugavn
04-06-2009, 02:01 PM
Chào anh Minh,

Cho em xin được hỏi thêm. Em có yêu cầu như sau:
Client truy cập Remote Access VPN từ INTERNET để truy cập 1 dịch vụ nào đó của Server A (Server A nằm trong local LAN).

Nếu truy cập đến Server A thì traffice sẽ đi qua tunnel


Còn lại thì traffic sẽ đi ra INTERNET (không đi qua tunnel)


Em cấu hình tương tự như trên như sau:

Router(config)# ip local pool TEST_POOL_REMOTE_VPN 10.10.10.10-10.10.10.100 mask 255.255.255.0

Router(config)# crypto ipsec transform-set TRANSFORM_SET_VPN esp-3des esp-md5-hmac

Router(config)# access-list ACL_REMOTE_VPN extended ip permit 10.10.10.0 255.255.255.0 any
Router(config)# access-list ACL_REMOTE_VPN extended ip deny any any

Router(config)# crypto dynamic-map DYNAMIC_MAP_VPN match address ACL_REMOTE_VPN
Router(config)# crypto dynamic-map DYNAMIC_MAP_VPN set transform-set TRANSFORM_SET_VPN
Router(config)# crypto dynamic-map DYNAMIC_MAP_VPN set reverse-route

Router(config)# crypto map OUT_SIDE_MAP 1 ipsec-isakmp dynamic DYNAMIC_MAP_VPN
Router(config)# crypto map OUT_SIDE_MAP interface outside

Router(config)# tunnel-group TEST_TUNNEL_REMOTE type ipsec-ra

Router(config)# tunnel-group TEST_TUNNEL_REMOTE general-attributes
Router(config-tunnel-gerneral)# address-pool TEST_POOL_REMOTE_VPN
Router(config-tunnel-gerneral)# authentication-server-group TEST_REMOTE_VPN

Router(config)# tunnel-group TEST_TUNNEL_REMOTE ipsec-attributes
pre-shared-key *
....

Tuy nhiên:

Khi áp đặt access-list vào crypto dynamic-map thì không connect được VPN được.

Còn nếu không áp đặt access-list vào crypto dynamic-map thì connect VPN bình thường, truy xuất mạng LAN bình thường. Nhưng không truy cập được INTERNET.

Nhờ anh hướng dẫn thêm.
Many thanks

nguyenquocle
04-06-2009, 04:25 PM
Nếu trường hợp bạn chỉ cần truy cập 1 số dịch vụ của Server trong mang sau khi VPN thì có 1 giải pháp khác là bạn sử dụng WEB VPN của Cisco có thể cấu hình trên ASA hoặc Router.

belugavn
05-06-2009, 03:51 PM
To nguyenquocle: Thanks bạn đã hướng dẫn.
Tuy nhiên mình muốn biết thêm cách để phân lọai traffic (encrypt hoặc không encrypt) để sử dụng split tunneling tốt hơn.

Thanks

phungngochung
06-06-2009, 02:50 AM
1 chút đóng góp ý kiến chủ quan:
trong chế độ mặc định thì tính năng split tunneling bị disable trên các thiết bị VPn,như Cisco VPN gateway,do 1 số traffic được gửi đi ko qua tunnel ở dạng clear-text nên việc quan trọng là cần 1 giải pháp firewall để bao vệ nội dụng dữ liệu từ client đó,một software firewall sẽ bảo vệ traffic khỏi các hacker.
Theo như mình nghĩ,nếu một mấy PC đã tunnel IPsec đến một Corporate Office (CO) có DNS được đặt internal thông qua 1 IPsec gateway,gateway này có thể đã gán 1 địa chỉ DNS Server internal của mạng bên trong đó.
Thông thường,các PC nếu thực hiện truy vấn tên miền của CO thì truy vấn đề sẽ được gửi trực tiếp đến DNS Server đã được chỉ định bởi IPsec gateway,nhưng nếu 1 truy vấn với tên miền công cộng thì trước tiên truy vấn đó được gửi tới internal DNS Server của CO,sau đó DNS Server này sẽ forwald tiếp đến DNS Server bên ngoài(DNS server của ISP),nhưng cơ chế này ko được tối ưu lắm,split DNS sẽ được sử dụng
1_Nếu sử dụng các thiết bị phần cứng mạng chuyên dụng cho VPN,thì IPsec gateway chỉ đơn giản là đẩy một bản ghi danh sách các địa chỉ DNS Server cho PC đó,bao gồm cả internal và external DNS để PC có thể truy vấn trực tiếp DNS external mà có thể ko qua tunnel.
2_ nếu là sử dụng các DNS Server như Microsoft 2003 hoặc Linux thì ta cần xây dựng 2 DNS Server để giải quyết tối ưu vấn đề này,1 là DNS Internla,2 là 1 DNS server public,2 DNS Server này sẽ luân phiên trao đổi các tranfers zore để các PC trong lẫn ngoài truy vấn nhanh chóng hơn,mà tunnel VPN ở đây có thể được tạo bởi ISA 2004 hoặc 2006
Tuỳ vào từng trường hợp để sử dụng

belugavn
07-06-2009, 12:53 PM
Mình đã tìm hiểu được vấn đề này, post lên cùng mọi người tham khảo.

Sau khi tạo access-list để phân lọai traffic (traffic nào đi vào tunnel, traffic nào không đi vào tunnel), mình sẽ áp đặt access-list này vào group-policy:


ASA(config)# access-list TEST_ACL extended permit ip <ip LAN> <ip pool cap phat cho client VPN>
ASA(config)# access-list TEST_ACL extended deny ip any any
ASA(config)# group-policy TEST_SPLIT_TUNNEL attributes
......
split-tunnel-network-list value TEST_ACL

thanhnam0707
11-06-2009, 11:30 AM
belugavn da giai quyet van de nay xong chua?

Thanks,

belugavn
15-06-2009, 10:47 AM
Mình đã tìm hiểu được vấn đề này, post lên cùng mọi người tham khảo.

Sau khi tạo access-list để phân lọai traffic (traffic nào đi vào tunnel, traffic nào không đi vào tunnel), mình sẽ áp đặt access-list này vào group-policy:


ASA(config)# access-list TEST_ACL extended permit ip <ip LAN> <ip pool cap phat cho client VPN>
ASA(config)# access-list TEST_ACL extended deny ip any any
ASA(config)# group-policy TEST_SPLIT_TUNNEL attributes
......
split-tunnel-network-list value TEST_ACL


Mình đã giải quyết được rồi nên mới viết lên đây để mọi người tham khảo
Regards

batigol
05-11-2009, 03:20 PM
Vấn đề split tunneling trong IPSec VPN


Split tunneling là quá trình gửi một vài traffic trên một tunnel và một vài traffic khác ở dạng clear text. Trong mô hình dùng remote access Ipsec VPN, việc sử dụng split tunneling là một chính sách được định nghĩa trên vpn gateway và sau đó áp đặt (push) xuống client. Trong cách hiện thực của cisco, mặc định split tunneling là tắt trong gateway. Vì vậy, khi Ipsec tunnel đã up giữa client và gateway, tất cả các traffic gửi từ client sẽ chui vào tunnel. Không có tuỳ chọn nào trên client cho phép thay đổi tình trạng này. Do đó, ta phải kiểm soát traffic nào sẽ được bảo vệ (đi vào tunnel).


Trong cisco, có hai loại lưu lượng là ngoại lệ đối với chính sách này:



* Arp: các client nếu dùng cổng Ethernet có thể học địa chỉ mac của thiết bị ở phía ISP.
* Dhcp: các client có thể xin địa chỉ thường là từ isp và sẽ renew khi địa chỉ hết hiệu lục.

Cấu hình trên VPN server lúc này như sau:


Creating Groups

Nếu bạn dùng local authorization trong câu lệnh aaa authorization, bạn phải định nghĩa các nhóm (group) một cách cục bộ trên router. Dùng đoạn cấu hình dưới đây để định nghĩa một nhóm Easy VPN server cho các người dùng:


Router(config)# ip local pool pool_name first_IP_address last_IP_address

Router(config)# crypto isakmp client configuration address-pool local pool_name

Router(config)# crypto isamkp client configuration group {group_name | default}

Router(config-isakmp-group)# key pre_shared_key

Router(config-isakmp-group)# pool pool_name

Router(config-isakmp-group)# domain domain_name

Router(config-isakmp-group)# dns 1st_DNS_server [2nd_DNS_server]

Router(config-isakmp-group)# split-dns domain_name

Router(config-isakmp-group)# wins 1st_WINS_server [2nd_WINS_server]

Router(config-isakmp-group)# include-local-lan

Router(config-isakmp-group)# acl ACL_name_or_#

Router(config-isakmp-group)# firewall are-u-there

Router(config-isakmp-group)# backup-gateway {IP_address | hostname}

Router(config-isakmp-group)# save-password

Router(config-isakmp-group)# pfs

Router(config-isakmp-group)# max-logins #_of_simultaneous_logins

Router(config-isakmp-group)# max-users #_of_users

Router(config-isakmp-group)# access-restrict interface_name

Router(config-isakmp-group)# group-lock

Router(config-isakmp-group)# exit

Lệnh acl cho phép ta chỉ ra nhiều cấu hình split tunneling phức tạp hơn. Với cấu hình này, bạn tham chiếu đến nhiều dạng acl như named, number. Các acl sẽ chỉ ra những lưu lượng nào sẽ được bảo vệ. Lệnh deny sẽ chỉ ra các lưu lượng gửi ở dạng clear text bởi client.

Router(config)# ip access-list extended splitengineering

Router(config-ext-nacl)# remark Protect this traffic

Router(config-ext-nacl)# permit ip 192.168.0.0 0.0.0.255 any

Router(config-ext-nacl)# remark Send all other traffic in clear-text

Router(config-ext-nacl)# deny ip any any

Chú ý rằng khi thiết lập ACL để chỉ ra split tunneliing, địa chỉ nguồn trong ACL là địa chỉ mà client được cấp và địa chỉ đích là địa chỉ của chính client.

Tóm lại, split tunneling giúp ta chỉ định rõ những traffic nào sẽ được mã hóa, những traffic nào gửi ở dạng không mã hóa, clear text. Việc phân loại thường dựa trên công cụ ACL.

Có một đoạn em chưa hiểu được đó là

chú ý rằng khi thiết lập ACL để chỉ ra split tunneliing, địa chỉ nguồn trong ACL là địa chỉ mà client được cấp và địa chỉ đích là địa chỉ của chính client.

Khi em dùng access để permit giử x.x.x.x (mạng cấp cho clien) và z.z.z.z (mạng của lan cần access) thì chỉ định rõ trong split thì có thể ra được internet (mở ipconfig ở máy vpn client thì chỉ cấp x.x.x.x và subnet mask ko có gateway, theo em đây là nguyên nhân ra được internet) nhưng lúc này lại ko access được lan

còn khi em ko dùng split thì có thể truy nhập lan nhưng ko ra được internet vì lúc này client được cấp ip và gateway đầy đủ là x.x.x.x và gateway là x.x.x.1

Thầy Minh trả lời giúp em với ạ?

batigol
05-11-2009, 03:29 PM
Sorry em chưa đọc kỹ. cam ơn bạn belugavn

thangvnpro
05-11-2009, 06:02 PM
hi,

Bạn tham khảo link sau:

http://www.cisco.com/en/US/products/hw/routers/ps274/products_configuration_example09186a0080819289.sht ml

đọc phần " background Information"

bye,
Thắng.

ngoleduong
09-08-2010, 06:09 PM
Xin mọi người giúp đỡ. Mình cũng bị tình trạng khi thêm ACL vào
ACL namlist permit ip_client_duoc_cap any

thì chỉ đi được internet thôi, không thấy được các máy trong local