質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

iptables

iptablesは、一般的なLinuxに備わっているパケットフィルタリング型のファイアウォール機能。パケットフィルタリングルールおよびネットワークアドレス変換ルールを適用することが可能です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

4回答

5021閲覧

sshサーバの外部からの接続が出来ません

melomelon

総合スコア4

公開鍵認証

公開鍵認証とは、公開鍵と秘密鍵の2つの鍵の組を利用する、SSHで利用される認証方式です。

iptables

iptablesは、一般的なLinuxに備わっているパケットフィルタリング型のファイアウォール機能。パケットフィルタリングルールおよびネットワークアドレス変換ルールを適用することが可能です。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2020/04/17 17:13

編集2020/04/26 17:06

前提・実現したいこと

皆様のお力をお借りしたいです。
現在sshサーバを立ち上げるために環境を構築しています。
行ったことは以下の通りです。

1.iptablesで特定のIPアドレスからのsshのみ許可
2.sshの公開鍵認証を設定
3.パスワード認証を禁止
4.モバイルwifi(UQwimax speed wifi next wx06)でプロファイル設定後、ポートマッピングで22番ポート開放設定

発生している問題・エラーメッセージ

外部のネットワークから接続出来ずに困っています。

試したこと

1.ローカルではsshできます。
2.pingもローカルでは返ってきますが、外部からpingを飛ばしても返ってきません。

rules

1#/etc/iptables/rules.v4 2*filter 3:INPUT ACCEPT [0:0] 4:FORWARD ACCEPT [0:0] 5:OUTPUT ACCEPT [0:0] 6-A INPUT -s (ip adress) -p tcp --dport 22 -j ACCEPT 7-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 8COMMIT

portmapping

1Lan側ホスト:192.168.11.6 2プロトコル:TCP 3ポート番号:22 4優先度:1

iptablesの設定を変更したあとは
sudo /sbin/iptables-restore < rules.v4
をし、設定が変更されたことを確認するために
sudo iptables -L
をしています

```iprou default via 192.168.11.1 dev enp3s0 proto static 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 192.168.11.0/24 dev enp3s0 proto kernel scope link src 192.168.11.6 ``` ip rou の出力結果。 192.168.11.1:バッファロールータのアドレス 192.168.11.6:サーバ ```tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes 10:19:12.741576 IP user.ssh > 192.168.11.2.60314: Flags [P.], seq 536615989:536616177, ack 3969807546, win 501, options [nop,nop,TS val 3813091487 ecr 2054784889], length 188 ``` 192.168.11.2[下図PC2] ### 補足情報 ubuntu18.04です。 最終的にはsshポート以外のポートも開放したいと考えています。 モバイルwifiのため、IPアドレスが変化してしまうことを防ぐため、クレードルに差すことで一時的に固定しています。 一週間ほど頑張ってみましたがどうしても出来ませんでした。 直接解決に結びつかなくても良いので、「これを確認してみては」というようなアドバイスもあればいただきたいです。 よろしくお願いします。 ###buffaloルータ ・ポート変換 Internet側IPアドレス: エアーステーションのInternet側IPアドレス LAN側IPアドレス:192.168.11.6 TCP/UDPポート:22 ![イメージ説明](7f57e000d8e468e79bb77e2c9f5faec2.png) ![イメージ説明](feee6d12fbccae3a79e7a601d8a02e24.png) ![イメージ説明](d270fe9f06d75ed1fce904d0481b73b9.png) ![イメージ説明](c5388f3b247a5855d20e0bba30e28a15.png) ・経路情報 ![イメージ説明](2f0ac651942e01d926c2dfaf2347a53f.png) ###全体の構成 ![イメージ説明](5718a3fd8043e0bd7849e993a78b3f2f.jpeg)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mike2mike4

2020/04/17 17:34 編集

モバイルwifiってIPコロコロ変わらなかったっけ? うろ覚えですが。 ※調べたらオプション料金を払えばグローバルIPを取得できるとのことでした。
melomelon

2020/04/17 17:41 編集

mike2mike4様、ありがとうございます。 はい、IP変わります。クレードルに挿している時はIPが変わらないということで、その状態にしてIPが変わっていないことも確認してるのですが。。ダメです 新しい機種では、オプション料金不要で動的グローバルIPを取得できるとのことでWX06を契約しました。
mike2mike4

2020/04/17 17:48

pingはどうなってますか?
melomelon

2020/04/17 17:53

mike2mike4様 ローカルでは返ってきますが、外部からだと返ってこないです。
mike2mike4

2020/04/17 18:23

iptablesで :OUTPUT DROP だと、pingもsshも返事がブロックされるじゃなかったっけ。
melomelon

2020/04/17 18:58 編集

