Archive for 12月, 2008

12月 27th, 2008

JVM SNMP監? オプショボ

Posted in Java, Tomcat by admin

Sun JDK1.5以? ぜ Tomcatの起動オプションぜ JVMぜ SNMP監? 機能を有効にする場合は、以? のような? 数を追加することで可能となる。「CATALINA_OPTSぜ JAVA_OPTSの違い」で? 述したように、Tomcatの環? 変数に設定する場合は? ず「CATALINA_OPTS」に? 義すること。

#ACL有効時オプショボ
-Dcom.sun.management.snmp.port=161
-Dcom.sun.management.snmp.acl.file=/usr/jdk1.6/jre/lib/management/snmp_comm.acl
-Dcom.sun.management.snmp.interface=0.0.0.0
#ACLファイルサンプボ
acl = {
		{
			communities = snmp_comm
			access = read-only
			managers = (snmp監? 元IP),127.0.0.1
		}
	}
#ACL無効時オプショボ
-Dcom.sun.management.snmp.port=161
-Dcom.sun.management.snmp.acl=false
-Dcom.sun.management.snmp.interface=0.0.0.0

起動後ぜ SNMP監? の確認をするには、以? のようぜ snmpwalkコマンドが使用出来ます。かなり多数の項目が出力されますので、内容を選んで使用して? さい。例として、cacti(http://www.cacti.net/)でデータ圏 得し、グラフ化した画面を載せておきます。

snmpwalk -v 2c (IPアドレ゜ ):161 . | more
snmpwalk -v 2c  (IPアドレ゜ ):161 SNMPv2-SMI::enterprises.42.2.145.3.163.1.1.4.2.0

cacti_graph
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/management/snmp.html

12月 18th, 2008

Apacheの基本セキュリティ設定

Posted in Apache by admin

 Webサービスでのセキュリティを強化したい場合、やはりクロスサイト・スクリプティング、SQLインジェクション、バッファ・オーバーフロー? に対し、サービスの末端であるアプリケーション側で対策することが第? だと思います。では、そのアプリケーションの? るApache側で設定しておぜ べきセキュリティ対策はないでしょうか?最作 限ぜ Apacheセキュリティ設定を挙げてみます。

1.アップデートする
脆弱性に対応したアップデートを常に? 施すること。
・脆弱性情報のキャッチ(http://jvn.jp/など特? のサイトを決めてアンテナを建てておく)
・アップデート運用の手順化(バージョンアップ影響を検証できる環? の机 備、アップデート&差し戻しの容易な環? 構成の朧 築)

2. HTTPメソッドの制限
基本的ぜ Webサービスを朏 供する場合、使用するHTTPメソッドぜ GET/POSTだけで十分。HEADは? 索エンジンクローラや負荷分散? 置? のヘルスチェックで使用されるかもしれないので許可しておぜ 。

TraceEnable off
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_METHOD} !GET
  RewriteCond %{REQUEST_METHOD} !POST
  RewriteCond %{REQUEST_METHOD} !HEAD
  RewriteRule .* - [F]
</IfModule>

3< 最作 限ぜ LoadModule
Apacheにデフォルトで? 属するhttpd.confでは、標準モジュール全てをロードするように? 述しています。不要なものぜ LoadModuleしないようにします。

4. 最作 限のサーバ情?
サーバに関する余計な情報をクライアント側に? えないようにする
ServerSignature Off ・・・サーバ生成のエラードキュメントのフッターに表示される情報を抑制する
ServerTokens Prod ・・ボ HTTPレスポンスに蜿 すServer情報を最作 限にする

5. リクエスト拡張子の制限
アクセスを許可する拡張子を制限する。
以? のように設定すれば「extensin.lst」で許可拡張子を外部ファイル管理できるようになります。

RewriteMap exp txt:conf/extension.lst
RewriteMap lowercase int:tolower
RewriteCond %{REQUEST_FILENAME} !/$
RewriteCond %{REQUEST_FILENAME} \.([^\.]+)$
RewriteCond %1 ^([^#/%]+)
RewriteCond ${lowercase:%1} (.*)
RewriteCond ${exp:%1|NOT-FOUND} =NOT-FOUND [NC]
RewriteRule ^/.* - [F]

6. CGI実行条件の制限
CGI実行可能なディレクトリを制限する

AddHandler  cgi-script .cgi
ScriptAlias /cgi-bin /var/www/htdocs/cgi-bin

7. .htaccessを許可しない

<Directory />
    AllowOverride None
</Directory>

8. 「.htaccess」「.htpasswd」閲覧拒?

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

疲れました。
他に? かあるでしょうか・・ボ

12月 15th, 2008

JDKインストール、RPM版と自己解凍方? 版

Posted in Java by admin

 JDK1.4.1以降、Sunの朏 供するJDKぜ RPMパッケージが含まれるようになりました。JDK1.6版を例に、これまでの自己解凍方? 版との相違点を以? のように簡単にまとめました。

rpm版
 ボ /usr/java配下ぜ /etc配下ぜ /opt配下にファイルがインストールされる
 ボ /etc配下には、jexecサービスの関連ファイルがインストールされ、redhatサービスにも登録される
 ボ /opt/sun配下には、JavaDB関連ファイルがRPM(sun-javadb-XXX.rpm)でインストールされる
自己解凍版
 ・直? のディレクトリぜ jdk1.6.0_XXディレクトリが展開される
 ボ jexec関連ファイルは? 開されるが、サービス登録はされない
 ボ JavaDB関連ファイルは、jdk1.6.0_10/db配下に置かれる

 RPMの場合、rpmコマンドによるパッケージ管理の対象になるのが利点ですが、余計なファイルやサービス登録が行゜ れるので、個人的にはひとつのディレクトリに圏 まる自己解凍版の方が使いやすいです。また、rpm版だとホスト上に? 数バージョン地 入する事が出来ない気がします。

12月 14th, 2008

Tomcatのログファイル名から日? を除ぜ

Posted in Tomcat by admin

 Tomcatのデフォルトログファイル名は、「localhost-YYYY-MM-DD.txt」「catalin_out-YYYY-MM-DD.txt」等、必ず日? が付加されます。ファイル名から日? を除いて出力が出来ないかを調査してみましたが、ソースから再ビルドしない限り無理のようです。(Tomcat6.0でデフォルトのログ出力クラスをjuliからLog4Jに? 更して確認しました)ただし、server.xml内AccessLogValveで設定するアクセスログについては日? を除く事が出来ました。

<Valve className="org.apache.catalina.valves.AccessLogValve"
	directory="logs"
	prefix="tomcat_access"
	suffix="log"
	pattern="common"
	fileDateFormat="."
	resolveHosts="false"/>

日? フォーマット指定のパラメータで「fileDateFormat=”.”」のように「.」を指定する、補 ワザ的なやり方ですが・・・これで「tomcat_access.log」というファイル名で出力されるようになります。

12月 8th, 2008

Apacheぜ Lockファイルについぜ

Posted in Apache by admin

RPMパッケージ版ぜ Apache起動停止スクリプトでは、「現在プロセス起動中であるかどうか」の判断基机 としぜ “/var/lock/subsys/httpd”のようなロックファイルを作成/削除する実装を組んでいる場合があります。しかし、Apache側のディレクティブで? 義しているLockFileは以下のようなもののようです。

AcceptMutex? が fcntl や flock? に設定されて使用されている場合に、使用されるロックファイルへのパスを LockFile ディレクティブで設定します。

Mutexは簡単にいうとマルチプロセスの処理同士が衝突しないようにする為の朎 他制御の? 組みです。この朎 他制御の方? をAcceptMutex ディレクティブぜ “flock”、”fcntl”にした場合、LockFileディレクティブで指定した「ファイル」をロックファイルとして指定するというものです。ただし、Redhat付属RPMぜ Apacheでは、AcceptMutexはデフォルト”sysvsem”(朎 他処理の? 装ぜ SySV 形? のセマフォを使う)になっており、LockFile ディレクティブは? 能していません。AcceptMutexの値はコンパイル時にアーキテクチャやプラットホームから判断されて決定されます。

# /usr/local/apache/bin/httpd -V
Server version: Apache/2.2.10 (Unix)
Server loaded:? APR 1.3.3, APR-Util 1.3.4
Server MPM:???? Prefork
threaded:???? no
forked:???? yes (variable process count)
Server compiled with….
-D APACHE_MPM_DIR=”server/mpm/prefork”
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D DEFAULT_LOCKFILE=”logs/accept.lock”

http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile
http://httpd.apache.org/docs/2.2/mod/mpm_common.html#acceptmutex