Về việc gán Vlan động Dot1X


8

Tình hình:

Tôi đang cố gắng để có được 802.1X làm việc cho tôi. Tôi muốn máy chủ RADIUS tự động gán Vlan cho các cổng dựa trên thuộc tính trả lời RADIUS cho người dùng cụ thể. Tôi có bộ chuyển đổi HP E2620 và máy chủ FreeRADIUS. Người thay thế là một máy Windows 8.1

Tôi đã đề cập đến tài liệu này trên trang web freeradius.


Những gì tôi đã làm cho đến nay:

Trên FreeRADIUS tôi đã tạo một người dùng với các tham số như vậy:

dot1xtest    User-Password := "secret"
             Tunnel-Type = "VLAN",
             Tunnel-Medium-Type = "IEEE-802",
             Tunnel-Private-Group-ID = "100"

Tôi cũng đã thử Tunnel-Pvt-Group-IDthay thế, nhưng nó không hoạt động trên FreeRADIUS, chỉ sủa vào tôi (tôi đã thấy điều này trên các tài nguyên để định cấu hình trên Microsoft NPS, một trong số này ). Ngoài ra, tôi đã thử các giá trị "802", 802, 6 cho loại phương tiện đường hầm.

Ngoài ra, tôi đã cố gắng sử dụng tên Vlan thực tế thay vì Vlan-ID làm giá trị ID nhóm. Dù sao kiểu dữ liệu của nó là chuỗi.

Tôi đã cấu hình công tắc HP để sử dụng máy chủ RADIUS này cho AAA và thiết lập công tắc này cho cổng 10:

aaa port-access gvrp-vlans
aaa authentication port-access eap-radius
aaa port-access authenticator 10
aaa port-access authenticator 10 auth-vid 150
aaa port-access authenticator 10 unauth-vid 200
aaa port-access authenticator active

Vlan:

VLAN 100 - VLAN which I want to get after authentication.
VLAN 150 - VLAN which I get now, because my config is not working
VLAN 200 - Unauthorized VLAN which is used on auth. failure

Ghi chú:

  • Cổng 10 cũng có Vlan 150 chưa được gán cho nó : vlan 150 untagged 10. Và tôi không thể thoát khỏi sự phân công tĩnh

  • Tất cả các Vlan được liệt kê ở trên đều có trong cơ sở dữ liệu Vlan của switch.

  • Bất cứ khi nào tôi cắm vào cổng này, nó sẽ hỏi tôi thông tin đăng nhập; Sau khi tôi thành công với xác thực, nó chỉ gửi tôi đến Vlan150 và nếu tôi thất bại, tôi sẽ truy cập Vlan200.

  • Tôi đã kích hoạt xác thực 802.1X trên kết nối Windows giống như được mô tả ở đây .

  • Tôi đã thử kích hoạt GVRP - nó không thay đổi bất cứ điều gì


Đầu ra lệnh chẩn đoán / hiển thị:

Gán tĩnh Vlan cho Cổng 10. Vlan 150 không được gắn thẻ

 SW # show vlans ports 10 detail

 Status and Counters - VLAN Information - for ports 10

  VLAN ID Name                             | Status     Voice Jumbo Mode
  ------- -------------------------------- + ---------- ----- ----- --------
  150     VLAN150                          | Port-based No    No    Untagged

Trong show logging tôi thấy điều này:

I 08/28/14 08:29:24 00077 ports: port 10 is now off-line
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by AAA
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by STP
I 08/28/14 08:29:29 00076 ports: port 10 is now on-line
I 08/28/14 08:29:29 00001 vlan: VLAN200 virtual LAN enabled
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by AAA
I 08/28/14 08:29:29 00002 vlan: UNUSED virtual LAN disabled
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by STP
I 08/28/14 08:29:29 00076 ports: port 10 is now on-line
I 08/28/14 08:29:29 00001 vlan: UNUSED virtual LAN enabled
I 08/28/14 08:29:47 00002 vlan: UNUSED virtual LAN disabled

show port-access authenticator đầu ra:

SW # show port-access authenticator

 Port Access Authenticator Status

  Port-access authenticator activated [No] : Yes
  Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : Yes

       Auths/  Unauth  Untagged Tagged           % In  RADIUS Cntrl
  Port Guests  Clients VLAN     VLANs  Port COS  Limit ACL    Dir
  ---- ------- ------- -------- ------ --------- ----- ------ -----
  10   1/0     0       150      No     No        No    No     both

