« ubuntu 11.04 DHCPから固定IPアドレスへの変更(メモ) | トップページ | ubuntu 11.04 xinetd経由のsshdの反応を速くする(カスタマイズその4) »

2011年6月 9日 (木)

ubuntu 11.04 xinetdとsshdのインストール(カスタマイズ その3あたり)

☆スーパーサーバーのインストール
やりなおし(?)のLinuxということでubuntuを10.10からインストールしはじめて、大体最初にsshをインストールしている。Tera Termのサービスの選択でtelnetの代わりsshを選べばtelnetの代わりになるし、なによりWinSCPの存在が大きい。WinSCPを使えばsshだけでFTPをインストールする手間もかからないし、WindowsからGUIのFTPツールのノリでファイル転送できてしまう。ネットワークに telnetやFTPのように平文のパスワードが流れないのもありがたい。
いわゆるマンションに居住しているが、無線LANを使ってみると、自分のものではないアクセスポイントがいくつか出てくるので、やはりtelnetやFTPは、ちと不安がある。
DebianやVineでサーバを構築していたころは、sshを使うときもスーパーサーバー経由であったが、ここのところはスーパーサーバーを使っていない。やはり、今回はスーパーサーバーを使って、将来のサーバー構築に備えようということでxinetdをインストールすることにした。
以前は、inetdにtcpdというパターンであったが、当時からxinetdに移行せよという風潮であったので、今回はxinetdにチャレンジでもある。(それともxinetdの次というのがあるのだろうか?)

とりあえず前回のsmbclientみたいなことがあると、格好悪いので、Synapticパッケージマネージャでinetdで検索してみる。
「update-inetd」なるものがインストールされているが「inetd設定ファイル更新プログラム」とあり、スーパーサーバ本体ではないようだ。ついでに、「注」に「xinetdは本パッケージではサポートされていません。」とも書いてある。確認するも/etcにはinetd.confは存在もしていない。
まあ、大丈夫だろうけど、とりあえるコンソールで、
$ sudo ps -A | grep inet
何も出力されず。OK。
ここまできたら、とことん確認してやろうと、rcランレベル.dを確認するために
$ ls /etc/inittab
とするが・・・「そのようなファイルやディレクトリはありません。」
ムトー神の著書にはランレベルはここで見ると書いてあるが、ubuntuは違うのか???

☆ubuntuの起動シークエンスはどうなってるんだろう?
ちょっと脱線して、こんなことが気になって、googleで「ubuntu start sequence」と検索してみると、こんなサイトがヒットした。
https://help.ubuntu.com/community/UbuntuBootupHowto
少し目を通すが、良く分からない。/etc/initで起動するデーモンを設定しているようにも思えるが?/etc/init.dは従来の手法に対する互換性を確保するために用意されているのかな?
まあ、どちらにもinetdやxinetdの記載がないので、スーパーサーバはインストールされていないということでしょう。
起動シークエンスは、今後の課題としておくことにしました。

