Mengenai penetapan VLAN dinamis Dot1X

8

Situasi:

Saya mencoba membuat 802.1X bekerja untuk saya. Saya ingin server RADIUS secara dinamis menetapkan VLAN ke port berdasarkan pada atribut balasan RADIUS untuk pengguna tertentu. Saya memiliki sakelar HP E2620 dan server FreeRADIUS. Pemohon adalah mesin Windows 8.1

Saya merujuk dokumen ini di situs web freeradius.


Apa yang telah saya lakukan sejauh ini:

Pada FreeRADIUS saya membuat pengguna dengan parameter seperti itu:

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

Saya juga mencoba Tunnel-Pvt-Group-IDsebagai gantinya, tetapi tidak bekerja pada FreeRADIUS, hanya menggonggong pada saya (saya melihat ini pada sumber daya untuk mengkonfigurasi pada Microsoft NPS, salah satunya ). Saya juga mencoba nilai "802", 802, 6 untuk tipe medium tunnel.

Saya juga mencoba menggunakan nama VLAN yang sebenarnya alih-alih VLAN-ID sebagai nilai ID Grup. Bagaimanapun datatype-nya adalah string.

Saya mengkonfigurasi HP switch untuk menggunakan server RADIUS ini untuk AAA dan mengaturnya untuk port 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

Catatan:

  • Port 10 juga memiliki untagged VLAN 150 ditugaskan untuk itu: vlan 150 untagged 10. Dan saya tidak bisa menghilangkan tugas statis

  • Semua VLAN yang tercantum di atas hadir dalam basis data VLAN sakelar.

  • Setiap kali saya mencolokkan port ini, ia meminta kredensial; setelah saya berhasil dengan otentikasi itu hanya mengirim saya ke VLAN150 dan jika saya mencoba gagal saya sampai ke VLAN200.

  • Saya mengaktifkan otentikasi 802.1X pada koneksi Windows seperti dijelaskan di sini .

  • Saya mencoba mengaktifkan GVRP - tidak mengubah apa pun


Output perintah diagnostik / pertunjukan:

Penugasan VLAN statis untuk Port 10. VLAN 150 tidak bertanda

 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

Dalam show logging aku melihat ini:

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 keluaran:

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

Tes pengguna 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"

Ini yang saya lihat di TCPdump di server RADIUS. Saya menangkap lalu lintas UDP keluar dengan port sumber 1812. Ini yang saya dapatkan (jika itu benar-benar, tidak yakin bagaimana cara memeriksa itu ...)

      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

Debug:

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

Setelah itu saya mencabut dan menyambungkan kabel dan melakukan show debug bufferdan di sini adalah copy-paste . Ini aneh, tidak ada yang dikatakan tentang apa pun yang dikaitkan dengan VLAN.


Pertanyaan:

Apa yang saya lakukan salah?

Saya sudah membaca di banyak sumber bahwa jika RADIUS menetapkan saklar VLAN ID menggunakannya di tempat pertama. Kemudian jatuh kembali ke VLAN Resmi yang dikonfigurasi untuk Port-Access Authenticator jika otentikasi berhasil. Jika itu tidak ada, itu memberikan VLAN Tanpa Tag yang dikonfigurasi pada port. Mengapa saya tidak mendapatkan perilaku itu?

Saya agak mulai berpikir atribut Tunnel-Private-Group-Idtidak didukung pada switch ini. Tampaknya setiap sumber merujuk Tunnel-Pvt-Group-Idsebagai gantinya (mengkonfigurasi pada Microsoft). Sayang sekali saya tidak punya Windows Server untuk diperiksa.

Mungkin itu terkait firmware? Belum mencoba memutakhirkan, saya menggunakan RA_15_06_0009.swi dan ada RA_15_14_0007.swi sudah ada di sana


Memperbarui

Baru saja mencoba 3500yl-24G-PWRmodel dan tetap tidak berhasil. Jadi .. Saya kira, switch tidak mendapatkan konfigurasi dari server RADIUS (atau apakah saya menggunakan atribut atau operator yang salah?). Bagaimana saya bisa memecahkan masalah itu?