mike2mike4様 これは間違っていましたね、ありがとうございます。 とりあえずどちら方向の通信もACCEPTするために3つをDROP->ACCEPTに修正しましたが、pingもsshも繋がらない現状は変わらなかったです まだ知識が乏しい状態なので、ところどころ分からず書いていたりしているかもしれません。
CHERRY

2020/04/17 21:32

外部から ssh や ping は、どのように実施しているのでしょうか?
melomelon

2020/04/18 04:15 編集

CHERRY様 ありがとうございます。 サーバ側はモバイルwifi、外部からの接続確認のため、ホスト側はアパートの無料ネットワークを使用しています。 ping は ping global.ip sshは公開鍵認証で ssh -i id_rsa user@globalip のようにして確認しています。pingに関しては応答がなく、sshはtime outしてしまうというのが現状です ともにインターネットに接続できていることは確認しています
over

2020/04/23 00:09

記載していたり、設定値にあるIPって実IPですか?ローカルIPアドレス相当が設定されているのが気になります。また、「アパートの無料ネットワーク」とありますが、上位でNATとかされている可能性はないのでしょうか?加えて、契約しているプロバイダによってはキャリアグレードNAT構成の場合もあり、その場合は個人での対応は無理となります。
melomelon

2020/04/23 14:47

over様 ありがとうございます。上に記載したローカルIPは全て実IPです。 アパートの無料ネットワークは外部からの接続確認のために利用しているだけで、サーバに通してるネットワークはモバイルルータを使用しています
over

2020/04/24 00:44

1) PC1のインターネットへのGatewayはモバイルルータということでしょうか? 2) 1)の場合、baffaloルータ → モバイルルータはNAT構成ですか? 3) 1)2)を満たす場合、baffaloルータにもNAPTを実装する必要があります。
melomelon

2020/04/26 16:48

over様 ありがとうございます。今回は1)2)を満たします。buffaloルータはNAT構成にしていて192.168.11.6/22にポート変換の設定をしていて、外部からの接続はこのコンピュータにしかしないのですが、この場合もNAPTにする必要があるのでしょうか?
over

2020/04/27 00:12

> buffaloルータはNAT構成にしていて192.168.11.6/22にポート変換の設定をしていて 上記がNAPTに該当します。 他ご回答者様との回答追い切れていないので、すべて把握しているわけではないですが、いろいろとおかしな点がみつかります。 1) > 192.168.11.6/22 maskを22にしているのは意図的ですか?(本件の障害とは関係ないとは思いますが) 2)モバイルルータの「Global.ip.1」とBaffaloルータのWANのIPは何故同一なのでしょうか。 3)PC4から②PING 192.168.11.6 はNAT構成であれば応答があるはずもないのですが、何を確認されたいのでしょう。 NAT構成でNAPTしているのであれば、BaffaloのWAN IPに対してアプローチすべきと考えます。
guest

回答4

0

まずは最小構成にして問題の切り分けからかなと思います。
(一般的に多段ルーターの状態は色々と大変なので、Buffaloのルータを挟んでいる強い理由が無ければ外してしまうことをお勧めします)

wx06とPC1の設定の確認

  1. まずはwx06-PC1(か、別に用意した適当なSSHを受けれるサーバ)を直結する
  2. PC1のIPは192.168.179.2/24に設定するか、DHCPにしてwx06側のポート変換をDHCPに合わせて変更する
  3. その状態で外部からsshが通ることを確認する

→通らなかったらwx06かPC1、もしくは確認に使用しているインターネットの問題であることが確定するので、それぞれを確認(確認用回線は変更してみる)して外部からのSSH接続が出来るところまでをまずは目指す

Buffaloルータの設定の確認

  1. PC4とBuffaloのルータのWANポートをクロスケーブルで直結するかスイッチングハブでつなぐ
  2. 同じサブネットに所属させる

例 PC4のIPを192.168.170.100/24 BuffaloルータのWANポートを192.168.170.2/24に固定(/24は勘なので、wx06のサブネットを確認して合わせてください)
3. BuffaloルータのLANポートにPC1を接続する(wx06の設定確認の際にIPを変更しているなら質問時の状態に戻す)
4. Buffaloのポート変換を設定する(質問時の状態でOK)
5. PC4から192.168.180.101:22宛でPC1のSSHにつながることを確認する
→通らなかったらPC4かBuffaloの設定がおかしいので、つながるまで頑張る

上記の確認が両方できたら

質問時の構成に戻して外部からのssh接続が出来ることを確認する。
上記確認中に発見した修正箇所は適用する。

それでもだめなら

buffaloのルータを外す方向で構成を考えなおす。

単純にbuffaloのルータをただのスイッチングハブに変更するだけでも困らないんじゃないかなと思います。

