さくらの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
- httpd.confの編集
% 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
Cent OS 基本設定の覚書
Linux環境に触る経験するためにさくらのVPSを利用してみた。そこでの基本設定内容について覚書を残しておく。
今回は月間980円を利用。また利用する環境は簡単には次の通り。
ユーザの設定
- 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-keygen -C 'XXXXXXXXX'
% 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のログインができなくなっていることを確認。
sshでRSA公開鍵を設定した端末から接続できることを確認。
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-prohibitedCOMMIT
- 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 anywhereChain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhereChain OUTPUT (policy ACCEPT)
target prot opt source destinationChain 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
システムの言語設定
- システムを日本語に設定を変更する。
- 設定完了後、ログインし直す。
クラシック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を全て実装しちゃうのが残念でしょうがない。(個人的な見解)
Subversion win+Macの文字コード問題のための設定
4ヶ月程前にMac Book Proを買った。もともと使っていたWindows XPのPCで、Subversionでバージョン管理していたファイルがあったため、これを機にMacとWinでSubversionでバージョン管理しているファイルを共有してファイル管理を行っていこうと思った。
・・・が、WindowsとMacとで扱っている文字コードの違いのため、濁点・半濁点がファイル名に入っていると、別ファイル扱いされてしまう現象が発生してお手上げな状態になりそうだった。
同じ現象に対処した人のエントリがあったので、それを参考に自分のMac側で設定してみた。その時の覚書を書いておく。
目的
SubversionのWinとMacでの文字コード問題を解決する。またそのためにMac Portsが必要となるため、インストール・設定も併せて行う。
手順
- Xcode のインストール
- X11のインストール
- Mac Portsのインストール
- Mac Portsの本家のサイト(http://www.macports.org/)から最新のdmgファイルをダウンロード。
- 今回は、MacPorts-1.9.2-10.6-SnowLeopard.dmg をダウンロードし、インストール。
- 環境変数の設定
- ~/.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/portsTotal number of ports parsed: 0
Ports successfully parsed: 0
Ports failed: 0
Up-to-date ports skipped: 7508DEBUG: 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の実行
-
- Mac portでSubversionにunicodeパッチを当ててインストールする。
$ 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】編
- 作者: 代田佳子
- 出版社/メーカー: 翔泳社
- 発売日: 2005/11/23
- メディア: 単行本
- 購入: 8人 クリック: 46回
- この商品を含むブログ (18件) を見る
ただし、その前に、学習方針を決めるために情報を収集を行った。
いきなり、最初からえいやと学習を仕掛かるのは、
無駄なことをやりそうで、リスキーだからだ。
その情報収集の中で、非常に参考になりそうなURLがあったので、
記載しておく。
403 Forbidden
※ちなみに、自分は参照数2000以上を基準として、ページを参照してみた。
たいていの受験記には、このページが参考URLとして、挙げられていた。
ORACLE Gold 10Gに合格するコツ - ABラボラトリ
1Z0-043 オラクルマスター Gold DBA10g その1: かへろぐ
めざせオラクル・マスター(オラクルマスターをめざすひと)
※講習の動画が見れる