こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SSHサーバの構築がうまく行かない

自宅のSSHサーバにDDNSを利用して外出先からアクセスしたいと思っていろいろ設定をしているのですが、なかなかうまくいきません。
以下、必要と思われる情報を整理しますので、何が問題なのか特定していただければ幸いです(他にも必要な情報があれば、補足欄で対応させていただきます)。

どうぞよろしくお願い致します。

●マシン環境
サーバ: Linux (CentOS 5ベース)
クライアント: MacBook Air OS X 19.8.3

●利用しているDDNSサービス
DynamicDO!.jp http://ddo.jp/
したがって、ホスト名は XXXX.ddo.jp (XXXXは登録したもの)。


●問題の症状
端末から
$ ssh -p 22 -i ~/.ssh/id_rsa ログインID@ホスト名
とすると、
ssh: connect to host ホスト名 port 22: Connection refused
というエラーメッセージが出ました。

一方、ホスト名の部分をグローバルIPアドレスに換えて
$ ssh -p 22 -i ~/.ssh/id_rsa ログインID@グローバルIPアドレス
とすると、
ssh: connect to host グローバルIPアドレス port 22: Operation timed out
とタイムアウトの表示が出ました。

ちなみに、ここでのグローバルIPアドレスは
$ ping ホスト名
としたときに出力されるIPアドレスです。もちろん、WEB上の正引きサービスで出力されるIPと同じです。


●ネットワークの構造
----光回線----[ルータ内蔵式モデム]----[ルータ(ブリッジモード)]----(サーバ)

という感じで、
ルータ内蔵式モデムはNTTのRS-V340NE、
ルータはELECOM Logitec LAN-WH300N/DGRU
になっていて、二重ルータの構造を避けるため、後者をブリッジモード(アクセスポイント化)にしています。
実際、端末から
$traceroute www.google.com
と入力すると、NTTルータのIPアドレス(192.168.1.1)が表示されることから、ちゃんとブリッジモードになっています。


●NTTルータに置けるポート開放
NTTルータの設定においてポート開放の設定は完了してあります。
具体的には、TCPの22番を開放し、宛先として、サーバのIPアドレス(192.168.1.10)を指定しています。
設定方法:http://www.akakagemaru.info/port/RV-S340NE.html


●サーバ機の/etc/sysconfig/iptables
[root@spitz /]# cat /etc/sysconfig/iptables
*nat
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# Preamble
-A FORWARD -i eth1 -o eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i lo -j ACCEPT

# Allow these ports
-A INPUT -m state --state NEW -p tcp --dport ssh -j ACCEPT
# http and https is allowed for all nodes on the public subnet
-A INPUT -m state --state NEW -p tcp --dport https --source 192.168.0.0/255.255.255.0 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport www --source 192.168.0.0/255.255.255.0 -j ACCEPT

# Standard rules
-A INPUT -p icmp --icmp-type any -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Uncomment the line below to log incoming packets.
#-A INPUT -j LOG --log-prefix "Unknown packet:"

# Deny section
-A INPUT -p udp --dport 0:1024 -j REJECT
-A INPUT -p tcp --dport 0:21 -j REJECT
-A INPUT -p tcp --dport 23:1024 -j REJECT
-A INPUT -p tcp --dport 22 -j ACCEPT

# Block incoming ganglia packets on public interface.
-A INPUT -p udp --dport 8649 -j REJECT
# Block mysql
-A INPUT -p tcp --dport 3306 -j REJECT
-A INPUT -p tcp --dport 40000 -j REJECT

# For a draconian "drop-all" firewall, uncomment the line below.
#-A INPUT -j DROP
COMMIT

●サーバ機の/etc/ssh/sshd_config
http://okwave.jp/qa/q8008522.html の回答No.1への補足を参照。


●サーバ機のその他ネットワークの設定(一部抜粋)
# ifconfig -a
eth1 Link encap:Ethernet HWaddr MACアドレス
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: xxxxxxxxx Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1856 errors:0 dropped:0 overruns:0 frame:0
TX packets:751 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:207132 (202.2 KiB) TX bytes:73950 (72.2 KiB)
Memory:fbde0000-fbe00000

# cat /etc/sysconfig/network
HOSTNAME=XXXX
NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.1.1

# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.3 XXXX(/etc/sysconfig/networkにあるHOSTNAMEと同じ.DDNSサービスのホスト名とは無関係)

# cat /etc/resolv.conf
search local ドメイン名(XXXXのドメイン)
nameserver 192.168.1.1

投稿日時 - 2013-03-25 22:59:31

QNo.8011741

困ってます

質問者が選んだベストアンサー

>$ ssh -p 22 -i ~/.ssh/id_rsa ログインID@ホスト名
>$ ssh -p 22 -i ~/.ssh/id_rsa ログインID@グローバルIPアドレス

実行した端末はどこにある端末です?
まさかサーバと同じLAN内からWAN側IPアドレスを…なんてことはないですよね?
LAN内部からWAN側IPアドレスへのアセスは失敗するってパターンがそれなりにありますけど。
「ヘアピンNAT」とか「NATループバック」とか、そういうのに対応したルータでない限りは。

投稿日時 - 2013-03-26 23:22:49

補足

回答ありがとうございます。

>まさかサーバと同じLAN内からWAN側IPアドレスを…なんてことはないですよね?

そのまさか、です。
同じLAN内から実験しました。プライベートIPアドレスの場合、問題なくsshでログインできます。

明日外部からログインチェックしてみます。

投稿日時 - 2013-03-26 23:45:39

お礼

外出先で実験したら無事ログインできました。
やはり、ご指摘の通りだったんですね。ありがとうございます。

ただ、
$ ping ホスト名
とすると
Request timeout for icmp_seq 0
とタイムアウトが表示されるのがいまいちよくわかりませんでした。これはsshのためにポート22だけを開放しているから、ssh以外はサーバ側が反応しないということでしょうか。

投稿日時 - 2013-03-27 21:22:16

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

Wr5

>$ ping ホスト名
>とすると
>Request timeout for icmp_seq 0
>とタイムアウトが表示されるのがいまいちよくわかりませんでした。これはsshのためにポート22だけを開放しているから、ssh以外はサーバ側が反応しないということでしょうか。

単純にWAN側からのICMPに応答しない設定になっているだけかと。
http://router.ipq.jp/rv-s340ne/post_4.html
の下の方に「PING応答機能」なんてのありますが。
# NECのATermのOEM…なのか?

投稿日時 - 2013-03-27 23:27:29

お礼

ありがとうございます。
ルータの初期設定の問題だったんですね。
いろいろと助かりました。

投稿日時 - 2013-03-28 21:26:11

あなたにオススメの質問