アジェンダ:
01 - はじめに
02 - Per-User ACLの概要
03 - Per-User ACLの設定・確認方法
04 - Per-User ACL:動作フローのキャプチャ
01 - はじめに
前回の記事では、IEEE802.1X認証成功後の制御として、Dynamic VLANによるVLAN自動割り当てについて確認しました。
Dynamic VLANでは、RADIUSから返されるAuthorization(認可)情報を利用して、認証された端末を指定したVLANへ動的に割り当てることができます。
今回は、同じくIEEE802.1X認証後の制御機能であるPer-User ACLについて確認します。
Per-User ACLでは、認証成功時にRADIUSサーバからACL情報を取得し、認証されたユーザや端末の通信制御を動的に適用します。
本シリーズでは、CiscoルータをIEEE802.1XのSupplicantとして動作させ、CLIベースで認証処理を確認する方法を紹介します。
本シリーズの構成
本シリーズでは、IEEE802.1X認証を基本動作から応用機能まで段階的に確認します。
| 主な内容 | |
|---|---|
| 第1回 | IEEE802.1X基本動作(EAP-MD5認証) |
| 第2回 | Dynamic VLANによる認証後のVLAN制御 |
| 第3回 | Per-User ACLによる認証ユーザ単位のアクセス制御 ★今回の内容 |
02 - Per-User ACLの概要
Per-User ACLとは
Per-User ACLとは、認証サーバ(RADIUS)からネットワーク機器へACL情報を動的に配布し、認証済みユーザや端末へ適用する機能です。
通常のACLでは、あらかじめスイッチやルータへACL設定を投入しておく必要があります。
例:
interface Gi0/1
ip access-group USER_ACL in
この場合、ポート単位で固定されたACLが適用されます。
一方、Per-User ACLではIEEE802.1X認証後にRADIUSからACL情報を取得し、認証セッション単位で適用します。
Dynamic VLANとPer-User ACLの違い
Dynamic VLANとPer-User ACLは、どちらもIEEE802.1X認証後のAuthorization機能を利用しますが、制御する対象が異なります。
| 機能 | 制御内容 |
|---|---|
| Dynamic VLAN | 接続先VLANを変更 |
| Per-User ACL | 通信可能な宛先やプロトコルを制御 |
認証サーバから付与されるACL属性
Per-User ACLでは、Cisco AVPairを利用してACL内容を直接配布します。
| 属性 | 用途 |
|---|---|
| Cisco AVPair | ACL内容の通知 |
Per-User ACLで実現できること
Per-User ACLを利用することで、IEEE802.1X認証に成功したユーザや端末ごとに、許可する通信を動的に制御することができます。
通常のACLでは、スイッチのインターフェース単位で事前にACL設定を行う必要がありますが、Per-User ACLではRADIUS認証結果に応じてACLを自動的に適用できます。
これにより、以下のような制御が可能になります。
・認証ユーザごとに異なるアクセス権限を適用
・業務サーバや特定ネットワークへのアクセス制御
・ゲストユーザや未許可端末の通信制限
・利用者単位でのセキュリティポリシー適用
例:
| ユーザ | 適用ACL | アクセス許可 |
|---|---|---|
| 社員 | 社員用ACL | 業務サーバへのアクセス許可 |
| ゲスト | ゲスト用ACL | インターネットのみ許可 |
| 検証端末 | 制限ACL | 必要な通信のみ許可 |
Dynamic VLANとの併用
Per-User ACLはDynamic VLANと組み合わせて利用することができます。
Dynamic VLANでは、認証結果に応じて接続先VLANを制御します。
一方、Per-User ACLでは、そのVLAN内での通信内容を制御します。
| 機能 | 制御内容 |
|---|---|
| Dynamic VLAN | どのネットワークに接続させるか |
| Per-User ACL | 接続後にどの通信を許可させるか |
03 - Per-User ACLの設定・確認方法
次に以下の基本構成図を元に各機器の設定を実施します。
・C1921-1:Supplicantの設定を実施します。
Cisco1921の設定 [hostname C1921-1]
eap profile EAP
method md5
!
dot1x system-auth-control
!
dot1x credentials USER01
username user01
password password1
!
interface GigabitEthernet0/1
mac-address 0000.0000.1111
ip address 10.0.10.101 255.255.255.0
dot1x pae supplicant
dot1x credentials USER01
dot1x supplicant eap profile EAP
!
ip route 10.0.30.0 255.255.255.0 10.0.10.254
!
・C1921-1:Supplicantの状態を確認します。
C1921-1#sh dot1x
Sysauthcontrol Enabled
Dot1x Protocol Version 3
C1921-1#sh dot1x interface Gi0/1
Dot1x Info for GigabitEthernet0/1
-----------------------------------
PAE = SUPPLICANT
StartPeriod = 30
AuthPeriod = 30
HeldPeriod = 60
MaxStart = 3
Credentials profile = USER01
EAP profile = EAP
・C1921-2:Supplicantの設定を実施します。
Cisco1921の設定 [hostname C1921-2]
eap profile EAP
method md5
!
dot1x system-auth-control
!
dot1x credentials USER02
username user02
password password2
!
interface GigabitEthernet0/1
mac-address 0000.0000.2222
ip address 10.0.20.101 255.255.255.0
dot1x pae supplicant
dot1x credentials USER02
dot1x supplicant eap profile EAP
!
ip route 10.0.30.0 255.255.255.0 10.0.20.254
!
・C1921-2:Supplicantの状態を確認します。
C1921-2#sh dot1x
Sysauthcontrol Enabled
Dot1x Protocol Version 3
C1921-2#sh dot1x interface Gi0/1
Dot1x Info for GigabitEthernet0/1
-----------------------------------
PAE = SUPPLICANT
StartPeriod = 30
AuthPeriod = 30
HeldPeriod = 60
MaxStart = 3
Credentials profile = USER02
EAP profile = EAP
・C3560G:Authenticatorの設定を実施します。
C3560Gに設定変更を可能にする為に認可(authorization)設定を追加します。
また認証後に利用するVLAN-IDを有効にします。
Catalyst3560Gの設定 [hostname Cat3560G]
vlan 10,20
!
aaa new-model
aaa authentication dot1x default group radius
aaa authorization network default group radius
!
radius server RADIUS
address ipv4 192.168.1.101 auth-port 1812 acct-port 1813
key cisco
!
dot1x system-auth-control
!
interface GigabitEthernet0/7
no switchport
ip address 192.168.1.254 255.255.255.0
!
interface GigabitEthernet0/23
switchport mode access
authentication order dot1x
authentication port-control auto
dot1x pae authenticator
shutdown
!
interface GigabitEthernet0/24
switchport mode access
authentication order dot1x
authentication port-control auto
dot1x pae authenticator
shutdown
!
interface GigabitEthernet0/25
no switchport
ip address 10.0.30.254 255.255.255.0
!
interface Vlan10
ip address 10.0.10.254 255.255.255.0
!
interface Vlan20
ip address 10.0.20.254 255.255.255.0
!
ip routing
・CentOS6:Authentication Serverの設定を実施します。
FreeRADIUSの設定
ユーザ毎に割り当てるVLAN-IDとACLを定義しておきます。
NIC設定:/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.101
NETMASK=255.255.255.0
AAAクライアントの設定:/etc/raddb/clients.conf
client 0.0.0.0/0 {
secret = cisco
shortname = Cat3560G
}
認証ユーザの設定:/etc/raddb/users
user01 Cleartext-Password := "password1"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-ID = 10,
Cisco-AVPair += "ip:inacl#101=permit icmp any host 10.0.30.101",
Cisco-AVPair += "ip:inacl#101=deny ip any any"
user02 Cleartext-Password := "password2"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-ID = 20,
Cisco-AVPair += "ip:inacl#102=permit tcp any host 10.0.30.101 eq 23",
Cisco-AVPair += "ip:inacl#102=deny ip any any"
FreeRADIUSの確認:一旦サービスをリスタートしておきます。
[root@localhost raddb]# /etc/init.d/radiusd restart
Stopping radiusd: [ OK ]
Starting radiusd: [ OK ]
・C3560G:認証を開始します。
最初にC1921-1との認証から確認します。
Cat3560G(config)#int Gi0/23
Cat3560G(config-if)#no shutdown
IEEE802.1X認証が成功し以下のステータスになります。
Cat3560G#sh authentication sessions
Interface MAC Address Method Domain Status Session ID
Gi0/23 0000.0000.1111 dot1x DATA Authz Success C0A801FE000000480034E853
Cat3560G#sh authentication sessions interface g0/23
Interface: GigabitEthernet0/23
MAC Address: 0000.0000.1111
IP Address: 10.0.10.101
User-Name: user01
Status: Authz Success
Domain: DATA
Security Policy: Should Secure
Security Status: Unsecure
Oper host mode: single-host
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: 10
Per-User ACL: permit icmp any host 10.0.30.101
Per-User ACL: deny ip any any
Session timeout: N/A
Idle timeout: N/A
Common Session ID: C0A801FE000000480034E853
Acct Session ID: 0x0000004A
Handle: 0x7D000049
Runnable methods list:
Method State
dot1x Authc Success
Cat3560G#sh vlan brief | section VLAN|10|20
VLAN Name Status Ports
10 VLAN0010 active Gi0/23
20 VLAN0020 active
Cat3560G#sh ip access-lists | sec per-user
Extended IP access list GigabitEthernet0/23#IP#640FCB0 (per-user)
10 permit icmp any host 10.0.30.101
20 deny ip any any
・C3560G:次にC1921-2の認証を開始し確認します。
Cat3560G(config)#int Gi0/24
Cat3560G(config-if)#no shutdown
IEEE802.1X認証が成功し以下のステータスになります。
Cat3560G#sh authentication sessions
Interface MAC Address Method Domain Status Session ID
Gi0/23 0000.0000.1111 dot1x DATA Authz Success C0A801FE000000480034E853
Gi0/24 0000.0000.2222 dot1x DATA Authz Success C0A801FE0000004900368F75
Cat3560G#sh authentication sessions interface Gi0/24
Interface: GigabitEthernet0/24
MAC Address: 0000.0000.2222
IP Address: 10.0.20.101
User-Name: user02
Status: Authz Success
Domain: DATA
Security Policy: Should Secure
Security Status: Unsecure
Oper host mode: single-host
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: 20
Per-User ACL: permit tcp any host 10.0.30.101 eq 23
Per-User ACL: deny ip any any
Session timeout: N/A
Idle timeout: N/A
Common Session ID: C0A801FE0000004900368F75
Acct Session ID: 0x0000004B
Handle: 0xAA00004A
Runnable methods list:
Method State
dot1x Authc Success
Cat3560G#sh vlan brief | section VLAN|10|20
VLAN Name Status Ports
10 VLAN0010 active Gi0/23
20 VLAN0020 active Gi0/24
Cat3560G#sh ip access-lists | section per-user
Extended IP access list GigabitEthernet0/23#IP#640FCB0 (per-user)
10 permit icmp any host 10.0.30.101
20 deny ip any any
Extended IP access list GigabitEthernet0/24#IP#640FD68 (per-user)
10 permit tcp any host 10.0.30.101 eq telnet
20 deny ip any any
ユーザ毎に別々のVLANとACLが割り当てられていることが確認できます。
次にC1921-1、C1921-2の認証後の確認端末への通信を確認します。
・C1921-1はpingのみ許可されています。
C1921-1#ping 10.0.30.101 source 10.0.10.101
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.30.101, timeout is 2 seconds:
Packet sent with a source address of 10.0.10.101
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/4 ms
C1921-1#telnet 10.0.30.101
Trying 10.0.30.101 ...
% Connection timed out; remote host not responding
・C1921-2はtelnetのみ許可されています。
C1921-2#ping 10.0.30.101 source 10.0.20.101
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.30.101, timeout is 2 seconds:
Packet sent with a source address of 10.0.20.101
.....
Success rate is 0 percent (0/5)
C1921-2#telnet 10.0.30.101
Trying 10.0.30.101 ... Open
上記の結果から認証後のPer-User ACLによるアクセス制御が実施されていることが確認できます。
04 - Per-User ACL:動作フローのキャプチャ
採取したキャプチャーを元に確認します。
・C1921-1認証後:VLAN10と確認端末へのICMPのみ許可されたACLが付与されている状態です。
・C1921-2認証後:VLAN20と確認端末へのtelnetのみ許可されたACLが付与されている状態です。
まとめ
本ケースではIEEE802.1X認証後のアクセス制御として、Per-User ACLの動作を確認しました。
RADIUSのAuthorization情報としてACLを取得し、認証ユーザ単位で通信制御を適用できることを確認しました。
また、Dynamic VLANとPer-User ACLを組み合わせることで以下条件によるアクセス制御を実現できます。
Dynamic VLAN → 接続先ネットワークを制御
Per-User ACL → 許可する通信内容を制御
最後に
IEEE802.1X認証は、単純に「接続を許可するための認証機能」ではなく、認証結果を利用してネットワークアクセス制御まで実現できる仕組みです。
RADIUSと連携することで、以下の機能を一元的に管理することができます。
ユーザ・端末の認証
接続先VLANの制御(Dynamic VLAN)
通信制御(Per-User ACL)
また、今回は検証用途として、CiscoルータをSupplicantとして利用しました。
通常はWindows PCなどの端末を利用するIEEE802.1X認証ですが、Cisco IOSのSupplicant機能を利用することで、CLIベースで認証処理やRADIUS連携の動作を確認することができました。
IEEE802.1Xの仕組みを理解する上で、実際のEAPOL・RADIUS通信や認証後の制御動作を確認することは重要です。本シリーズが、IEEE802.1X認証やネットワークアクセス制御を理解する際の参考になれば幸いです。



