קביעת תצורה של 802.1X במתגי Cisco באמצעות Failover NPS (Windows RADIUS עם AD)

קביעת תצורה של 802.1X במתגי Cisco באמצעות Failover NPS (Windows RADIUS עם AD)
הבה נשקול הלכה למעשה את השימוש ב-Windows Active Directory + NPS (2 שרתים להבטחת סובלנות תקלות) + תקן 802.1x לבקרת גישה ואימות משתמשים - מחשבי תחום - מכשירים. ניתן להתמצא בתיאוריה לפי התקן בוויקיפדיה, בקישור: IEEE 802.1X

מכיוון שה"מעבדה" שלי מוגבלת במשאבים, התפקידים של NPS ובקר התחום תואמים, אבל אני ממליץ לך עדיין להפריד בין שירותים קריטיים כאלה.

אני לא מכיר דרכים סטנדרטיות לסנכרן תצורות (מדיניות) של Windows NPS, אז נשתמש בסקריפטים של PowerShell שהושקו על ידי מתזמן המשימות (המחבר הוא עמיתי לשעבר). עבור אימות של מחשבי תחום ועבור מכשירים שאינם יכולים 802.1x (טלפונים, מדפסות וכו'), תוגדר מדיניות קבוצתית ויווצרו קבוצות אבטחה.

בסוף המאמר, אספר לכם על כמה מהמורכבויות בעבודה עם 802.1x - כיצד ניתן להשתמש במתגים לא מנוהלים, ACLs דינמיים וכו'. אחלוק מידע על ה"תקלות" שנתפסו. .

נתחיל בהתקנה והגדרת תצורה של NPS ב-Failover ב-Windows Server 2012R2 (הכל זהה ב-2016): דרך מנהל השרת -> אשף הוסף תפקידים ותכונות, בחר רק בשרת מדיניות רשת.

קביעת תצורה של 802.1X במתגי Cisco באמצעות Failover NPS (Windows RADIUS עם AD)

או באמצעות PowerShell:

Install-WindowsFeature NPAS -IncludeManagementTools

הבהרה קטנה - שכן עבור EAP מוגן (PEAP) אתה בהחלט צריך תעודה המאשרת את האותנטיות של השרת (עם זכויות שימוש מתאימות), אשר יהיה מהימן במחשבי הלקוח, ואז סביר להניח שתצטרך להתקין את התפקיד רשות אישורים. אבל אנחנו נניח את זה CA כבר התקנת את זה...

בואו נעשה את אותו הדבר בשרת השני. בואו ניצור תיקיה לסקריפט C:Scripts בשני השרתים ותיקיית רשת בשרת השני SRV2NPS-config$

בואו ניצור סקריפט PowerShell בשרת הראשון C:ScriptsExport-NPS-config.ps1 עם התוכן הבא:

Export-NpsConfiguration -Path "SRV2NPS-config$NPS.xml"

לאחר מכן, בואו נגדיר את המשימה ב-Task Sheduler: "ייצוא-NpsConfiguration"

powershell -executionpolicy unrestricted -f "C:ScriptsExport-NPS-config.ps1"

הפעל עבור כל המשתמשים - הפעל עם הזכויות הגבוהות ביותר
יומי - חזור על המשימה כל 10 דקות. תוך 8 שעות

ב-NPS הגיבוי, הגדר את ייבוא ​​התצורה (מדיניות):
בואו ניצור סקריפט PowerShell:

echo Import-NpsConfiguration -Path "c:NPS-configNPS.xml" >> C:ScriptsImport-NPS-config.ps1

ומשימה לביצוע כל 10 דקות:

powershell -executionpolicy unrestricted -f "C:ScriptsImport-NPS-config.ps1"

הפעל עבור כל המשתמשים - הפעל עם הזכויות הגבוהות ביותר
יומי - חזור על המשימה כל 10 דקות. תוך 8 שעות

כעת, כדי לבדוק, בואו נוסיף ל-NPS באחד השרתים(!) כמה מתגים בלקוחות RADIUS (IP ו-Shared Secret), שתי מדיניות בקשת חיבור: WIRED-Connect (מצב: "סוג יציאת NAS הוא Ethernet") ו WiFi-Enterprise (מצב: "סוג יציאת NAS הוא IEEE 802.11"), כמו גם מדיניות רשת גישה להתקני רשת של Cisco (מנהלי רשת):

Условия:
Группы Windows - domainsg-network-admins
Ограничения:
Методы проверки подлинности - Проверка открытым текстом (PAP, SPAP)
Параметры:
Атрибуты RADIUS: Стандарт - Service-Type - Login
Зависящие от поставщика - Cisco-AV-Pair - Cisco - shell:priv-lvl=15

בצד המתג, ההגדרות הבאות:

aaa new-model
aaa local authentication attempts max-fail 5
!
!
aaa group server radius NPS
 server-private 192.168.38.151 auth-port 1812 acct-port 1813 key %shared_secret%
 server-private 192.168.10.151 auth-port 1812 acct-port 1813 key %shared_secret%
!
aaa authentication login default group NPS local
aaa authentication dot1x default group NPS
aaa authorization console
aaa authorization exec default group NPS local if-authenticated
aaa authorization network default group NPS
!
aaa session-id common
!
identity profile default
!
dot1x system-auth-control
!
!
line vty 0 4
 exec-timeout 5 0
 transport input ssh
 escape-character 99
line vty 5 15
 exec-timeout 5 0
 logging synchronous
 transport input ssh
 escape-character 99

לאחר ההגדרה, לאחר 10 דקות, כל פרמטרי clientspolicy אמורים להופיע ב-NPS הגיבוי ונוכל להיכנס למתגים באמצעות חשבון ActiveDirectory, חבר בקבוצת domainsg-network-admins (שיצרנו מראש).

נעבור להגדרת Active Directory - צור מדיניות קבוצתית וסיסמא, צור את הקבוצות הדרושות.

מדיניות קבוצתית מחשבים-8021x-הגדרות:

Computer Configuration (Enabled)
   Policies
     Windows Settings
        Security Settings
          System Services
     Wired AutoConfig (Startup Mode: Automatic)
Wired Network (802.3) Policies


NPS-802-1x

Name	NPS-802-1x
Description	802.1x
Global Settings
SETTING	VALUE
Use Windows wired LAN network services for clients	Enabled
Shared user credentials for network authentication	Enabled
Network Profile
Security Settings
Enable use of IEEE 802.1X authentication for network access	Enabled
Enforce use of IEEE 802.1X authentication for network access	Disabled
IEEE 802.1X Settings
Computer Authentication	Computer only
Maximum Authentication Failures	10
Maximum EAPOL-Start Messages Sent	 
Held Period (seconds)	 
Start Period (seconds)	 
Authentication Period (seconds)	 
Network Authentication Method Properties
Authentication method	Protected EAP (PEAP)
Validate server certificate	Enabled
Connect to these servers	 
Do not prompt user to authorize new servers or trusted certification authorities	Disabled
Enable fast reconnect	Enabled
Disconnect if server does not present cryptobinding TLV	Disabled
Enforce network access protection	Disabled
Authentication Method Configuration
Authentication method	Secured password (EAP-MSCHAP v2)
Automatically use my Windows logon name and password(and domain if any)	Enabled

קביעת תצורה של 802.1X במתגי Cisco באמצעות Failover NPS (Windows RADIUS עם AD)

בואו ניצור קבוצת אבטחה sg-computers-8021x-vl100, שבו נוסיף מחשבים שברצוננו להפיץ ל-vlan 100 ונקבע סינון עבור המדיניות הקבוצתית שנוצרה בעבר עבור קבוצה זו:

קביעת תצורה של 802.1X במתגי Cisco באמצעות Failover NPS (Windows RADIUS עם AD)

אתה יכול לוודא שהמדיניות פעלה בהצלחה על ידי פתיחת "מרכז רשת ושיתוף (הגדרות רשת ואינטרנט) - שינוי הגדרות מתאם (הגדרת הגדרות מתאם) - מאפייני מתאם", שם נוכל לראות את הכרטיסייה "אימות":

קביעת תצורה של 802.1X במתגי Cisco באמצעות Failover NPS (Windows RADIUS עם AD)

כאשר אתה משוכנע שהמדיניות יושמה בהצלחה, תוכל להמשיך להגדרת מדיניות רשת ב-NPS ויציאות מתג רמת הגישה.

בואו ניצור מדיניות רשת neag-computers-8021x-vl100:

Conditions:
  Windows Groups - sg-computers-8021x-vl100
  NAS Port Type - Ethernet
Constraints:
  Authentication Methods - Microsoft: Protected EAP (PEAP) - Unencrypted authentication (PAP, SPAP)
  NAS Port Type - Ethernet
Settings:
  Standard:
   Framed-MTU 1344
   TunnelMediumType 802 (includes all 802 media plus Ethernet canonical format)
   TunnelPrivateGroupId  100
   TunnelType  Virtual LANs (VLAN)

קביעת תצורה של 802.1X במתגי Cisco באמצעות Failover NPS (Windows RADIUS עם AD)

הגדרות אופייניות ליציאת המתג (שימו לב כי נעשה שימוש בסוג האימות "רב-דומיינים" - Data & Voice, וישנה גם אפשרות לאימות באמצעות כתובת מק. במהלך "תקופת המעבר" הגיוני להשתמש ב- פרמטרים:


authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100

מזהה ה-vlan הוא לא "הסגר", אלא אותו אחד שאליו המחשב של המשתמש אמור להיכנס לאחר כניסה מוצלחת - עד שאנו בטוחים שהכל עובד כמו שצריך. ניתן להשתמש באותם פרמטרים בתרחישים אחרים, למשל, כאשר מתג לא מנוהל מחובר ליציאה זו ואתה רוצה שכל המכשירים המחוברים אליו שלא עברו את האימות ייכנסו ל-vlan מסוים ("הסגר").

החלף הגדרות יציאה במצב 802.1x מצב מרובה דומיינים

default int range Gi1/0/39-41
int range Gi1/0/39-41
shu
des PC-IPhone_802.1x
switchport mode access
switchport nonegotiate
switchport voice vlan 55
switchport port-security maximum 2
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
authentication host-mode multi-domain
authentication port-control auto
authentication violation restrict
mab
dot1x pae authenticator
dot1x timeout quiet-period 15
dot1x timeout tx-period 3
storm-control broadcast level pps 100
storm-control multicast level pps 110
no vtp
lldp receive
lldp transmit
spanning-tree portfast
no shu
exit

אתה יכול לוודא שהמחשב והטלפון שלך עברו בהצלחה את האימות עם הפקודה:

sh authentication sessions int Gi1/0/39 det

עכשיו בואו ניצור קבוצה (לדוגמה, sg-fgpp-mab ) ב-Active Directory לטלפונים והוסיפו לו מכשיר אחד לבדיקה (במקרה שלי זה גרנדסטרים GXP2160 עם כתובת מס 000b.82ba.a7b1 וכן בהתאמה. חֶשְׁבּוֹן דומיין 00b82baa7b1).

עבור הקבוצה שנוצרה, נוריד את דרישות מדיניות הסיסמאות (באמצעות מדיניות סיסמאות עדינה דרך Active Directory Administrative Center -> תחום -> מערכת -> מיכל הגדרות סיסמה) עם הפרמטרים הבאים סיסמא-הגדרות-עבור-MAB:

קביעת תצורה של 802.1X במתגי Cisco באמצעות Failover NPS (Windows RADIUS עם AD)

לפיכך, נאפשר שימוש בכתובות mas-מכשירים כסיסמאות. לאחר מכן נוכל ליצור מדיניות רשת לאימות mab של שיטת 802.1x, בואו נקרא לזה neag-devices-8021x-voice. הפרמטרים הם כדלקמן:

  • סוג יציאת NAS - Ethernet
  • קבוצות Windows – sg-fgpp-mab
  • סוגי EAP: אימות לא מוצפן (PAP, SPAP)
  • תכונות RADIUS – ספק ספציפי: Cisco – Cisco-AV-Pair – ערך תכונה: device-traffic-class=voice

לאחר אימות מוצלח (אל תשכח להגדיר את יציאת המתג), בואו נסתכל על המידע מהיציאה:

הגדרת אימות sh int Gi1/0/34

----------------------------------------
            Interface:  GigabitEthernet1/0/34
          MAC Address:  000b.82ba.a7b1
           IP Address:  172.29.31.89
            User-Name:  000b82baa7b1
               Status:  Authz Success
               Domain:  VOICE
       Oper host mode:  multi-domain
     Oper control dir:  both
        Authorized By:  Authentication Server
      Session timeout:  N/A
         Idle timeout:  N/A
    Common Session ID:  0000000000000EB2000B8C5E
      Acct Session ID:  0x00000134
               Handle:  0xCE000EB3

Runnable methods list:
       Method   State
       dot1x    Failed over
       mab      Authc Success

כעת, כפי שהובטח, בואו נסתכל על כמה מצבים לא לגמרי ברורים. לדוגמה, עלינו לחבר מחשבים והתקנים של משתמשים באמצעות מתג (מתג) לא מנוהל. במקרה זה, הגדרות היציאה עבורו ייראו כך:

החלף הגדרות יציאה במצב 802.1x ריבוי אישורים במצב מארח

interface GigabitEthernet1/0/1
description *SW – 802.1x – 8 mac*
shu
switchport mode access
switchport nonegotiate
switchport voice vlan 55
switchport port-security maximum 8  ! увеличиваем кол-во допустимых мас-адресов
authentication event fail action authorize vlan 100
authentication event no-response action authorize vlan 100
authentication host-mode multi-auth  ! – режим аутентификации
authentication port-control auto
authentication violation restrict
mab
dot1x pae authenticator
dot1x timeout quiet-period 15
dot1x timeout tx-period 3
storm-control broadcast level pps 100
storm-control multicast level pps 110
no vtp
spanning-tree portfast
no shu

נ.ב שמנו לב לתקלה מאוד מוזרה - אם המכשיר היה מחובר דרך מתג כזה, ואז הוא היה מחובר למתג מנוהל, אז זה לא יעבוד עד שנפעיל מחדש(!) את המתג. לא מצאתי דרכים אחרות לפתור את הבעיה הזו עדיין.

נקודה נוספת הקשורה ל-DHCP (אם נעשה שימוש בחיטוט ip dhcp) - ללא אפשרויות כאלה:

ip dhcp snooping vlan 1-100
no ip dhcp snooping information option

מסיבה כלשהי אני לא מצליח לקבל את כתובת ה-IP בצורה נכונה... למרות שזו עשויה להיות תכונה של שרת ה-DHCP שלנו

ו-Mac OS ו-Linux (שיש להם תמיכה מקורית ב-802.1x) מנסים לאמת את המשתמש, גם אם אימות באמצעות כתובת Mac מוגדר.

בחלק הבא של המאמר, נבחן את השימוש ב-802.1x עבור Wireless (בהתאם לקבוצה שאליה משתייך חשבון המשתמש, "נזרוק" אותו לרשת המתאימה (vlan), למרות שהם יתחברו ל אותו SSID).

מקור: www.habr.com