Cisco IOS Lock and Keyの使い方

スポンサーリンク

Lock and Keyはログイン認証が成功した直後のみアクセスを許可する特殊なACLです。認証が成功した後に、一定時間のみ特定ホストからの通信を許可したい場合に使用します

コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

Router# access-enable [ host ] [ timeout <minute> ]
Router(config)# access-list dynamic-extended
Router(config)# username <user> autocommand access-enable [ host ] [ timeout <minute> ]
Router(config-line)# autocommand access-enable [ host ] [ timeout <minute> ]
Router(config-ext-nacl)# <seq> dynamic <list_name> [ timeout <min> ] [ permit | deny ] <proto> <src> <dst>

構成図

R2にLock And Keyを設定し、R3をHTTP serverとして設定します。R2にログインした直後のみR1からR3へのHTTP通信を許容します。


 +--------+e0/0  e0/1+--------+e0/0  e0/1+--------+
 +   R1   +----------+   R2   +----------+   R3   +
 +--------+.1      .2+--------+.2      .3+--------+
         192.168.12.0/24     192.168.23.0/24

 Loopback 0          Loopback 0           Loopback 0
 10.1.1.1/32         10.2.2.2/32          10.3.3.3/32
 [R1]
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0

 [R2]
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0

 [R3]
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!
ip http server

設定全文は下記ファイルです。ルーティングなどの詳細設定は下記を参照ください。

R1
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
!
interface Ethernet0/0
 ip address 192.168.12.1 255.255.255.0
 half-duplex
!
interface Ethernet0/1
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end
R2
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.2.2.2 255.255.255.255
!
interface Ethernet0/0
 ip address 192.168.23.2 255.255.255.0
 half-duplex
!
interface Ethernet0/1
 ip address 192.168.12.2 255.255.255.0
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end
R3
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 10.3.3.3 255.255.255.255
!
interface Ethernet0/0
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/1
 ip address 192.168.23.3 255.255.255.0
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
router ospf 1
 log-adjacency-changes
 network 0.0.0.0 255.255.255.255 area 0
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end

基本設定

仕様説明

拡張ACLを定義する際、以下のようにdynamicキーワードを指定すると、一時的な許可が実現できます。ここで指定するtimeoutはabsolute timeoutです。また、<list_name>は管理しやすい任意の名前で差し支えありません。

Router(config-ext-nacl)# <seq> dynamic <list_name> [ timeout <min> ] [ permit | deny ] <proto> <src> <dst>

line vtyにログインした後に以下のコマンドを実行すると、dynamicで定義されたACLが一時的に許可されます。ここで指定するtimeoutはidle timeoutです。また、hostキーワードを指定すると特定のホストからのみの通信を許容するようになり、hostキーワードを省略すると全ホストからの通信を許容するようになります。

Router# access-enable [ host ] [ timeout <minute> ]

実際は、以下のようにautocommandとして実行させる例が多いようです。

Router(config)# username <user> autocommand access-enable [ host ] [ timeout <minute> ]
Router(config)# 
Router(config)# line vty 0 4
Router(config-line)# autocommand access-enable [ host ] [ timeout <minute> ]

必須ではありませんが以下コマンドを投入すると、再ログインするとabsolute timeoutまでの時間を6分延長する事ができます。

Router(config)# access-list dynamic-extended

動作確認

R2に以下設定を投入します。基本的にHTTP通信を拒否しますが、tcp3001に接続した場合のみ一時的にHTTP通信を許可します。

 [R2]
ip access-list extended ACL_FROM_R1
 10 dynamic test_list timeout 5 permit tcp any any eq www
 20 deny tcp any any eq www
 99 permit ip any any
!
interface Ethernet 0/1
 ip access-group ACL_FROM_R1 in
!
line vty 5
 rotary 1
 password cisco
 login
 autocommand access-enable host timeout 1

R1からR3へのHTTP通信を試みます。一度R2に接続しLockを解除してから、R3に接続します。

 [R1]
R1#telnet 10.2.2.2 3001
Trying 10.2.2.2, 3001 ... Open


User Access Verification

Password:
[Connection to 10.2.2.2 closed by foreign host]
R1#
R1#
R1#telnet 10.3.3.3 80
Trying 10.3.3.3, 80 ... Open
GET / HTTP/1.0

HTTP/1.1 401 Unauthorized
Date: Fri, 01 Mar 2002 00:15:48 GMT
Server: cisco-IOS
Accept-Ranges: none
WWW-Authenticate: Basic realm="level_15_access"

401 Unauthorized

[Connection to 10.3.3.3 closed by foreign host]
R1#

showコマンドによりHTTPを一時的に許可している事を確認します。

 [R2]
R2#show access-lists
Extended IP access list ACL_FROM_R1
    10 Dynamic test_list permit tcp any any eq www
       permit tcp host 192.168.12.1 any eq www (21 matches) (time left 97)
    20 deny tcp any any eq www (3 matches)
    99 permit ip any any (207 matches)
R2#

aaa new-modelとの併用

動作確認

aaa new-modelを使用した例についても確認しましょう。aaa new-modelを使用する場合はaccess-enableを実行する権限があるかどうかにも注意する必要があります。つまり、”aaa authorization exec”の設定も必要である事に注意して下さい。

設定例は以下の通りです。

 [R2]
username CLI password CISCO
username CLI autocommand access-enable host timeout 2
aaa new-model
aaa authentication login default local
aaa authorization exec default local
[/code]

R1からR3への接続を試みます。

 [R1]
R1#telnet 10.2.2.2 /source-interface Loopback 0
Trying 10.2.2.2 ... Open


User Access Verification

Username: CLI
Password:

[Connection to 10.2.2.2 closed by foreign host]
R1#
R1#
R1#telnet 10.3.3.3 80 /source-interface Loopback 0
Trying 10.3.3.3, 80 ... Open
GET / HTTP/1.0

HTTP/1.1 401 Unauthorized
Date: Fri, 01 Mar 2002 00:24:34 GMT
Server: cisco-IOS
Accept-Ranges: none
WWW-Authenticate: Basic realm="level_15_access"

401 Unauthorized

[Connection to 10.3.3.3 closed by foreign host]
R1#

showコマンドによりHTTPを一時的に許可している事を確認します。

 [R2]
R2#show access-lists
Extended IP access list ACL_FROM_R1
    10 Dynamic test_list permit tcp any any eq www
       permit tcp host 10.1.1.1 any eq www (21 matches) (time left 85)
    20 deny tcp any any eq www (3 matches)
    99 permit ip any any (307 matches)
R2#
タイトルとURLをコピーしました