適当に・・・

何の目的も無くブログを立ち上げてみました。更新は不定期ですね。

Amazon EC2 SSH セキュリティー

2010年01月09日 01時21分38秒 | Amazon EC2
Amazon EC2は基本的に公開鍵でログインするように
設定されてるけど、rootのパスワードがわかると
公開鍵がなくてもログインできる。

これはスゲー怖い。

ブルートフォースで探されて
脆弱なパスワードを設定していたらまずアウトなので。

一番最初にやることは

vi /etc/ssh/sshd_config

PasswordAuthentication yes となっているところを

PasswordAuthentication no に変更して
(パスワード認証を不許可)

/etc/init.d/sshd restert

のっとられて余計な仕事増やされたらたまらねー。

(22番のポートIPで制御しろコラァっていわれても
固定IPじゃない場合がまだ存在するからな~。)



perl String:::Trigram テキスト類似度

2010年01月07日 17時20分07秒 | Perl
テキストの類似度を図る方法を探してた
いろいろな方法があるらしい。

今回はperl String::Trigramを使う事になった。

String::TrigramはCPANからインストール

perl -MCPAN -e shell

install String::Trigram

これでインストール完了。

テキストの類似度を図るサンプル

#!/usr/bin/perl

use String::Trigram;

my $string1 = "となりのきゃくはよくかきくうきゃくだ";
my $string2 = "となりのトトロはよくくうきゃくだ";

my $smlty = String::Trigram::compare($string1, $string2);

print $smlty."\n";

結果は0.606060606060606となった
0.6なら近い文章ということになると思う。

以上。

Amazon EC2 Oracle 11g R2 インストール

2010年01月06日 03時32分49秒 | Amazon EC2
Amazon EC2 Oracle 11g R2
をインストールする。
(なぜならば先にいれたXEが制限付きな為
ボスに報告したら製品ちゃんと入れろとの事。。。涙)

OS CentOS release 5.4 (Final) 32bit

Oracle11gR2入れるのにはやること山盛り。

いつも書いてないけどrootのパスワードを
変更しておかないと・・・
passwd Authentication token manipulation error

いきなりエラーかい!!!(怒)
速攻でgoogle大先生にhelp

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/428errpasswdcmd.html
上記を参照して解決

pwconv
passwd

yum grouplist で何のグループが入っているかチェック・・・

Installed Groups:
Ruby
Yum Utilities

これしか入ってねーよw 仕方なく以下のコマンド実行。
(いらねーものもいっぱい入って、結構時間かかるんだコレがw)

yum -y groupinstall "Base" "X Window System" "Graphical Internet" "Development Tools" "GNOME Desktop Environment" "Editors"

っでもって
yum grouplist hidden

日本語サポートを入れる。なぜなら私は英語が読めないwww ダセー
yum -y groupinstall "Japanese Support" で

vi /etc/sysconfig/i18n

LANG="ja_JP.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja"
SYSFONT="latarcyrheb-sun16"

date コマンド打つと
xxx xxxx xxxxx EST 2010とか出るし。

mv /etc/localtime /etc/localtime.org
cp -p /usr/share/zoneinfo/Japan /etc/localtime

再び date コマンド打つべし!!! xxx xxxx xxxxx JST 2010 OKだ
で次に何やるんだっけな?w

スワップファイルを増やさなきゃならんのだ。
cd /mnt
mkdir swap
cd swap
dd if=/dev/zero of=swap.tmp bs=1M count=4096 &
mkswap swap.tmp
swapon swap.tmp

vi /etc/fstab
以下を追記
/swap/swap.tmp swap swap defaults 0 0
(前書いた気がするけどまあいいやw)

一度 reboot !!!! それから~まだ足りないもののインストールだよー

ここから先は
http://www.fiberbit.net/user/kunyami/oracle/11gR2-install.html
を参考にさせていただいて設定。

yum -y install compat-libstdc++-33 elfutils-libelf-devel libaio-devel sysstat unixODBC unixODBC-devel

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
(見えないけどパスワード2回入力)

次、カーネルパラメータ等を入力する。
(しなくてもあとでOracleがチェックしてくれて生意気な・・・と思うから。)
vi /etc/sysctl.conf

以下を追加する。

##########################################
# for Oracle 11g R2
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
##########################################

sysctl -pで反映

vi /etc/security/limits.conf
以下追加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

vi /etc/pam.d/login
以下を追加
session required pam_limits.so

vi /etc/profile
以下を追加
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

mkdir -p /mnt/oralce/app
ln -s /mnt/oracle/app /home/oracle/app
chown -R oracle:oinstall /mnt/oracle/app
chmod -R 755 /mnt/oralce/

su oracle

vi ~/.bash_profile

export ORACLE_BASE=/home/oracle/app

リモートでインストールなので
VNCサーバの設定(マンドクセー)
vncserver :1
パスワード聞かれるので入力

すぐ終了
vncserver -kill :1

cp /etc/X11/xinit/xinitrc ~/.xinitrc