Alex
sumber
Apakah Anda memiliki port di vlan100 sebagai tag?
some_guy_long_gone
Sudah lama sejak saya bermain di switch HP, tetapi bagi saya sepertinya harus ada aaa port-access authenticator 10 auth-vid 150pernyataan juga. IIRC, ini akan memberitahu saklar untuk menggunakan 150 untuk perangkat terotentikasi kecuali mendapat nilai yang berbeda dari RADIUS. Tanpa ini, saya menduga itu hanya akan menggunakan nilai port yang dikonfigurasi. Tidak memposting sebagai jawaban karena saya bekerja dari memori dan sering gagal saat ini. Jika berhasil, beri tahu saya dan saya akan posting sebagai jawaban.
YPelajari
* legioxi, tidak ada port yang diatur ke Untlan VLAN 150. * YPelajari, saya tidak memerlukannya untuk menetapkan VLAN tertentu. Saya ingin itu menetapkan VLAN tergantung pada apa yang diotentikasi pengguna. Auth-vid menjadi prioritas kedua setelah RADIUS (yang tidak berfungsi). Jika tidak ada Auth-vid diatur, maka ia memang memilih VLAN untagged yang dikonfigurasi.
Alex

Jawaban:

6

Alex, tolonglah di sana!

Saya telah membangun lingkungan pengujian untuk Anda, jadi saya menggunakan freeradius 2.1.12 + dfsg-1.2 (pada debian), dan ganti hp 2650. Saya baru saja mengulangi konfigurasi Anda, dan tidak memiliki masalah dengan ini. Uji saya mendapatkan ip 10.0.10.29, tes freeradius ip 192.168.2.60.

konfigurasi confurve:

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 / pengguna:

<...>
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
}
<...>

Dan saya sudah menggunakan manual ini, untuk mengaktifkan 8021x di windows:

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

Tapi, saya sudah menonaktifkan penggunaan kredit pengguna yang dicatat.

Jadi, jika kredit pengguna benar, saya punya pesan ini di /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)

dan pada ive switch saya mendapat:

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

Jika kredit salah:

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

mungkin Anda belum mengaktifkan 8021x di windows? Saya harap ini membantu Anda.

