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