Choose “Save as PDF” as the destination to download this doc.

Back to the doc
amnimo Manual Library

G2.4 SSHの接続元を制限する

設定ガイド 第2章 設定例  ·  https://manual.amnimo.com/docs/guide-examples-cli/g2-4-cli/

G2.4 SSHの接続元を制限する

対象機種: AG10(ほかの機種はインターフェイス名が異なります。『G1.4 インターフェイスとポートの対応』を参照してください)

パケットフィルタリングで、本製品への SSH 接続を、LAN 側と特定の管理端末からだけ受け付けるように制限します。

warning 注意: パケットフィルタリングの設定は、入力した時点ですぐに反映されます。手順の順序を誤ると、作業中の SSH 接続が切れ、本製品に接続できなくなります。特に WAN 側(LTE 回線など)からリモートで作業する場合は、許可するルールをすべて作成してから、最後にデフォルトポリシーを drop にしてください。可能であれば、LAN 側やシリアルコンソールから作業してください。

要件

この設定例は、G2.1〜G2.3 の構成を前提にしています。

構成
   管理端末 203.0.113.10         その他の端末
          |  SSH 許可                |  破棄
          +-----------+--------------+
                      |
                インターネット
                      |
                    ecm0
            +-------------------+
            |   本製品(AG10)   |
            +-------------------+
              br0 192.168.0.254/24
                      |  すべて許可(SSH、DHCP、DNS など)
            LAN 192.168.0.0/24

本製品宛てのパケットは、パケットフィルタリングの input で扱います。input のルールは、インデックス番号の小さい順に確認され、最初に合致したルールが適用されます。どのルールにも合致しなかったパケットには、デフォルトポリシーが適用されます。

インデックス合致条件ポリシー目的
10接続の状態が related、establishedaccept本製品から開始した通信の戻りパケットを許可する
20入力インターフェイスが loaccept本製品内部の通信を許可する
30入力インターフェイスが br0acceptLAN 側からの通信をすべて許可する
40入力インターフェイスが ecm0、送信元が 203.0.113.10、TCP の宛先ポートが 22accept管理端末からの SSH を許可する
デフォルトポリシー―drop上記以外を破棄する(最後に設定する)
手順
  1. SSH を有効にします。SSH は初期状態で無効です。すでに有効な場合(show config ssh で enable と表示される場合)は不要です。

    amnimo# configure
    amnimo(cfg)# ssh
    amnimo(cfg-ssh)# enable
    amnimo(cfg-ssh)# exit
    amnimo(cfg)#
  2. 現在の input の設定を確認します。インデックス番号 10、20、30、40 が使われていないこと、デフォルトポリシーが accept であることを確認します。

    amnimo(cfg)# show config filter input
  3. 戻りパケットと内部の通信を許可するルールを作成します。

    amnimo(cfg)# filter input 10
    amnimo(cfg-fin-10)# policy accept
    amnimo(cfg-fin-10)# match conntrack state related,established
    amnimo(cfg-fin-10)# enable
    amnimo(cfg-fin-10)# exit
    amnimo(cfg)# filter input 20
    amnimo(cfg-fin-20)# policy accept
    amnimo(cfg-fin-20)# match in-interface lo
    amnimo(cfg-fin-20)# enable
    amnimo(cfg-fin-20)# exit
  4. LAN 側(br0)からの通信を許可するルールを作成します。このルールがないと、デフォルトポリシーを drop にした時点で、LAN 側からの SSH や GUI へのアクセス、本製品の DHCP サーバーや DNS への要求も破棄されます。

    amnimo(cfg)# filter input 30
    amnimo(cfg-fin-30)# policy accept
    amnimo(cfg-fin-30)# match in-interface br0
    amnimo(cfg-fin-30)# enable
    amnimo(cfg-fin-30)# exit
    • match in-interface には、ブリッジ配下のインターフェイス(lan0 など)ではなく、ブリッジ(br0)を指定します。ブリッジ配下のインターフェイスを指定すると、ルールに合致しません。
    • eth0 を LAN 側として使う場合は、eth0 についても同様のルールを作成します。eth0 を WAN 側として使う場合は作成しないでください。
  5. 管理端末からの SSH を許可するルールを作成します。1 つのルールに設定した複数の match は、すべてに合致したときだけ適用されます(AND 条件)。

    amnimo(cfg)# filter input 40
    amnimo(cfg-fin-40)# policy accept
    amnimo(cfg-fin-40)# match in-interface ecm0
    amnimo(cfg-fin-40)# match src-ip 203.0.113.10
    amnimo(cfg-fin-40)# match protocol tcp dst-port 22
    amnimo(cfg-fin-40)# enable
    amnimo(cfg-fin-40)# exit
    • SSH のポート番号を 22 から変更している場合(show config ssh の port)は、その番号を指定します。
    • 管理端末が複数ある場合は、インデックス番号を変えて同様のルールを作成します。
  6. 作成したルールを表示し、誤りがないことを確認します。リモートで作業している場合は、作業中の接続元が、ルール 10〜40 のいずれかで許可されることを必ず確認してください。

    amnimo(cfg)# show config filter input
  7. 最後に、デフォルトポリシーを drop にします。

    amnimo(cfg)# filter input default-policy drop
  8. 新しい SSH 接続を、管理端末と LAN 側の端末から開けることを確認します(作業中の接続は切らずに残しておきます)。問題がなければ設定を保存します。

    amnimo(cfg)# config file save

    note 補足: config file save を実行するまでは、設定は保存されていません。設定を誤って接続できなくなった場合でも、保存する前であれば、本製品を再起動すると保存済みの設定で起動します(現地での電源操作が必要です)。動作を確認してから保存してください。