投稿2020/04/23 16:44

tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melomelon

2020/04/26 16:53

tanat様 ありがとうございます。 なぜ間にbuffaloを挟んでいるかというと、モバイルルータの有線接続をPC1が認識しないという問題がありました。問い合わせたところ、OSとの対応はしているのですが、ハードウェアに対応していないかもしれないとのことで、間にbuffaloを挟む形となりました。buffaloを通すことでインターネットを認識する状態です。試しにスイッチングハブにしたのですが、それもインターネットに繋がらず。。。という感じです。
tanat

2020/04/26 17:36 編集

> OSとの対応はしているのですが、ハードウェアに対応していないかもしれないとのことで 今時、そんなことはほぼ確実にあり得ないので、 (あるとしたらクロスケーブルとストレートケーブルを間違っている場合や、超古いCAT3ケーブルを使っている様なケースくらい。wx06のサポートがubuntuのサポートを正確にしてくれるとは思えないので、適当なサポートをされたと予想します) PC1のNICの設定かwx06の設定が間違っている可能性を疑った方が良いです。 まずは、PC1とクレードルを直結orスイッチングハブ経由でインターネットに接続することを目標にすることをお勧めします。 0. 接続した時にLANポートのランプが光ることを確認する 1. wx06及び‘PC1のNICを初期化する 2. PC1のNICのIPをDHCPで自動取得にしてネットワークを再起動 3. 2でインターネットにつながらなければ 192.168.179.2/24に設定 4. インターネットへの接続確認は ping 8.8.8.8 等の名前解決を必要としないIPへのpingで確認する 5. 4で繋がらなかったら、PC1 で ping 192.168.179.1 の結果と、同じくPC1で sudo ip a の結果を追記して下さい
guest

0

問題点の切り分けの情報が不足しているかと思います。

  • サーバのルーティングがどうか
    念のためですが、外部通信用の設定がどうなっているか。具体的にはサーバ上でのip rouの出力です。
    ※グローバルなアドレスが絡むなら適宜フェイクをかけてください
  • バッファロールータの影響
    上と絡みますが、中間にある「バッファロールータ」の影響が読めません。ルーティングや通信のフィルタの設定はどうなってるでしょうか。
  • モバイルルータを超えて通信が来ているか
    これができていないとサーバではどうしようもありません。できればサーバ上で、tcpdump/wireshark等でパケットキャプチャして、通信状況を見た方が良いです。

投稿2020/04/18 06:09

angel_p_57

総合スコア1681

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melomelon

2020/04/18 06:53

angel_p_57様 ありがとうございます。ip rouとtcpdumpを試してみました(結果を上に記載しました)が、私にはこれが読み取れず。。。 少し調べてみます。
angel_p_57

2020/04/18 07:52

"ip rou"の出力でも分かることがあります。 まず、サーバのデフォルトゲートウェイがバッファロールータということは、少なくともモバイルルータ・バッファロールータ間は別ネットワーク ( サブネット ) ということになります。 おそらく、モバイルルータから、( バッファロールータの向こうとなる ) サーバの 192.168.11.6 が認識できません。 モバイルルータのWAN側がGlobalIP1だとして、LAN側のアドレスはどうなっているか。モバイルルータ・バッファロールータ間のネットワークアドレスをどうしているか。その情報が必要になります。 バッファロールータでNATが働いているとしたら、話はさらにややこしくなります。 ※典型的には、バッファロールータをルータとして動作させない構成が一般的なような気がします。すなわち、単なるスイッチとして使い、サーバのデフォルトゲートウェイはモバイルルータのLAN側IPに設定するというような。
angel_p_57

2020/04/18 08:00

tcpdumpコマンドを実行する場合はroot権限が必要です。 色々細かい使い方があるのですが、慣れていないのなら、通信データをファイルに保存して、そのファイルをWindows機に持ってきて、別途wiresharkをインストールした上で分析した方が楽です。 コマンドとしては、 tcpdump -i enp3s0 -w ファイル ← 全通信を取る場合 tcpdump -i enp3s0 -w ファイル tcp port 22 ← ポート22番 ( SSH ) 関連に限定する場合 放っておくとずっとファイルへデータを書き込み続けるので、適度なところでCtrl-Cで終了させます。
melomelon

2020/04/22 10:51

すみません、遅くなりました。 ありがとうございます。 確認してみたところ、仰っるとおりモバイルルータからサーバが認識出来ていないようでした。 tcpdumpはroot権限でしたね、出力結果を更新しました。 なるほど、中間はルータとしては使わないのが一般的なのですね、勉強になります。 中間のバッファロールータですが、モバイルルータを直接サーバにつなげると、ハードウェアとの対応の関係と思われますが、インターネットを認識しませんでした(ブリッジモード同様)。 外部からのGlobal.ip.1へのPINGが飛ばないのは、サーバと関係があるのでしょうか。
guest

0

モバイルWifiであるなら、外部から接続というのは不可能です。
光回線とかで、グローバルIPが割り振られる回線を使わないとダメです

投稿2020/04/17 23:39

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melomelon

2020/04/18 04:00

y_waiwai様 ありがとうございます。 モバイルwifiにグローバルIPアドレス(動的ですが一時的に固定しています)が割り振られる契約にしています。
guest

0

rule

1#/etc/iptables/rules.v4 2*filter 3:INPUT DROP [0:0] 4:FORWARD DROP [0:0] 5:OUTPUT ACCEPT [0:0] 6-A INPUT is (ip adress) -p tcp --dport 22 -j ACCEPT 7-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

というふうにiptablesはOUTPUTは基本的にACCEPTしてください。

2020/04/27 追記
私の環境では以下の設定項目がありました。ご参考まで。
ルーター設定

投稿2020/04/17 18:34

編集2020/04/26 16:43
mike2mike4

総合スコア935

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melomelon

2020/04/17 19:19

OUTPUTのみをACCEPTにした場合と、すべてACCEPTにした場合も試してみたのですが、やはり繋がらないです。 sshはtime outします
mike2mike4

2020/04/18 03:34

まずはpingから切り分けていきましょう。pingはどうなってますか?
melomelon

2020/04/18 04:05

pingは外部から投げても一切応答がないです。 内部ではしっかり返ってきています $ping global.pi PING globap.ip(global.ip) 56(84) bytes of data となった後音沙汰がないです ローカルであれば 64 bytes fron global.ip: icmp_seq=1 ttl=50 time=74.2 ms といった具合に返ってきます
mike2mike4

2020/04/18 04:19

グローバルIPはルーターに付いているので、サーバーにはローカルIPが付いているはずです。「グローバルip ローカルip 変換」とか「NAT」とかでググってみるといいでしょう。 というか、pingを打ってる元デバイスはLANの内? 外?
melomelon

2020/04/18 04:41

別のインターネット環境が2つあるので、サーバに繋いでいるLANと、pingはもう一方のLANから打っています。 NAT、しっかり理解していないので勉強してみようと思います 一応、ポートマッピングでLAN側ホスト192.168.11.6(ポート:22)としているので、global ipが受け取ったデータを192.168.11.6に変換して送信しているはずだと理解しています(これがNATであるということであっているでしょうか?)
mike2mike4

2020/04/18 06:49

ルーターのNATかポートフォワーディングの設定を弄れば直るような気がします。外部ネットからpingが通らないのは謎。
mike2mike4

2020/04/18 07:16

pingはPC1,PC2共に、外部(yahooなど)に繋がりますか?
melomelon

2020/04/18 07:41

はい、ping yahoo.comで繋がりました。 一つ致命的なミスを見つけました。buffaloルータの設定でInterrmet側からのpingに応答しない設定となっていました。しかし、設定変更後(再起動)もpingが繋がらないのには変わりがないです
mike2mike4

2020/04/18 08:17

wifiルーターの設定が怪しそうですね
mike2mike4

2020/04/18 10:00

訂正:バッファロールーターの設定みたいです。
melomelon

2020/04/22 10:59

すみません、遅くなりました。 ありがとうございます。 バッファロールータの設定を上に載せておきましたが、どのあたりを見ると良さそうでしょうか。 今の状態を「二重ルータ」ということを知ったため、以下を参考にポート変換の設定を変更しました https://www.akakagemaru.info/port/metarugia-ybbhikari.html
mike2mike4

2020/04/22 16:06

取りあえず家のルーターの設定を見ようとしたら、ログインできない事態が発生してしまい(汗 後日、なんとかなれば見てみます(死
melomelon

2020/04/23 14:41

わかりました、お手数おかけします。。。
mike2mike4

2020/04/23 16:09

失礼、なんとか家のルーターに入ることができました。 で、私のルーターの設定には、「転送」-「仮想サーバー」という項目があって、これが怪しいのですがお使いのルーターはどうですか?
melomelon

2020/04/26 16:34

探したのですが、見当たらなかったです。 どのような設定をする項目でしょうか?
mike2mike4

2020/04/26 16:44

回答にスクリーンショットを追記しました
melomelon

2020/04/26 17:08

ありがとうございます。 多分ですが、buffaloルータの経路情報に近いのかなと思いました。 質問にスクリーンショット載せました。説明欄には 「データを送信する経路を決定するルールの設定を行います。」 とありました。
mike2mike4

2020/04/26 17:19

これだと思います。バッファローのサポセンに問い合わせて見るべきかと思いましたがGWでやってないかもしれませんね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問