さくらのVPS(Cent OS)基本設定の覚書2 Apacheインストール・設定

ひきつづきさくらのVPS(CentOS)での環境構築の覚書を残しておく。
今回は、Apacheのインストールと設定について。

Apacheのインストール

% sudo yum install httpd

Apacheの初期設定

Apacheインストール後、apacheユーザが作成されていることを確認。

% cat /etc/passwd | grep apache
apache:x:48:48:Apache:/var/www:/sbin/nologin
  % sudo cp /etc/httpd/conf/httpd.conf $HOME
  % sudo vi /etc/httpd/conf/httpd.conf
  • ユーザとグループの設定

httpd.conf(231行目)

User apache
Group apache
  • 管理者のメールアドレスまたはURLの設定

デフォルト設定のままとしておく。
httpd.conf(251行目)

ServerAdmin root@localhost
  • サーバ名の設定

コメントアウトし、現在DNS登録されているアドレスを書く。
httpd.conf(265行目)

 #ServerName www.example.com:80
      ↓
 ServerName XXXXX.XXXXX.XXXXX
  • Webサーバのルートディレクトリの設定

/var/www/html配下がデフォルトだが、そのままデフォルトの設定で利用する。
httpd.conf(281行目)

DocumentRoot "/var/www/html"
  • Optionの設定

Webサーバにアクセスされたファイル一覧ページが自動生成されないように設定する。
FollowSymLinksは、シンボリックリンク用の設定だが今回はそのまま。
httpd.conf(320行目)

 Options Indexes FollowSymLinks
    ↓
 Options -Indexes FollowSymLinks
  • Webサーバにアクセスしたクライアントに返す情報の設定

初期状態では、OS名がクライアントに返される。
サーバ構成のヒントを与えて攻撃の対象とされないように、
クライアントに返される情報を最低限にしておく。Prodを指定する。
httpd.conf(40行目)

ServerTokens OS
  ↓
ServerTokens Prod 
  • エラーページなどに出力されるサーバ情報の設定

ServerTokens同様に危険であるため、Offに変更しておく。
httpd.conf(524行目)

 ServerSignature On
   ↓
 ServerSignature Off
  • Apacheの設定ファイル編集内容の問題可否
 sudo apachectl configtest
 Syntax OK

Apacheの起動とサービス登録

 % sudo service httpd start
 httpd を起動中:                                           [  OK  ]
 % sudo chkconfig httpd on
 % chkconfig --list httpd
 httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
  • runlevelの確認

Apacheランレベル別の設定が2〜5がonになっていることを確認する。
OSの再起動時にはApacheのサービスが再起動されるようになった。

 $runlevel
 N 3

参考URL

Cent OS 基本設定の覚書

Linux環境に触る経験するためにさくらのVPSを利用してみた。そこでの基本設定内容について覚書を残しておく。
今回は月間980円を利用。また利用する環境は簡単には次の通り。

OS:CentOS 5 x86_64
メモリ:512MB
HDD:20GB

ユーザの設定

  • rootでログインして、rootのパスワードを変更。

passwd

  • 自分の利用するユーザの作成して、利用ユーザのパスワード変更。

passwd xxxxx

  • 利用ユーザをwheelグループに追加。

% usermod -G wheel xxxxx

wheelグループとは、UNIX系システム上でスーパーユーザー(root)特権を得ることのできるユーザーの
属するグループの名称。通常,UNIX系システムでは一般ユーザーがスーパーユーザー権限を得るために
suコマンドを使用するが,何らセキュリティの対処が行われていないシステムでは,多くの場合どの一般
ユーザーでもスーパーユーザー権限を得ることができる。PAMを利用すると,スーパーユーザー権限を得る
ことが可能な一般ユーザーを限定でき,この権利を持っている一般ユーザーをwheelと呼ばれるグループに
所属させる。

  • visudoの編集で、wheelグループのコメントを外す。

wheel ALL=(ALL) ALL

  • 作業用アカウントで再度ログイン。OKならrootで開いていた方を閉じる。
  • パスを通す。PATH=$PATH:$HOME/binの下の行に追加。

% vi .bash_profile

PATH=$PATH:/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/local/sbin

sourceコマンドで確認。

% source .bash_profile

SSHの設定

  • 接続元の端末で、SSH用のRSA公開鍵を作成する。

% ssh-keygen -C 'XXXXXXXXX'

  • ~/.sshにid_rsa、id_rsa.pubが作成されていることを確認し、authorized_keysを作成する。

