適当に・・・

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

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じゃない場合がまだ存在するからな~。)



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
この二つでも上がることは上がるんだけど・・・


Amazon EC2 CentOS ロケール 設定

2009年12月31日 17時19分32秒 | Amazon EC2
Amazon EC2を使っていたけど
javaプログラムを書くことがなく書いた。

そうしたら
「エンコードが対応してないと」
ワーニングが出た。

UTF8で書いてるんだからそんなことねーよと
思いつつJDKをインストールしなおしたり
いろいろやっても治らない・・・・。

もしやと思って
/etc/sysconfig/i18nを参照するが
このファイル自体が存在してない・・・・orz

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"

これを書いて保存

無事にコンパイル通りました。

ここまでで3時間。
プログラムを生業としてる人の
はしくれなのが恥ずかしいと思った瞬間。

Amazon EC2 Oracle XE

2009年09月19日 14時53分04秒 | Amazon EC2
Amazon ec2 に Oracle XE を入れる。

Oracle XE 機能制限のついたOracle
ちょっとした開発サンプルで使うにはOK

Amazon ec2の手続きは省略(すでに使える前提)

インストールするもの
oracle-xe-univ-10.2.0.1-1.0.i386.rpm
(外国のオラクルのアカウントが必要w)

/usr/local/src/にでも配置して

まず、libaio、bcをインストールする。

yum -y install libaio
yum -y install bc

で、次に

rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm

・・・・

This system does not meet the minimum requirements for swap space. Based on
the amount of physical memory available on the system, Oracle Database 10g
Express Edition requires 1024 MB of swap space. This system has 895 MB

キター エラー
swapが足りねーから増やせやコラって言われてる。w
生意気なwww しょーがねーな

適当なディレクトリを作って
mkdir /swap
cd /swap
dd if=/dev/zero of=swap.tmp bs=1M count=2048
mkswap swap.tmp
swapon swap.tmp

起動時swapファイルが自動的にマウントされるようにしたいなら
システムの設定ファイル
/etc/fstab 以下を追記
/swap/swap.tmp swap swap defaults 0
必須ではない。

/etc/init.d/oracle-xe configure
全部Enter and yes!!!!!!!!!!
(パスワードは適当)

そうすると
Listener が1521
WEB が8080
みたいな感じで http://127.0.0.1:8080/apex にアクセスしろや
って言われる。

もちろんEC2上なので
http://ec2-xxx-xxx.amazonaws.com:8080/apex になる。

アクセスすると・・・・・
ページが表示できません。w

マジー!?

netstat -ano | grep 8080

・・・何もかえってこねーw

何かが足りない。。。。
教えてgoogle大先生

http://www.oracle.com/technology/pub/articles/lokitz-cloud.html

ここに載ってるやない。

$ export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
$ export ORACLE_SID=XE
$ export PATH=$PATH:$ORACLE_HOME/bin

$ sqlplus system/password (*where password is your system password)

この下が大事な設定みたいw
$ EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

/etc/init.d/oracle-xe restart

再度アクセス。
無事に出来たw

2009/12/31追加
CentOS 5.4に上がってから再度インストールする機会があって
インストールしたら

kernel.sysrq unknown
net.ipv4.tcp_syncookies unknown
・・・

みたいなエラーが出てる
パラメータ知らないっていわれてるので

vi /etc/sysctl.confで
#kernel.sysrq = 0
#net.ipv4.tcp_syncookies = 1
とコメントアウトした

インストールは無事に完了した

以上。