Remote Serial Console HOWTO

Glen Turner

Australian Academic and Research Network

Mark F. Komarinski

日本語訳:芳賀靖史 -

yasufumi.haga@nifty.com

v2.4 2002年 10月 13日

Revision History
Revision 2.42002年10月3日
カーネルフロー制御のバグ情報とケーブリング、 Debian および Livingston Portmaster の追加、誤字修正(特に 日本語への翻訳の際見つかったもの)
Revision 2.32002年7月11日
Red Hat Linux 7.3 用にアップグレード。 シリアルポート速度とUART、ioctlsave の修正。
Revision 2.22002年5月22日
マイナーチェンジ
Revision 2.12002年5月16日Revised by: gdt
カーネルのコンソール構文を訂正。USB と devfsを追加
Revision 2.02002年2月2日Revised by: gdt
第二版
Revision ≤1.02001年3月20日Revised by: mfk
初版

RS-232 のシリアルコンソールを使えば、 非同期シリアルポートに接続した端末やモデムから Linux を制御できるようになります。 そうなれば、もう管理対象マシンのモニターやマウス、 キーボードを使わなくてもシステムを管理できます。 シリアルコンソールが役に立つのは、 Linux システムを遠隔地のサイトや、 あるいは高密度のラックに配備しているところなのです。

この HOWTO では、 シリアルコンソールを接続するのに必要な、 Linux の設定方法を説明します。


献辞

私 Glen Turnerは、自分の家族に謝意を表したいと思います。 この HOWTO を書くために非常に長い間、幾晩も幾晩も、 このプロジェクトに注力できたのは、家族のおかげです。 Karen, Kayla そして Ella、ありがとう。

Table of Contents
1. はじめに
1.1. コンソールとは何か?
1.2. シリアルコンソールを使う理由
1.3. ‘コンソール’ の新しい意味
1.4. 設定の概要
2. 準備
2.1. 万が一に備える
2.2. シリアルポートを選択する
2.3. シリアルポートの速度とパラメータを選択する
2.4. モデムを設定する、あるいはヌルモデムケーブルを使う
2.5. 端末あるいは端末エミュレータを設定する
3. 必要なら BIOS の設定を行なう
4. ブートローダーを設定する
4.1. LILO ブートローダーを設定する
4.2. GRUB ブートローダーを設定する
4.3. SYSLINUX ブートローダーを設定する
5. Linux カーネルの設定変更
5.1. LILO を使った Linux カーネルの設定
5.2. GRUB を使っている Linux カーネルの設定
5.3. SYSLINUX を使っている Linux カーネルの設定
6. getty を設定する
6.1. init システム
6.2. 従来の getty
6.3. agetty
6.4. mgetty
6.5. mingetty
6.6. getty 無し
7. 付随するその他の設定
7.1. シリアルコンソールから root が ログインできるようにする。
7.2. init レベルをテキストレベルに変える
7.3. 保存してあるコンソールの設定を削除する
7.4. シリアルコンソールは /dev/modem ではない
7.5. /dev/systty のターゲットを変更する。
7.6. PAM(Pluggable Authentication Modules) の設定
7.7. Red Hat Linux を設定する
8. リブートとテスト
8.1. コンソール操作の検証
8.2. 保存したコンソールの設定を再作成する
8.3. コンソールをテストする
8.4. ここから次はどこへ?
9. セキュリティ
9.1. 良いパスワードを使う
9.2. "Data Terminal Ready" と "Data Carrier Detect" に従う
9.3. ダムモデムを使う、あるいは設定する。
9.4. コンソールメッセージを制限する
9.5. モデムの機能を用いて使用を制限する
9.6. BIOS の特徴
9.7. ブートローダーのパスワードを使う
9.8. 非対話的ブートシーケンス
9.9. マジック SysRq キー
9.10. Ctrl-Alt-Delete の動きを調整する
9.11. アクセス未遂のログ
9.12. 電話回線リンクの盗聴への対応
10. シリアルコンソールをサポートするように、カーネルを設定する
10.1. Linux カーネルのバージョン 2.5
10.2. Linux カーネルのバージョン 2.4
10.3. Linux カーネルのバージョン 2.2
11. シリアルケーブルの詳細
11.1. 用語
11.2. コンソールポート・モデム間のケーブル
11.3. コンソールポートと端末(または別のPC)間のケーブル
11.4. シリアルケーブルの作成
12. モデムの設定
12.1. Minicom を使ってモデムにコマンドを送る
12.2. ダムモデムを設定する
12.3. AT コマンドでモデムを設定する
12.4. 内蔵モデム
12.5. WinModem
A. バグと困りごと
A.1. Linux カーネルのフロー制御
A.2. Red Hat Linux 7.1 と SysVinit
A.3. BIOS、 キーボード、そしてビデオカード
A.4. リブートでモデムがハングアップする
A.5. initsyslog の出力は補助コンソールには表示されない。
A.6. 接続してもコンソールが応答しない
A.7. 初期化中にモデムがハングアップする
A.8. ブートローダーにはフロー制御がない
A.9. ブートローダーはラインノイズに弱い
A.10. Advanced Power Management
A.11. モデムと国際電話の必要条件
B. シリアルコンソールからファイルをアップロードする
B.1. コンソールにログを取らないようにする
B.2. "ASCII アップロード" と cat
B.3. Xmodem, Ymodem および Zmodem
B.4. Kermit
C. Red Hat Linux をシリアルコンソールからアップグレードする
C.1. ブートディスクを選ぶ
C.2. シリアルポートを使うように BIOS を設定する。
C.3. DTR を無視して、DCD をアサートするようにモデムを設定する
C.4. ネットワークインストール用フロッピーディスクを用意する
C.5. HTTP サーバーを準備する
C.6. ネットワーク設定を記録しておく
C.7. LILO の設定を記録しておく
C.8. Red Hat ディストリビューションをアップグレードする
C.9. シリアルコンソール用のブートディスクを作る
C.10. 参考文献
D. シリアルコンソールから、 DebianGNU/Linux をアップグレードする
E. ターミナルサーバーの設定
E.1. 中古のターミナルサーバーを購入する際の考慮事項
E.2. Cisco 2511
E.3. Xyplex/iTouch MAXserver 1600
E.4. Xylogics/Bay/Nortel Annex
E.5. Livingston/Lucent Portmaster
F. 開発者へのお願い
F.1. ブートローダーの作者へのお願い
F.2. BIOS の作者へのお願い
G. この HOWTO について
G.1. 著作権
G.2. 免責条項
G.3. 謝辞
G.4. コメントと訂正
G.5. 日本語版謝辞
Colophon
List of Tables
1-1. ‘コンソール‘を指すいろいろな言葉
2-1. 同じシリアルポートに対する様々な名前
2-2. IBM PC/ATRS-232 ポート用に使用する割り込み
4-1. SYSLINUX のフロー制御ビットマップ
10-1. IBM-PC/AT のシリアルポートのビットレートと、 そのビットクロックの除数
List of Figures
2-1. /etc/rc.serialsetserial コマンドを使い、 シリアルポート /dev/ttyS2 を 無効にする。
2-2. 拡張 BNF 記法で表したシリアルビットレート構文
2-3. 拡張 BNF 記法によるシリアルパリティ構文
2-4. 拡張 BNF 記法によるシリアルデータビット構文
2-5. 拡張 BNF 記法によるシリアルストップビット構文
2-6. 拡張 BNF 記法によるシリアルフロー制御の構文
2-7. 拡張 BNF 記法によるカーネルのシリアルパラメータ構文
4-1. EBNF による LILOserial コマンド書式
4-2. EBNF記法による LILOserial 変数
4-3. LILO ブートローダーの設定サンプル
4-4. md5crypt を使って、 GRUB 用のハッシュしたパスワードを作る
4-5. パスワードを要求するようにした GRUB の設定
4-6. シリアルコンソール用の GRUB の設定
4-7. シリアルコンソールおよび、付属のモニター・キーボード用の GRUB の設定
4-8. シリアルコンソールと付属のモニター用に設定した場合の、 デフォルトデバイスへの GRUB の出力
4-9. VT100 以外の端末でコマンドラインインタフェースを使う場合の GRUB の設定
4-10. GRUB のメニューにシングルユーザーモードのオプションを追加する
4-11. EBNF 記法による、 SYSLINUXserial コマンド構文
4-12. EBNF 記法による、 SYSLINUXserial 変数
5-1. EBNF 記法によるカーネルの console 構文
5-2. ビデオカード付 PC で推奨するカーネルパラメータ
5-3. ビデオカード無しの PC で推奨するカーネルパラメータ
5-4. LILO を設定する際の、 推奨するカーネルパラメータ
5-5. GRUB の設定で推奨するカーネルパラメータ
5-6. SYSLINUX の設定で推奨するカーネルパラメータ
6-1. 接続している端末の種類と型を対話的に変更する
6-2. getty は、 /etc/inittab のエントリに基づき init が起動する
6-3. gettydefsCON9600 を定義する
6-4. EBNF記法による、/etc/gettydefs のエントリ構文
6-5. agetty 用の /etc/inittab エントリ
6-6. mgetty/etc/inittab エントリ
6-7. mgetty の設定ファイル、 mgetty.config
6-8. 仮想端末の数を減らす。/etc/inittab から mingetty エントリを取り除く。
6-9. 仮想端末を減らす。未使用の仮想端末を解放し、 そのデバイスファイルを削除する。
6-10. getty を使わない場合に、コンソールの シリアルポートをロックする、 /etc/rc.serial の 内容
7-1. root がシリアルコンソールからログインできるように、 securetty を変更する。
7-2. Red Hat Linux 7.2 の Xservers
7-3. Red Hat Linux 7.2 の gdm.conf にある [servers] セクション
7-4. 保存してあるコンソールパラメータが入っている ioctl.save の削除
7-5. もし /dev/modem がシリアルコンソールのポートを指していれば、それを削除する。
7-6. /etc/makedev.d/linux-2.4.x にある、 /dev/systty のデフォルト値
7-7. MAKEDEV の設定ファイルにある /dev/systty の値を変更する
7-8. /dev/systty の新しい値を インストールする
7-9. console.perms のデフォルト <console> は付属のキーボート・モニターを指している。
7-10. console.perms のデフォルトデバイス一覧
7-11. 付属のキーボード・モニターに必要な console.perms の デバイス
7-12. console.perms<sconsole> を追加して、 それがシリアルコンソールを指すようにする。
7-13. シリアルコンソールを指すよう変更された console.perms の残りのデバイス
7-14. Red Hat Linux 用の /etc/sysconfig/init の変更
7-15. Red Hat Linux 用の /etc/sysconfig/kudzu の変更
8-1. シングルユーザーモードに入らずに、ioctlsave を使って /etc/ioctl.save を生成する
9-1. Crackers favour war dialling and weak passwords (クラッカーは電話と弱いパスワードがお気に入り)からの抜粋
9-2. ログメッセージのコピーをログサーバーへ送るように修正した /etc/syslog.conf
9-3. /etc/sysconfig/syslog のオプションを設定して、 リモートのログメッセージを許可する。
9-4. remote.example.edu.au への syslog メッセージを制限する
9-5. nscd を使って DNS の 逆引きをキャッシュする。
9-6. コンソールユーザーへのメッセージ送信を制限する。
9-7. /etc/profile.d/mesg.sh、コンソールユーザーへの メッセージ送信を制限する。
9-8. /etc/profile.d/mesg.csh、 コンソールユーザーへのメッセージ送信を制限する。
9-9. ファイルを /etc/profile.d にインストールする。
9-10. sysctl を使って、マジック SysRq キーを無効にする。
9-11. マジック SysRq キーを無効にする、 /etc/sysctl.conf の設定。
9-12. SysRq キーを無効にした、 カーネルの make menuconfig
9-13. SysRq キーを無効にしている カーネルの .config
9-14. /etc/inittab での Ctrl-Alt-Delete のデフォルト処理
9-15. Ctrl-Alt-Delete を無視する /etc/inittab の設定
9-16. /etc/inittab 内の Ctrl-Alt-Delete によって 正しくシャットダウンする。
10-1. make menuconfig を使ったシリアルコンソール用カーネル設定
10-2. .config を用いた、シリアルコンソールのカーネル構成
10-3. make menuconfig を使った USB ドングルのシリアルコンソール用カーネル設定
10-4. .config を使った USB デバイスのシリアルコンソール用カーネル設定
10-5. make menuconfig を用いたシリアルコンソール用のカーネル設定
10-6. .config を使ったシリアルコンソール用のカーネル設定
11-1. ステータスとハンドシェークを完全にしたヌルモデムケーブル
11-2. ステータスとハンドシェークを完全にした別バージョンのヌルモデムケーブル
11-3. ステータスとハンドシェークを改造したヌルモデムケーブル
11-4. ステータスもハンドシェークもないヌルモデムケーブル
11-5. ステータスもハンドシェークもない片方向のヌルモデムケーブル
12-1. ダムモデムのフロントパネル
12-2. モデムのポート速度を調べる
12-3. AT コマンドを使ってモデムを設定する
12-4. ヘイズの AT 互換モデムをリセットする。
A-1. CTS/RTS フロー制御を行なう、カーネルの console パラメータ
A-2. コンソールの CTS/RTS フロー制御用カーネルソースコード
A-3. マシンの初期化中、setserial はモデムをハングアップさせる原因になる
B-1. Red Hat Linux でコンソールへのカーネルメッセージを抑止する
C-1. シリアルリンクを使うために BIOS を設定する
C-2. ハードディスクからブートするよう BIOS を設定する
C-3. Red Hat Linux 7.2 の mkbootdisk から抜き出す。 これで SYSLINUX.CFG を作る
C-4. mkbootdisk から抜き出して変更したもの。 シリアルコンソールを使う SYSLINUX.CFG を作る
E-1. Linux PC がつながっている Cisco 2511 ターミナルサーバーに対する基本設定
E-2. Portmaster ユニットの設定
E-3. Portmaster のポート設定
F-1. /dev/nvram を設定して、CMOS の設定にアクセスする
F-2. CMOS の設定を得る
F-3. CMOS の内容を設定する
List of Examples
4-1. カーネルパラメータを使ってアクセスパーミッションを回避する
5-1. ベンダーがインストールした、 LILO の 設定の全文
5-2. シリアルコンソール向けの修正を加えた、LILO 設定の全文
5-3. ベンダーがインストールした、GRUB の設定の全文
5-4. シリアルコンソール用に修正した、GRUB の設定の全文
8-1. シリアルコンソールに電話して接続する
C-1. インターネットプロトコル(IP)の設定を表示する
C-2. LILO の設定を表示する