2011年6月24日金曜日

tripwire 設定メモ

改ざん検知ツールのtripwireの設定メモ。

インストールしたら、とりあえずポリシーファイルを編集して、監視対象を決める。
普通にインストールすると、/usr/local/etc/twpol.txt にデフォルトのファイルがあるので、中身を編集、
tripwire -m p -Z low twpol.txt
で、ポリシーファイルをアップデート。
# tripwire --init
で、DBを初期化する。
# tripwire --check
で動作確認。ちなみにレポートをメールで送りたい場合は、
# tripwire --check --email-report
で送る。全然設定しないと、なんか化けた感じでメールが来るので、tw.cfgにMAILLENCODING=ISO-2022-JPの設定を追加。twadminコマンドでconfigを再生成する。

tripwireのインストール手順メモ

linuxで使えるフリーの改ざん検知ツール、tripwireのインストールメモ。

ここから最新版をダウンロード。
# ./configure
# make
# make install
で、インストール。同意書を読まされるので、同意してポンポン進む。
サイトのパスフレーズと、ローカルパスフレーズをそれぞれ8文字以上で入力。
Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
 Enter the local keyfile passphrase:
Verify the local keyfile passphrase:
 署名ファイル作成のために、何度か上で入力したパスフレーズを入力して終了。

2011年6月23日木曜日

phpのコンパイルで/usr/bin/ld: cannot find -lltdl

やたらとコンパイル依頼が来るphp。crypt関連のオプションを追加したら以下のエラー。
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1
make: *** Waiting for unfinished jobs....
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
どうやらlibtoolが古いらしいので、libtoolをインストール。
↓ここから
http://www.gnu.org/software/libtool/

64bit環境で共有ライブラリのエラー error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory

64bit環境でなにかをインストールすると、たまにshared objectが見つからなくてエラーになる。
error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory
今回はlibtoolをアップデートした時に起きた。
そんな時は、おとなしく--libdir=/usr/lib64とかのオプションをつけるといいかも。

rpmの『ファイルと競合しています』エラー

mysqlをrpmでアップグレードしようとしてエラー。
     ファイル /usr/bin/mysql_config (パッケージ MySQL-devel-5.5.13-1.rhel5.x86_64 から) は、パッケージ mysql-5.0.77-4.el5_6.6.x86_64 からのファイルと競合しています。
だいたいの場合は、rpm の -U オプションとかでアップデートできるんだけど、たまに競合エラーが出る。
しかたないので、
--force オプションで強制アップデート。
元のファイルは消されるんだけど、しかたないよね。

2011年6月20日月曜日

pecl config-setでエラー config-set (http_proxy, proxy:8080, user) failed, channel pecl.php.net

peclのconfig-setをいくらやってもエラーになる。

# pecl config-set http_proxy proxy:8080
config-set (http_proxy, proxy:8080, user) failed, channel pecl.php.net
こんな感じ。なんかpeclで設定しようとするとダメっぽくて、pearで設定すればうまくいくみたい。めんどくさいから理由は調べてません。

pear config-set http_proxy proxy:8080

phpのmemcacheモジュールインストール

phpのmemcacheモジュールはpeclなので、別途インストールが必要。手順メモ。

configureのオプションに、--with=pearをつけて、pearを有効にする。
で、

pecl install memcache
とかでインストール。
php.iniに
extension=/usr/lib64/20090626/memcache.so
とかの設定を追加すれば使える。

2011年6月16日木曜日

openvpnのインストール・構築手順

OpenVPNのインストールメモ

0. configure && make && make install
1. マスタCA証明書と鍵の作成

tarballを解凍した直下に、easy-rsaというディレクトリがあるので、その中で作業。
まず環境変数読み込み用のファイルを編集。

# vi vars
...
export KEY_COUNTRY="JP"
export KEY_PROVINCE="Tokyo"
export KEY_CITY="Shinagawa"
export KEY_ORG="organization"
export KEY_EMAIL="address"
みたいな感じでKEY_COUNTRYとかを編集する。

で、CA秘密鍵を生成

. ./vars
./clean-all
./build-ca

2. サーバ用証明書と鍵の作成

./build-key-server server
を実行して、ポンポンEnterを押していく
A challenge password []:
An optional company name []:
とかは空でOK。最後にコミットしていいかy/nを聞かれるので、yを入力して終了。

3.クライアントの証明書と鍵の生成
./build-key-pass クライアント名
を実行して、さっきと同じように証明書を生成。最初に鍵とかを保護するためのパスワードを入力する。これで証明書と鍵がそろった。

4. DHパラメータファイルの作成
./build-dh
 を実行

5.サーバの設定

ソースツリー直下のsample-config-filesディレクトリにある、server.confを使って作成。これでだいたいオッケーなので、
# openvpn --cd DIR --config CONF
とかで実行する。クライアントにはconfigとか鍵とかをおくる。

ちなみにクライアントに置くファイルは、
/etc/openvpn/easy-rsa/keys の中の、
・クライアント名.crt
・クライアント名.key
・ca.crt
・クライアント用設定ファイル(つくる)

クライアント用設定ファイルは、クライアントのインストールフォルダのsample-configの中にあるので、それを使うとよいかも。

2011年6月15日水曜日

apache httpd.confのlog設定

最近のapache(2.2.19とか)だと、LogFormatで新しい書式を定義して、CustomLogでログファイルと書式を指定する、みたいな書き方が多いっぽい。

たとえばUserAgentとか処理時間を出力したいときはこんな感じで書く。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %X" combined
CustomLog "logs/access_log" combined
%Dはマイクロ秒単位の処理時間、%{User-Agent}i は、HTTPヘッダに含まれるUserAgentの出力。

参考:mod_log_config

2011年6月14日火曜日