pyatka
sumber
Hei teman, terima kasih! Itu sangat dihargai! Namun, saya melakukan segalanya untuk mengaktifkan dot1x di Windows. Saya perhatikan Anda memilih VLAN 100 sebagai VLAN tanpa tanda default pada switchport yang Anda coba sambungkan. Itu bekerja untuk saya juga. Saya mendapatkan VLAN tanpa tanda yang dikonfigurasi pada switchport ketika saya berhasil. Tetapi bagaimana jika Anda mengatur VLAN untagged untuk port Anda ke 1 dan mencoba untuk menetapkan VLAN 100 melalui RADIUS? Apakah itu berhasil untuk Anda? Bagaimana jika saya memiliki beberapa pengguna yang berbeda dengan nilai Tunnel-Private-Group-Id yang berbeda?
Alex
1
Dipahami :) Saya baru saja melarikan diri dari pekerjaan saya, jika tidak ada yang tidak membantu Anda, saya akan mencoba melakukan ini pada hari Senin (ketika saya bisa mendapatkan akses ke testlab saya, itu terisolasi, sayangnya)
pyatka
1
belum ada kesuksesan ... MAC-auth berfungsi dengan baik (set port di tujuan apa pun unta tanpa tag), tetapi 8021x (atau keduanya dengan MAC-auth) tidak berfungsi - dalam kombinasi segala sesuatu yang dapat disetel ;-) I` Saya akan mencoba melakukan hal yang sama dengan OS klien lain (bukan windows), mungkin ini kuncinya. Juga, itu terlihat sangat aneh, karena saya memiliki kesedihan lalu lintas-radius, dan ihmo, semua pesan tampaknya benar ...
pyatka
2

Wow, saya tidak akan pernah memikirkan yang satu ini. Itu hanya solusi acak.

Jadi, masalahnya adalah pada authorizebagian dalam defaultkonfigurasi situs saya di /etc/raddb/sites-enabled/default, itu agak standar. Saya tidak benar-benar tahu ada apa dengan itu (jika Anda, kawan, tahu, mengomentari itu, tolong), akan melakukan penelitian tentang itu; ini dia:

eap {
    ok = return
}

Saya berkomentar dan diganti hanya dengan:

eap

Saya tidak berharap lagi untuk membuatnya bekerja dan kemudian saya menghubungkan kembali dan ... itu terjadi, hanya secara acak dan saya sangat bersemangat sekarang! Saya mendapatkan VLAN secara dinamis:

Debug:

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 - masih menampilkan VLAN 200 Tidak Resmi dan VLAN Resmi 150

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 - Dan VLAN yang tidak ditandai pada port 10 diatur ke 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

Juga, jika Anda ingin itu berfungsi, Anda harus membuat semua VLAN yang diperlukan pada switch, jika tidak, Anda akan mendapatkan hal-hal semacam ini:

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.

dan Windows hanya akan mengatakan: Authentication failedyang agak membingungkan juga.

Tidak cukup untuk membuatnya bekerja dengan VLAN yang tidak dikenal meskipun GVRP diaktifkan, aaa port-access gvrp-vlanstelah ditetapkan dan saya juga secara eksplisit diatur unknown-vlans learnpada antarmuka 10, tapi oh well ... nvm.

Alex
sumber
1

Anda perlu menambahkan perintah berikut:

aaa port-access authenticator 10 auth-vid 150

Ini akan memberi tahu saklar bahwa port 10 akan menggunakan VLAN yang ditetapkan auth-vid untuk perangkat yang diotentikasi kecuali jika mendapat nilai yang berbeda dari RADIUS. Tanpa ini, itu hanya akan menggunakan nilai port yang dikonfigurasi dan mengabaikan tugas VLAN yang disediakan RADIUS.

Saya melakukan penggalian dan menemukan berita gembira ini di salah satu dokumen HP saya yang tersimpan:

Jika server RADIUS menentukan VLAN untuk pemohon terotentikasi yang terhubung ke port autentikator 802.1X, penugasan VLAN ini mengesampingkan penugasan VLAN Klien-Klien yang dikonfigurasi pada port authenticator. Ini karena kedua VLAN tidak bertanda, dan sakelar hanya memungkinkan satu keanggotaan VLAN yang tidak bertanda per-port. Misalnya, Anda mengonfigurasikan port 4 untuk menempatkan pemohon yang diautentikasi dalam VLAN 20. Jika server RADIUS mengautentikasi pemohon “A” dan menetapkan pemohon ini ke VLAN 50, maka port tersebut dapat mengakses VLAN 50 selama durasi sesi klien. Ketika klien terputus dari port, maka port drop tugas ini dan hanya menggunakan keanggotaan VLAN yang dikonfigurasi secara statis.

YPelajari
sumber
Sayangnya, itu masih tidak berhasil. Saya mendapatkan VLAN 150 dan bukan yang RADIUS
Alex
Ingatlah bahwa saat memecahkan masalah seperti ini, mungkin ada lebih dari satu kesalahan dalam konfigurasi. Apakah ini mengubah output lainnya ( show loggingatau show port-access authenticatormisalnya)? Sudahkah Anda menggabungkan ini dengan beberapa perubahan lain yang telah Anda coba sebelumnya? Mungkin salah satu yang Anda singkirkan diperlukan, tetapi kehilangan bagian lain juga sebelum bekerja.
YPelajari
Ya, saya mencoba untuk menggabungkan .. Tampilkan perintah masih menunjukkan perilaku / keluaran yang sama. Tidak bisa memikirkan apa pun lagi. Saya kira perintah khusus ini bukan masalah sama sekali. Ini hanya prioritas berikutnya setelah VADI yang ditugaskan RADIUS dan tidak mengubah apa pun. Masalahnya, IMO, adalah bahwa switch tidak mendapatkan atribut RADIUS untuk VLAN atau mereka tidak diproses atau entah bagaimana salah. Maksudku, lihat betapa sederhananya konfigurasi itu: integratingit.wordpress.com/2012/07/05/…
Alex