☆xinetdのインストール
Synapticパッケージマネージャでxinetdをクイック検索して、xinetdのパッケージをインストール指定し、「適用」をクリックでインストールです。(図参照)
Xinetd
$ ps -A | grep xinetdでも、プロセスが確認できますし、/etc/inetにもxinetd.confができていました。
/etc/init.d/xinetdは、存在するけど、/lib/init/upstart-jobへのリンクかな?解明は先延ばしと・・・。
とりあえず、xinetdの設定は、/etc/xinetd.confに全部のデーモンのデフォルトの設定となり、個別のデーモンの設定は /etc/xinetd.d/以下のファイルに記載するということなので、インターネットや書籍の例を参考にして/etc/xinetd.confの記述を以下にしました。中身については、おぼろげにしか理解できていませんが、とりあえず動かすということで、理解は後で(^^ゞ

defaults
{
    instances                = 30
    log_type                = SYSLOG authpriv
    log_on_success      = HOST PID
    log_on_failure        = HOST
}

includedir /etc/xinetd.d

参考にしたサイトは以下。書籍は「Linuxセキュリティ入門」(ASCII 清水正人著)。
http://unixlife.jp/unixlife/linux/s-xinetd.jsp

☆Open SSHのインストール

Synapticパッケージマネージャでsshをクイック検索して、sshのパッケージをインストール指定します。説明にあるようにメタパッケージなのでsshサーバとsshクライアントに必要なパッケージが、一発でインストールされます。
/etc/xinetd.d/sshdの設定です。

service ssh
{
        disable         = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/sshd
        server_args     = -i
        log_on_success  += DURATION USERID
        log_on_failure  += USERID
        nice            = 10
        only_from   = 192.168.13.{21,22,23,24,25,26,27,28,29}
}

niceとはジョブの優先順位ということで-20~19の値をとり、値が低いほど優先度が高いということですが、10がどの程度なのかは分かりません。ここは以下のサイトの例をまる写しです。log関連もよくは分かりませんが、成功の方はユーザーIDと接続時間を記録する意味なのでしょう。 DURATIONというのは環境変数なのかな?取りあえず真似。

http://www.itmedia.co.jp/help/tips/linux/l0649.html

only_fromは太陽系の惑星名称のPCからは接続できるという感じにしました。本当は「昆虫シリーズ」からも接続できるようにIPアドレスを追加する必要があります。
上記の二つの内容をWindowsの秀丸にコピーして、windows共有フォルダに、文字コードutf-8、改行LFで保存します。
今度はubuntuのターミナルを起動して、取りあえずは/etc/xinetd.confをホームにコピーしてバックアップを作ります。続いて、ターミナルで
$ gedit &
としてテキストエディタを起動してwindows共有フォルダから、この二つのファイルを読み出します。
続いて、再びターミナルから
$ sudo geidt
として、二つ目のエディタをrootで起動して、最初のエディタからコピー&ペーストして、それぞれ保存。(手間みたいですけど、これがGUIでは早いと思う。先に共有フォルダからhomeにコピーしておいてもいいかな。共有フォルダのままだと、sudoでテキストエディタ起動すると共有フォルダを読み出すのに、また一手間かかるし・・・)
そして、先のhttps://help.ubuntu.com/community/UbuntuBootupHowtoの記述に則って、最近の方式でxinetdを再起動します。

$ sudo service xinetd stop
$ sudo service xinetd start

これで、別なPCからTera Termなりでssh接続できればOK。ためしてみると無事接続できました。
でも、ちと不安が・・・ログを確認すればいいのか・・・本当にxinetd経由なんでしょうか?

まあ、簡単なチェックと思い、PCを再起動してプロセスを見ると・・・あ~やっぱりsshdが動いている。
起動のプロセスの間に、どこかでスタンドアロンでデーモンを起動していますね。
そうです、先ほどのBootupHowtoに/etc/initでデーモンを起動するという感じのことが書いてありました。
とりあえず、sudo mv /etc/init/ssh.conf ./ としてsshデーモンの設定をはずして再起動してみます。

再起動後、コンソールで
$ ps -A | grep ssh
とすると、ssh-agentのみでsshdは出てきません。
これで別なPCからTeraTermで接続してみると、むむむ、繋がらないぞ(T_T)

とりあえず、/var/logであたりをつけて、auth.logを見てみると、次のような記述があります。

START: ssh pid=1670 from = 192.164.13.14
fatal: Missing privilege separation directory: /var/run/sshd
EXIT: ssh pid = 1670 duration =30(sec)

/var/run/にsshd用のディレクトリがあればいいのかなということで、
sudo mkdir /var/run/sshd
として、再度TeraTermで接続してみると、今度は無事繋がりました。
無事というけど、繋がるまでの時間が長い・・・これはどうやって調整するのかは、また今度ということで本日は終了です。
とりあえず、xinetd経由で繋がったということで、ほっと一息・・・しかし、xinetd経由だというのは、どのlogで確認するのでしょうねぇ。若干、不安だな・・・
sudo grep xinetd /var/log/* とやってみるが、結果がわけわからんし・・・明日にしよう・・・

« ubuntu 11.04 DHCPから固定IPアドレスへの変更(メモ) | トップページ | ubuntu 11.04 xinetd経由のsshdの反応を速くする(カスタマイズその4) »

Ubuntu」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/575454/51893538

この記事へのトラックバック一覧です: ubuntu 11.04 xinetdとsshdのインストール(カスタマイズ その3あたり):

» Kubuntu 11.04 xinetdのインストールとxinetd経由のsshdの起動 [豆腐と蒟蒻]
実際に行ってみて、当たり前ですが、Ubuntuとほとんど変わりはありませんでした [続きを読む]

« ubuntu 11.04 DHCPから固定IPアドレスへの変更(メモ) | トップページ | ubuntu 11.04 xinetd経由のsshdの反応を速くする(カスタマイズその4) »

2014年11月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