各コマンドの詳細は、次の節を参照してください。

完成した設定

管理者モード(amnimo#)で貼り付けます。許可するルールを先に、デフォルトポリシーの drop を最後に設定する順序になっています。順序を入れ替えないでください。

configure
ssh
enable
exit
filter input 10
policy accept
match conntrack state related,established
enable
exit
filter input 20
policy accept
match in-interface lo
enable
exit
filter input 30
policy accept
match in-interface br0
enable
exit
filter input 40
policy accept
match in-interface ecm0
match src-ip 203.0.113.10
match protocol tcp dst-port 22
enable
exit
filter input default-policy drop
config file save

note 補足: 同じ接続元からの SSH の接続回数を制限する(ブルートフォース攻撃への対策)例は、『6.6.2 パケット合致条件を設定する』の実行例(JC-STAR★1 適合基準番号 S1.1-04)を参照してください。

確認方法
  1. input の設定を表示します(6.4.1 パケットフィルタリングの設定を表示する)。

    amnimo# show config filter input
    • 見どころ: 先頭に filter input default-policy drop が表示されること。ルール 10〜40 がそれぞれ enable、policy accept で、手順どおりの match が表示されること。
  2. SSH の設定を表示します(7.4.1 SSHの設定を表示する)。

    amnimo# show config ssh
    • 見どころ: enable と表示され、port がルール 40 の宛先ポートと一致していること。
  3. 次の接続を試し、結果を確認します。

    接続元期待する結果
    LAN の端末から 192.168.0.254 へ SSH接続できる
    管理端末(203.0.113.10)から ecm0 のアドレスへ SSH接続できる
    それ以外の端末から ecm0 のアドレスへ SSH接続できない
    LAN の端末の DHCP によるアドレス取得取得できる
よくある失敗
症状確認すること
デフォルトポリシーを drop にした時点で接続が切れた作業中の接続元を許可するルールがなかった、または誤っていました。保存前であれば、再起動すると保存済みの設定で起動します。保存後の場合は、LAN 側やシリアルコンソールから接続して設定を直します。
LAN の端末がアドレスを取得できなくなった、名前解決できなくなったbr0 を許可するルール(30)があるか。match in-interface にブリッジ配下のインターフェイス(lan0 など)を指定していないか。
管理端末から接続できない管理端末の送信元アドレスが、本製品から見て 203.0.113.10 になっているか(途中で NAT されていないか)。宛先ポートが SSH のポート番号と一致しているか。SSH が有効か。
制限したはずの端末から接続できるルール 40 より前(インデックス番号の小さい側)に、ecm0 からの通信を広く許可するルールがないか。ルールはインデックス番号の小さい順に確認され、最初に合致したルールが適用されます。

詳しい切り分けは『G3.4 本製品にアクセスできなくなった』を参照してください。

関連する設定例