windowsのstatic routeの設定

windowsでのstatic routeをたまに設定するときに毎回調べてる気がするので、メモ。

route -p add [NETWORK] mask [NETMASK] [GATEWAY] if [INTERFACE]

これで、NETWORKに対しては、INTERFACEで指定したデバイスから、GATEWAY経由で通信できる。インターフェースは、route printコマンドで表示される数字を指定。

指定しなくても設定はできるけど、2つ目以降のデバイスから接続したい場合はちゃんと指定したほうが無難。

2011年6月9日木曜日

phpのeAcceleratorをインストール

phpのアクセラレータを使いたいと言われたので、eAcceleratorをいれてみた。
インストールと簡単な設定方法とかのメモ。

とりあえず公式サイトから拾ってくる

アーカイブを展開したら、
# phpize
# ./configure
# make install
で、俺の環境(Cent5.6 64bit)だと/usr/lib64/20090626/に出来上がったので、 /usr/lib64/php/modules/とかにコピー。
phpには、zend拡張かphp拡張で読み込ませるんだけど、それはどっちでもいいっぽい。
php拡張として読み込ませる場合は、php.ini に以下のような感じで設定する。
extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

winscpでproxyを使いたい

そんなときは、起動時のメニューの左下にある[Advanced options]にチェックを入れると、Connectionメニューが追加されるので、そこからproxyを設定できる。
調べないと気づかなかったのでメモ。

マニュアルはここ

2011年6月8日水曜日

cisco catalystのflexlinkについて

L2で動作するSTP(スパツリ)の代替機能で、STPを使いたくない場合に使用する。
アクティブリンクに対して、バックアップリンクを設定することで、アクティブリンクがダウンした場合にバックアップ側が転送を行う。

# configure terminal
# interface interface-id
# switchport backup interface interface-id
# end
# show interface [ interface-id ] switchport backup

設定はこんな感じ。これでループをおこさずに迂回路が作れる。

phpのconfigureと拡張モジュールのメモ

php.iniのextensionの項目って最近(5.x系)あんまり見ないけど、なんでいろいろ使えるんだろう、と思ってたら、configureのときにsharedつけないと、バイナリに埋め込まれるみたい。

./configure  --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --cache-file=../config.cache --with-libdir=lib64 --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --disable-debug --with-pic --disable-rpath --without-pear --with-bz2 --with-curl --with-exec-dir=/usr/bin --with-freetype-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-gmp --with-iconv --with-jpeg-dir=/usr --with-openssl --with-pcre-regex=/usr --with-zlib --with-layout=GNU --enable-exif --enable-ftp --enable-magic-quotes --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --enable-wddx --with-kerberos --enable-shmop --enable-calendar --without-sqlite --with-libxml-dir=/usr --with-apxs2=/usr/sbin/apxs --with-mysql --with-gd --enable-dom --enable-dba --without-unixODBC --with-pdo-mysql --enable-mbstring --enable-zip --with-db4
 ちなみに今使ってるオプションはこんな感じ。

2011年6月6日月曜日

sudoの設定

sudoの設定は、visudoコマンドで行う。

ユーザーに対する許可の書式は以下の通り。

ユーザー名 ホスト=(権限)コマンド, コマンド...

ホストはほとんどの場合でALLを設定。権限は、省略するとrootになる。コマンドはカンマで複数記述可能。
以上。

2011年6月3日金曜日

logrotateの使い方

logrotateの使い方俺メモ。

オプションメモ
create mode owner group

create 644 apache apache

とかやると、644のパーミッションでapacheユーザー、グループでログをローテーションしてくれる。

圧縮のオプションは
compress

圧縮方式をbzip2とかに変えたいときは
compresscmd /usr/bin/bzip2
compressext .bz2

とかやるとできる。

で、configの検証は logrotate -d /etc/logrotate.d/httpd

とか。

apache が httpd: Could not reliably determine the server's fully qualified domain name, using 172.24.1.1 for ServerName

apache が起動の度になんかうるさい。
httpd: Could not reliably determine the server's fully qualified domain name, using 172.24.1.1 for ServerName
とか。別に動くんだけど、httpd.confのServerNameディレクティブをちゃんと設定してないことが原因らしいので、ちゃんと設定した。
めでたし。

BIG-IPのVIP作成メモ

BIG-IPでVIP(Virtual Server)作る。
・pool の作成
Local Traffic -> Pools -> Create
・Virtual Serverの作成
Local Traffic -> Virtual Servers -> Create

これでめでたし。

windows7 高速化 いらないサービスを停止する

よくあるwindows高速化の手法で、いらないサービスを停止するなんてのがあります。
というわけで、止めたwindows7のサービスのメモ。

IP Helper:ipv6関連サービス
seaport:Microsoftへの情報提供サービス
Windows Live ID Sign-in Assistant: windows live id関連サービス
wlan autoconfig:無線LAN関連のサービス

あんまりなかった。仕事用だし仕方ないか。

2011年6月2日木曜日

phpからmail送信

phpからメール送信を行う場合は、mb_send_mail関数を使うといいかも。

<?php
mb_language("Ja") ;
mb_internal_encoding("EUC-JP") ;
$mailto="test@test.com";
$subject="件名";
$content="本文";
$mailfrom="From:" .mb_encode_mimeheader("フロム") ."<from@test.com>";
mb_send_mail($mailto,$subject,$content,$mailfrom);
?>

で、
$ php mailtest.php

とかで実行してみたり

apache httpd.confのphpの設定

apache上でmod_phpで動かすときの最低限の設定

LoadModule php5_module        /usr/lib64/httpd/modules/libphp5.so
AddType application/x-httpd-php .php

これで動く。IfModuleの設定とかもしたほうがいいっちゃいいかも。