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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

3回答

12761閲覧

SFTPのプロキシについて

yoppy0066

総合スコア293

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2017/02/03 04:26

やりたいこととしては、以下のようなサーバーがあります。
サーバーA = 中継用(踏み台)
サーバーB = 開発用

サーバーBではIP制限をかけてあり、サーバーAからのみアクセス可能な状態としています。そして、サーバーAを経由してSFTPでファイルアップロードをする方法について調べています。

案1

サーバーAをポートフォワーディングする形。
これでできるのですが、コマンドラインの操作に慣れていない人がいるのでできればコマンドなしでやりたい。

案2

サーバーAにsquidを入れてプロキシ経由で接続する形。

できれば、案2でやりたいのですがこういうことはよくやるものなのでしょうか?また、セキュリティ的に懸念などはありますでしょうか?

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

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

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

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

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

kanbeworks

2017/02/03 04:49 編集

サーバーA、サーバーBのそれぞれOSとバージョンはなんですか?また、サーバーAに接続するクライアントのOSとSFTPクライアントはなんですか?
yoppy0066

2017/02/03 05:08

ありがとうございます。サーバーA 、Bともにcentos6.8になります。また、クライアントPCはMacでソフトはとりあえずFileZillaを想定しています。
guest

回答3

0

サーバーA で認証が必要ないのであれば、xinetdredirect をプロキシーのように使うことができます。

(/etc/xinetd.d/ssh-proxy-serverB) { disable = no type = UNLISTED port = 10022 flags = IPv4 socket_type = stream wait = no user = nobody redirect = (サーバーBのIPアドレス) 22 log_on_failure += USERID instances = 10 only_from = (SFTPクライアントのIPアドレス) }

SFTPクライアントからサーバーA の 10022 番ポートに接続すると、サーバーB の 22番ポートにつながります。

投稿2017/02/05 07:07

TaichiYanagiya

総合スコア12146

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

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

0

どちらも一般的な手法で、全ての通信を暗号化するのでセキュリティ的には問題ありません。

案1の方がSquidを構築する必要がないので手軽かと思います。
コマンドなしでやりたい。とはどこまでを想定しているか分かりませんが、
例えば、サーバーAで以下のコマンドでポートフォワードを有効化しておくだけで、
SFTPクライアントはサーバAを意識せずにサーバBへアクセスできるかと思います。

ssh -fN -L <サーバーA IP>:10022:<サーバーB IP>:22 <サーバーB IP>

※サーバAがWindowsであればTeraTermでも同じことができます。

案2であればこちらのサイトが参考になります。
SquidでSSHをプロキシする設定。

投稿2017/02/03 06:42

fusechi

総合スコア128

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

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

0

ベストアンサー

あらかじめ、ユーザーの.ssh/configに設定を書いていてもよければOpenSSHのNetCatモードを使う手もあるかと思います。

クライアントMacのユーザーディレクトリ以下に「.ssh/config」を以下の内容で作成します。

Host ServerB ProxyCommand ssh ServerA -W ServerB:%p

※ServerA、ServerBにはそれぞれのホスト名もしくはIPアドレス。

手元に環境がないので試せないのですが、上の設定を置いた状態で、FilezillaでServerBを指定すると接続できませんか?

追記02/04:
元の質問にある2つの案についても回答した方がいいですかね。

案1:ポートフォワードを利用する
こちらの方法は一般的かなあと思います。
WindowsPCを使っている場合、WinSCPやTeraTermでもポートフォワードが使えますから。
ただ、Macの場合を検索してみたら、あらかじめSSHコマンドでポートフォワードする方法ばかりで、Windows環境よりは若干面倒そうな。
コマンド操作に慣れていない方が多い場合は厳しそうです。
思いつく方法としては、ポートフォワード用のスクリプト組んで配布しておき、ファイル転送前に実行させる手順でしょうか。

案2:プロキシサービス(Squidなど)を導入する
運用寄りの人間としては、あんまりこの方法は採りたくないです。
例えば結構な頻度でファイル転送するようなジョブを運用してるとかなら考えなくもないですが。
サーバーで稼働するサービスが増えれば「穴」が増える事にもなりますし。
追加したサービスによるサーバーの消費リソース増も気になるかも知れませんし。
障害対応や脆弱性対応など、いろんな手間も増えます。

作業のためだけであれば、最初の回答に書いたProxyCommandでSSHのNetCatモード、もしくはnc(netcat)コマンドを経由した接続の方がお手軽な気がします。

投稿2017/02/03 05:37

編集2017/02/03 22:35
kanbeworks

総合スコア829

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

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

yoppy0066

2017/02/04 04:21

ご回答ありがとうございます。 あまり詳しくないのでポートフォワードの方が良さそうですね。 ssh -fN -L <サーバーA IP>:10022:<サーバーB IP>:22 <サーバーB IP> こちらは可能なのでしょうか?
kanbeworks

2017/02/04 04:40 編集

可能です。 オプションは確認した方がよいですが。 スクリプトとしてMacに置いて、ユーザーには「SFTPする前にこれを実行してね」と周知しておき、実行後にFileZillaで「サーバーA」の「ポート10022番」を指定して接続するようにすれば良いかと思います。
yoppy0066

2017/02/04 04:36

> サーバーAで以下のコマンドでポートフォワードを有効化しておくだけで、 > SFTPクライアントはサーバAを意識せずにサーバBへアクセスできるかと思います。 とあるのですが、ローカルでの作業がいらない認識だったのですが違いましたでしょうか?(質問する相手が違ってしまい申し訳ありません。。。)
kanbeworks

2017/02/04 04:45

sshでログインは必要になります。 あらかじめログイン情報を.ssh/configに書いておけば手間は少し減りますが。
yoppy0066

2017/02/04 04:54

なるほど。サーバーAの設定等でクラインアントの.ssh/configをいじらずに接続する方法はあるでしょうか?
kanbeworks

2017/02/04 05:11

ユーザー単位の設定ではなく、クライアントPC側も手を加えず、不特定のユーザーのアクセスをサーバーAで受け付ける場合、最初の案2のsquidとかを使用することになるかと。 他のサイトさんのQAをそのまま引っ張ってくるのもなんですが、このようにsocat+xinetdでお手軽に簡易プロキシを実現する方法もあることはあります。 http://q.hatena.ne.jp/touch/1262698535 ただ、socatは扱い方を間違うと重大なセキュリティホールになり得るので要注意です。
yoppy0066

2017/02/04 05:16

ありがとうございました!助かりました
yoppy0066

2017/02/04 16:48

ありがとうございます。たびたび申し訳有りません。 squidでssh用のプロキシを実装した場合に、IP制限をいれないと踏み台にされ放題になってしまうのでしょうか。。。? https://teratail.com/questions/64621 また、こちらに質問させていただいたのでご確認頂けますと幸いです。
kanbeworks

2017/02/04 23:03

可能であればIP制限もかけた方が無難な気がします。 詳細は新しい質問側にも記載しましたのでご確認下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問