カテゴリー「サーバー運用」の70件の記事

プロキシサーバ

フォワードプロキシ

企業などの内部ネットワークとインターネットの境にあって、直接インターネットに接続できない内部ネットワークのコンピュータに代わって、「代理」としてインターネットとの接続を行うコンピュータのこと。また、そのための機能を実現するソフトウェア。

ネットワークに出入りするアクセスを一元管理し、内部から特定の種類の接続のみを許可したり、外部からの不正なアクセスを遮断するために用いられる。NATやIPマスカレードと違って、Webブラウザなどのクライアントソフトウェアにプロキシを使うことを明示的に設定しないと利用することができない。

単にプロキシと言う場合は、WWW閲覧のためにHTTPによる接続を中継するHTTPプロキシを指す場合が多い。HTTPプロキシの中には、外部との回線の負荷を軽減するために、一度読み込んだファイルをしばらく自ら保存しておくキャッシュ機能を持つものもある。

応用的な利用方法として、海外からのアクセスを受け付けていないサーバに対して、ブラウザに同国内のプロキシサーバを設定することでアクセスできるようになる例がある。

リバースプロキシ

特定のサーバの代理として、そのサーバへの要求を中継するプロキシサーバ。代行されているサーバにアクセスしようとしたユーザは全てリバースプロキシを経由することになるため、サーバが直接アクセスを受けることはなくなる。

中継時にパケットの内容やURLをスキャンするような機能を組み込めば、セキュリティが強化される。

また、特にアクセスの多いコンテンツをキャッシュに保存することで高速化したり、パスワード認証によってアクセス制限をするなどの機能を持っていることも多い。

フォワードプロキシに対して、リクエストの方向が逆であるためリバースプロキシと呼ばれる。

Apache2.2でベーシック認証をかける

久々に設定してみたところ、なかなか認証がかからず苦戦したので一応メモを残す。

使ったApacheのバージョンはApache2.2.17

[http.confの設定]
・ファイル名
/usr/local/apache2/conf

・変更内容
#
# This should be changed to whatever you set DocumentRoot to.
#

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
#Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#

AllowOverride All
※ドキュメントルートへのAllowOverrideを許可

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

[.htaccessファイルをドキュメントルートに設置]
・ファイル名
/usr/local/apache2/htdocs/.htaccess

・記述内容
AuthUserFile "/usr/local/apache2/htdocs/.htpasswd"
AuthName "Auth-test"
AuthType Basic
Options -Indexes
Require valid-user

[.htpasswdファイルをドキュメントルートに設置]
・ファイル名
/usr/local/apache2/htdocs/.htaccess

・Apacheのコマンドでパスワード作成
/usr/local/apache2/bin/htpasswd -c /usr/local/apache2/htdocs/.htaccess [認証ユーザ名]

以上でhtaccessの設定は完了になります。

Linux、UNIXのアクセス権について

linuxのアクセス権はスティッキービットによって設定される。スティッキービットは、UNIXシステム上のファイルやディレクトリに対応して設定されるアクセス権を表すフラグである。スティッキービット(アクセス権)はchmodコマンドでセットできる。以下、各記号とその意味。

r 読み出し可能。マイナス( - )の場合は読み出し不可
w 書き込み可能。マイナス( - )の場合は書き込み不可
x 実行可能。マイナス( - )の場合は実行不可
t ディレクトリへのスティッキビット。所有者のみがファイル名の変更、削除を行える。
T ファイルへのスティッキビット。所有者のみがファイル名の変更、削除を行える。
s セットID。その他のユーザがファイルを実行するとき、所有者またはグループの権限で実行する。

トラップ(trap)

罠(を仕掛ける)、落とし穴、騙す、陥れる、などの意味を持つ英単語。

プログラミングでは、例外など特定の状況が発生した際に、その状況を処理するために用意されたサブルーチンなどを軌道する仕組みや、そのようなサブルーチン自体のことをトラップということがある(例:エラーとラップ)。

ネットワーク管理では、ネットワーク機器などに障害など何らかの事象が発生した際に、そのことをネットワークを通じて管理コンピュータに通報する仕組みのことをトラップということがある。

ノード(節点)

ノードとは和訳すると、節点となるらしい。

ノードとは、コンピュータを機軸とした通信ネットワークを構成する、中継点、分岐点、端末のことである。
ノードは、機能の分担から、ホストノード(ホストコンピュータなど)、通信制御ノード(交換機など)、ターミナルノード(端末装置など)、および、クラスタ(制御装置における記録単位)制御ノードに分類される。

ネットワークにおいて、データ伝送のノードとノードを結ぶ論理関係は、リンク(連携)と呼ばれる。

DoS、DDoS

DoS(Denial of Services)はネットワークを通じた攻撃の一つ。相手のコンピュータやルータなどに不正なデータを送信して使用不能に陥らせたり、トラフィックを増大させて相手のネットワークを麻痺させる攻撃。

しかし最近では、ほとんどのコンテンツサーバが広帯域幅でリンクされているため、攻撃に利用できるような接続を持ち、なおかつ侵入が可能な単一のシステムを見つけ出すことは難しくなってきている。つまり、ほとんどのシステムのネットワーク接続は、一つのシステムではほかのシステムに大きな損害を与えられないほど高速である。このことが新しい攻撃が誕生するきっかけとなった。

DDoS(Distributed Denial of Service)は複数のネットワークに分散する大量のコンピュータが一斉に特定のサーバへパケットを送出し、通信路をあふれさせて機能を停止させてしまう攻撃。「分散Dos」と訳されることもある。

実際にパケットを送る(攻撃を実行する)コンピュータの管理者や利用者に攻撃の意図はなく、外部の悪意ある第三者(クラッカー)にコンピュータを操られて、気づかないうちに攻撃に参加させられてしまうという特徴がある。

クラッカーは、攻撃対象とは無関係な多数のコンピュータに侵入し、ユーザに気づかれないように攻撃実行用のプログラム(トロイの木馬)をこっそり仕掛ける。攻撃を開始する時には、あらかじめ仕掛けたトロイの木馬に対して、一斉にパケットの送出命令を発行する。標的となったサーバには、トロイの木馬が仕掛けられたコンピュータからパケットが送り込まれるため、攻撃されたサーバからは真の攻撃元である「黒幕」のコンピュータを割り出すことは難しい。

DDoSによる妨害アクセスは通常のアクセスと見分けがつきにくく、選択的に排除するのが難しい。このため、標的のサーバにセキュリティ上の弱点を放置するなどの管理のミスがなくても被害が発生してしまう。DDoSを阻止するためには、クラッカーにトロイの木馬を仕掛けられないよう各コンピュータの管理者が注意する必要がある。

Linuxで容量指定のダミーファイルを作成する方法

下記コマンドで100MBのファイルが作成されます。

# dd if=/dev/zero of=tempfile bs=1M count=100

ハードリンクとシンボリックリンク(Linux)

Windowsでいうショートカットのような役割を持っているのがシンボリックリンクです。

例えば、とても不快階層にあるディレクトリにアクセスする機会が多い場合には、次のように設定しておけば、キー入力を減らすことができる。

$ ln -s /www/bsd/home/usr/ ./bsd

こうすると通常、「cd /www/bsd/home/usr/」などと入力しなければいけないところを「cd bsd」と入力するだけで済んでしまう。

シンボリックリンクと使い分けるのが、ハードリンクです。

前者はエイリアス(ショートカット)として作成されるのに対し、ハードリンクはファイルの実体そのものとして認識される。このため、相互ファイルの違いはない。用途とメリットは異なるディレクトリでも同一ファイルを管理する際、特にディスク容量を占有することなく作成できる。作成方法は以下の通り

$ ln aaa bbb

ただし、ディレクトリ自体のリンクや、異なるファイルシステム間では作成できないという制限がある。日にちごとにディレクトリを作成し、更新のない同じファイルも管理したい場合などには、このハードリンクを作成することにメリットがある。

SRPM

Red Hat系Linuxでは、多くのソフトがRPMパッケージで配布されている。RPMはインストールがとても容易であり、アンインストールも手軽という魅力がある。

ディストリビュートのCD-ROMにも含まれているが、「SRPM」というディレクトリが含まれている。SRPMとは、RPMとは異なる「RPMパッケージを作成することが可能なソース」である。RPMであれば、パッケージ作成者の意図通りのディレクトリ先や構成になるが、SRPMを編集すれば自分好みのRPMパッケージを作成できる。

差分(パッチ)を当てることもできるため、自由度が高いインストールが可能になる。ただし、利用するには比較的難易度が高くなる。

RPC(リモートプロシージャコール)

RPC(Remote Procedure Call)、リモートプロシージャコール)とは、プログラムから別のアドレス空間(通常、共有ネットワークの別のコンピュータ上)にあるサブルーチンや手続きを実行することを可能にする技術。遠隔手続呼び出とも。

その際に遠隔相互作用の詳細を明示的にコーディングする必要がない。つまり、プログラマはローカルなサブルーチン呼び出しと基本的に同じコードをリモート呼び出しについても行う。

通信ネットワークやコンピュータの故障から、要求や応答の送受信不良が生じた場合、この分散処理の信頼性・正確性は低下する。

より以前の記事一覧