プロが教えるわが家の防犯対策術!

失礼します。

現在ローカルなネットワーク内でssh22番ポートを使用してサーバーを遠隔操作しているのですが、
このサーバーをグローバルなネットワーク内に置く前にsshのポートを別のポートに変更しようと考えていまして、
そこでちょっとつまっています・・・。
サーバー機はCentOSになります。

まず、sshの設定でsshd_ifconfigに「Port (新しいポート番号)」と書き加え、
/etc/servicesで
#ssh 22/tcp SSH Remote Login Protocol
#ssh 22/udp SSH Remote Login Protocol
ssh (新ポート)/tcp SSH Remote Login Protocol
ssh (新ポート)/udp SSH Remote Login Protocol
としました。
また、サーバー側のファイアウォール設定で、
システム→管理→ファイアウォールでその他のポートに新しいポートを追加しました。

しかし、クライアント側で
>ssh -X -p (ポート) ip
としても
ssh: connect to host ***.***.***.*** port ***: Connection refused
となってしまいます。

どなたかご教授ください。

A 回答 (5件)

>まず、sshの設定でsshd_ifconfigに「Port (新しいポート番号)」と書き加え、



「sshd_config」ですが…まあ、ソコはコピペミス…でしょう。

>/etc/servicesで
>#ssh 22/tcp SSH Remote Login Protocol
>#ssh 22/udp SSH Remote Login Protocol
>ssh (新ポート)/tcp SSH Remote Login Protocol
>ssh (新ポート)/udp SSH Remote Login Protocol
>としました。

必須…というワケではないですよ?
ただし、
>また、サーバー側のファイアウォール設定で、
>システム→管理→ファイアウォールでその他のポートに新しいポートを追加しました。
でポートの指定を"ssh"と記述したり、
iptables --listなどで表示する際にポート名で表示させる場合には必要ですが…。

>ssh: connect to host ***.***.***.*** port ***: Connection refused
>となってしまいます。

サーバ側できちんと待ち受けしていますか?
netstat -l
で待ち受けしていますか?
iptables --list
で変更したポートがちゃんと許可されていますか?


sshd_config書き換えた後で、sshdは再起動していますか?

この回答への補足

>「sshd_config」ですが…まあ、ソコはコピペミス…でしょう。

でした^^

>netstat -l の結果
22番ポートで通信がうまくいってるときにはsshがListen状態ですが
sshd_configでポート変更するとsshの表示が消えました。

>iptables -L の結果
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:(新ポート)
ACCEPT udp -- anywhere anywhere state NEW tcp dpt:(新ポート)
と表示されました。

どうすればよいでしょうか?

補足日時:2011/12/01 19:10
    • good
    • 0

>>netstat -l の結果


>22番ポートで通信がうまくいってるときにはsshがListen状態ですが
>sshd_configでポート変更するとsshの表示が消えました。

sshdの再起動は実施した…ようですね。
ただし、起動できているかは別のようですが……。
service sshd status
で起動しているか確認してみては?
sshd_configの編集で、ヘンに触って起動がエラーになっている可能性もあります。
ログを確認してみて下さい。

>>iptables -L の結果
>ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
>ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:(新ポート)
>ACCEPT udp -- anywhere anywhere state NEW tcp dpt:(新ポート)
>と表示されました。

/etc/servicesを書き換えているのであれば…下の2つはポート番号ではなくsshの表示になる…かと。
そして、上の方はポート番号(22)となる……かと思われますが。
# /etc/servicesの変更、再起動しないと適用されない…なんてことはなかったはずですけど…。

この回答への補足

>service sshd status

openssh-daeman は停止しています
と出ました。

>cat /var/log/secure
としたところ、
error: Bind to Port *** on 0.0.0.0 failed: Permission denied.
error: Bind to Port *** on :: failed: Permission denied.
fatal: Cannot bind any address.
と表示されています。

Permission deniedとはどういうことでしょう?
rootで操作はしてるのですが・・・。

補足日時:2011/12/01 20:20
    • good
    • 0

>Permission deniedとはどういうことでしょう?


>rootで操作はしてるのですが・・・。

sshdが変更したポートをオープンしようとしたところで、SELinuxが拒否しているのでしょう。
SELinuxを無効にして下さい。
無効にする方法は…検索すると見つかるでしょう。

この回答への補足

うまく行けました。

おっしゃる通りSELinuxが問題でした。
>setenforce 0
で一時的に無効にし、sshdを再起動で新ポートからアクセス可能になりました。
あとは
>setenforce 1
で有効に戻しました。

もう1つだけすみません。
この設定はサーバー再起動時にも保存されるのでしょうか?

補足日時:2011/12/01 21:21
    • good
    • 0

>Permission deniedとはどういうことでしょう?



SELinuxで許可されてないとか?
    • good
    • 0

>もう1つだけすみません。


>この設定はサーバー再起動時にも保存されるのでしょうか?

/etc/sysconfig/selinux辺りに記録されています。

再起動時には…またSELinuxで拒否されるかと…。

http://www.cyberciti.biz/faq/centos-redhat-enter …
REHL6の例ですが…似たような内容っぽいので試してみてはどうでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございます!!

参考にしてトライしてみます。

お礼日時:2011/12/02 17:42

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