重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【終了しました】教えて!goo新規会員登録

Red Hat Linux 6.2Jを初心者向けの指示に従いインストールして、ネットワークに接続できるようにしました。このLinuxからは外部にtelnetなどできるのですが、外部からこちらに接続しようとすると、セキュリティ対策が施されているためかと思いますが"Connection refused"となってしまいます。どうすれば、外部からのアクセスを許可できるのでしょうか。また許可した場合の危険性などについてコメントをいただけたらと思います。

A 回答 (4件)

RedHat6.2JでOracle for Linuxを動かしています。


RedHat6.2J ではinetdが標準です。

rpmコマンドでパッケージ一覧からinetdという文字列を抜き出して
確認してみてください。

●RedHat 6.2Jの場合
# rpm -qa | grep inetd <ENTER>
inetd-0.16-4

ちなみに、最新のRedHatではxinetdが標準です。

●RedHat 9の場合
# rpm -qa | grep inet <ENTER>
xinetd-2.3.11-1.9.0

inetdがなかったら、cdromからパッケージを持ってきてインストールして
下さい。

# rpm -ivh inetd-0.16-4.rpm <ENTER>


外部からtelnetで接続できない件ですが、

(1) あなたのサーバはルータの内側ですか?
  ルータの設定でtelnetのポート(23)を通過できるように
  設定していますか?

(2) RedHat上でファイアウオールのサービス(ipchainsまたはiptables)を実行して
  いませんか?
  # ntsysv <ENTER>
  と実行して、サービス一覧を表示させてみてください。
  (inetdサービスも一覧に無いでしょうか?)

(3) (1)(2)が確認できたら、inetdまたはxinetdによるtelnet起動の設定と
  tcpwrapper(/etc/hosts.allow)による接続許可の設定が必要になります。


但し、telnetサーバを外部に公開するのは大変危険です。
・ログインパスワードが平文で流れるので盗聴可能。
・ブルートフォース攻撃(パスワード辞書による総当たり)でいつか破られる。

telnetはやめて、sshdサービスを立ち上げてください。
公開鍵を利用した暗号化でリモートログインが可能です。
Windowsのクライアントソフトは
teraterm+ttssh (SSH1のみ)
Putty (SSH2に対応)
があります。

この回答への補足

ありがとうございます。おかげさまでinetdが動き始めました。
今まで動いていなかったtelnetdも動いています。
(1)ルータの内側です。それから、telnetとftpとhttpのポートだけは開けてあります。
(2)ファイアウオールのサービスは実行していませんでした。
(3)/etc/hosts.allowにいろいろと書いてみたのですが、
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
Connection closed by foreign host.
と表示されて、接続できません。
もう一息のように思うのですが、(3)が悪いのでしょうか。
将来的にはsshを使いますが、とりあえず、telnetを立ち上げたいと思っています。
よろしくお願いします。

補足日時:2003/07/12 01:17
    • good
    • 0

>/etc/hosts.allowにいろいろと書いてみたのですが、


こういう書き方ではなく、設定内容をちゃんと書きましょう。
でないと、書き方が正しいのか間違ってるのか、読む人は判断できません。

ちなみに、ルータ内の他のマシンからはtelnetできるのでしょうか?
外部からだけtelnetできないのでしょうか?

また、かならずログファイルを確認して下さい。(/var/log/messages)
クライアントがtelnet接続してくる瞬間にログに情報が記録されます。
tailコマンドで、動的(-fオプション)に監視してください。
# tail -f /var/log/messages

ちなみに、何も出力されないとしたら、あなたのマシンまでtelnet要求が
届いていない(ルータの設定などが原因)ということになります。

とにかく、人に質問する時は、ログファイルの情報を示すのが基本です。
    • good
    • 0
この回答へのお礼

厳しいご指摘、ありがとうございました。おかげさまでtelnetが使えるようになりました。次は早いうちに、shhを立ち上げようと思っています。また、何かありましたら、よろしくお願いいたします。

hosts.allowの書き方は、いろいろな例を参考に書いたので、間違いはなかったと思います。そもそも、ルータ内の他のマシンからtelnetできませんでした。telnet要求が届いていることは確認していましたが、今回、/var/log/secureを見てみたら、in.telnetdがないことが判明し、インストールした次第です。

お礼日時:2003/07/13 18:47

こんにちは、honiyonです。



 /etc/inetd.confがないとなると、RedHat6.2はxnetdを使っているのも知れません。
 /etc/xinetd.confは存在しますでしょうか?

 xinetdは使った事がないので詳しい説明は出来ません(^^;
 しかしこれは有名なものですので、xinetdで検索すれば嫌というほど資料が見つかると思います。
 ↓一例
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe …

 この結果一覧の、一番先頭にあるものが分かりやすそうです。
http://www.geocities.co.jp/SiliconValley-Cuperti …


 Linuxはフリーソフトの集まりで構成されているようなものです。採用しているソフトにより設定方法も違ってきます。
 いずれのLinuxも大体は採用しているソフトや構成が似通っていますが、細部ではこのように違いがあります。というわけで、「一般的な設定ファイルフォーマットの構想」というものはあるかも知れません。いずれも/etcに収められ、テキストエディッタで編集可能なので。しかし、どのLinuxのどのソフトにも通用する「一般的な設定方法」というものはないかも知れません。

 参考になれば幸いです(..
    • good
    • 0

こんにちは、honiyonです。



 もしTELNETサーバーが動作しているのであれば、
 /etc/hosts.allow に許可したいネットワークを追加します。
 例)TELNET : ALL

 もし、TELNETサーバーが動作していないのであれば、
 /etc/inetd.confを編集し、TELNETサーバーを動作させるようにします。
 例)telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
  ↑元から記述されており、コメントマークを外すだけで有効になるはずです。

 inetd.confを編集したら、/etc/init.d/inet restartとしてinetを再起動します。

 TELNETを許可した場合、外部からそのコンピューターに接続する事が出来ます。あとはIDとパスワードが分かればroot権限も手に入れられます。それ即ちそのコンピューターが使いたい放題に出来る可能性がある事を示しています。
 パスワードはこまめに変えたり、ランダムにな文字列を使って予測不可能なものにしましょう。

 参考になれば幸いです(.. 

この回答への補足

ありがとうございます。
非常にわかりやすいご説明で、理解できたのですが、これは一般的なUNIXでの設定法でしょうか?
わたしのシステムには、inetd.confなどが見つかりませんでした。
/etc/以外も調べましたが、どこにもありません。
これはどう解釈すればよいのでしょう?
Red Hat Linux 6.2Jにはinetdがない?
あるいは、別な名前で動いているのでしょうか?

補足日時:2003/07/10 13:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!