BIG-IP をリモートから管理する方法は、SSH で入る CLI と、HTTPS でブラウザから使う GUI(Configuration Utility)の2つです。どちらも初期状態ではすべての送信元アドレスから接続を受け付けるので、管理用の端末やネットワークに絞っておくと、不正アクセスのリスクを下げられます。この記事では、SSH と HTTPS の管理アクセスを送信元アドレスで制限する設定と、その動作を確かめます。
- SSH の接続元を GUI(SSH IP Allow)で制限する
- SSH の接続元を tmsh(
sys sshd allow)で制限する - 許可していないアドレスからの SSH がリセットされることを確かめる
- HTTPS(Configuration Utility)の接続元を tmsh(
sys httpd allow)で制限する - 許可していないアドレスからの HTTPS が 403 になることを確かめる
BIG-IP 16.1.2 で検証しています。16.1 系はすでに F5 のサポート期間が終わっているので、これから構築する場合はサポート中のバージョンを選んでください。
管理アクセス制限のしくみ
SSH は sys sshd の allow、HTTPS の Configuration Utility は sys httpd の allow に、接続を許可する送信元を一覧で登録します。一覧にない送信元からの接続は、SSH ではリセットされ、HTTPS では 403 Forbidden のページが返ります。
| 対象 | 設定する項目 | 初期値 | この記事で使う設定方法 |
|---|---|---|---|
| SSH(CLI) | sys sshd allow | ALL(すべて許可) | GUI(SSH IP Allow)と tmsh |
| HTTPS(GUI) | sys httpd allow | All(すべて許可) | tmsh |
設定に使っている端末のアドレスを一覧に入れ忘れると、その端末から管理アクセスできなくなります。許可する送信元を先に追加してから ALL(All)を消す、または自分のアドレスを含めて置き換える順番で作業します。
SSH アクセス制限
SSH の接続元は、GUI(Configuration Utility)と CLI(tmsh)のどちらでも設定できます。
GUI で設定する(SSH IP Allow)
System ›› Platform を開くと、User Administration の欄に SSH IP Allow があります。初期値は * All Addresses で、すべてのアドレスからの SSH を受け付けます。
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| Root Account | ☑ Disable login |
| Admin Account | ☐ Allow lockout of admin account Password: •••••••••• Confirm: •••••••••• |
| SSH Access | ☑ Enabled |
| 1SSH IP Allow | * All Addresses |
| No. | 項目 | 内容 |
|---|---|---|
| 1 | SSH IP Allow | 初期値は * All Addresses(すべてのアドレスから SSH を受け付ける)。プルダウンには * All Addresses と Specify Range... があります。 |
送信元を絞るときは、プルダウンで Specify Range... を選びます。右に入力欄が出るので、許可する送信元を書いて Update をクリックします。
| ⋮ (中略) | |
| SSH Access | ☑ Enabled |
| 1SSH IP Allow | Specify Range… 192.168.100.0/24 192.168.1.1 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | SSH IP Allow | Specify Range... を選び、右の欄に許可する送信元を入力します(書き方は下の表)。 |
| 2 | Update | クリックして反映します。 |
| 入力例 | 許可する送信元 |
|---|---|
| 192.168.100.0/24 | ネットワーク(セグメント)192.168.100.0/24 からの接続 |
| 192.168.1.1 | ホスト 192.168.1.1 からの接続 |
| 192.168.100.0/24 192.168.1.1 | 両方。複数登録するときは、エントリの間を半角スペースで区切ります |
tmsh で設定する(sys sshd allow)
CLI では tmsh の sys sshd allow を使います。まず、今の設定を list sys sshd allow で確かめます。
BIG-IP(tmsh)
(tmos)# list sys sshd allow
sys sshd {
allow { ALL }
}
allow { ALL } は、すべてのアドレスからの SSH を受け付ける初期状態です。一覧の変更には、追加の add、削除の delete、全体を置き換える replace-all-with を使います。
送信元を追加する(add)
192.168.100.0/24 からの接続を許可するには、add で追加します。
(tmos)# modify sys sshd allow add { 192.168.100.0/24 }
追加されたことを確認します。
(tmos)# list sys sshd allow
sys sshd {
allow { ALL 192.168.100.0/24 }
}
この状態では ALL が残っているので、まだすべてのアドレスから接続できます。
送信元を削除する(delete)
ALL を delete で削除します。
(tmos)# modify sys sshd allow delete { ALL }
192.168.100.0/24 だけが残りました。
(tmos)# list sys sshd allow
sys sshd {
allow { 192.168.100.0/24 }
}
複数の送信元を登録する
GUI と同じく、複数登録するときはエントリの間を半角スペースで区切ります。
(tmos)# modify sys sshd allow add { 192.168.100.0/24 192.168.1.1 }
一覧全体を置き換える(replace-all-with)
初期状態(ALL)から add で登録すると、上のように ALL を別に消す必要があります。replace-all-with を使えば、一覧全体を一度で置き換えられます。まず、初期状態であることを確かめます。
(tmos)# list sys sshd allow
sys sshd {
allow { ALL }
}
一覧を { 192.168.100.0/24 192.168.1.1 } に置き換えます。
(tmos)# modify sys sshd allow replace-all-with { 192.168.100.0/24 192.168.1.1 }
ALL が消え、指定した2つだけになりました。
(tmos)# list sys sshd allow
sys sshd {
allow { 192.168.100.0/24 192.168.1.1 }
}
tmsh で変更した内容は、保存しないと再起動で元に戻ります。最後に設定を保存します。
(tmos)# save sys config
allow には none も指定できますが、F5 の tmsh リファレンスでは、sshd の none はすべての接続を許可する状態に戻ると説明されています。SSH を止めたいときは none ではなく、GUI の SSH Access のチェックを外すなど別の方法を使います。
SSH の動作確認
許可していないアドレスから SSH で接続すると、接続がリセットされます。
1Connection reset by peer
| No. | 表示 | 意味 |
|---|---|---|
| 1 | Connection reset by peer | BIG-IP 側から接続を切られた(リセットされた)ことを示します。ログインのプロンプトは表示されません。 |
HTTPS(Configuration Utility)アクセス制限
ブラウザから使う Configuration Utility への接続元は、tmsh の sys httpd allow で制限します。
tmsh で設定する(sys httpd allow)
今の設定を list sys httpd allow で確かめます。
BIG-IP(tmsh)
(tmos)# list sys httpd allow
sys httpd {
allow { All }
}
allow { All } は、すべてのアドレスからの HTTPS 接続を受け付ける初期状態です(sshd の ALL と表記が違います)。add、delete、replace-all-with の使い方は SSH と同じです。
送信元を追加して All を削除する
192.168.100.0/24 を追加します。
(tmos)# modify sys httpd allow add { 192.168.100.0/24 }
(tmos)# list sys httpd allow
sys httpd {
allow { All 192.168.100.0/24 }
}
All が残っているので、削除します。
(tmos)# modify sys httpd allow delete { All }
(tmos)# list sys httpd allow
sys httpd {
allow { 192.168.100.0/24 }
}
複数登録と置き換え
複数の送信元を追加する場合は、スペースで区切ります。
(tmos)# modify sys httpd allow add { 192.168.100.0/24 192.168.1.1 }
一覧全体を置き換える場合は replace-all-with を使います。
(tmos)# modify sys httpd allow replace-all-with { 192.168.100.0/24 192.168.1.1 }
制限をやめて初期状態に戻すときは、All で置き換えます。
(tmos)# modify sys httpd allow replace-all-with { All }
SSH と同じく、tmsh で変更したあとは save sys config で保存します。
HTTPS の動作確認
許可していないアドレスからブラウザで Configuration Utility を開くと、403 のエラーページが表示され、ログイン画面に進めません。
うまくいかないとき
| 状態 | よくある原因 | 確認すること |
|---|---|---|
| 許可したはずの端末から SSH がリセットされる | 端末の実際の送信元アドレスが一覧に入っていない(NAT を通っている、別のセグメントから来ている) | list sys sshd allow の一覧と、BIG-IP から見た端末の送信元アドレス |
| 制限したのに、どこからでも接続できる | add だけ実行して、ALL(All)が残っている | list sys sshd allow/list sys httpd allow に ALL/All がないか |
| 再起動したら制限が消えた | tmsh で変更したあと保存していない | save sys config を実行したか |
| 自分の端末からも入れなくなった | 自分のアドレスを入れずに ALL(All)を消した | もう一方の手段(SSH なら GUI、GUI なら SSH)やコンソールから入り、一覧を直す |
まとめ
| 操作 | SSH(sys sshd) | HTTPS(sys httpd) |
|---|---|---|
| 確認 | list sys sshd allow | list sys httpd allow |
| 追加 | modify sys sshd allow add { … } | modify sys httpd allow add { … } |
| 削除 | modify sys sshd allow delete { … } | modify sys httpd allow delete { … } |
| 置き換え | modify sys sshd allow replace-all-with { … } | modify sys httpd allow replace-all-with { … } |
| 初期値 | ALL | All |
| GUI | System ›› Platform の SSH IP Allow | ―(この記事では tmsh で設定) |
| 許可外の接続 | 接続がリセットされる | 403 Forbidden |
tmsh で変更したら save sys config で保存すること、自分の管理端末のアドレスを一覧から外さないことの2点に気を付けてください。
コメント