7.8 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プロキシー機能 |
|
|
SOCKSでは、プロキシー機能を提供してくれます。上図のようなネットワーク構成でB社のWebサーバーにアクセスするような場合、内部の端末は、いったんSOCKSサーバーを経由し外部ネットワークと接続します。外部のDNS(Domain Name System)等の検索もSOCKSサーバーが代行して行ってくれますので、内部ネットワークの端末はプライベートアドレスを利用して外部ネットワークと接続することが可能になります。
|
7.8.3他段接続ネットワーク構成 |
|
|
SOCKSでは、クライアントとのSOCKSサーバーのセッションだけでなく、SOCKSサーバー間のセッションもサポートしています。したがって上図のように複数のSOCKSサーバーをつないでもプロキシー機能をつかった通信が可能になります。
|
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.