Mac Others

職場のプロキシの支配から卒業する方法

投稿日:

entrepreneur-593358_640

プロキシやファイアーウォールに囲まれて、まるで刑務所の中で働かされてるような職場、あると思います。

世の中には、セキュリティという名目上、「amazon.com」というドメインだけで、「オンラインショッピング」と判断されて、AWSのマネジメントコンソールすら閲覧させてくれない会社もあるようです。

また、「slack.com」というドメインを誤判定(と思いたい)して、「出会い系サービス」として規制される、怒りを通り越して呆れてしまう環境もあるようです。

そんな不自由な環境で働かされている技術者は次第にこう思い始めます。

ひとつだけ解ってたこと
この支配からの卒業

そんな技術者達に送る、縛られた環境を抜け出すための、合鍵を用意しました。(知っている人にとっては、何の面白みもない、クソ記事です)

なお、本記事は、このような方法を推奨するものではありません。

全ての道はAWSに通ずる

冒頭で、AWSのマネジメントコンソールすら閲覧できない会社があるという話を述べた割に、今回はAWSを使います。そのため、それすら(自分自身にやる気があるのに)見れない職場は、姑息な手を使う前に、リアルに卒業した方が良いでしょう。

AWSと言えば、インターネット通販大手のAmazonが提供するクラウドサービスです。技術者にとっては、Amazonは家電量販店と同じ扱いか、クラウド事業者のイメージが強い事でしょう。

今回は、そんなAWSを使った、職場で尾崎豊になるための方法です。ただし、前提条件があります。

  • AWSのマネジメントコンソールでEC2、VPCが操作できる環境にあること
  • 特定のIPアドレスに対して、技術検証目的であれば、自分の端末(社内)からインターネット(社外)上のサーバに対してSSH接続可能なこと

そもそも、AWS CLIなどが使用できる環境であれば、今回のような話は生まれないでしょうから、そのような恵まれた環境にある方は対象外です。

踏み台サーバ

職場のPC(もちろん、Windows 7)からは、AWS上のWindowsインスタンスに対して、ポートが開放されていない都合上、リモートデスクトップで接続することすらできません。

とは言え、リモートデスクトップで接続できないWindowsなど、夏の来ないTUBEのようなものです。そこで、どうするかというと、いわゆる「踏み台サーバ」というものを用意します。

本来の用途としては、AWS上のプライベートサブネット(VPC外からは接続できない論理的な名称のネットワーク)上のリソースに対して、外部から安全に接続するために保守等の目的で使用します(と認識してます)。

例えば、ロードバランサー(ELB)の向こうにいる、Webサーバに対して、仮想端末にログインして作業したい場合があります。通常、Webサーバに対するアクセスは、その外側にいるELBからの、さらにはWebサーバの特定のポート(例えば、TCP80番)に対する通信のみを許可するのが普通です。

では、どうやって(外部からアクセスできない)Webサーバに対して直接アクセスするか、そこで「踏み台サーバ」の登場になります。AMIは何でもよいのですが、Amazon Linuxがおススメです。インスタンスタイプは無料試用枠の対象である「t2.micro」で十分です。

その踏み台をパブリックサブネット(インターネットゲートウェイと接続された、外部からアクセスできる、論理的な名称のネットワーク)に公開します。ただ、そのままでは、インターネットという虚構の狭間で、野晒し状態になってしまいますから、特定のIPアドレス(例えば、職場のグローバルIPアドレス)からの通信のみを受け付けるように、セキュリティグループを調整します。

そして、そのセキュリティグループに対して、TCP22番(SSHのデフォルトポート)のアクセスを受け付けるようにします。あとは、社内の端末から、Windowsの神ソフト、「Tera Term」からSSHで接続できれば準備完了です。(作成したキーペアである秘密鍵の漏洩だけは、くれぐれもご注意を。漏洩すると、卒業ではなく退学することになり兼ねません。まさに合鍵です

SSHポートフォワーディング

その「踏み台サーバ」がどのような役割を果たすか。Amazon Linuxというよりも、「SSH」という技術にポートフォワーディングというものがあります。

ssh ポート転送

ここに解説が全て書かれていましたので、詳細は割愛しますが、いわゆるトンネリングです。(上記のURLが、ジオシティーズ上にあるので、2019年3月末で閲覧できなくなるのが非常に残念なのは置いておいて)

先ほどのプライベートサブネット内のWindowsインスタンスに、このSSHポートフォワーディングを使用して接続します。

  1. 職場の作業端末からAmazon Linuxに対してSSHポートフォワーディング
  2. リモートデスクトップ接続で、接続先をlocalhostと手順1で指定したポート番号に接続する

たった、これだけです。作業端末⇔SSHサーバ⇔Windowsサーバと接続され、あたかも作業端末上から直接Windowsサーバと接続しているように操作できます。

踏み台サーバを使用して任意のIPアドレス、ポートにアクセスする

さて、勘の鋭い方なら(というよりもポートフォワーディングという用語をみた時点で)、踏み台サーバがインターネット上に公開されいてたら、特定のポートに対するアクセスを、任意のIPアドレスの任意のポート番号に対して転送できるのでは、ご名答です。

例えば、上記は自宅のMacに対してVNCで接続する方法ですが、職場の端末に、VNC ViewerなどのVNC Clientをインストールすれば、SSHポートフォワーディングにより、通常接続することのできない、自宅のMacにも接続できます。(もちろん、自宅のルーターの設定は必要です)

つまり、やりたい放題です。

が、SSHポートフォワーディングの性質上、作業端末⇔SSHサーバ間の通信は暗号化されますが、その先は暗号化されませんので、ご利用は計画的に。

合鍵である秘密鍵が漏洩しない限り、踏み台サーバが乗っ取られる可能性は低いでしょうが、万が一を考えて、踏み台サーバから接続できるサーバについても本来は制御するべきです。また、踏み台サーバの監査証跡ログはしっかり取っておくことをお勧めします。

-Mac, Others
-,

執筆者:


comment

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください