7.8   SOCKS

  7.8.1 SOCKSの動作原理

図:7.8.1 SOCKSの動作原理

  SOCKS(RFC1928)は、ソケットプログラムを利用しアプリケーションプロトコルに依存せずに、トランスポート層上でアクセス制御を行うためのセキュリティプロトコルです。SOCKSサーバーにコネクションリクエストを渡すと、SOCKSサーバーはクライアントを認証してからコネクションを確立します。
  当初SOCKSは、UDPアプリケーションをサポートしていませんでしたが、バージョン5になり、UDPベースのアプリケーションをサポートするようになりました。
  SOCKSは「Sockd」というプログラムを介して、プロキシサーバーとクライアントの通信を行う仕組みになっています。この図で説明するとSockdにFTPやtelnetをカプセル化して通信を行おうとするクライアントAは内部ネットワークの資源を利用できますが、直接telnetを使って通信を試みるクライアントBはプロキシーサーバーによって通信を拒否されます。
TCPパケットがSockdにカプセル化されるため、外部から内部ネットワークの構成を隠蔽することができます。
  SOCKS経由でアプリケーションを動作させる場合、SOCKSサーバーへの接続設定や、アプリケーションをSOCKS化させるクライアント環境での設定変更が必要になります。



  7.8.2プロキシー機能

図:7.8.2 プロキシー機能
  SOCKSでは、プロキシー機能を提供してくれます。上図のようなネットワーク構成でB社のWebサーバーにアクセスするような場合、内部の端末は、いったんSOCKSサーバーを経由し外部ネットワークと接続します。外部のDNS(Domain Name System)等の検索もSOCKSサーバーが代行して行ってくれますので、内部ネットワークの端末はプライベートアドレスを利用して外部ネットワークと接続することが可能になります。



  7.8.3他段接続ネットワーク構成

図:7.8.3 他段接続ネットワーク構成
  SOCKSでは、クライアントとのSOCKSサーバーのセッションだけでなく、SOCKSサーバー間のセッションもサポートしています。したがって上図のように複数のSOCKSサーバーをつないでもプロキシー機能をつかった通信が可能になります。



  7.8.4アプリケーションゲートウエイ機能

図:7.8.4アプリケーションゲートウエイ機能

他のVPNプロトコルとの連携
  SOCKSは、トランスポート層以上で動作するため、ネットワーク層やデータリンク層で動作する他のVPNプロトコルと併用することが可能になります。組み合わせて利用することにより、よりセキュリティレベルを高めることが可能になります。例えば、SOCKSサーバーで、アプリケーションやユーザーに別に切り分けを行って、より高いセキュリティ機能が要求される通信に対しては、IPsecなどのVPNに対応したルーターを経由して通信させ、その他の通信はSOCKSの機能のみで通信を行う、などの方法が考えられます。



  7.8.5 SOCKSの問題点

  SOCKSはトランスポート層以上がセキュリティ対象となります。したがってマルチキャストや動的にポート番号が変化するアプリケーションには不向きです。(バージョン5では一部対応済み)

最初へ



Copyright ©  2002 Information-technology Promotion Agency, Japan. All rights reserved.