いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.102 / 読者数:1042名

こんばんは、うすだです。

今日、お友だちが遊びに来ていまして、3歳の男の子と、10歳のわが息子との交流を、 じっくり観察する機会を得ました。

ききわけのいい3歳児とはいえ、やはり年齢差があります。
ほとんどの場合において、10歳のわが子が譲歩せざるをえません。

最初のうちは、小さい子と遊ぶのに慣れていることもあり、 楽しく一緒に遊んでいました。
しかし、そのうち時間が経ってくると、どちらも疲れてくるからか、 息子の口調が厳しくなってきて、とうとう3歳児を泣かせてしまいました。

横から見ていたわたしは、もうちょっとやさしくしてあげてもいいんじゃないかなー、 と思いました。

しかし、ここでふと、これは、息子とわたしとの関係に酷似しているかもしれない、 ということに気がつきました。

こちらが疲れていたり忙しかったりするとき、 息子に対して冷たかったりぞんざいに対応してしまうことがあります。 でも、はたからは、もう少しやさしくしてあげたらいいのになー、 というふうに見えているのだろうと思われます。

ときどきはこのことを思い出して、忙しさの中でも、 やさしさを忘れないようにしたいと思いました。

反省がおわりましたので、今週も、はりきってまいりますよ。

今週のお題 - sshd を正しく設定する

サーバには、じつに様々なサービスが動作しています。

大雑把に言ってしまいますと、試行錯誤を経てようやく動くサービスと、 インストール直後から自動的に動くサービスに、二分できるのではないかと思います。

その中でも SSH は、後者の代表的なサービスではないでしょうか。

初回起動時にキーを生成するくらいで(これも勝手にやってくれますね)、 あとは宇宙船の自動操縦機能のように、sshd が動き続けてくれます。

そんなメンテナンスフリー的 sshd さんにも、設定ファイルがあります。
この際ですから、どんな設定ができるのか、見ておいてもいいんじゃないでしょうか。

というわけで今週は、sshd の設定について、ご紹介したいと思います。


sshd の設定ファイルは、/etc/ssh/sshd_config です。
中を見るとわかると思いますが、1行につき1つの設定を記述します。
また、ご想像通り、先頭が # の行や空行は、無視されます。

ただし、セキュリティに関わりますので、 root しか読み書きないようにパーミッションが設定されています。
ですので、以降の確認や設定は、root の権限で行ってください。

ちなみに、設定を変更したら、SIGHUP シグナルを送信することで、 設定ファイル(sshd_config)の再読み込みをしてくれます。

  # kill -HUP `cat /var/run/sshd.pid`

あるいは、以下のように、起動用スクリプトを使う方法もあります。

  # /etc/init.d/sshd reload

それでは早速、各項目を、淡々とご紹介していきましょう。

まずは、AllowUsers です。
特定のユーザだけ、SSH の使用を許可したいときに、使用します。

  AllowUsers ユーザ1 ユーザ2 ...

のように、許可したいユーザを、スペースで区切って列挙します。
指定したユーザ以外のひとは、SSH でログインなどができなくなります。

単なるユーザ名だけでなく、『ユーザ@ホスト』という形式で指定することもできます。 この場合、指定したユーザは、指定したホストからのみ使用可能となります。

ちなみに、AllowUsers が指定されていなければ、すべてのユーザが許可となります。

AllowUsers とは逆の効力を持つのが、DenyUsers です。

  DenyUsers ユーザ1 ユーザ2 ...

指定したユーザは、SSH でのログインなどができなくなります。
AllowUsers と同様に、ユーザ@ホスト の形式も使用できます。

 

上記は、ユーザに対する許可・拒否の設定ですが、グループに対しても、 同様の設定ができます。それが、AllowGroups と DenyGroups です。

  AllowGroups グループ1 グループ2 ...
  DenyGroups グループ1 グループ2 ...

設定ファイルにこれらの設定がなければ、ユーザの場合と同様に、 すべてのグループが許可となります。

 

ただし、root に対しては、上記とは別に、特別な設定があります。
それが、PermitRootLogin です。

  PermitRootLogin yesあるいはno

デフォルトは yes で、root でのログインなどが許可されています。
しかし、たいていのディストリビューションでは、sshd_config に

  PermitRootLogin no

と記述されていて、root でのログインなどが許可されていません。
やむを得ず許可する際には、どきどきしながら、上記を外してください。


パスワードの間違いを何回まで許すか、という設定もできます。
それが、MaxAuthTries です。

  MaxAuthTries 回数

デフォルトでは 6回ですが、それがいやなら、これで変更できます。
ちなみに、回数に 0 を指定すると、 1回のパスワード間違いでセッションを切られます。せつないですね…。

 

それから、ある時間内までにログインできないと、 セッションを強制的に切ってしまうことができます。
といいますか、デフォルトでは 2分で切られますが、 LoginGraceTime でその時間を変更できます。

  LoginGraceTime 時間

たとえば、30s と指定すると、30秒になります。
他に、m (分)、h (時)、d (日)、w (週) といった単位も使えます。
(単位の指定がない場合は、秒になります。)


