|
現: 2009-08-16 (日) 22:40:12 maruo |
| + | [[自宅鯖計画]] |
| | | |
| + | *他のホストからログインできるようにしてみよう [#d2eae314] |
| + | Telnet?かんたんっす。RedHatならば |
| + | /sbin/chkconfig telnet on |
| + | なおかつ、xinetdの設定で、自分以外のホストからのログインを許容しないような設定になっていますので、/etc/xinetd.d/telnetを |
| + | service telnet |
| + | { |
| + | disable = no |
| + | flags = REUSE |
| + | # only_from = 127.0.0.1 ←コメントd (>◇< ) アウト! |
| + | socket_type = stream |
| + | wait = no |
| + | user = root |
| + | server = /usr/sbin/in.telnetd |
| + | log_on_failure += USERID |
| + | } |
| + | と変更しましょう♪そのあとは |
| + | service xinetd restart |
| + | ほらできるようになったでしょう(笑) |
| + | |
| + | *これだけではなんなので [#p54dbbae] |
| + | Telnetは古くからある外部からのログイン用プロトコルで、私がはじめてUNIX触ったころは、1つの端末から他のPCをいじれるなんてすごい!と思いました。 |
| + | |
| + | しかし、今となっては時代遅れプロトコルです。 |
| + | -通信内容が暗号化されていないため、ログインパスワードが見られてしまう |
| + | |
| + | 近年のセキュリティとしては、これはかなり痛いです。間違っても「これを設定しておけば仕事場からも自分のパソコンにログインできるね♪」なんてことは''絶対にしない''方が無難です。あくまでも自宅のイントラネット内で行う分には自分ちネットワーク内にクラッカーがいない限り(笑)問題ないはず。 |
| + | |
| + | *では一般論 [#f765c4e6] |
| + | Telnetはもともとinetdスーパーサーバを経由して起動されます。inetdスーパーサーバってなんじゃい?と思われる方もいらっしゃるでしょうから一応説明。 |
| + | |
| + | **inetdスーパーサーバ [#g11eb6a8] |
| + | inetdスーパーサーバは名前を聞くとなんとなく凄そうですね♪スーパーですから。何を受け持つかというと、''こやつがクライアントからのリクエストを受け付けて、ターゲットのサーバを起動する''仕事をします。つまり |
| + | Telnetクライアント→inetdスーパーサーバ→telnetデーモン起動 |
| + | と動くわけですね。 |
| + | ***なぜに2段がまえ?? [#q44236b5] |
| + | サーバというと、いろいろあります。HTTP,メール,Telnet,FTP,DNS,NFS。他にもチャットやら、IP電話、なんやらかんやら。全て挙げていくと、現時点で存在するもので1000個以上もサーバはあります。これを使うためにあらかじめサーバをぜーんぶ立ち上げておくと~、プロセスが一杯になってUNIXカーネルさんが「こんなに一杯仕事でけまへんがな」((No more processと言われます))言ってきます。''じゃ立ち上げなきゃいいじゃん?''そーなんです。立ち上げなければいいんですが、立ち上げてないサーバ機能は結局使えません。じゃーダメじゃんー。 |
| + | |
| + | ここで昔のえらい人は考えました |
| + | 「代表でリクエスト受けてくれる人が1人いて、必要に応じてサーバ立ち上げればええやん?」 |
| + | でました、ここでinetdスーパーサーバさんの登場です。つまり、inetdスーパーサーバ1つ立ち上げておけば、たくさんあるサーバに成り代わってリクエストを受けてくれます。んで、リクエストの仕分けをして、適宜必要なサーバを立ち上げてくれます。立ち上げられたサーバは仕事が終わると消えてくれます。難しく言うと''オンデマンドでサーバを起動してくれるサーバ''と言えますね。 |
| + | |
| + | ***んじゃー全部そいつにやらせてしまへ [#d4fb1437] |
| + | いや、そりは現実的ではありません。なぜかと言うと、''プロセスを作ったり消したりはOSさんの大仕事''だからです。プロセス起動は |
| + | -ハードディスクから実行イメージをメモリにロード |
| + | -メモリに展開された実行イメージと、実行用仮想メモリ領域をOS内に準備 |
| + | -タスクをOSのスケジューラに登録 |
| + | |
| + | と瞬間的に動作します。プロセス削除はこの逆ですね。 |
| + | メモリに立ち上げっぱなしにしておけば、この作業を省くことができます。なので軽く動かせるわけです。 |
| + | |
| + | ***「じゃあどーやってinetdから起動するのと直接起動するのと分けるねん」 [#o39bffd7] |
| + | はい、そうきますよね。一般的にはユーザからのリクエストが頻繁にかかるサービスは直接起動、そうでもないやつはinetd経由です。例を出すと、頻繁にかかる奴は、メール、DNS、ファイルサーバ、HTTPサーバ…特にユーザが意識してないところでがつがつ動くやつです。対してそうでもない奴は、Telnet,FTP,チャットなど…ユーザが意識してサービスを使おうとするような奴は(コンピュータからみると)頻繁ではないサービスです。 |
| + | ***ちなみに [#n2bb9969] |
| + | スーパーサーバはいくつかございまして、散々出てきた''inetd''、inetdを拡張して、セキュリティ面を強化した''xinetd''、inetdとTCPwrapperを組み合わせた''tcpserver''がございます。inetdが古のスーパーサーバーですが、セキュリティ面で非常に弱いです。立ち上げてしまえば誰からでも接続要求を受け付けます。悪意攻撃をしてくることが分かっているホストであっても回避不可能です。このため、その他のスーパーサーバは設定が柔軟にできるように改良されています。 |
| + | 設定方法については[[こちら:http://www.ocn.ad.jp/security/linux/009.html]]をご覧下さい。 |