STAGE 05 / 総演習

PT演習 5-4:セキュリティ総合演習(SSH+ポートセキュリティ+ACL)

考えてみよう

Stage05では、SSH化・ポートセキュリティ・ACLと、個別に手を動かして学んできました。これらを1つのネットワークにまとめて設定するとしたら、どんな順番で組み立てるのが安全でしょうか?

管理アクセスを守る設定(SSH)を先に済ませてから、通信の制御(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台のルーターでつながっています。

総務部PCからサーバーへのpingは通り、開発部PCからサーバーのTelnet(TCP/23)だけが拒否される、拡張ACL適用後の実行結果
総務部PCからサーバーへのpingは通り、開発部PCからサーバーのTelnet(TCP/23)だけが拒否される、拡張ACL適用後の実行結果

準備

  1. Router 2911を1台、Switch 2960を2台、PC-PTを3台(総務部PC、開発部PC、サーバーPC)配置します。
  2. 各PCとスイッチ、各スイッチとルーターはすべてストレートケーブルで接続します。
  3. ルーターの各インターフェース(Gi0/0:総務部、Gi0/1:開発部、Gi0/2:サーバー側)にそれぞれのネットワークのゲートウェイアドレスを設定しておきます。
  4. 各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

合格チェックリスト

つまずきポイント

確認問題

この演習でACLを設定する前に、まずSSH化を済ませておくべき理由は何でしょうか?

答えを見る

ACLの設定を誤ると、自分自身の管理アクセス経路まで意図せず遮断してしまう可能性があるためです。先にSSHでの安全な管理アクセスを確立し、動作確認をしてからACLを追加することで、設定作業中に機器へアクセスできなくなるリスクを減らせます。

ゆみちゃん
ゆみ

STAGE05で学んだSSH化、ポートセキュリティ、ACL——1つのネットワークに組み合わせて設定できたね。個別の技術を単発で覚えるだけじゃなくて、「どの順番で組み立てるか」まで意識できると、実務でもぐっと安心感が違うよ。次はSTAGE06、運用と自動化の世界。まずは隣接機器を自動で見つけるCDPとLLDPから見ていくよ。