今回は、ACL(アクセスリスト)を設定することに
リモートでtelnetアクセスする際、セキュリティが不安なので、リモート先からのアクセスを許可するだけだったが、いろいろやってみた
ACL作成
標準アクセスリストでつくってみる
標準アクセスリスト・・・
送信元アドレスと任意のアドレスのみでフィルタリングし、トラフィックの制御を行う
使用するアクセスリスト番号は1-99、1300-1999
SW-1(config)#access-list 100 permit tcp any any eq telnet
SW-1(config)#access-list 100 permit icmp any any
SW-1(config)#access-list 100 permit tcp any any eq smtp
設定確認
SW-1(config)#do sh access-lists
Extended IP access list 100
10 permit icmp any any
20 permit tcp any any eq smtp
30 permit tcp any any eq telnet
拡張アクセスリストでつくってみる。以下の2通りで作れる
拡張アクセスリスト・・・
送信元および宛先アドレスの双方向で、任意のアドレスとフィルタリングし、トラフィックの制御を行う
プロトコル、ポート番号なども組み合わせることが可能
使用するアクセスリスト番号は100-199、2000-2699
普通に作る
SW-1(config)#access-list 102 permit icmp any any
SW-1(config)#access-list 102 permit tcp any any eq smtp
名前付きACLの作り方で、番号指定する
SW-1(config)#ip access-list extended 102
SW-1(config-ext-nacl)#access-list 102 permit icmp any any
SW-1(config-ext-nacl)#access-list 102 permit tcp any any eq smtp
どっちの設定方法も同じ結果となる
access-list 102 permit icmp any any
access-list 102 permit tcp any any eq smtp
設定したACLをインターフェースに設定する
SW-1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SW-1(config)#int fa1/0/21
SW-1(config-if)#ip access
SW-1(config-if)#ip access-group 103 in
【まとめ】
ACL設定の流れは以下の通り
①標準アクセスリスト or 拡張アクセスリスト 作成
②インターフェースに”ip access-group {in | out}”コマンドで対象のアクセスリストを割り当てる
NO・・・ACL番号
in/out・・・パケットの流れる方向も制御できる
※L2モードはinのみ、L3モードはin/out両方指定できる
インターフェースにそれぞれ片方向ひとつずつ設定できる
ACL削除
このようなやり方だと102番のACLは全部消えちゃう
SW-1(config)#no access-list 102
詳細にACLを指定しても、102番全部消えちゃう
SW-1(config)#no access-list 102 permit icmp any any
個別に削除を行うのは以下の方法となる
SW-1(config)#do sh access-lists
Extended IP access list 100
10 permit icmp any any
20 permit tcp any any eq smtp
30 permit tcp any any eq telnet
SW-1(config)#ip access-list extended 100
SW-1(config-ext-nacl)#no 10 ←これだけを削除する場合
SW-1(config-ext-nacl)#do sh access-lists
Extended IP access list 100
20 permit tcp any any eq smtp
30 permit tcp any any eq telnet
この方法で削除出来るのは extended の拡張アクセスリストと名前付きアクセスリストだけ
標準アクセスリストはできない
※IOSのバージョンが古いものは拡張アクセスリストも編集できないよう
SW-1(config-if)#ip access-group 150 in
インターフェースにアクセスリストがセットされてても
アクセスリストが空の時点で(下の場合は★の物がすべて無い場合)
暗黙のdenyが利かない
つまり、”ip access-group 100 in”を設定していないのと同じ状態
SW-1#sh access-lists
Extended IP access list 100
10 permit tcp any any eq telnet★
20 permit icmp any any★
ACL修正
修正は一旦アクセスリストを削除して、再度作り直す
修正は削除の延長上にある
■部分修正
SW-1(config)#do sh access-lists
Extended IP access list 100
10 permit icmp any any ←これだけを削除する場合
20 permit tcp any any eq smtp
30 permit tcp any any eq telnet
SW-1(config)#ip access-list extended 100
SW-1(config-ext-nacl)#no 10
修正するので
SW-1(config-ext-nacl)#permit icmp any 100
SW-1(config-ext-nacl)#do sh access-list
Extended IP access list 100
20 permit tcp any any eq smtp
30 permit icmp any 192.168.11.100
重複アクセスリストは上書きされるし、一行づつでも追加できる
ただ、リモート作業でのACL編集はすべての行を一度にコピーすること
(リモートなどでの作業中は一行づつコピーすると大事故を起こす可能性が・・・)
■一括修正
また、修正の方法としては
インターフェースの”ip access-group”を一回はずしてから、アクセスリストを作り直すやりかたもある
こうすれば、事故は起こさない
※修正後、アクセスリストをインターフェースに適用することを忘れない!!
現在の設定
SW-1(config-if)#do sh access-list
Extended IP access list 100
10 permit icmp any any
20 permit tcp any any eq smtp
30 permit tcp any any eq telnet
インターフェースから、ACLをはずす
SW-1(config-if)#int fa1/0/9
SW-1(config-if)#no ip access-group 100 in
ACL削除
SW-1(config)#no access-list 100
ACL再設定
SW-1(config)#access-list 100 permit tcp any any eq smtp
SW-1(config)#access-list 100 permit tcp any any eq telnet
インターフェースに適用
SW-1(config-if)#ip access-group 100 in
完成
SW-1(config-if)#do sh access-list
Extended IP access list 100
10 permit tcp any any eq smtp
20 permit tcp any any eq telnet
ACLにてログイン制御
ACLの内容確認
SW-1#sh access-lists 103
Extended IP access list 103
10 permit ip 192.168.11.0 0.0.0.255 any
line vty にACL103番を適用
SW-1# conf t
SW-1(config)#line vty 0 4
SW-1(config-line)#access-class 103 in