Stage05では、SSH化・ポートセキュリティ・ACLと、個別に手を動かして学んできました。これらを1つのネットワークにまとめて設定するとしたら、どんな順番で組み立てるのが安全でしょうか?
管理アクセスを守る設定(SSH)を先に済ませてから、通信の制御(ACL)を入れる方が、作業中に自分自身が締め出されるリスクを減らせます。作業の順序も意識しながら読み進めてください。
この演習でできるようになること
- ルーターとスイッチをSSH化し、ローカルユーザー認証・enable secretで管理アクセスを固める
- スイッチのアクセスポートにポートセキュリティを設定し、不正な機器の接続を防げる
- 標準ACLと拡張ACLを使い分け、部署間の通信を目的に応じて制御できる
使用トポロジ
ルーター1台を中心に、スイッチ2台(SW1:総務部セグメント、SW2:開発部セグメント)をそれぞれ接続し、各スイッチにPCを1台ずつ、さらにルーターの先にサーバーPC(社内サーバー)を接続した構成です。総務部(192.168.10.0/24)・開発部(192.168.20.0/24)・サーバー(192.168.30.0/24)の3つのネットワークが1台のルーターでつながっています。
準備
- Router 2911を1台、Switch 2960を2台、PC-PTを3台(総務部PC、開発部PC、サーバーPC)配置します。
- 各PCとスイッチ、各スイッチとルーターはすべてストレートケーブルで接続します。
- ルーターの各インターフェース(Gi0/0:総務部、Gi0/1:開発部、Gi0/2:サーバー側)にそれぞれのネットワークのゲートウェイアドレスを設定しておきます。
- 各PCにはIPアドレス・サブネットマスク・デフォルトゲートウェイを設定し、まずはACLなしで全区間の疎通を確認しておきます。
手順
ステップ1:ルーターとスイッチのSSH化
Router> enable
Router# configure terminal
Router(config)# hostname HQ-RT1
HQ-RT1(config)# ip domain-name ccna-lab.local
HQ-RT1(config)# username netadmin secret Str0ngP@ss
HQ-RT1(config)# crypto key generate rsa
HQ-RT1(config)# line vty 0 4
HQ-RT1(config-line)# transport input ssh
HQ-RT1(config-line)# login local
HQ-RT1(config-line)# exit
HQ-RT1(config)# enable secret Adm1nSecret!
同様の設定をスイッチ側にも行い、interface vlan 1 にSVIのIPアドレスを設定したうえでSSHを有効化します。
ステップ2:ポートセキュリティの設定
各スイッチのPC接続ポートにポートセキュリティを設定します。
SW1(config)# interface FastEthernet0/1
SW1(config-if)# switchport mode access
SW1(config-if)# switchport port-security
SW1(config-if)# switchport port-security maximum 1
SW1(config-if)# switchport port-security mac-address sticky
SW1(config-if)# switchport port-security violation restrict
SW1(config-if)# exit
今回は業務への影響を抑えるため、ポートを止めてしまうshutdownではなく、通信を破棄しつつログだけ残すrestrictを選んでいます。
ステップ3:標準ACLで開発部からサーバーへの通信を制限
開発部からサーバーへの通信のうち、ping(ICMP)は許可しつつ、それ以外は基本的に絞りたい場面を想定し、まずは全体の通信可否を決める標準ACLの考え方を確認します。
HQ-RT1(config)# access-list 10 permit 192.168.20.0 0.0.0.255
HQ-RT1(config)# access-list 10 deny any
ステップ4:拡張ACLで開発部からサーバーへのTelnetだけを拒否
より細かい制御として、開発部PCからサーバーへのTelnet(TCP/23)だけを拒否し、それ以外(pingなど)は許可する拡張ACLを、サーバー側インターフェースに適用します。
HQ-RT1(config)# access-list 110 deny tcp 192.168.20.0 0.0.0.255 192.168.30.0 0.0.0.255 eq 23
HQ-RT1(config)# access-list 110 permit ip any any
HQ-RT1(config)# interface GigabitEthernet0/2
HQ-RT1(config-if)# ip access-group 110 out
拡張ACLは送信元・宛先・ポートまで指定できるため、標準ACLよりも細かく「Telnetだけ拒否」という制御が可能です。今回は拡張ACLのみをサーバー側インターフェースに適用し、ステップ3の標準ACLは考え方の確認にとどめます(両方を同時に同じインターフェースへ適用しないよう注意してください)。
確認
まず、SSHでの管理アクセスを確認します。
PC> ssh -l netadmin 192.168.10.1
Password:
HQ-RT1#
続いて、開発部PCからサーバーへの疎通とTelnetを確認します。
C:\> ping 192.168.30.10
Reply from 192.168.30.10: bytes=32 time=2ms TTL=254
C:\> telnet 192.168.30.10
Trying 192.168.30.10 ...
% Connection timed out; remote host not responding
pingは通り、Telnetだけが拒否されていれば、拡張ACLが意図どおりに動作しています。最後に、ポートセキュリティの状態も確認します。
SW1# show port-security interface FastEthernet0/1
Port Security : Enabled
Violation Mode : Restrict
Security Violation Count : 0
合格チェックリスト
- ルーター・スイッチともにSSHでログインでき、Telnetは拒否される
enable secretによって特権モードのパスワードが保護されている- 各スイッチのPC接続ポートにポートセキュリティが設定され、
show port-securityで状態確認ができる - 開発部PCから社内サーバーへのpingは許可される
- 開発部PCから社内サーバーへのTelnet(TCP/23)は拒否される
- 総務部PCからサーバーへの通信には影響が出ていない
つまずきポイント
- 作業順序のミス:先にACLで自分自身の管理アクセス経路を塞いでしまい、リモートから設定変更できなくなることがあります。SSH化を先に済ませ、動作確認してからACLを追加するのが安全です。
- ACLの適用インターフェース・方向の誤り:拡張ACLは送信元に近い側に置くのが定石ですが、この演習ではサーバー側(宛先側)のoutに適用しています。トポロジ図を見ながら「どちら向きの通信を止めたいか」を必ず確認しましょう。
- 暗黙のdenyの見落とし:
access-list 110の最後にpermit ip any anyを書き忘れると、意図せずすべての通信が暗黙のdenyで拒否されてしまいます。許可したい通信を必ず明示しましょう。
この演習でACLを設定する前に、まずSSH化を済ませておくべき理由は何でしょうか?
答えを見る
ACLの設定を誤ると、自分自身の管理アクセス経路まで意図せず遮断してしまう可能性があるためです。先にSSHでの安全な管理アクセスを確立し、動作確認をしてからACLを追加することで、設定作業中に機器へアクセスできなくなるリスクを減らせます。
STAGE05で学んだSSH化、ポートセキュリティ、ACL——1つのネットワークに組み合わせて設定できたね。個別の技術を単発で覚えるだけじゃなくて、「どの順番で組み立てるか」まで意識できると、実務でもぐっと安心感が違うよ。次はSTAGE06、運用と自動化の世界。まずは隣接機器を自動で見つけるCDPとLLDPから見ていくよ。