Back-home
インストールを成功させるためのヒント
Top view / Search view / Administer

.htaccessファイルのユーザー認証によるアクセス制限 2003/02/9 (Sun)

WWWサーバー Apache のhttpd.confを編集し、ディレクトリのアクセスを制限します。
        sample page click here        user ID= "user" password= "pjk55rt"

ホームページ上ではアクセスできないところ(DocumentRoot以外)に ファイル .htpasswd を設置します。 ドットファイル .htpasswd用ディレクトリは以下のように作成します。ユーザー名 myself の場合、
DocumentRootを /var/www/htmlとすると、

# mkdir /var/www/pwddir
# chown -R myself:myself /var/www/pwddir
# chmod 755 -R /var/www/pwddir

# su - myself

% cd /var/www/pwddir/
% /usr/local/apache/bin/htpasswd -c htpasswd user

ディレクトリ内にアクセスID " user "用パスワードファイル htpasswd が作成されました。ドットファイルにリネームします。

% cp -i htpasswd .htpasswd
ID、パスワードを追加する場合、.htpasswd を編集します。

    user1:3J59hGFKp7YUW
    user2:FKp7R4Ih5TNSU

改行が必要です。

% mkdir /var/www/html/secret/

DocumentRoot内に アクセス制限を設けるディレクトリ "secret" を作成します。
エディタで以下のファイルを作成し、ディレクトリ "secret"内にアップロードするか(通常、ファイル名 htaccessとしてアップロード後、ドットファイルにリネームします)、

% cd /var/www/html/secret/
% vi .htaccess

    AuthUserFile /var/www/pwddir/.htpasswd
    AuthGroupFile /dev/null
    AuthName "Please enter userID and password."
    AuthType Basic
    <Limit POST>
    require valid-user
    </Limit>

送信フォームではメソッド POSTに限定します( GET は使用しない方がよいです)。

% exit
次に、apacheを停止します。

# /usr/local/apache/bin/apachectl stop
# vi /usr/local/apache/conf/httpd.conf

httpd.conf 370行目あたりを編集します。

<Directory "/var/www/html/secret">

    Options FollowSymLinks MultiViews

    AllowOverride Options AuthConfig Limit

    Order allow,deny
    Allow from all
</Directory>

Options制御で、CGIを使用する場合 ExecCGI を併記します。ディレクトリ内ファイルを一覧表示しないように、 Indexes は削除します。

AllowOverrideでは、アクセスしたユーザーに権限を与えます。AuthConfig はユーザー認証に必要です。デフォルト AllowOverride Noneであれば、アクセスは制限されません。
# /usr/local/apache/bin/apachectl start (ないし startssl)

アクセスは http://www.example.jp/secret/となります。




sqlファイルの使い方 2003/01/05 (Sun)


例1: ポータルシステム管理画面でレファレンスを変更したら、アクセス不能になった

Save Detabase nuke 01-05-2003.sql
・・・PHP-Nuke 管理画面にて、バックアップファイルを作成し、ダウンロードしたときのファイル名です。別サーバーのMySQLのDATABASEに書き込んだり、ファイルを再度読込ませるときは、以下のように行います。

まず、保存ファイル名を変更します。
⇒ nukedb20030105.sql

データベースを削除(ドロップ)する前に、必ず確実な方法でバックアップをとります。たとえば、

# /usr/local/mysql/share/mysql/mysql.server stop
# cd /usr/local/mysql/var
# tar cfz nukedb20030105.tar.gz nuke
# mv -i nukedb20030105.tar.gz /home/mysql/
# safe_mysqld &

mysqlサーバーを一時停止し、ユーザーmysqlのホームディレクトリ内にアーカイブを保管します。

MySQLが起動した状態で、DATABASE Nukeのユーザーでログインします。
# su - mysql
% mysql -u [ユーザー名] -p
ユーザーパスワードを入力し[Enter]キーを押すと、クライアントに接続しますので、
変更するときは
mysql> DROP DATABASE nuke;
作成するときは
mysql> CREATE DATABASE nuke;

mysql> use nuke;
問題が発生しなければ
mysql> exit
のあと、
% cd /DIR/DIR [sqlファイルのあるディレクトリー]に移動して

% mysql -u [ユーザー名] -p nuke < nukedb20030105.sql
パスワード入力
mysql> exit
% exit
再起動します。
# mysql.server stop
# safe_mysqld &




いくつかのサーバーを1台のPCで運用するときのperl+CGI 2003/01/12 (Sun)

WWWサーバー Apache 上でCGIを利用するときのセキリティ対策

    Perl Scriptで書かれたCGIを使用するときの注意点「Apache サーバーに suEXEC をインストールする」もご一読下さい。

安全な方法として、サーバーマシンにOSをインストールする時、www, cgiなどの Web 関連のディレクトリーは、個別のパーティションとして、/var/www のファイルマウント時に nosuidオプション を付加し setuid/setgid を無効にしてしまうことが推奨されています。また、CGI関連ファイルは、DocumentRoot以下には設置しないことが大切です。さらに、Apache の一般的な実効ユーザである nobody (および,実行グループ nogroup) が、他のプログラムの実行権限を有したり、cgiなどの実行ファイルの所有者となっていると、とても危険です。
このためには、たとえば、