Kiểm tra người dùng RADIUS:

Linux-server # radtest dot1xtest secret localhost 0 secretkey
Sending Access-Request of id 158 to 127.0.0.1 port 1812
        User-Name = "dot1xtest"
        User-Password = "secret"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=158, length=37
        Tunnel-Type:0 = VLAN
        Tunnel-Medium-Type:0 = 802
        Tunnel-Private-Group-Id:0 = "100"

Đây là những gì tôi thấy trong TCPdump trên máy chủ RADIUS. Tôi đã chụp lưu lượng truy cập UDP đi với cổng nguồn 1812. Đó là những gì công tắc của tôi nhận được (nếu thực tế, không biết cách kiểm tra ...)

      Tunnel Type Attribute (64), length: 6, Value: Tag[Unused]#13
        0x0000:  0000 000d
      Tunnel Medium Attribute (65), length: 6, Value: Tag[Unused]802
        0x0000:  0000 0006
      Tunnel Private Group Attribute (81), length: 5, Value: 100
        0x0000:  3130 30

Gỡ lỗi:

debug security radius-server
debug security port-access authenticator
debug destination buffer

Sau đó tôi rút phích cắm và cắm cáp và đã làm show debug bufferđây là bản sao dán của nó . Thật kỳ lạ, không có gì được nói về bất kỳ quy kết nào liên quan đến Vlan.


Câu hỏi:

Tôi đang làm gì sai?

Tôi đã đọc trong một loạt các tài nguyên rằng nếu RADIUS chỉ định một công tắc Vlan ID sẽ sử dụng tài nguyên đó ở vị trí đầu tiên. Sau đó, nó rơi trở lại Vlan ủy quyền được định cấu hình cho Trình xác thực truy cập cổng nếu xác thực thành công. Nếu không có, nó gán Vlan không được cấu hình trên cổng. Tại sao tôi không có hành vi đó?

Tôi bắt đầu nghĩ rằng thuộc tính Tunnel-Private-Group-Idkhông được hỗ trợ trên các thiết bị chuyển mạch này. Dường như mọi tài nguyên đều đề cập đến Tunnel-Pvt-Group-Idthay vào đó (cấu hình trên Microsoft). Quá tệ, tôi không có Windows Server để kiểm tra.

Có lẽ nó liên quan đến phần sụn? Chưa thử nâng cấp, tôi sử dụng RA_15_06_0009.swi và đã có RA_15_14_0007.swi ngoài đó rồi


Cập nhật

Chỉ cần thử trên một 3500yl-24G-PWRmô hình và vẫn không hoạt động. Vì vậy, tôi đoán, các công tắc chỉ không nhận cấu hình từ máy chủ RADIUS (hoặc tôi đã sử dụng các thuộc tính hoặc toán tử không chính xác?). Làm thế nào tôi có thể khắc phục sự cố đó?


Bạn có cổng trên vlan100 như được gắn thẻ?
some_guy_long_gone

Đã được một thời gian kể từ khi tôi chơi trên các thiết bị chuyển mạch HP, nhưng dường như tôi cũng nên có một aaa port-access authenticator 10 auth-vid 150tuyên bố. IIRC, điều này sẽ cho biết công tắc sử dụng 150 cho các thiết bị được xác thực trừ khi nó nhận được giá trị khác với RADIUS. Không có điều này, tôi nghi ngờ nó sẽ chỉ sử dụng giá trị cổng được cấu hình. Không đăng bài như một câu trả lời vì tôi đang làm việc mất trí nhớ và ngày nay nó thường thất bại. Nếu nó hoạt động, cho tôi biết và tôi sẽ đăng dưới dạng câu trả lời.
YLearn

* legioxi, không có cổng nào được đặt thành Vlan 150 không được đánh dấu. * YLearn, tôi không cần nó để gán một Vlan cụ thể. Tôi muốn nó chỉ định Vlan tùy thuộc vào những gì người dùng xác thực. Auth-vid được ưu tiên thứ hai sau RADIUS (không hoạt động). Nếu không có Auth-vid được đặt, thì nó thực sự chọn Vlan không được cấu hình.
Alex

