Orenosp Secure Reverse Proxy
New:OpenIDとSingle-Sign-OnをサポートしたOrenosv V2のβバージョンがダウンロード可能です
[To English page]
OrenospはHTTP/HTTPS リバースプロキシ・ロードバランサー・ポートフォワーダです。
Windows (NT, 2000, XPおよび2003)、Linux x86およびMac OS Xで動作します。
If you need a simple and easy way of protecting remote desktop
over a public network, please look at
gtOrenoPC instead.
はじめに
近年ADSLの普及により家庭内PCへの外部からのアクセス(リモートアクセス)の
需要が高まってきています。また家庭内メディアサーバやネットワーク化された
他の電子機器へのリモートアクセスも求められています。
しかしながら、家庭用ルータ/FW、PCアプリケーション、Web対応電子機器の
現状をみると、安心してリモートアクセスを提供することはできません。
Orenospは統合されたセキュリティ・ファシリティ(ユーザ認証、アクセス権限、
アクセスロギング、通信の暗号化)の下、以下のようなセキュアなリモートアクセスを
提供できます:
- WebサーバやWeb化された各種アプライアンス
- リモートPCアクセス(Windows XP Remote Desktop、 VNC、等)
OrenospはSSLリバースプロキシとSSLポートフォーワディングとして動作します。
具体的には、ルータ/ファイアウオールでは外部からの接続は単一のTCPポートに
固定し、それ以外のTCP/UDPポートはすべて閉めます。そしてそのTCPポートへの
外部接続はすべてOrenospが受け付け、セキュリティチェックと各種変換を行い、
LAN内に存在するWebサーバやWebアプライアンス、各PCなどに転送を行います。
概略図:
注意: 通常の(Forward) Proxyはクライアント側に設置するものですが、
リバースプロキシはサーバー側に設置するものです。
またOrenospを用いて安価でセキュアなリモートアクセス手段として小規模なSSL VPN
ゲートウエイを作ることもできます。
Secure Port Forwarding参照。
目的
インターネットのサーバ側において、Orenospは以下の3つの目的を果たします。
LAN内のWebサーバを保護する
- 非SSL HTTPサーバをSSL化する
SSL未対応のHTTPサーバ(OrenosvやANHTTP)やデバイス(ルータやプリントサーバ)を
設定の変更なしにSSL対応にするプラグイン・ソリューションです。そのような
サーバ/デバイスをインターネット上で安全に公開できます。
HTTPサーバマシンと別のマシン上で実行できるのでHTTPサーバマシンをSSL処理の
負荷から解放できます。
- SSL暗号化された通信をセキュアプロキシ上で検査する
通常のファイアウオールなどは暗号化されたチャネルを
検査できません。なぜならSSLはend-to-endの暗号化を提供するからです。
OrenospはクライアントからSSL接続を受け付け復号化し、多くのセキュリティ・
フィルターや入力変換を適用してから、再暗号化しSSLバックエンドサーバに
転送します。
- Nimda filter
ユーザ指定のURLパターンを持つリクエストをフィルタリングできます。これらの
リクエストを破棄し専用ログに記録できます。
- 一般的なリクエストフィルター
以下のようなリクエストの属性を見てフィルタリングするかを決めることも
できます。URLの長さ、URL内の8ビット文字、POSTデータ長、chunked encoded
されたPOSTデータ等。また、リクエストのReferフィールドを見て「直リン」禁止
を行うこともできます。
- ユーザ認証
HTMLページを使ったフォーム・ベース認証、HTTP基本認証、SSLクライアント認証を
実現できます。フォーム・ベース認証では
カスタマイズ可能なHTMLページを使いユーザ認証が行えます。
- Both the form-based authentication and HTTP basic authentication can
also use external authentication servers.
They can send username and password to an external authentication server to verify passwords.
- Orenosp can pass user credential for HTTP basic
auth and form-based auth to backend servers as an HTTP basic user
credential. You can effectively convert HTTP basic auth system to
a form-based auth system.
- Dynamic IP-based Access Control
Orenosp can restrict client access by client's IP addresses. The list of
restricted IP address patterns can be stored in plan text files and can be
dynamically modified and reloaded. For example, a CGI program can append
to the text file the client IP address that it wants to forbid access.
Orenosp then detects file's modification and reloads IP address patterns.
Dynamic IP-based Access Control can be enabled in two ways, either
per-request access control or per-connection access control. The former
method offers flexibility while the latter can be used to thwart SSL handshake
DoS attacks.
- Webサーバをオーバーロードから保護する。
Orenospはフロント接続数を制限できます。またリクエストの並列処理度も
制限できます。これらを実現するためにOrenospはkeepaliveキューとpending request
キューを持ちます。
Orenospは1000個のkeepaliveとrequest-pendingのHTTPS(SSL)接続をたった5MBのメモリ
オーバヘッドで維持できます。もしこれら1000個のHTTPS接続が通常のOpenSSLベースの
Webサーバに襲い掛かると50MB以上のメモリオーバーヘッドになるでしょう。
マルチプロセスのApacheの場合さらに多くのメモリが必要となります。
Orenospにこれらフロント接続を処理させさらに同時にバックエンド接続を集約
できます。
- Prevent Information Leakage
Some not-well-managed web servers put up information that's not intended
for publication on the web. With Orenosp's nimda filter and rewrite filter,
you can prevent sensitive information inadvertently being published.
See this document for detail.
- Sending Log Records to a Remote Logging Service
Access logging is one of the most crucial information from security
standpoint. Orenosp can send log records from access log, performance log
and nimda log to a remote Logging Service on an audit log PC in a more
protected area. The Logging Service authenticates remote logging connections
and also uses SSL to encrypt communication channels. You don't need to
worry about punching a hole by opening up an unauthenticated, non-encrypted
port on the audit log PC.
Using this feature you can also merge logs from multiple Orenosp/Orenosv
services into a single log stream. It will come handy when you have
a farm of Orenosp/Orenosv machines.
- Connection Monitoring
With the monitoring module, you can monitor the list of all connections
that are going through Orenosp. See example.
複数のWebサーバ間に負荷を分散する
- HTTPリクエスト・ルータ&リダイレクタ
仮想ホスト名、リスンIPアドレス/ポート、仮想パスに基づいて複数のバックエンド
サーバにリバースプロキシできます。WebDAVリクエストもリバースプロキシできます。
New in 0.8.0: More complete WebDav support by automatically rewriting DAV request and response bodies.
また真のHTTPリダイレクトも可能ですので、簡単にユーザを非SSLページから
SSLページに誘導できます。Orenospはリクエストが来た時点でWebサーバのホスト名を
解決するので、Webサーバ(内部PC)は静的IPアドレスを割り振られる必要がありません。
- Content-Based HTTP Request/Session Routing
You can implement routing rules of HTTP sessions based on your application's
data. This is accomplished by your application issueing an HTTP cookie that
designates the backend server that this session should be routed to.
With this capability, you can achieve application-specific load-balancing
of servers, while maintaining a single server image.
For example, a large webmail server can partition users into three groups
for each of which a dedicated backend server exists. Upon user's login
to the webmail, the login server will issue a routing cookie. Orenosp will
use that cookie value to determine the destination of the session's requests.
Throughout the process, the end user will only see a single URL (virtual
server).
- HTTP Load-Balancer for Highly Available Web Sites
With load-balancing, you can distribute HTTP request processing among
multiple equivalently configured backend servers. Session persistence
is achieved using an HTTP cookie.
All nodes in a load-balanced group are proactively health-checked by
ICMP (IP-level "ping") packets. If a node is removed from the network,
Orenosp will automatically forward existing connections to other online
nodes.
- コンテンツ・リライト・フィルター
リバースプロキシの背後にHTTPサーバを設置すると、その同一サーバ上でも
「絶対URL」は使えなくなります。さらに、複数のHTTPサーバ上のページ間で
HTMLリンクを使っている場合、外部URLでリンクを記述必要があります。
しかしそうすると内部ネットワークからそれらリンクを参照できなくなります。
解決方法は、リバースプロキシにそれら内部URLを自動的に書換えさせることです。
Orenospはそれを行うコンテンツ・リライト・フィルターを持っています。
2種類あります。1つはsimple content rewrite filterで、内部URLを外部URLに
変換するために単純な置換を行います。もうひとつは正規表現によるパターンを
とり、例えば共通なヘッダやフッタをHTMLページに付加することができます。
- パフォーマンス・ロギング
通常のアクセスログとは別に、Orenospはバックエンドサーバ
へのリクエストのレスポンスタイムをログできます。
例えば、2秒以上掛かったリクエストだけを特定できます。
- IPv6サポート
IPv4環境のHTTPサーバをIPv6ネットワークに公開できます。逆も可能です。
Automatic URL rewriteによりHTMLファイルに現れるIPv4アドレスもIPv6アドレスに
変換できます。
IPv6版はWindows NT 4.0をサポートしないため別バイナリになっています。
(orenospXXXi6.exeがIPv6版です。)
Webサーバが利用するインターネット資源を制御する
- 単一のグローバルIP
仮想ホスト名を用いて、単一のグローバルIPアドレスで複数のサーバを
公開できます。
- 複数のサーバを一つの仮想サーバに集約する
内部の複数のサーバを異なる仮想パス上に配置することにより
単一の仮想サーバとして外部に公開できます。これにより複数のドメイン名を
持つコストを削減します。
- バックエンドコネクションの集約
Orenospはバックエンドへのコネクション(TCP、SSLの両方)をキャッシュし再利用
するので、バックエンドサーバへのコネクション負荷を軽減できます。
- HTTPコンテンツ圧縮
帯域幅を節約するためにコンテンツのサイズを削減できます。HTTP圧縮は
静的/動的を問わずHTMLのような如何なるテキストファイルに適用できます。
多くの動的生成されたレポート型のHTMLファイルは90%といった高圧縮率を
達成します。SSL+圧縮の環境ではさらにCPU利用率も削減できます。
- 帯域制御 (スロットリング)
仮想ホストやURLグループの単位でリバースプロキシのネットワーク帯域を制御できます。
- 非HTTPアプリケーションをHTTPSポートでトネリングする
HTTPS用のポート(443)だけを使い非HTTPのAPプロトコルを
SSLでトネリングできます。Secure Port Forwarding参照。
その他の特徴
OrenospはSSLライブラリとしてOpenSSL Projectによって開発された
OpenSSL Toolkitを使用しています (http://www.openssl.org/)。
- NTサービスとして稼動します。
- ApacheやIISといったメジャーなHTTP/1.1ウェブサーバと相互運用性があります。
- 簡略化されたSSL証明書生成プログラム(gencert)付き
ほとんどの単純な環境ではこれで十分です。より複雑な環境ではEasyCertや
opensslユーティリティを使用して証明書を作成・管理します。
予定されていない機能
- 多数の同時アクセス環境での使用。PCのような汎用マシンで動かす限り
SSL処理がその他のHTTP処理を大きく上回りネックになります。したがってOrenosp自体もそれほど効率にこだわらずスレッドを多用した単純な作りなっています。
商業利用には、SSLアプライアンスなどをお勧めします。
Usage Examples
- Securely Publish OWA (Outlook Web Access) of Exchange Server
You can also load-balance multiple OWA front-end servers.
- Securely Publish WSS (Windows SharePoint Services)
- Securely Publish Windows Remote Desktop, Terminal Services, and VNCs
- Securely Publish Existing Internal Web Servers to the Internet
You can hide internal hostnames and aggregate internal services into one
virtual server.
- Make Internet-bound Public Web Servers Available to the Intranet Users
Orenosp can translate external hostnames into internal hostnames.
- Securely Publish Multiple Network Cameras.
最新バージョン
Orenosp Secure Reverse Proxy 1.0がOrenosv.comからシェアウェア製品としてリリースされています。
最後のベータバージョン(0.8.5)からの変更
- フォームベース認証を使ったSSLVPNが、正確なinactivity timeout機能つきで完全にサポートされます。
注意:フォームベース認証はTnAppletのみが使用できます。otunnelは使用できません。
- モニターモジュールでNetwork MapとWakeup-On-Lanページが利用できます。
注意:この機能はWindows NT 4.0上では使えません。
- フォームベース認証はオプションとして authorization (allow)リストをサポートします。グループデータベースファイル(grpdb.txt)を使用します。
- トネリングlisten portはIPベースアクセス制御をサポートします。
- フォームベース認証やnimdaフィルターがIPベースアクセス制御と連携します。
例えばユーザがフォームベース認証で認証されてから、トネリングlisten portが
そのユーザのIPからの接続リクエストを通すようにできます。
- 多くのbackend 認証サービスをサポート。LDAP(ActiveDirectory)とRADIUSが追加されています。
- 様々なバグ修正。
バージョン履歴
開発途中バージョンはこちら
Orenosp以外に必要なソフトウェア
These are optional related products/components.
- Orenosv-enhanced rotatelogs
This is an enhanced version of Apache rotatelogs. If you need to rotate
log and trace files, you will need this.
- RBP : Orenosp/Orenosv compatible logging program
If you will use remote logging feature, you will need this.
電子証明書を扱うために追加導入しなければならないソフトウエアがあります。
自己発行明書であれば付属のSSL証明書生成プログラムでの対応も可能です。
- Orenosp付属のテスト用証明書を使用する場合
[LAN内でSSLのテストをするときのみ使用してください]
追加ソフトウェアは必要ありません。
- 自己署名した証明書を使用する場合
a) Orenospに含まれるgencert.exe
追加ソフトウエアは必要ありません。
b) Kousec Server Certificate Manager - Basic Edition
プライベートCA機能をもち、自己発行証明書・商用CA証明書の両方を統一管理できるツールです。
c) Openssl utility
Openssl 0.9.7bのユーティリティプログラム(コンパイル済みバイナリ)はこちらからダウンロードできます。
- 商業CAによる証明書を使用する場合
[セキュリティのためにこちらを推奨]
a) Kousec Server Certificate Manager - Basic Edition
プライベートCA機能をもち、自己発行証明書・商用CA証明書の両方を統一管理できるツールです。
b) Opensslユーティリティ
証明書申請の手続きはApache+modsslとほぼ同様です。Orenosp向けの手順書(英語)はこちら。
説明書等
readme_jp.txt - インストール手順
guide_jp.txt - Orenospユーザーズガイド
certmemo_jp.txt - EasyCertを用いたCA作成手順
certmemo_en.txt - opensslを用いたCA作成手順
selfca.html - 自己署名証明書使用の際の注意事項
webdav_en.txt - WebDAVリバースプロキシ時の注意事項
sproxy_full.txt - コンフィグファイル
ha_cluster.txt - HA-clustering Orenosp on Linux
tunnel/ssltunnel_en.txt - SSL Tunneling Guide
tunnel/sampleconfig_en.txt - Practisal Sample Configuration
changes.txt - detailed change description
System Requirements
- Windows NT 4.0 SP6a
- Windows 2000 SP1 以降
- Windows XP SP2 以降
- Windows Server 2003
- Windows Server 2008
- Linux x86 (kernel 2.4 or higher)
- Mac OS X 10.3.x
掲示板
掲示板(英語)です。
Orenosv/Orenospに関するバグ報告・ご意見などご自由にどうぞ。
バグ報告の際はバージョン名を明記してください。
旧掲示板ログ (書き込み不可): http://www.orenosv.com/oldbbs_jp/
Copyright
Please see copyright.txt.
Kousec Software, Inc.