# mkdir /var/www/cgi-bin
# chown -R cgi_user:cgi_user /var/www/cgi-bin (owner は root, nobody 以外がよい)
# chmod 755 -R /var/www/cgi-bin

任意のディレクトリーを作成し、apache を停止後

# /usr/local/apache/bin/apachectl stop
# vi /usr/local/apache/conf/httpd.conf

まず345〜360行目あたりを編集します。
DocumentRootを /var/www/htmlとすると、
DocumentRoot "/var/www/html" の設定行の中で、Options設定にて CGI,SSIを使用しない,ディレクトリ表示しないようにします。また AllowOverrideにて .htaccessを無視するようにします(以下参照)。

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

次に、635〜650行目あたりを編集します。
DocumentRootを /var/www/htmlとすると、

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ←最後にスラッシュ/あり

<Directory "/var/www/cgi-bin"> ←最後にスラッシュ/なし
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

スクリプトエリアスを指定します。アクセス制限も可能です。

# /usr/local/apache/bin/apachectl start (ないし startssl)

アクセスは http://www.example.jp/cgi-bin/xyz.cgi となります。

次いで、CGIファイル数が多くないときは、/var/www/cgi-bin 内に不審なファイルがないか時々チェックします。

# chmod ls -la | more

ないし、リモートのPCからFTPアクセスして、コマンド ls (ないし dir)にてDir 情報を見ます。sで実行されるファイル⇒ -rwsr-xr-x 1 root:wheel は setuid、 -rwxr-sr-x 2 root:wheel は setgid です。ドットファイル形式のsetuid -rwsr-xr-x 3 root:wheel .sfder.cgi なども、通常のWebページに設置されることのない不審ファイルです。



PGP ユーティリティを使って署名を確認するために 2003/02/16 (Sun)

サーバーのメインテナンスでは、セキュリティのため修正パッチはとても重要です。
FreeBSD のホームページでは、"修正パッチと PGP 署名を以下の場所からダウンロードし,PGP ユーティリティを使って署名を確認してください."と注意書きがあります。ファイル改ざんの有無をチェックすることを主目的とし、署名による確認手順を簡単に解説いたします。

PGP暗号化・電子署名フリーソフト GnuPG を利用しましょう。

メール暗号化などいろいろ応用できますので、解説は Windows版 で行います。

補足説明(2003/11/30) ⇒ Becky! Internet MailなどのPGP/MIMEメールのために若干補足しました。

GnuPGのダウンロードサイトにて、Windows版 (2003/11/30 最新バイナリ GnuPG 1.2.3 compiled for Microsoft Windows) gnupg-w32cli-1.2.3.zip を選択し、ダウンロードします。 C:¥gnupg を作成します。すべての操作は MS-DOS プロンプトで行いますので、バイナリファイルの展開先は、C:¥gnupgからディレクトリ移動の少ないところにしましょう(例 C:¥gpg)。
MS-DOS窓にて
gpg.exe を実行します。

    C:¥WINDOWS> cd .. [Enterキー]
    C:¥> cd gpg [Enterキー]
    C:¥GPG> gpg [Enterキー]

C:¥gnupg 内に必要ファイルが作成されます。
    C:¥GPG> exit [Enterキー]

MS-DOS プロンプトを一度終了します。
再度 C:¥GPG> に移動します。
秘密鍵と公開鍵を作成します。

    C:¥GPG> gpg --gen-key [Enterキー]

(暗号アルゴリズム) 1 ⇒(暗号強度) 2048 ⇒(有効期限:無期限) 0 ⇒(無期限 okey) y ⇒個人情報設定⇒(password) パスフレーズ入力⇒自動乱数発生(キーボードやマウスを動かすことを推奨)

Security Officer 公開鍵を入手します。
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/public_key.asc

http://www.freebsd.org/ja/security/index.html PGP鍵 をクリックすると、ダウンロードできます。

公開鍵 public_key.asc を C:¥GPG にコピーします。

    C:¥GPG> gpg --import public_key.asc [Enterキー]

      なお、一般公開鍵サーバーなどでは、公開鍵の指紋 fingerprint がホームページ上で表示されていますので、入手した pubkey.asc のfingerprint

    C:¥GPG> gpg --fingerprint | moreと同一であることを確認します。

    C:¥GPG> q [Enterキー](または、終了まで下スクロールする)

さて、"修正パッチと PGP 署名を以下の場所からダウンロードし,PGP ユーティリティを使って署名を確認してください." では、

ABCD.patch.asc および ABCD.patch を同時にダウンロードして、C:¥GPG にコピーします。

    C:¥GPG> gpg ABCD.patch.asc

gpg: Signature made **/**/** **:**:** using DSA key ID ********gpg: Good signature from "FreeBSD Security Officer <security-officer@freeBSD.org>"
の2行があれば、「改ざん なし」と判断できます。



Next(+0) / Back(-0) / Search view / Log view / Administer

- Harpist note ver1.02 -