Câu trả lời:


6

Alex, xin chào!

Ive đã xây dựng môi trường thử nghiệm cho bạn, vì vậy tôi đang sử dụng freeradius 2.1.12 + dfsg-1.2 (trên debian) và chuyển hp 2650. Tôi vừa lặp lại cấu hình của bạn, và không gặp vấn đề gì với điều này. Thử nghiệm của tôi đã kiểm tra ip 10.0.10,29, thử nghiệm freeradius ip 192.168.2.60.

cấu hình mua sắm:

Running configuration:

; J4899A Configuration Editor; Created on release #H.10.83

hostname "ProCurve Switch 2650"
interface 1
   no lacp
exit
interface 2
   no lacp
exit
interface 3
   no lacp
exit
interface 4
   no lacp
exit
interface 5
   no lacp
exit
interface 6
   no lacp
exit
interface 7
   no lacp
exit
interface 8
   no lacp
exit
interface 9
   no lacp
exit
interface 10
   no lacp
exit
snmp-server community "public" Unrestricted
vlan 1
   name "DEFAULT_VLAN"
   untagged 11-50
   ip address dhcp-bootp
   no untagged 1-10
   exit
vlan 100
   name "success"
   untagged 1-10
   exit
vlan 200
   name "fail"
   exit
aaa authentication port-access eap-radius
radius-server host 192.168.2.60 key test
aaa port-access authenticator 1-10
aaa port-access authenticator 1 unauth-vid 200
aaa port-access authenticator 2 unauth-vid 200
aaa port-access authenticator 3 unauth-vid 200
aaa port-access authenticator 4 unauth-vid 200
aaa port-access authenticator 5 unauth-vid 200
aaa port-access authenticator 6 unauth-vid 200
aaa port-access authenticator 7 unauth-vid 200
aaa port-access authenticator 8 unauth-vid 200
aaa port-access authenticator 9 unauth-vid 200
aaa port-access authenticator 10 unauth-vid 200
aaa port-access authenticator active

/ etc / freeradius / người dùng:

<...>
testuser User-Password := test
        Tunnel-Type = VLAN,
        Tunnel-Medium-Type = IEEE-802,
        Tunnel-Private-Group-Id = "100"
<...>

/etc/freeradius/radiusd.conf:

<...>
client switch {
        ipaddr          = 10.0.10.29
        secret          = test
        require_message_authenticator = no
        nastype     = other
}
<...>

Và tôi đã sử dụng hướng dẫn này, để kích hoạt 8021x trong windows:

http://windows.microsoft.com/en-us/windows/enable-802-1x-authentication#1TC=windows-7 

Nhưng, tôi đã vô hiệu hóa việc sử dụng tín dụng người dùng đã đăng nhập.

Vì vậy, nếu tín dụng của người dùng là chính xác, tôi có thông báo này trong /var/log/freeradius/radius.log

tail -f /var/log/freeradius/radius.log
Fri Sep  5 12:54:14 2014 : Auth: Login OK: [testuser/<via Auth-Type = EAP>] (from client switch port 0 via TLS tunnel)
Fri Sep  5 12:54:14 2014 : Auth: Login OK: [testuser/<via Auth-Type = EAP>] (from client switch port 1 cli b4-99-ba-5a-bb-65)

và trên công tắc của tôi, tôi đã nhận được:

ProCurve Switch 2650(eth-1)# sh vlans ports 1

 Status and Counters - VLAN Information - for ports 1

  802.1Q VLAN ID Name         Status       Voice
  -------------- ------------ ------------ -----
  100            success      Port-based   No

Nếu tín dụng không chính xác:

Fri Sep  5 12:56:06 2014 : Auth: Login incorrect: [sasdasd/<via Auth-Type = EAP>] (from client switch port 0 via TLS tunnel)
Fri Sep  5 12:56:06 2014 : Auth: Login incorrect: [sasdasd/<via Auth-Type = EAP>] (from client switch port 1 cli b4-99-ba-5a-bb-65)


ProCurve Switch 2650(eth-1)# sh vlans ports 1

 Status and Counters - VLAN Information - for ports 1

  802.1Q VLAN ID Name         Status       Voice
  -------------- ------------ ------------ -----
  200            fail         Port-based   No

Có lẽ bạn chưa kích hoạt 8021x trong windows? Tôi hy vọng điều này sẽ giúp bạn người đàn ông.


Này anh bạn, cảm ơn! Điều đó rất được đánh giá cao! Tuy nhiên, tôi đã làm mọi thứ để kích hoạt dot1x trên Windows. Tôi nhận thấy rằng bạn đã chọn Vlan 100 làm Vlan mặc định không được gắn thẻ trên tổng đài mà bạn đang cố gắng kết nối. Nó làm việc cho tôi theo cách đó quá. Tôi nhận được một Vlan chưa được cấu hình trên một tổng đài khi tôi thành công. Nhưng nếu bạn đặt Vlan không được gắn thẻ cho cổng của bạn thành 1 và thử gán Vlan 100 qua RADIUS thì sao? Điều đó có làm việc cho bạn? Điều gì xảy ra nếu tôi có nhiều người dùng khác nhau với các giá trị Id-Private-Group-Id khác nhau?
Alex

1
Hiểu rồi :) Tôi vừa mới thoát khỏi công việc của mình, nếu không ai giúp bạn, tôi sẽ cố gắng làm điều này vào thứ hai (khi tôi có thể truy cập vào testlab của mình, thật không may)
pyatka

1
vẫn chưa có thành công nào ... MAC-auth hoạt động rất tốt (cổng đặt trong bất kỳ mục tiêu nào không được vlan), nhưng 8021x (hoặc cả hai với MAC-auth) không hoạt động - trong mọi kết hợp của mọi thứ có thể được điều chỉnh ;-) I` Sẽ cố gắng làm tương tự với một hệ điều hành khách khác (không phải windows), có thể đây là một khóa. Ngoài ra, nó trông rất lạ, bởi vì tôi có các lưu lượng bán kính và ihmo, tất cả các tin nhắn dường như đều chính xác ...
pyatka

2

Wow, tôi sẽ không bao giờ mặc dù điều này. Đó chỉ là một giải pháp ngẫu nhiên.

Vì vậy, vấn đề là với authorizephần trong defaultcấu hình trang web của tôi tại /etc/raddb/sites-enabled/default, nó là loại mặc định. Tôi thực sự không biết điều gì xảy ra với điều đó (nếu bạn, các bạn, biết, bình luận về điều đó, làm ơn), sẽ thực hiện một số nghiên cứu về điều đó; đây là:

eap {
    ok = return
}

Tôi đã nhận xét điều này và thay thế bằng chỉ:

eap

Tôi đã không hy vọng nữa để nó hoạt động và sau đó tôi đã kết nối lại và ... nó đã xảy ra, chỉ là ngẫu nhiên và bây giờ tôi rất phấn khích! Tôi đã được chỉ định một Vlan động:

Gỡ lỗi:

0001:03:15:51.07 RAD  mRadiusCtr:ACCESS REQUEST id: 194 to 192.168.1.27,
   session: 56, access method: PORT-ACCESS, User-Name: dot1x,
   Calling-Station-Id: dead00-00beef, NAS-Port-Id: 10, NAS-IP-Address:
   192.168.100.17.
0001:03:15:51.10 RAD  tRadiusR:ACCESS ACCEPT id: 194 from 192.168.1.27 received.
0001:03:15:51.10 1X   m8021xCtrl:Port 10: received Success for client
   dead00-00beef, finished authentication session.
0001:03:15:51.10 1X   m8021xCtrl:Port: 10 MAC: dead00-00beef RADIUS Attributes,
   vid: 100.
0001:03:15:51.10 1X   m8021xCtrl:Port 10: starting session for client
   dead00-00beef.

SW # show port-access authenticator 10 vlan - vẫn hiển thị Vlan 200 trái phép và Vlan 150 được ủy quyền

Port Access Authenticator VLAN Configuration

  Port-access authenticator activated [No] : Yes
  Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No

       Access  Unauth  Auth
  Port Control VLAN ID VLAN ID
  ---- ------- ------- -------
  10   Auto    200     150

SW # show vlans ports 10 detail - Và Vlan không được gắn thẻ trên cổng 10 đã được đặt thành VLAN 100

 Status and Counters - VLAN Information - for ports 10

  VLAN ID Name                 | Status     Voice Jumbo Mode
  ------- -------------------- + ---------- ----- ----- --------
  100     VLAN100              | Port-based No    No    Untagged

SW # show port-access authenticator

  Port Access Authenticator Status

  Port-access authenticator activated [No] : Yes
  Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No

       Auths/  Unauth  Untagged Tagged           % In  RADIUS Cntrl
  Port Guests  Clients VLAN     VLANs  Port COS  Limit ACL    Dir
  ---- ------- ------- -------- ------ --------- ----- ------ -----
  10   1/0     0       100      No     No        No    No     both

Ngoài ra, nếu bạn muốn nó hoạt động, bạn phải tạo tất cả các Vlan cần thiết trên công tắc, nếu không bạn sẽ có được loại công cụ này:

W 09/12/14 12:47:57 02400 dca: 8021X client, RADIUS-assigned VID validation
            error. MAC DEAD0000BEEF port 10 VLAN-Id 0 or unknown.

và Windows sẽ chỉ nói: Authentication failedđó cũng là một loại khó hiểu.

Không hoàn toàn làm cho nó hoạt động với các Vlan không xác định mặc dù thực tế GVRP đã được bật, aaa port-access gvrp-vlansđã được đặt và tôi cũng thiết lập rõ ràng unknown-vlans learntrên giao diện 10, nhưng ồ ... nvm.


1

Bạn cần thêm lệnh sau:

aaa port-access authenticator 10 auth-vid 150

Điều này sẽ cho công tắc biết rằng cổng 10 sẽ sử dụng Vlan được gán auth-vid cho các thiết bị được xác thực trừ khi nó nhận được giá trị khác với RADIUS. Nếu không có điều này, nó sẽ chỉ sử dụng giá trị cổng được cấu hình và bỏ qua mọi nhiệm vụ Vlan do RADIUS cung cấp.

Tôi đã thực hiện một số hoạt động đào và tìm thấy mẩu tin này trong một trong những tài liệu HP đã lưu của mình:

Nếu máy chủ RADIUS chỉ định Vlan cho một thiết bị thay thế được xác thực được kết nối với cổng xác thực 802.1X, thì việc gán Vlan này sẽ ghi đè bất kỳ nhiệm vụ Vlan ủy quyền-máy khách nào được định cấu hình trên cổng xác thực. Điều này là do cả hai Vlan đều không được gắn thẻ và chuyển đổi chỉ cho phép một thành viên Vlan không được gắn thẻ trên mỗi cổng. Ví dụ: giả sử bạn đã định cấu hình cổng 4 để đặt các chất thay thế được xác thực trong Vlan 20. Nếu máy chủ RADIUS xác thực thay thế, có thể sử dụng thay thế này cho Vlan 50, thì cổng có thể truy cập Vlan 50 trong suốt thời gian của phiên khách. Khi máy khách ngắt kết nối với cổng, thì cổng sẽ loại bỏ các nhiệm vụ này và chỉ sử dụng các thành viên Vlan mà nó được cấu hình tĩnh.


Thật không may, nó vẫn không hoạt động. Tôi được chỉ định Vlan 150 chứ không phải RADIUS
Alex

Hãy nhớ rằng trong khi khắc phục sự cố như thế này, có thể có nhiều hơn một lỗi trong cấu hình. Điều này có thay đổi bất kỳ đầu ra nào khác ( show logginghoặc show port-access authenticatorví dụ) không? Bạn đã kết hợp điều này với một số thay đổi khác mà bạn đã thử trước đây chưa? Có lẽ một cái mà bạn loại trừ là cần thiết, nhưng cũng thiếu một mảnh khác trước khi làm việc.
YLearn

Vâng, tôi đã cố gắng kết hợp .. Hiển thị các lệnh vẫn hiển thị cùng hành vi / đầu ra. Không thể nghĩ gì thêm nữa. Tôi đoán lệnh cụ thể này hoàn toàn không phải là vấn đề. Nó chỉ là ưu tiên tiếp theo sau Vlan được gán RADIUS và không thay đổi bất cứ điều gì. Vấn đề, IMO, là công tắc đó không nhận được các thuộc tính RADIUS cho Vlan hoặc chúng không được xử lý hoặc bằng cách nào đó không chính xác. Ý tôi là, hãy xem cấu hình đó đơn giản như thế nào: integratingit.wordpress.com/2012/07/05/
Alex
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.