blog.monophile.net

コンピュータのこととかのメモ。

山本 一彰 | Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 2015年にコンビネータ論理を基に計算完備な計算手法 "論理珠算"を開発し、 それを含む体系である"算道"を構成した。 その成果により、 第19回 文化庁メディア芸術祭 アート部門 新人賞 (文部科学大臣賞) を2016年に受賞。 現在はインフラエンジニアとして生計をたててている。

技術

Configuration Management Ansible, Terraform, Cloud-Init
Cloud Platform GCP, AWS, Azure, OpenStack
Virtualization, Container QEMU+KVM, Xen, LXD/LXC, Docker
OS Ubuntu, Debian GNU/Linux, CentOS, FreeBSD, ...
Storage Ceph, GlusterFS, ZFS, btrfs, ...
Router Linux+Netfilter, Quagga, VyOS, Cisco IOS, YAMAHA RTX, ...
Switch Dell FTOS, AlaxalA, NETGEAR, ...
DB MySQL, MariaDB(Galera Cluster), MongoDB
Mail postfix, dovecot, RainLoop
WebApps WordPress, GitLab, MatterMost, Redmine, ...
Monitoring Nagios, Munin, Zabbix, Prometheus, Grafana
Misc Kubernetes/Istio, certbot, dnsmasq, ...

習得中

OS CoreOS(Container Linux), Windows on QEMU, ...
SQL PostgreSQL, BigQuery, ...
NoSQL CouchDB, ArangoDB, Neo4J, ...
Misc Proxmox, oVirt, MAAS, NFV, ...

投稿

Intel AMT の Serial over LAN を Linux で使ってみる

概要

vPro対応のThinkPadを持っていたので、 Intel AMTを使ってSerial-over-LAN(SOL)をやってみた。 リモートでBIOSの設定も可能。 2017年になってIntel AMTの脆弱性が発見されたので、 Intel AMTのファームウェアのアップデートは必須。 (おそらく、同じセグメントに信頼できるホストしか居ない場合は問題ない。) Intel AMTのファームウェアのアップデートはWindowsじゃないとできなさそう。

Intel AMTの設定

起動時のThinkPadロゴマーク表示しているときににEnterを押してからCtrl-Pを押してから以下のように設定する。 (今回はSOLのみの設定。)

  • 大文字小文字数字を絡めたパスワードの設定。 (例: P@ssw0rd)
  • IPとマスクの設定 (例: 192.168.xx.xx/255.255.255.0)
  • Manageability Feature Selection -> Enabled
  • SOL -> Enabled
  • Legacy Redirection Mode -> Enabled
  • User Consent -> Disabled

Linux側の設定

pciの[VendorID:DeviceID]を確認する。

$ lspci -nn | grep -i "serial controller"
00:16.3 Serial controller [0700]: Intel Corporation 7 Series/C210 Series Chipset Family KT Controller [8086:1e3d] (rev 04)

/etc/udev/rules.d/z25_sol.rules に上で確認したIDでttySOLへのシンボリックリンクを作成するように設定する。

KERNEL!="ttyS[0-9]", GOTO="no_serial"
ATTRS{vendor}!="0x8086", GOTO="vendor_not_intel"
ATTRS{device}=="0x1e3d", SYMLINK+="ttySOL", ENV{COMMENT}="Serial-Over-Lan $attr{vendor}:$attr{device}"
GOTO="vendor_not_intel"
LABEL="no_serial"

再起動すると以下のようにシンボリックリンクが作成されることが確認できる。

$ ls -l /dev/ttySOL
lrwxrwxrwx 1 root root 5 Aug  4 22:04 /dev/ttySOL -> ttyS4

この状態でgettyを起動することによって、ttySOLが使えるようになる。

$ sudo /sbin/getty -L ttySOL 115200 vt100-nav

ブート時にgettyが立ち上がるように設定するために、 /etc/default/grubでカーネルの起動パラメータを以下のように変更しupdate-grubする。

GRUB_CMDLINE_LINUX="console=tty0 console=ttyS4,115200n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --port=0xf0e0 --word=8 --parity=no --stop=1"

確認

192.168.xx.xx/255.255.255.0 と同じセグメントから http://192.168.xx.xx:16992/ にアクセスするとIntel AMTの画面が見れる。

また、以下でIntel AMTの情報を確認することも可能。

$ sudo apt install amtterm
$ export AMT_PASSWORD=P@assw0rd
$ amttool -h 192.168.xx.xx info
### AMT info on machine '192.168.xx.xx' ###
AMT version:  8.1.71
Hostname:     your-hostname
Powerstate:   S0
Remote Control Capabilities:
    IanaOemNumber                   0
    OemDefinedCapabilities          IDER SOL BiosSetup BiosPause
    SpecialCommandsSupported        PXE-boot HD-boot cd-boot
    SystemCapabilitiesSupported     powercycle powerdown powerup reset
    SystemFirmwareCapabilities      f800

Serial over LAN

別ホストからIntel AMTのIPアドレスを指定することによってSerial Over LANができた。

$ export AMT_PASSWORD=P@assw0rd
$ amtterm 192.168.xx.xx
amtterm: NONE -> CONNECT (connection to host)
ipv4 192.168.xx.xx [192.168.xx.xx] 16994 open
amtterm: CONNECT -> INIT (redirection initialization)
amtterm: INIT -> AUTH (session authentication)
amtterm: AUTH -> INIT_SOL (serial-over-lan initialization)
amtterm: INIT_SOL -> RUN_SOL (serial-over-lan active)
serial-over-lan redirection ok
connected now, use ^] to escape

Ubuntu 17.04 your-hostname ttyS4

your-hostname login:

BIOSの設定

Intel AMT経由でBIOSの設定をリモートでするには、 予めBIOSで下記のようにConsole TypeをVT100にしておかなければならない。

上記のように設定した状態で下記のように再起動するとBIOSの設定画面を操作することができる。

$ export AMT_PASSWORD=P@assw0rd
$ gamt 192.168.xx.xx &
$ amttool -h 192.168.xx.xx reset bios

参考