ログイン方式の切り分け
AAA 機能を有効とする。ログイン認証は SSH ではユーザ・パスワード認証を行い、権限は一般モード(権限昇格は可能)とする。シリアルコンソールログインでは専用のパスワード認証を行い、権限は特権モードとする。 L2TP/IPsec 接続時の PPP 認証では RADIUS サーバと連携した認証を行う。この時、 リモートアクセスする Win 11 端末にアサインする IP アドレスを RADIUS サーバによる払い出しも追加で行なう。
認証方式 | 対象 | 認証リスト名 |
ENABLE | 権限昇格時 | なし |
ローカルデータベース (ユーザ・パスワード認証) | SSH | ssh-login |
ライン (コンソール専用パスワード認証) | シリアルコンソール | console-login |
RADIUS | PPP (MS-CHAP v2) ※L2TP/IPsecの認証にも使用 | ppp-login |
RADIUS サーバ | 192.168.100.1 |
RADIUS クライアント | 192.168.100.254 |
RADIUS Secret | radius123 |
RADIUS ユーザDB | テキスト定義 |
Ubuntu Desktop 22.04 での FreeRADIUS (Ver 3.0.26)
Ubuntu Desktop に FreeRADIUS をインストールする。インストール後は以下のファイル編集を行なう。デフォルトで【Framed-Protocol == PPP】の設定が有効であり、この部分より下のユーザ定義が適用されないため、コメントアウトを行なう。
【/etc/freeradius/3.0/clients.conf】
client private-network-1 {
ipaddr = 192.168.100.0/24
secret = radius123
}
RADIUS からアサインする IP を指定する場合のために、【Framed-IP-Address】アトリビュートも追加する。
【/etc/freeradius/3.0/users】
#DEFAULT Framed-Protocol == PPP
# Framed-Protocol = PPP,
# Framed-Compression = Van-Jacobson-TCP-IP
rad_user01 Cleartext-Password := "password123"
Framed-IP-Address = 192.168.1.11
Cisco IOS 15系の設定 (IP Pool 使用時)
L2TP/IPsec の部分の Config 設定は以下。 Windows 11 端末より OS 標準の VPN Client で接続する。
vpdn enable
!
vpdn-group ppp-dial
! Default L2TP VPDN group
accept-dialin
protocol l2tp
virtual-template 2
no l2tp tunnel authentication
!
crypto isakmp policy 1
encr aes 256
authentication pre-share
group 14
lifetime 28800
crypto isakmp key vpn-secret123 address 0.0.0.0 no-xauth
!
crypto ipsec transform-set l2tp-ts esp-aes esp-sha-hmac
mode transport
!
crypto dynamic-map l2tp-dmap 1
set transform-set l2tp-ts
!
crypto map l2tp-cmap 1 ipsec-isakmp dynamic l2tp-dmap
!
interface Virtual-Template2
mtu 1400
ip address 192.168.1.254 255.255.255.0
peer default ip address pool ppp-pool
ppp authentication ms-chap-v2 ppp-login
!
interface Ethernet0
ip address 192.168.100.254 255.255.255.0
duplex auto
speed auto
crypto map l2tp-cmap
!
ip local pool ppp-pool 192.168.1.1 192.168.1.31
認証部分の設定は以下。【aaa authorization network default if-authenticated】が無いと RADIUS サーバからのユーザ認証が Success しても NW アクセスが認可されないため PPP のセッションが確立ぜず、 VPN 接続が成立しないことに注意。
enable secret enable-password123
!
aaa new-model
!
aaa group server radius radius-group
server name freeradius
!
aaa authentication login ssh-login local
aaa authentication login console-login line
aaa authentication ppp ppp-login group radius-group
aaa authorization network default if-authenticated
!
username ssh-01 password 0 ssh-password123
!
radius server freeradius
address ipv4 192.168.100.1 auth-port 1812 acct-port 1813
key radius123
!
line con 0
privilege level 15
password console-password123
login authentication console-login
line vty 0 4
exec-timeout 30 0
logging synchronous
login authentication ssh-login
exec prompt timestamp
transport input ssh
line vty 5 15
transport input none
!
Cisco IOS 15系の設定 (RADIUS から IP 払い出し時)
以下の部分のみを変更することで RADIUS からの IP 払い出しが可能となる。これにより VPN 接続時に、特定のユーザーは毎回同じ IP をアサインすることが可能となる。【aaa authorization network default group radius-group】により RADIUS からの応答された IP アドレスを使用可能となる。
aaa authorization network default group radius-group
!
interface Virtual-Template2
mtu 1400
ip address 192.168.1.254 255.255.255.0
no peer default ip address
ppp authentication ms-chap-v2 ppp-login
!
no ip local pool ppp-pool
動作確認
RADIUS サーバとの認証テストはコマンドにて確認可能。
Router#test aaa group radius-group rad_user01 password123 new-code
User successfully authenticated
USER ATTRIBUTES
addr 0 192.168.1.11
シリアルコンソール接続時は以下
User Access Verification
Password: console-password123
Router#
SSH 接続時は以下。 Linux 等からの接続ログ
$ ssh ssh-01@192.168.100.254
(ssh-01@192.168.100.254) Password: ssh-password123
Router>
Router> enable
Password: enable-password123
Router#
L2TP/IPsec 接続時は以下。(デバッグログで確認)
Router#debug ppp authentication
PPP authentication debugging is on
Router#debug radius authentication
Radius protocol debugging is on
Radius protocol brief debugging is off
Radius protocol verbose debugging is off
Radius packet hex dump debugging is off
Radius packet protocol (authentication) debugging is on
Radius packet protocol (accounting) debugging is off
Radius elog debugging debugging is off
Radius packet retransmission debugging is off
Radius server fail-over debugging is off
Feb 11 2024 19:47:54 JST: ppp50 PPP: Using vpn set call direction
Feb 11 2024 19:47:54 JST: ppp50 PPP: Treating connection as a callin
Feb 11 2024 19:47:54 JST: ppp50 PPP: Session handle[9D000032] Session id[50]
Feb 11 2024 19:47:54 JST: ppp50 MS-CHAP-V2: O CHALLENGE id 1 len 26 from "Router"
Feb 11 2024 19:47:54 JST: ppp50 MS-CHAP-V2: I RESPONSE id 1 len 64 from "rad_user01"
Feb 11 2024 19:47:54 JST: ppp50 PPP: Sent MSCHAP_V2 LOGIN Request
Feb 11 2024 19:47:54 JST: RADIUS/ENCODE(00000078):Orig. component type = VPDN
Feb 11 2024 19:47:54 JST: RADIUS: DSL line rate attributes successfully added
Feb 11 2024 19:47:54 JST: RADIUS(00000078): Config NAS IP: 0.0.0.0
Feb 11 2024 19:47:54 JST: RADIUS(00000078): Config NAS IPv6: ::
Feb 11 2024 19:47:54 JST: RADIUS/ENCODE(00000078): acct_session_id: 109
Feb 11 2024 19:47:54 JST: RADIUS(00000078): sending
Feb 11 2024 19:47:54 JST: RADIUS/ENCODE: Best Local IP-Address 192.168.100.254 for Radius-Server 192.168.100.1
Feb 11 2024 19:47:54 JST: RADIUS(00000078): Send Access-Request to 192.168.100.1:1812 id 1645/55, len 172
Feb 11 2024 19:47:54 JST: RADIUS: authenticator ** ** ** ** ** ** ** ** - ** ** ** ** ** ** ** **
Feb 11 2024 19:47:54 JST: RADIUS: Framed-Protocol [7] 6 PPP [1]
Feb 11 2024 19:47:54 JST: RADIUS: User-Name [1] 12 "rad_user01"
Feb 11 2024 19:47:54 JST: RADIUS: Vendor, Microsoft [26] 24
Feb 11 2024 19:47:54 JST: RADIUS: MS-CHAP-Challenge [11] 18
Feb 11 2024 19:47:54 JST: RADIUS: ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** [ Xlw]
Feb 11 2024 19:47:54 JST: RADIUS: Vendor, Microsoft [26] 58
Feb 11 2024 19:47:54 JST: RADIUS: MS-CHAP-V2-Response[25] 52 *
Feb 11 2024 19:47:54 JST: RADIUS: Connect-Info [77] 12 "1000000000"
Feb 11 2024 19:47:54 JST: RADIUS: NAS-Port-Type [61] 6 Sync [1]
Feb 11 2024 19:47:54 JST: RADIUS: NAS-Port [5] 6 10050
Feb 11 2024 19:47:54 JST: RADIUS: NAS-Port-Id [87] 16 "Uniq-Sess-ID50"
Feb 11 2024 19:47:54 JST: RADIUS: Service-Type [6] 6 Framed [2]
Feb 11 2024 19:47:54 JST: RADIUS: NAS-IP-Address [4] 6 192.168.100.254
Feb 11 2024 19:47:54 JST: RADIUS(00000078): Sending a IPv4 Radius Packet
Feb 11 2024 19:47:54 JST: RADIUS(00000078): Started 5 sec timeout
Feb 11 2024 19:47:54 JST: RADIUS: Received from id 1645/55 192.168.100.1:1812, Access-Accept, len 185
Feb 11 2024 19:47:54 JST: RADIUS: authenticator ** ** ** ** ** ** ** ** - ** ** ** ** ** ** ** **
Feb 11 2024 19:47:54 JST: RADIUS: Framed-IP-Address [8] 6 192.168.1.11
Feb 11 2024 19:47:54 JST: RADIUS: Vendor, Microsoft [26] 51
Feb 11 2024 19:47:54 JST: RADIUS: MS-CHAP-V2-Success [26] 45
"S=****************************************"
Feb 11 2024 19:47:54 JST: RADIUS: Vendor, Microsoft [26] 42
Feb 11 2024 19:47:54 JST: RADIUS: MS-MPPE-Recv-Key [17] 36 *
Feb 11 2024 19:47:54 JST: RADIUS: Vendor, Microsoft [26] 42
Feb 11 2024 19:47:54 JST: RADIUS: MS-MPPE-Send-Key [16] 36 *
Feb 11 2024 19:47:54 JST: RADIUS: Vendor, Microsoft [26] 12
Feb 11 2024 19:47:54 JST: RADIUS: MS-MPPE-Enc-Policy [7] 6
Feb 11 2024 19:47:54 JST: RADIUS: 00 00 00 01
Feb 11 2024 19:47:54 JST: RADIUS: Vendor, Microsoft [26] 12
Feb 11 2024 19:47:54 JST: RADIUS: MS-MPPE-Enc-Type [8] 6
Feb 11 2024 19:47:54 JST: RADIUS: 00 00 00 06
Feb 11 2024 19:47:54 JST: RADIUS(00000078): Received from id 1645/55
Feb 11 2024 19:47:54 JST: ppp50 PPP: Received LOGIN Response PASS
Feb 11 2024 19:47:54 JST: Vi2.1 MS-CHAP-V2: O SUCCESS id 1 len 46 msg is "S=****************************************"
Router#
【参考URL】
Configure Basic AAA on an Access Server
PPTP VPN between Windows clients and Cisco 2921 router
PPPoE Server/Clinet (RADIUS認証)端末型払い出し(固定IP)Cisco IOS Config
Ubuntu22.04LTS に FreeRadius をインストールする