今日、コンピュータ ネットワークの普及が進むにつれて、コンピュータ セキュリティには、コンピュータ ウイルスを防ぐだけでなく、ハッカーによる違法な侵入に対抗するシステムの能力を向上させることも必要です。また、送信中の違法な盗難を避けるために、リモート データ送信の機密性を向上させることも必要です。この記事では、注目を集めるために、Web サーバーを構築するときに発生する可能性のあるいくつかの状況についてのみ説明します。
1. セキュリティの脆弱性
Web サーバーの脆弱性は、次の側面から考慮できます。
1. 他人にアクセスを許可しない Web サーバー上の機密ファイル、ディレクトリ、または重要なデータ。
2. リモートユーザーからサーバーに情報を送信する場合、特にクレジットカードなどの情報を送信する場合、途中で犯罪者によって不正に傍受されます。
3. Web サーバー自体にいくつかの脆弱性があり、これにより一部のユーザーがホスト システムに侵入し、重要なデータを破壊し、さらにはシステム麻痺を引き起こす可能性があります。
4. CGI のセキュリティ脆弱性には次のものがあります。
(1) 意図的または非意図的に省略されたホスト システムのバグは、違法なハッカーが侵入しやすい環境を作り出します。
(2) CGI スクリプトで書かれたプログラムは、ホスト システムに Web ハザードを提供する可能性があります。
5. セキュリティ要素を考慮せずにインターネットからダウンロードされる単純な Web サーバーもいくつかあり、商用アプリケーションには使用できません。
したがって、サーバーを構成する場合でも、CGI プログラムを作成する場合でも、システムのセキュリティに注意を払う必要があります。既存の抜け穴をふさぎ、安全な環境を作り出すように努めてください。
2. システムのセキュリティと安定性を向上させる
Web サーバーのセキュリティ上の注意事項:
1. Web サーバーでのアカウントの開設を制限し、プロセスを中断する一部のユーザーを定期的に削除します。
2. Web サーバー上で開かれたアカウントについては、盗難を防ぐためにパスワードの長さおよび定期的な変更に関する要件を設けます。
3. FTP、MAIL、およびその他のサーバーをそれらから分離し、ftp、sendmail、tftp、NIS、NFS、finger、netstat などの無関係なアプリケーションを削除してみます。
4. Web サーバー上の SHELL などの絶対に不要なインタープリターを削除します。つまり、CGI プログラムで PERL が使用されていない場合は、システム インタープリターで PERL を削除してみてください。
5. サーバー内のログ ファイルを定期的にチェックし、疑わしいイベントを分析します。 rm、login、/bin/perl、/bin/sh などのレコードがエラーログに表示される場合は、サーバーが不正なユーザーによって侵入された可能性があります。
6. Web サーバー上のシステム ファイルの権限と属性を設定し、他人がアクセスできるドキュメントに WWW などのパブリック グループを割り当て、読み取り専用権限のみを割り当てます。すべての HTML ファイルは WWW グループに属しており、WWW グループは Web 管理者によって管理されます。 Web 管理者のみが Web 構成ファイルへの書き込みアクセス権を持っています。
7. 一部の Web サーバーが Web ドキュメント ディレクトリと FTP ディレクトリを同じディレクトリに指定している場合、FTP ディレクトリと CGI-BIN を同じディレクトリに指定しないように注意する必要があります。これは、一部のユーザーが PERL や SH などの一部のプログラムを FTP 経由でアップロードし、Web の CGI-BIN を使用して実行することで悪影響が生じるのを防ぐためです。
8. NCSA の access.conf に以下を追加するなど、権限を制限してユーザー IP または DNS にアクセスします。
「ディレクトリ /フル/パス/ディレクトリへ」
「GET POSTを制限する」
順序相互失敗
全員から否定する
168.160.142 からの許可。
《/リミット》
"/ディレクトリ"
これにより、ドメイン名 abc.net.cn または IP が 168.160.142 に属する顧客のみが Web サーバーにアクセスできるようになります。
CERN または W3C サーバーの場合は、これを httpd.conf に追加します。
保護 LOCAL-USERS {
GetMask @(*.capricorn.com、*.zoo.org、18.157.0.5)
}
/relative/path/to/directory/* ローカルユーザーを保護する
9.Windows での HTTPD
(1)Netscape Communications Server for NT
PERL インタプリタの脆弱性:
Netscape Communications Server は、CGI-BIN では拡張子とそのアプリケーション関係を認識できません。たとえば、.pl ファイルは PERL コード プログラムによって自動的に呼び出される解釈ファイルです。現在でも、perl.exe ファイルは CGI にのみ保存できます。 -BIN ディレクトリがダウンしました。 /cgi-bin/perl.exe? などを実行します。 &my_script.pl.しかし、これは
誰かがブラウザの URL に /cgi-bin/perl.exe のようなものを追加すると、誰でも PERL を実行できますか? -e unlink <*> を使用すると、サーバーの現在のディレクトリ内のファイルが削除される危険性があります。ただし、O'Reilly WebSite や Purveyor などの他の Web サイトにはこの脆弱性はありません。
バッチ ファイルの CGI 実行における脆弱性:
ファイル test.bat の内容は次のとおりです。
@エコーオフ
echo コンテンツ タイプ: text/plain
エコー
エコー ハローワールド!
顧客のブラウザの URL が /cgi-bin/test.bat の場合はどうなるでしょうか? &dir にすると、コマンド インタープリタが実行されて DIR リストが完成します。これにより、訪問者は他のコマンドを実行できるようになります。
(2)Windows NT/95用オライリーWebサイトサーバー
WebSite1.1B より前のバージョンでバッチ ファイルを使用する場合、Netscape と同じ脆弱性が存在します。ただし、新しいバージョンでは CGI での .bat の役割が終了します。 PERL をサポートし、新バージョンでは CGI 開発ツールとして VB と C を使用します。
(3)MicrosoftのIIS Webサーバー
1996 年 3 月 5 日より前の IIS には NT 上で重大なバグがあり、command コマンドを任意に使用できます。ただし、この脆弱性はパッチされているため、実行可能ファイルの作成日を確認できます。 IIS 3.0 には、主に CGI-BIN での権限の付与など、セキュリティ上のバグがまだいくつかあります。さらに、多くの Web サーバー自体にもいくつかのセキュリティ脆弱性があり、バージョン アップグレード プロセス中に継続的に更新されますが、ここでは 1 つずつ列挙しません。
[カットページ]
3. CGIプログラミングの観点からセキュリティを考える
1. インタプリタ言語よりもコンパイル言語を使用する方が安全です。CGI プログラムは、HTML 保存ディレクトリとは独立して CGI-BIN の下に配置する必要があります。これは、一部の不正な訪問者がブラウザからインタプリタ言語のソースを取得するのを防ぐためです。コードの中で。
2. C で CGI プログラムを作成する場合は、popen()、system()、/bin/sh を含むすべての SHELL コマンド、および system()、exec()、open()、PERL の eval() を使用するようにしてください。および exec や eval などの他のコマンド。
ユーザーが入力したフォームを CGI に返すときは、system() などの関数を直接呼び出さないでください。
さらに、データの暗号化と送信については、現在、誰もが学習できる SSL、SHTTP、SHEN などのプロトコルがあります。
4. ファイアウォール
1. ファイアウォールの概念
ファイアウォールは、ソフトウェアまたはソフトウェアとハードウェア デバイスの組み合わせで構成されるデバイスを指し、企業またはネットワーク グループのコンピュータと外部チャネル (インターネット) の間に配置され、外部ユーザーの内部ネットワークへのアクセスを制限します。内部ユーザーの外部ネットワークへのアクセス許可を管理します。
2. ファイアウォール対策
(1)プロキシホスト
「内部ネットワーク - プロキシ ゲートウェイ - インターネット」
このように、内部ネットワークはインターネットと直接通信しません。つまり、内部ネットワーク コンピュータ ユーザーとプロキシ ゲートウェイは、内部ネットワーク プロトコル (Netbios、TCP/IP など) を提供する通信方式を採用しており、ゲートウェイとプロキシ ゲートウェイとの間では標準の TCP/IP ネットワーク通信プロトコルが採用されています。インターネット。これにより、ネットワーク データ パケットが内部ネットワークと外部ネットワーク間で直接移動することが防止されます。内部コンピュータはプロキシ ゲートウェイを介してインターネットにアクセスする必要があるため、内部ネットワーク コンピュータがプロキシ サーバー上の外部コンピュータにアクセスすることを簡単に制限できます。また、プロキシサーバーは両端で異なるプロトコル規格を使用しているため、外部からの不正侵入を直接防ぐこともできます。さらに、プロキシ サーバーのゲートウェイは、データ パケットの検証やパスワードの確認などのセキュリティ制御を実行できます。このようにして、両端のユーザーをより適切に制御および管理し、ファイアウォールとして機能させることができます。
このファイアウォール対策はプロキシ サーバーを介して実施されるため、オンライン ユーザーが多い場合には必然的に効率に影響が生じ、インターネットにアクセスする多くのクライアント ソフトウェアが内部で正常にインターネットにアクセスできなくなる可能性があります。ネットワークコンピュータ。
(2) ルータのフィルタ追加完了
「内部ネットワーク - フィルター - ルーター - インターネット」
この構造では、ルーターとフィルターを使用して、IP アドレスまたはドメイン名に基づいて外部コンピューターによる内部ネットワークへのアクセスを制限することもできます。また、内部ネットワークからのインターネットへのアクセスを指定または制限することもできます。ルーターはホスト上の特定のポートでデータ通信のみをルーティングしますが、フィルターはフィルタリング、フィルタリング、検証、セキュリティ監視を実行するため、内部ネットワークと外部ネットワーク間の異常なアクセス ログインを大幅に隔離できます。
[カットページ]3. CGIプログラミングの観点からセキュリティを考える
1. インタプリタ言語よりもコンパイル言語を使用する方が安全です。CGI プログラムは、HTML 保存ディレクトリとは独立して CGI-BIN の下に配置する必要があります。これは、一部の不正な訪問者がブラウザからインタプリタ言語のソースを取得するのを防ぐためです。コードの中で。
2. C で CGI プログラムを作成する場合は、popen()、system()、/bin/sh を含むすべての SHELL コマンド、および system()、exec()、open()、PERL の eval() を使用するようにしてください。および exec や eval などの他のコマンド。
ユーザーが入力したフォームを CGI に返すときは、system() などの関数を直接呼び出さないでください。
さらに、データの暗号化と送信については、現在、誰もが学習できる SSL、SHTTP、SHEN などのプロトコルがあります。
4. ファイアウォール
1. ファイアウォールの概念
ファイアウォールは、ソフトウェアまたはソフトウェアとハードウェア デバイスの組み合わせで構成されるデバイスを指し、企業またはネットワーク グループのコンピュータと外部チャネル (インターネット) の間に配置され、外部ユーザーの内部ネットワークへのアクセスを制限します。内部ユーザーの外部ネットワークへのアクセス許可を管理します。
2. ファイアウォール対策
(1)プロキシホスト
「内部ネットワーク - プロキシ ゲートウェイ - インターネット」
このように、内部ネットワークはインターネットと直接通信しません。つまり、内部ネットワーク コンピュータ ユーザーとプロキシ ゲートウェイは、内部ネットワーク プロトコル (Netbios、TCP/IP など) を提供する通信方式を採用しており、ゲートウェイとプロキシ ゲートウェイとの間では標準の TCP/IP ネットワーク通信プロトコルが採用されています。インターネット。これにより、ネットワーク データ パケットが内部ネットワークと外部ネットワーク間で直接移動することが防止されます。内部コンピュータはプロキシ ゲートウェイを介してインターネットにアクセスする必要があるため、内部ネットワーク コンピュータがプロキシ サーバー上の外部コンピュータにアクセスすることを簡単に制限できます。また、プロキシサーバーは両端で異なるプロトコル規格を使用しているため、外部からの不正侵入を直接防ぐこともできます。さらに、プロキシ サーバーのゲートウェイは、データ パケットの検証やパスワードの確認などのセキュリティ制御を実行できます。このようにして、両端のユーザーをより適切に制御および管理し、ファイアウォールとして機能させることができます。
このファイアウォール対策はプロキシ サーバーを介して実施されるため、オンライン ユーザーが多い場合には必然的に効率に影響が生じ、インターネットにアクセスする多くのクライアント ソフトウェアが内部で正常にインターネットにアクセスできなくなる可能性があります。ネットワークコンピュータ。
(2) ルータのフィルタ追加完了
「内部ネットワーク - フィルター - ルーター - インターネット」
この構造では、ルーターとフィルターを使用して、IP アドレスまたはドメイン名に基づいて外部コンピューターによる内部ネットワークへのアクセスを制限することもできます。また、内部ネットワークからのインターネットへのアクセスを指定または制限することもできます。ルーターはホスト上の特定のポートでデータ通信のみをルーティングしますが、フィルターはフィルタリング、フィルタリング、検証、セキュリティ監視を実行するため、内部ネットワークと外部ネットワーク間の異常なアクセス ログインを大幅に隔離できます。