SSH といえばポートフォワード機能ですが(詳細は前回を参照ください)、 使用不可にすることができます。それが AllowTcpForwarding です。

  AllowTcpForwarding yesあるいはno

デフォルトは yes ですので、使用できなくしたければ、 以下のように no を指定してください。

  AllowTcpForwarding no

 

ネットワーク・インターフェースが複数あって、 特定のインターフェースからのみ接続を許したい場合は、 ListenAddress で指定しましょう。

  ListenAddress ホスト

特定のインターフェースを指す、ホスト名やIPアドレスを指定します。
以下のように、ポート番号も指定可能です。(デフォルトは 22 番です。)

  ListenAddress ホスト:ポート

これを指定しなければ、すべてのインターフェースから接続を待ちます。


あと、ちょっと変わり種な設定として、Banner というのがあります。

  Banner パス

SSH で接続したときに、パスで指定したファイルの中身を出力します。
ユーザのみなさんに知らせたいことがある場合などに、使えそうです。

ちなみに、

  Banner /proc/version

というのは、うまくいきませんでした。(どうでもいいですが。)


以上、sshd_config の設定のうちメジャーなものを、ご紹介しました。

他にも設定項目がいろいろありますし、関連するファイルも結構ありますので、 オンラインマニュアルなどで調べてみると、勉強になりますよ。

というわけで、使用目的に応じた設定をしてみてください。

宿題の答え

先週の宿題は、

  SSH のポートフォワードを、複数設定してみましょう。

でした。

Putty や Tera Term Pro の場合は、ダイアログなどの上で追加するだけですので、 説明は割愛させていただきます。

ssh コマンドの場合は、設定したい分、-L オプションを使用します。
たとえば、こんな感じです。

  % ssh -L 1080:192.168.1.1:80 -L 1025:192.168.1.2:25 gw.usupi.org

あるいは、遠隔ログインした後に設定したい場合は、 遠隔ログインの最中に ~C (C は大文字です)を押してコマンドラインを出現させ、

  ssh> -L 1110:192.168.1.3:110

のように、-L オプションの指定を行います。(ssh> はプロンプトです。)
指定したときに、

  Forwarding port.

とか言ってくれれば、追加されているはずです。
(ちなみに、~? を押すと、エスケープシーケンス一覧が表示されます。)

追加されたかどうか確認したければ、(遠隔ログインしている先ではなく) 手元のマシンで、以下のように netstat コマンドを実行してください。

  % netstat -ant | grep 1110
  tcp      0      0 127.0.0.1:1110      0.0.0.0:*           LISTEN
  tcp      0      0 ::1:1110            :::*                LISTEN

今週の宿題

今週の宿題は、

  同じ項目で違う設定を複数指定すると、どちらが有効になるでしょうか?

です。

たとえば、以下のように設定したら、どちらが有効になるでしょうか。

  PermitRootLogin yes
  PermitRootLogin no

やってみれば瞬時にわかりますので、やってみてください。
(実践あるのみ! ですよ!!)

余力のあるかたは、AllowUsers,DenyUsers と PermitRootLogin との優先順位や、 AllowUsers,DenyUsers と AllowGroups,DenyGroups との関係も調べてみてください。

あとがき

というわけで、ゴールデンウィークがおわってしまいましたね。
みなさんのゴールデンウィークは、いかがでしたでしょうか。

わたしは、毎年、あれもこれもと、てんこもり的な予定をたててしまい、 結局どれも達成できないというパターンを、毎年繰り返していました。

ですので、今年は、そのスパイラルを断ち切るべく、思い切って、 目標をぎゅっと絞ってみました。
その結果、今年は、以下のようなものを作ることができました。

栗日記 - ブログパーツ
http://www.usupi.org/kuri/blogparts.html

ブログパーツっていうと、たいていフラッシュで書かれていて、 動きなどが凝っていたりすると思いますが、 こちらは JavaScript のみで記述してあります。 クリックするなど何か行動をおこさない限りは、 バッキンガム宮殿の兵隊さんくらい動きません。

唯一の機能は、過去作品のサムネイル画像が、淡々と見られることです。
そして、画像切替時に、かろうじてやや動きます。

そんな地味なパーツですが、自分のブログなどに貼りつけてもいいかな、 なんて奇特なことを思った貴兄は、是非! 貼りつけてくださいませ。

そして、もし万が一貼りつけていただけましたら、ご連絡くださいまし。
(舞い上がって、栗のなにかを送りつけてしまうかもしれません…。)

 

コードをたどっていただければわかると思いますが、 技術的にはたいしたことないと思います。 しかし、わたしにとっては畑違いの分野ですので、ブログパーツや HTML, JavaScript のことを調べて、自分でモノを作るという作業は、 新鮮で楽しい作業でした。

これからも、たまには、違う分野に首を突っ込んで、はまってみようかなと思います。 そして、それらをうまく本業に反映したいという野望を抱きながら、 連休明けに立ち向かっていく所存でございます。

 

今週も、ここまで読んでいただき、ありがとうございました。
それでは、また来週に、お会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−いろいろ作りたい熱が沸き上がってきました。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://www.fumido.co.jp/kuriniki/ (栗日記ぎゃらりー)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本