% cd ~/.ssh
% touch authorized_keys
% chmod 600 authorized_keys
% cat id_rsa.pub >> authorized_keys

  • scpで作成したauthorized_keysを接続先のホストの.ssh配下にコピーする。
  • SSHの設定変更(ポート番号の変更、パスワードログインの禁止、rootログインの禁止)。

% vi /etc/ssh/sshd_config

  • SSHポート番号の変更

#Port 22

Port 10022

  • SSHでパスワードのログインの禁止

#PermitRootLogin yes

PermitRootLogin no

  • SSHでのrootログインの禁止

#PubkeyAuthentication yes

PubkeyAuthentication yes

  • SSHでのパスワードのログインの禁止。root以外のユーザにも公開鍵認証を必要とさせる。

#PasswordAuthentication yes

PasswordAuthentication no

  • sshdの再起動。

設定内容を反映させるためにsshdの再起動。

% /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

  • 鍵認証でログインできるか確認。

デフォルトポートでssh接続が行えなくなっていることを確認。
sshでrootのログインができなくなっていることを確認。
sshRSA公開鍵を設定した端末から接続できることを確認。

screenの設定

  • screenのインストール、設定(.screenrcの編集)

% yum -y install screen

  • .screenrcの編集はまた別途。

screenの設定

  • システムの更新

% yum update

iptablesの設定。

  • /etc/sysconfig/iptablesの設定ファイルにルールを記述。

*filter

INPUT ACCEPT [0
0]
FORWARD ACCEPT [0
0]
OUTPUT ACCEPT [0
0]
RH-Firewall-1-INPUT - [0
0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP, HTTPS, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

  • iptablesの再起動と設定の確認

設定ファイルを作成した後にiptables を再起動する。

% sudo /etc/init.d/iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]

% iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp any
ACCEPT esp -- anywhere anywhere
ACCEPT ah -- anywhere anywhere
ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns
ACCEPT udp -- anywhere anywhere udp dpt:ipp
ACCEPT tcp -- anywhere anywhere tcp dpt:ipp
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:10022
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp-data
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:mysql
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

システムの言語設定

  • システムを日本語に設定を変更する。

% sudo vi /etc/sysconfig/i18n
LANG="C"

LANG="ja_JP.UTF-8"

  • 設定完了後、ログインし直す。

クラシックASPとASP.NETの覚え書き

今日ある機会でクラシックASPと、ASP.NETについて聞かれた機会があったので整理ということで、覚書を残しておく。


.NETでのtry~catch句のような例外処理を、クラシックASPで実現するにはどうするか。
→処理の後に、Err オブジェクトの Number プロパティが 0 以外ならエラーが発生している。したがって、Err.Number != 0 ならエラー処理を実装する。
→On Error Resume Next をつけたうえで、こまめに Err.Number をチェックする。(ErrオブジェクトのNumberプロパティを参照する。)


→On Error Resume Nextではなくて、On Error GoToを使う。エラー処理を個別に設定する。(On Error Resume Next を記述するとエラーが無効になる。On Error Go To 0 は逆にそれ以降で無効となったエラーを有効に戻す。)
→ちなみにOn Error Resume Next はそれ以降のエラーを無効に設定することを意味する。
→ Err.Raiseメソッドを利用する。


ASP.NETの開発は、3レイヤ(UI+BC+DAC)にコンポーネントを分割したいけど、VB上がりの人が多いと、レイヤでコンポーネント分割せずに、1クラスにUI+BC+DACを全て実装しちゃうのが残念でしょうがない。(個人的な見解)

CentOS の覚書き

ネットワーク周りの初期設定。

VMwareFusion/CentOS5/03.ネットワーク - MinacoWiki

◇ネットワークの詳細設定(CentOS5)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆

CentOS:sudo を設定する - 日々のメモ

viの使い方

Subversion win+Macの文字コード問題のための設定


4ヶ月程前にMac Book Proを買った。もともと使っていたWindows XPのPCで、Subversionでバージョン管理していたファイルがあったため、これを機にMacとWinでSubversionでバージョン管理しているファイルを共有してファイル管理を行っていこうと思った。


・・・が、WindowsとMacとで扱っている文字コードの違いのため、濁点・半濁点がファイル名に入っていると、別ファイル扱いされてしまう現象が発生してお手上げな状態になりそうだった。


同じ現象に対処した人のエントリがあったので、それを参考に自分のMac側で設定してみた。その時の覚書を書いておく。

目的

SubversionのWinとMacでの文字コード問題を解決する。またそのためにMac Portsが必要となるため、インストール・設定も併せて行う。