vi ~/.xinitrc
以下を最下部に追加

xrdb $HOME/.Xresources
exec gnome-session

vi ~/.vnc/xstartup
以下をコメントにする。
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

で以下を追加する
unset SESSION_MANAGER
exec ~/.xinitrc

vncserver :1

VNCサーバを起動してEC2につなげられるよー ここまで約1時間・・・
(ssh で接続してポート転送した方が余分な穴がなくてイイ
ちなみにlocalhostってやってもつながらなく/etc/hostsがないw
しかたなく127.0.0.1。作ればいいだけなのにwww)

でここまでしておいて
ちょっとEBS(ELASTIC BLOCK STORE)を使う
ここにイメージを放り込む

AMC から Volumes で Create Volume
容量は3Gにしておいた。
できたらVolumeをチェックしてAtache Volume
/dev/sdlにアタッチした(確認は ll /dev/sd* でできる)

yes | mkfs -t ext3 /dev/sdl

mkdir /oracle11gR2
mount /dev/sdl /oracle11gR2
chmod 777 /oracle11gR2

linux_11gR2_database_1of2.zip
linux_11gR2_database_2of2.zipは
/oracle11gR2に保存して
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip

vncserverに接続して
仮想デスクトップからターミナルを呼び出して

/oracle11gR2/database/runInstaller

でインストール画面が出てくる。

アップデートは受け取らない。

データベース・ソフトウェアのみインストール

単一インスタンス・データベースのインストール

英語と日本語

EnterpriseEdition を選択しオプションの選択
・Oracle Partitioning
・Oracle Real Application Testing
のみにチェック

ホームディレクトリの変更はしない。
インベントリも変更しない。
権限付きオペレーティング・システムグループも変更しない

インストール構成のチェック
実行レベル(多分runlevel)と
pdksh-5.2.14の失敗が出てるがすべて無視x2をチェックして
終了

インストールが始まりました~。

終了すると構成スクリプトの実行画面が出てくるので
ターミナルからrootになって実行。

/home/oracle/oraInventory/orainstRoot.sh
/home/oracle/app/product/11.2.0/dbhome_1/root.sh

ここでインストールは無事に終了

今実行したroot.shスクぅリプトのバックアップ
cd /home/oracle/app/product/11.2.0/dbhome_1/
cp -p root.sh root.sh.bak

exit で oracle ユーザに戻り
vi ~/.bash_profile

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin

.~/.bash_profile

netca
でOracle Net Service の構成次

でこれを実行すると
LISTENERの起動に失敗するw

/home/oracle/app/product/11.2.0/dbhome_1/bin/lsnrctl start LISTENERとすると
Starting /home/oracle/app/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /home/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /home/oracle/app/diag/tnslsnr/アマゾン内部ドメイン/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=アマゾン内部ドメイン)(PORT=1521)))

Connectiong to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=アマゾン内部ドメイン)(PORT=1521)))
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 104: Connection rest by peer
と出力されて起動しないw

これはアマゾンの内部ドメインをip変換出来ていないので
起こる現象だと思うのでローカルでつなぐのならアマゾンの内部ドメインを
localhostとかに書き換えて起動すると起動できる。

dbca
(DataBase Configuration Assistantらしいw)

グローバル・データベース名は例に習って
orcl.mydomain
SIDは
orcl

これでパラメータを設定して
完了をおすと作成が始まる。

完了した時のログの情報は
必ずメモして保存する。

長かったな。

以上。

※再起動してoracleが上がってこない時の手順

$ORA_HOME/bin/dbstart
$ORA_HOME/bin/lsnrctl start
$ORA_HOME/bin/emctl start dbconsole

とするはずなのだが
$ORA_HOME/bin/emctl start dbconsoleで

Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.

なるエラーが ORACLE_UNQNAME と言うのは???となった

export ORACLE_UNQNAME=xxxとする
(xxxはSIDか?)

$ORA_HOME/bin/dbstart
$ORA_HOME/bin/lsnrctl start
この二つでも上がることは上がるんだけど・・・


apache2.2 tomcat6.0

2010年01月03日 05時59分02秒 | Apache
apache2.2 tomcat6.0 連携

もう昔の頭じゃついて行けない。w
mod_jkとか要らないしスゲー楽。

apacheのコンパイル時に

./configure --prefix=/usr/local/httpd-2.2 --enable-proxy --enable-proxy-ajp --enable-proxy-balancer
(prefix=httpd-2.2は自分の環境にあわせて記述
proxy-balancerはバランシング用だからいらなきゃ削る)

make all
make install

でconfディレクトリの下の
extraに
httpd-proxy.confを作成
中身はマッピング

ProxyPass hoge ajp://localhost:8009/hoge

とか記述して保存して

httpd.confの下の方に
Include conf/extra/httpd-proxy.conf
を記述して保存

apacheを再起動してアクセスチェックして終了。

(tomcatの設定とか書いてないけどデフォルトで
ajp有効になってるからOKだと思う)

以上。