0.はじめに
どうやってもルーターの管理ポートの設定が上手くいかない。そんな時、コンソールサーバーが欲しくなります。ですが、コンソールサーバーの予算なんてもちろんない。
ということで手元にあったRPi3Bを使って、簡易コンソールサーバーを構築していく。
※今回の構築はあくまで簡易的なものなので、常時稼働するものを作る場合はconserver等の使用を推奨する。
1. 構築環境
使用機材
- Raspberry Pi 3 Model B Rev 1.2
- USB-RJ45シリアルケーブル ×2
- RPi電源ケーブル
- microSDカード 16gb
あったほうがいいもの - LANケーブル延長コネクタ
- USBハブ
シリアルで操作するネットワーク機器: Juniper SRX 1500 ×2
2. 設計
eth ttyUSB* con
PC ------------ PiCS ============ Juniper
-----Telnet-----> ---Console--->
簡易コンソールサーバーなので、SSHという上質な物は使わない。
3. 構築
SDにubuntuを書き込んでおく。
server版でもdesktop版でも構わない。
RPi を更新して、SSH、telnet、ser2netをインストールする
sudo apt update
sudo apt upgrade -y
sudo apt install openssh-server
sudo apt install telnetd
sudo apt install vim
sudo apt install ser2net
シリアルポートの把握
sudo dmesg | grep tty
ttyUSB0とttyUSB1の二つが接続されていることがわかる。
/etc/ser2net.yamlを編集
connection: &con<任意>
accepter: telnet,<RPiのIPアドレス>,<TCPのポート>
enable: on
options:
banner: *banner
kickolduser: true
telnet-brk-on-sync: true
connector: serialdev,
/dev/ttyUSB<確認したUSB番号>,
転送速度n81,local
TCPのポートは使用されているポートに当たらなければ、任意で設定可能。
転送速度は今回は9600 bpsに設定。
リスタートする。
sudo systemctl restart ser2net
TCPのポートがリッスンしているか確認
$ ss -atn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 5 10.254.0.180:3005 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 0.0.0.0:23 0.0.0.0:*
LISTEN 0 5 10.254.0.180:3004 0.0.0.0:*
ESTAB 0 0 10.254.0.180:22 10.254.254.28:60882
ESTAB 0 0 10.254.0.180:3004 10.254.254.28:63465
ESTAB 0 52 10.254.0.180:22 10.254.254.28:62805
LISTEN 0 5 *:2000 *:*
LISTEN 0 5 *:2001 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 128 [::1]:631 [::]:*
LISTEN 0 5 *:3000 *:*
LISTEN 0 5 *:3001 *:*
4. 動作確認
PCから、telnetでポートを指定して、接続する。
$telnet 10.254.0.180 3005
Trying 10.254.0.180...
Connected to 10.254.0.180.
Escape character is '^]'.
ser2net port telnet,10.254.0.180,3005 device serialdev, /dev/ttyUSB0, 9600n81,local [] (Debian GNU/Linux)
FreeBSD/amd64 (Amnesiac) (ttyu0)
login:
5.問題点
-
セキュリティ
telnet接続のため、SSHと違い暗号化されていない点。
また、本来Console serverへのログインの際、パスワード等を求められるが、要求されない点。 -
ログ取り
変更履歴を残す確認できるようにlogを取るべきだが、調べた限り、自動でログ取りする機構をser2netは備えていない
→→ser2netでのコンソールサーバー構築はあくまで簡易的なものなので、常時稼働するものを作るならconserverの使用を推奨する。
参考URL
- 機器の構成を参考
- ser2netの導入方法
- ser2netの設定方法