手順

  1. Xcode のインストール
    • Mac OS XのインストールDVDよりXcodeをインストール。
  2. X11のインストール
    • X11のインストール状況の確認。
    • ユーティリティ→X11 があることを確認。
  3. Mac Portsのインストール
    • Mac Portsの本家のサイト(http://www.macports.org/)から最新のdmgファイルをダウンロード。
    • 今回は、MacPorts-1.9.2-10.6-SnowLeopard.dmg をダウンロードし、インストール。
  4. 環境変数の設定
    • ~/.bash_profile に以下の内容を追記。

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:/opt/local/man:$MANPATH

    • パスが通っていることの確認。

bash-3.2$ sudo port version
Version: 1.9.2

5. Mac Portsのアップデート

    • 以下のコマンドを実行してMac Portsのアップデートがないがを確認する。
    • 今回は最新版をインストールしたため、アップデートは行われなかった。

bash-3.2$ sudo port -d selfupdate

                                                                • -
      • > Updating the ports tree

DEBUG: Synchronizing ports tree(s)
Synchronizing local ports tree from rsync://rsync.macports.org/release/ports/
DEBUG: /usr/bin/rsync -rtzv --delete-after '--exclude=/PortIndex*' rsync://rsync.macports.org/release/ports/ /opt/local/var/macports/sources/rsync.macports.org/release/ports
receiving file list ... done
./

sent 59 bytes received 487921 bytes 75073.85 bytes/sec
total size is 27169808 speedup is 55.68
Creating port index in /opt/local/var/macports/sources/rsync.macports.org/release/ports

Total number of ports parsed: 0
Ports successfully parsed: 0
Ports failed: 0
Up-to-date ports skipped: 7508

DEBUG: MacPorts sources location: /opt/local/var/macports/sources/rsync.macports.org/release/base

receiving file list ... done

sent 36 bytes received 6858 bytes 2757.60 bytes/sec
total size is 2889184 speedup is 419.09
MacPorts base version 1.9.2 installed,
DEBUG: Rebuilding and reinstalling MacPorts if needed
MacPorts base version 1.9.2 downloaded.

      • > MacPorts base is already the latest version

DEBUG: Setting MacPorts sources ownership to root

The ports tree has been updated. To upgrade your installed ports, you should run
port upgrade outdated

                                                                  • -

6. port install subversion+unicode_pathの実行

$ sudo port install subversion +unicode_path

7. Mac、Windows端末でSubversionの動作を確認してみる。

    • svnの濁点、半濁点、問題が解決する。めでたしめでたし。

コマンドプロンプト上で実行結果を変数に格納する

Windows XPコマンドプロンプト上で実行結果を変数に格納する方法が
あったから、メモしておく。

>DIR /ON /B | FINDSTR /I "AAA"
AAA
aaa.log
AAA.TXT

>FOR /F %Z IN ('DIR /ON /B ^| FINDSTR /I "AAA"') DO SET COUNT=%Z

>SET COUNT=AAA

>SET COUNT=aaa.log

>SET COUNT=AAA.TXT

>ECHO %COUNT%
AAA.TXT

Oracle Master Goldを受験する!

今年度(2008年度)の目標として、
Oracle Master Gold DBA 10g
(Gold DBA10g 試験 | オラクル認定資格制度 | Oracle University)
を受験しようかと思う。

目標

受験する日のターゲットとして、2009年1月くらい。
Gold取得条件の前提としては、Oracle社主催の研修を受講する必要がある。
08年12月1週に研修を受講する。

学習の取り組み方について

現在の自分の知識でどれほど、解けるか、黒本を購入して、
模擬試験の問題をざっと見てみたところ、全くできなかった。
これにより、黒本を最初からやることに決めた。

オラクルマスター教科書Gold Oracle Database 10g【DBA10g】編

オラクルマスター教科書Gold Oracle Database 10g【DBA10g】編


ただし、その前に、学習方針を決めるために情報を収集を行った。
いきなり、最初からえいやと学習を仕掛かるのは、
無駄なことをやりそうで、リスキーだからだ。


その情報収集の中で、非常に参考になりそうなURLがあったので、
記載しておく。



403 Forbidden
※ちなみに、自分は参照数2000以上を基準として、ページを参照してみた。
 たいていの受験記には、このページが参考URLとして、挙げられていた。

ORACLE Gold 10Gに合格するコツ - ABラボラトリ

1Z0-043 オラクルマスター Gold DBA10g その1: かへろぐ

めざせオラクル・マスター(オラクルマスターをめざすひと)
※講習の動画が見れる


その他

SQL*PLUSのコマンドの自分にとって参考になるURLを記載しておく。
黒本の例を、実際にSQL*PLUSで、コマンドを打って確かめた方が
頭に入るだろう、と思ったからだ。

SQL*Plusメモ(Hishidama's sqlplus for Oracle9i Memo)