[Linux] RHEL4 AS
久しぶりに仕事でサーバにOSなんて入れました。
つ~か、テキストモードでインストールしようとすると最小(Minimum)構成が選べないのですな。おかげで、謎のCPU故障も含めて3時間くらいかかった。
もう絶望したね。テキストモードにも最小構成を追加しろよ。外に出すマシンなんてCUIしか使わないんだし(笑
久しぶりに仕事でサーバにOSなんて入れました。
つ~か、テキストモードでインストールしようとすると最小(Minimum)構成が選べないのですな。おかげで、謎のCPU故障も含めて3時間くらいかかった。
もう絶望したね。テキストモードにも最小構成を追加しろよ。外に出すマシンなんてCUIしか使わないんだし(笑
デフォルトのさざなみフォントから「M+ と IPAフォントの合成フォント」に変更してみました。インストール後にFirefoxやら選べるようになりました。
【環境】
・CentOS5 (2008/01/14現在最新)
・Firefox 2.0.0.11
【ログ】
|
$ tar jxvf mixfont-mplus-ipa-TrueType-20060520p1.tar.bz2 $ cd mixfont-mplus-ipa-TrueType-20060520p1 $ cd opfc-ModuleHP-1.1.1_withIPAFonts_and_Mplus/ $ cd fonts/ $ $ ls COPYING.font.ja M+2P+IPAG-circle.ttf Makefile.in ipam.ttf M+1P+IPAG-circle.ttf M+2P+IPAG.ttf ipag.ttf ipamp.ttf M+1P+IPAG.ttf M+2VM+IPAG-circle.ttf ipagp.ttf M+1VM+IPAG-circle.ttf Makefile.am ipagui.ttf $ $ su パスワード: # # cp *.ttf /usr/share/fonts/japanese/TrueType/ # # # cd /usr/share/fonts/japanese/TrueType/ # mkfontdir # mkfontscale # |
spamメールの判断材料の一つとなるdkim-milter、dk-milter、sid-milterのインストールとsendmailとの連携方法。
1.dkim-milterのインストール&準備
|
$ tar zxvf dkim-milter-1.1.0.tar.gz
~~省略~~ $ $ cd dkim-milter-1.1.0 $ cp site.config.m4.dist devtools/Site/site.config.m4
$ vi devtools/Site/site.config.m4 ----- APPENDDEF(`confINCDIRS', `-I/usr/local/ssl/include ')APPENDDEF(`confLIBDIRS', `-L/usr/local/ssl/lib ') ----- $ $ sh Build ~~省略~~ $ su - # sh Build install ~~省略~~ # # dkim-filter/ # ./gentxt.csh <selector> <domain> 【出力されたものをDNSサーバへ追記】 # cp <selector.p* /適当なディレクトリ # /usr/bin/dkim-filter -l -p inet:8890@localhost -d <domain> -u <適当なユーザ> -k <秘密鍵> -s <selector> -P <PID出力先> # |
2.dk-milterのインストール&準備
|
$ tar zxvf dk-milter-0.6.0.tar.gz
~~省略~~ $ cd dk-milter-0.6.0 $ cp site.config.m4.dist devtools/Site/site.config.m4 ----
APPENDDEF(`confINCDIRS', `-I/usr/local/ssl/include ') ---- $ $ sh Build ~~省略~~ $ $ su - # sh Build install
~~省略~~ # # dk-filter/ # ./gentxt.csh <selector> <domain>
【出力されたものをDNSサーバへ追記】 # cp <selector.p* /適当なディレクトリ #/usr/bin/dk-filter -l -p inet:8892@localhost -d <domain> -u <適当なユーザ> -s <秘密鍵> -S <selector> -P <PID出力先>
|
3.sid-milterのインストール&準備
|
$ tar zxvf sid-milter-0.2.14.tar.gz
~~省略~~ $ cd sid-milter-0.2.14 $ sh Build
~~省略~~ $ sh Build install
~~省略~~
以下の様なものをDNSに追記 ----- IN TXT "v=spf1 a mx ptr ip4:xxx.xxx.xxx.xxx mx:<domain> -all" ----- $ /usr/bin/sid-filter -l -p inet:8894@localhost -d <domain> -u <適当なユーザ> -P <PID出力先>
|
4.sendmail.cfを作成
※ sendmail.mcに記載した順番に実行される。
|
# vi sendmail.mc sendmail.mcの一番最後に追記 -----
INPUT_MAIL_FILTER(`dkim-filter', `S=inet:8890@localhost')dnl ----- #
# <sendmail.cfを作成> |
ProFTPDのインストールメモ
○条件
・インストールはデフォルト
・セキュリティーは高くする
・FTP over SSLを行なう(※)
○インストール
|
$ wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0a.tar.gz $ tar zxvf proftpd-1.3.0a.tar.gz $ cd proftpd-1.3.0a $ ./configure $ ./configure --with-modules=mod_tls --with-includes=/usr/local/ssl/include/ --with-libraries=/usr/local/ssl/lib/ ← ※ ~省略~ $ make ~省略~ $ su - Password: # make install ~省略~ |
○ProFTP設定(特別やった設定のみ)
設定ファイル: /usr/local/etc/proftpd.conf
|
# idet認証無効 IdentLookups off
# 同じホストからの同時接続 MaxClientsPerHost 2
# 同じユーザからの同時接続 MaxHostsPerUser 1
# バージョン表記の隠蔽 ServerIdent Off
# ユーザログインディレクトリ上位は見せない DefaultRoot ~/
# FTP over SSL 設定 ← ※ <IfModule mod_tls.c> # Authenticate clients that want to use FTP over TLS? |
○xinetd設定
設定ファイル: /etc/xinetd.d/ftp
|
service ftp |
date(GNU)を使い日付の計算をする。
・使用されると想定される箇所
ログやバックアップファイルの管理など
・動作確認
Red Hat Linux Advanced Server release 2.1ASの「date(GNU)」コマンド
・欠点
GNU系のdateコマンドでしか使えない
・利点
複雑な計算式を使わなくてもうるう年を含め計算が出来る
責任をdateコマンドのせいにすることが出来る(笑)
1.前日の日付を求める
-----
# date --date '1 day ago' +%Y%m%d
20060613
-----
「1 day ago」の部分が一日前と言う意味
「%Y%m%d」は出力する日付のフォーマット
結果を変数に入れることも出来る(スクリプト内での例)
-----
DATE=`date --date '1 day ago' +%Y%m%d`
-----
2.入力された日付の前日を求める
-----
# date -d '20060301 1 day ago' +%Y%m%d
20060228
# date -d '20040301 1 day ago' +%Y%m%d
20040229
-----
「1 day ago」の部分が一日前と言う意味
「%Y%m%d」は出力する日付のフォーマット
「20060301」 または「20040301」は入力される日付
スクリプトの引数で日付を指定し、その日付から前日の日付を出力するスクリプトも作成できる
-----
#!/bin/sh
DATE=`date -d "$1 1 day ago" +%Y%m%d`
echo ${DATE}
-----
spam的な掲示板やblogへの書き込みをさせない為にRBLを使えるようにApacheを改造する。
※RBL:spam的な情報の発信したIPのデータベース
引用・解説元
1.Apacheのソースを展開する。
2./ソースディレクトリ(http-2.0.xx)/modules/aaa/ にmod_access_rblを置く。
(通常のApacheのmod_accessでは使用できない為、パッチを当てる)
3.パッチを当てる
# patch < mod_access_rbl.diff
patching file mod_access.c
Hunk #1 succeeded at 19 (offset -42 lines).
Hunk #3 succeeded at 118 (offset -42 lines).
Hunk #5 succeeded at 282 (offset -42 lines).
4.普通にコンパイルし、インストールする。
5.httpd.confに以下のような記述を追記する。
<Files ~ "\.(cgi|pl|php)">
Order allow,deny
allow from all
deny via niku.2ch.net
deny via list.dsbl.org
deny via bl.spamcop.net
deny via sbl-xbl.spamhaus.org
deny via all.rbl.jp
deny via opm.blitzed.org
deny via bsb.empty.us
deny via bsb.spamlookup.net
</Files>
拡張子cgi,pl,phpが付くファイルの場合のみ有効になる。
CentOSでは、最初からIPv6が有効になっていますが、現状まったくもって使っていない状態なため、無効化する。
1.現状確認
# lsmod | grep ipv6
ipv6 234369 16
2.設定
# vi /etc/modprobe.conf
--- (追記内容) ---
alias net-pf-10 off
alias ipv6 off
-----------------
3.再起動
4.確認
# lsmod | grep ipv6
HDDが壊れてOSを再インストールしなければなくなったので、CentOS 4.2を導入してみました。
無論いきなりの導入なのでSELinuxは無効にしているが、いずれ使用しようと思う。
RedHat9からの変化なので、謎のサービスが多々あり久しぶりに調べましたよ(笑
まぁ、ソフトは調べれば何とかなりますが、その他の大問題アリ。
HDDは新品だから問題無いが、電解コンデンサの防爆弁(頭にある×の所)が膨らんでいる・・・。
危ない、デンジャラス、エーン怖いよ~(T_T)
許容範囲を超えた熱や電気、低品質などがデンジャーな原因となるわけですが、当初冷やしていなかったのが原因でしょうか。
過去自作PCの電源のコンデンサ暴発事件がありまして、見ちゃった以上気になってしょうがない。
とは言え、交換するのは面倒なのであと半年くらいは放置プレイです(笑
などと、会社から書くのでした(笑
BIND9のインストールメモ
○条件
・IPv6無効化
・openSSLの指定
※ バージョンアップなので、make installよりあとは省略されている部分あり
○インストール
|
本来、改竄を発見する物なので他のメディア(MOなど)に
インストールやデータベースを置き運用するのが一番良い。
ASR版はログなどを一切残さないため、結果をリダイレクトでファイルに残したり、
メールで送信などする必要がある。
インストールをデフォルトで行ったため、
以下の所にインストール、または、運用する。
実行ファイル
/usr/local/bin/tw/tripwire
設定ファイル(どのファイルorディレクトリをDB化するか記述)
/usr/local/bin/tw/tw.config
データベースファイル
/var/tripwire/tw.db_hostname (hostnameの部分にはホスト名が入る)
1.設定を行う(tw.config)
デフォルトのデータベースがインストールされていますので、
必要に合わせて編集などを行います。
# vi /usr/local/bin/tw/tw.config
"#" :コメントアウト、または、"#"以降の行を無効
"R"オプション:読み込みしかしないファイルに使用
"L"オプション:ログファイルに使用。
その他オプションは別途ファイルに記載してあります。
------------例------------
#apacheのコンフィグディレクトリを監視
/usr/local/apache2/conf R # Apach2 config
#apacheのコンフィグファイルを監視
/usr/local/apache2/conf/httpd.conf R # apache2 httpd.conf
/usr/local/apache2/conf/ssl.conf R # apache2 httpd.conf
--------例ここまで--------
2.設定を元にデータベースを作成(初期化)する。
# /usr/local/bin/tw/tripwire -initialize
※/usr/local/bin/tw/tw.configに記述されているファイルが
無い場合はエラーが発生します。
------------例-------------------
Tripwire(tm) ASR (Academic Source Release) 1.3.1
File Integrity Assessment Software
(c) 1992, Purdue Research Foundation, (c) 1997, 1999 Tripwire
Security Systems, Inc. All Rights Reserved. Use Restricted to
Authorized Licensees.
### Phase 1: Reading configuration file
### Phase 2: Generating file list
/usr/local/bin/tw/tripwire: /.rhosts: No such file or directory
/usr/local/bin/tw/tripwire: /.cshrc: No such file or directory
/usr/local/bin/tw/tripwire: /.login: No such file or directory
・
・
・
・
/usr/local/bin/tw/tripwire: /usr/bin/uustat: No such file or directory
/usr/local/bin/tw/tripwire: /usr/bin/uux: No such file or directory
/usr/local/bin/tw/tripwire: /usr/bin/ksrvtgt: No such file or directory
### Phase 3: Creating file information database
###
### Warning: Database file placed in ./databases/tw.db_mouse.
###
### Make sure to move this file and the configuration
### to secure media!
###
### (Tripwire expects to find it in '/var/tripwire'.)
------------例ここまで-----------
3.データベースを設置する。
2で行ったDB初期化の際、コマンドを実行したカレントディレクトリに
データベースファイルが作成される(tw.db_hostname)
※カレントディレクトリのdatabasesディレクトリの中の可能性有り。
# mv tw.db_hostname /var/tripwire/
4.データベースとの照合
コマンドを実行することにより、先ほど作成されたDBとの照合が行われる。
# /usr/local/bin/tw/tripwire
-----------変更が無い場合----------
Tripwire(tm) ASR (Academic Source Release) 1.3.1
File Integrity Assessment Software
(c) 1992, Purdue Research Foundation, (c) 1997, 1999 Tripwire
Security Systems, Inc. All Rights Reserved. Use Restricted to
Authorized Licensees.
### Phase 1: Reading configuration file
### Phase 2: Generating file list
### Phase 3: Creating file information database
### Phase 4: Searching for inconsistencies
###
### All files match Tripwire database. Looks okay!
-------変更が無い場合ここまで------
-----------変更が有る場合----------
### Phase 4: Searching for inconsistencies
###
### Total files scanned: 9025
### Files added: 0
### Files deleted: 0
### Files changed: 1
###
### Total file violations: 1
###
changed: -r--r--r-- root 549 Jul 1 17:42:00 2002 /etc/inet/hosts
### Phase 5: Generating observed/expected pairs for changed files
###
### Attr Observed (what it is) Expected (what it should be)
### =========== ============================= =============================
/etc/inet/hosts
st_size: 549 531
st_mtime: Mon Jul 1 17:42:00 2002 Tue Jun 4 18:16:05 2002
st_ctime: Mon Jul 1 17:42:00 2002 Tue Jun 4 18:16:05 2002
md5 (sig1): 1qDof9YzBljdGFgEHNs3gx 2sNiz5CBETy86gcaX1fsuV
snefru (sig2): 2032Oxw73hptiE1TJrSdr1 1vvsXhDKPFnWaaXivqVjlp
-------変更が有る場合ここまで------
5.データベースの更新
監視しているファイルを変更した時や、
4の照合で「変更されている」と出て問題ないと判断した時に
行います。
※照合時に問題ない場合は必要はありません。
# /usr/local/bin/tw/tripwire -interactive
コマンドを実行したカレントディレクトリに作成されるので、
3で行ったように移動します
# mv tw.db_hostname /var/tripwire/
6.項目4と同じように照合を行い問題ないかテストする。
-------------------------------------------
属性については、チェックする項目を指定できるようになっていて、 すごく沢山あるんだけど、だいたいは下記のように。 ちなみに、デフォルトは"R"。
+/- +で属性の追加、-で削除(これはスイッチか...)
0-9 ファイルの内容に対する、 いろいろなハッシュ、CRC等のチェック アルゴリズム
p パーミッションとモードビット
i iノード番号
n iノードの参照数。リンクの数
u オーナーのユーザid
g オーナーのグループid
s ファイルサイズ
a 最終アクセス時間
m 最終更新時間
c 作成、変更時間
R 読み込み用。(+pinugsm12-ac3456789)と同じ
L ログファイル用 (+pinug-sacm123456789)と同じ
N すべて非許可(+pinusgsamc123456789)と同じ
E すべて許可(-pinusgsamc123456789)と同じ
> 増加するファイル (+pinug>-samc1233456789)と同じ
# Format: [!|=] entry [ignore-flags]
#
# where: '!' signifies the entry is to be pruned (inclusive) from
# the list of files to be scanned.
# '=' signifies the entry is to be added, but if it is
# a directory, then all its contents are pruned
# (useful for /tmp).
#
# where: entry is the absolute pathname of a file or a directory
#
# where ignore-flags are in the format:
# [template][ [+|-][pinugsam12] ... ]
#
# - : ignore the following atributes
# + : do not ignore the following attributes
#
# p : permission and file mode bits a: access timestamp
# i : inode number m: modification timestamp
# n : number of links (ref count) c: inode creation timestamp
# u : user id of owner 1: signature 1
# g : group id of owner 2: signature 2
# s : size of file
#
#
# Ex: The following entry will scan all the files in /etc, and report
# any changes in mode bits, inode number, reference count, uid,
# gid, modification and creation timestamp, and the signatures.
# However, it will ignore any changes in the access timestamp.
#
# /etc +pinugsm12-a
#
# The following templates have been pre-defined to make these long ignore
# mask descriptions unecessary.
#
# Templates: (default) R : [R]ead-only (+pinugsm12-a)
# L : [L]og file (+pinug-sam12)
# N : ignore [N]othing (+pinusgsamc12)
# E : ignore [E]verything (-pinusgsamc12)
☆OpenSSL
# tar zxvf openssl-0.9.8a.tar.gz
# cd openssl-0.9.8a
# ./config
# make
# make test
# make install
☆OpenSSH
# tar zxvf openssh-4.2p1.tar.gz
# cd openssh-4.2p1
# ./configure --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --with-libs=-ldl
# make
# make install
# cp contrib/redhat/sshd.init /etc/rc.d/init.d/sshd
# vi /etc/rc.d/init.d/sshd
-----------
* /etc/ssh → /usr/local/etc
* /usr/bin → /usr/local/bin
* /usr/sbin → /usr/local/sbin
-----------
# vi /usr/local/etc/sshd_config
-----------
root がログインできないように設定します。
PermitRootLogin no
パスワード認証を許可するように設定します。
PasswordAuthentication yes
Rhosts関連を無効
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreRhosts yes
1接続ごとの最大認証試行回数
MaxAuthTries 6
1./var/spool/mqueue/配下にディレクトリを作成する。
インストール時のパーミッションにそろえる。
# ls -l /var/spool/mqueue/
合計 80
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq01
drwxr-xr-x 2 root root 4096 10月 16 13:12 mq02
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq03
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq04
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq05
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq06
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq07
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq08
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq09
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq10
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq11
drwxr-xr-x 2 root root 4096 10月 16 12:46 mq12
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq13
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq14
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq15
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq16
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq17
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq18
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq19
drwxr-xr-x 2 root root 4096 10月 16 12:42 mq20
2.sendmail.cfのメールキューのパスを変える。
# vi sendmail.cf
-------------
# queue directory
O QueueDirectory=/var/spool/mqueue/mq*
-------------
3.sendmailを再起動後に、コマンドにて確認する。
# mailq
/var/spool/mqueue/mq01 is empty
/var/spool/mqueue/mq02 is empty
/var/spool/mqueue/mq03 is empty
/var/spool/mqueue/mq04 is empty
/var/spool/mqueue/mq05 is empty
/var/spool/mqueue/mq06 is empty
/var/spool/mqueue/mq07 is empty
/var/spool/mqueue/mq08 is empty
/var/spool/mqueue/mq09 is empty
/var/spool/mqueue/mq10 is empty
/var/spool/mqueue/mq11 is empty
/var/spool/mqueue/mq12 is empty
/var/spool/mqueue/mq13 is empty
/var/spool/mqueue/mq14 is empty
/var/spool/mqueue/mq15 is empty
/var/spool/mqueue/mq16 is empty
/var/spool/mqueue/mq17 is empty
/var/spool/mqueue/mq18 is empty
/var/spool/mqueue/mq19 is empty
/var/spool/mqueue/mq20 is empty
Total requests: 0
Apache2のインストールメモ
○条件
・SSLによる暗号化使用
・PHP使用 (動的モジュール)
(sslについては、読み込むライブラリ指定)
・コンテンツの圧縮転送を行う
・稼動状態を確認するページ不要
・インデックスページ不要
・コンテントネゴシエーション機能不要
・カスタムヘッダ不要
○手順
$ tar zxvf httpd-2.0.xx.tar.gz |
○指定どおりにコンパイルされているかは、apacheモジュールから判断する。
# /usr/local/apache2/bin/httpd -l |
1.xinetdコンフィグ編集
・編集前コンフィグ
# cat /etc/xinetd.d/popper
service pop-3
{
disable = no
socket_type =stream
wait = no
user = root
server = /usr/local/sbin/popper
server_args = -s
}
・編集後コンフィグ
# cat /etc/xinetd.d/popper
service pop-3
{
disable = no
socket_type =stream
wait = no
user = root
server = /usr/local/sbin/popper
server_args = -s -f /etc/mail/qpopper.conf
}
2.qpopperコンフィグ作成
# cat /etc/mail/qpopper.conf
set shy = true
3.xinetd再起動
# /etc/init.d/xinetd restart
xinetdを停止中: [ OK ]
xinetdを起動中: [ OK ]
4.確認
# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK ready <1099.1125902137@uzuki.ac>
quit
+OK Pop server at uzuki.ac signing off.
Connection closed by foreign host.
APOP対応でインストール。
1.展開
# tar zxvf qpopper4.0.8.tar.gz
2.アカウント確認
APOP利用時にはpopperが利用するアカウントを作成。
今回はバージョンアップの為、問題なし。
3.configure
# ./configure --enable-apop=/etc/pop.auth --with-popuid=pop
APOP対応オプションと2でのアカウントを記述
4.コンパイル
# make
# make install
5.スーパーサーバ(xinetd)に追加する
今回はバージョンアップの為、未実施
6.確認
# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Qpopper (version 4.0.8) at uzuki.ac starting. <892.1125901405@uzuki.ac>
quit
+OK Pop server at uzuki.ac signing off.
Connection closed by foreign host.
#
コンパイル時の各種対応設定方法
# vi /ソース展開ディレクトリ/devtools/Site/site.config.m4
SMTP Auth(SASL)対応
--------------------------------------------------
APPENDDEF(`confENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
APPENDDEF(`confINCDIRS', `-I/usr/local/include')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
--------------------------------------------------
MILTER対応
※ dk-milterなどを使用するとき
--------------------------------------------------
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
--------------------------------------------------
TCP Wrapper(libwrap.so)対応
※ TCP Wrapperをソースからコンパイルする必要あり
--------------------------------------------------
APPENDDEF(`confENVDEF', `-DTCPWRAPPERS')
APPENDDEF(`confLIBS',`-lwrap')
--------------------------------------------------
SMTP Auth(SASL), MILTER, TCP Wrapper(libwrap.so)対応
--------------------------------------------------
APPENDDEF(`confENVDEF', `-DSASL -DTCPWRAPPERS')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
APPENDDEF(`confINCDIRS', `-I/usr/local/include')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
APPENDDEF(`confLIBS',`-lwrap')
--------------------------------------------------
システム起動時にマウントされるデバイスは、/etc/fstabで設定されている。
LABEL=/ / ext3 defaults 1 1
/dev/devpts /dev/pts devpts gid=5,mode=620 0 0
/dev/shm /dev/shm tmpfs defaults 0 0
/dev/proc /proc proc defaults 0 0
/dev/sys /sys sysfs defaults 0 0
/dev/hda3 swap swap defaults 0 0
/dev/fd0 /media/floppy auto pamconsole,exec,noauto,managed 0 0
/dev/hdd /media/cdrom auto pamconsole,exec,noauto,managed 0 0
/dev/hdc /media/cdrom1 auto pamconsole,exec,noauto,managed 0 0
第1列はマウントするブロックデバイスやラベルなど、その右の第2列にはマウントポイントが記述されている。第3列にファイルシステムの種類、第4列がマウント時のオプションである。
第5、第6列には、それぞれ数字が記述されている。第5列の数字は、ファイルシステムをdumpする必要があるか否かの指定。「0」または無記述の場合はdump不要のファイルシステムであると見なされる。
最後の第6列の数字は、システム起動時にfsckチェックを行うか否かの指定。「0」の場合はチェックを行わない。ルートファイルシステムでチェックを行う場合は「1」を指定する。また、ルートファイルシステム以外でチェックを行う場合は「2」を指定する。
ルートファイルシステムをチェックしようとして、
# e2fsck /dev/hda2 ←/dev/hda2がルート
としても、「マウントされたファイルシステムでe2fsckを実行すると、ファイルシステムがダメージを受ける可能性がある」という警告メッセージが表示される。そのため、ルートファイルシステムをチェックするには、レスキューCDやKNOPPIXなどでシステムを起動するか、ルートファイルシステムがマウントされる前にチェックするしかない。
システム起動時のマウント前にチェックを行うには、-Fオプションを付けてshutdownコマンドを実行する。
# shutdown -F -r now
すると、再起動時にファイルシステムが自動的にチェックされる。
該当するコマンドを「ldd」コマンドで調査すればよい。
# ldd /bin/bash
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001b000)
libc.so.6 => /lib/libc.so.6 (0x4001f000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
LSI Logic MegaIDE RAID(IBM Blade server)の場合
☆構成
# cat /proc/megaide/0/config
Driver Version : 5.6.97
Firmware Revision : 2.7.6301518
IRCD Version : 2.7
Primary Base Address : 730H Primary Control Address : 724H
Secondary Base Address : 728H Secondary Control Address : 720H
BusMaster Base Address : 710H IRQ : 11
PCI VendorId : 1166H PCI DeviceId : 213H
PCI SubSytem VendorId : 1014H PCI SubSytem DeviceId : 213H
PCI Bus Number : 0 PCI Device Number : 15
PCI Function : 1
# Logical Drives : 1 # Physical Drives : 2
Driver Options:
Polling Interval : 0 Error Threshold : 0
Fail Drive : 0 Auto Rebuild : 0
Check Array : 0 Stop Rebuild : 0
Identical : 1 Rebuild Rate : 100
から、論理ドライブ1が物理ドライブ2つで構成されていることが確認できます。
☆正常時
# cat /proc/megaide/0/status
No Of Pending SCB's in Controller : 1
No Of Pending Commands in Controller : 2
Logical Drive Information
Status : ONLINE Logical Drive No: 0
Physical Drive Information
------ PRIMARY ------ ----- SECONDARY -----
MASTER SLAVE MASTER SLAVE
STATUS : ONLINE OFFLINE ONLINE OFFLINE
No Of Errors : 0 0 0 0
No Of Pending Commands : 0 0 0 0
☆異常(故障)時
# cat /proc/megaide/0/status
No Of Pending SCB's in Controller : 0
No Of Pending Commands in Controller : 0
Logical Drive Information
Status : DEGRADED Logical Drive No: 0
Physical Drive Information
------ PRIMARY ------ ----- SECONDARY -----
MASTER SLAVE MASTER SLAVE
STATUS : ONLINE OFFLINE REBUILDING OFFLINE
No Of Errors : 0 0 0 0
No Of Pending Commands : 0 0 0 0
☆RAID再構築
# cat /proc/megaide/0/status
No Of Pending SCB's in Controller : 0
No Of Pending Commands in Controller : 0
Logical Drive Information
Status : REBUILDING Logical Drive No: 0
Physical Drive Information
------ PRIMARY ------ ----- SECONDARY -----
MASTER SLAVE MASTER SLAVE
STATUS : ONLINE OFFLINE REBUILDING OFFLINE
No Of Errors : 0 0 0 0
No Of Pending Commands : 0 0 0 0
Cwlocalhost.localdomain
自分のホスト名(localhost.localdomain)をリスト(クラスと言います)に追加しています。
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
SMTP サーバのTCP/IPポートのオプションが設定されています。
ここで、Addr=127.0.0.1は、IPアドレス127.0.0.1のループバックアドレスで起動することを設定しています。ループバックアドレスは、ローカルからしか接続できないため、このコマンドがあるとネットワーク越しの接続はできません。
このコマンドの無いデフォルトでは、
DAEMON_OPTIONS(`Port=smtp, Name=MTA') :smtpポート(25)でMTAを起動
DAEMON_OPTIONS(`Port=587, Name=MSA, M=E') :587ポートでMSAを起動。ETRNを受けつけません。
が設定されている状態になっています。このコマンドは、複数設定することができ、最初の一つは、この2行の1行目を置き換えますが、二つめ以降は次々に追加され、追加されたぶんだけサーバ(デーモン)が起動します。
デフォルトの2行目はそのまま残ってしまうため、これを削除するには、FEATURE (`no_default_msa')を使います。
DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')
smtpサーバのTCP/IPポートのオプションです。IPV6用のオプションが設定されています。.
define(`ALIAS_FILE', `/etc/aliases')
aliasesファイルの場所です。デフォルトは/etc/mail/aliasesです。
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
認証メカニズムのリストです。
デフォルトでは`GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5'が設定されています。
define(`confAUTH_OPTIONS', `A')
認証に成功した時だけ認証情報(MAIL FROM に AUTH=・・・)が付けられます。
define(`confAUTO_REBUILD')
aliases.dbデータファイルの自動再構築を行なう設定です。
コマンドが有効であればtrue、無ければ(デフォルト)falseです。
有効にするのはセキュリティ上あまりお勧めできません。
define(`confDEF_USER_ID',``8:12'')
デフォルトのユーザIDの設定です。
ユーザIDは8(mail)、グループIDは12(mail)です。デフォルトは1:1です。
define(`confDELIVERY_MODE',queueonly)dnl
sendmailの配送モードの設定でメールを受け取った後での配送の設定です。
background :バックグラウンド(非同期的な)配送
deferred :遅延(そのままの形で保持する)配送 (8.7以降)
interactive :インタラクフィブ(同期的な)配送
queueonly :キューを用いた(保持するが処理を加える)配送
define(`confDOMAIN_NAME', `$w.$m')dnl
この(自分の)FQDNを「host.domain.com」(例)として指定。" Dw "," Dm "と共に使う
define(`confDONT_PROBE_INTERFACES',true)
インターフェースのアドレス(マシンのアドレス)から、名前を取得して自動的にローカルホストの別名リスト(クラスw)に追加しないようにしています。
デフォルトはfalseです。クラス{w}とは/etc/mail/local-host-namesで設定したもの
define(`confFALLBACK_MX', `example.com')dnl
再送専用ホスト設定。
DNSが引けなかった場合、全MXに対してメールが送れなかった場合再送queueを特定のホストに送る。
define(`confFORWARD_PATH', `$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward')dnl
.forward(転送設定)ファイル設置場所
define(`confMAX_HOP',`32')dnl
メールがループしていると判断されない、最大のホップ数を指定します。
デフォルトは、17か25のどちらか
define(`confMAX_MESSAGE_SIZE',`1000000')dnl
ユーザーが受け取る事の出来る最大メッセージサイズ(byte)
サーバーにスプールされる前に、受信を拒否する。 設定する際は、400kbyte程プラスして設定する。 デフォルトは無制限
define(`confMAX_HEADERS_LENGTH', `32768')dnl
最大ヘッダー長=32768 (デフォルト値)
define(`confMIN_QUEUE_AGE', `15m')
何らかの原因で受け取ったメールが送信・転送できなかった場合(相手のメールサーバーが止まっていたり、忙しかった場合など)、一時的にメールを/var/spool/mqueue/に溜めこみ、あるタイミングで再送信を試みる。
この再送信のタイミングを指定することが出来る。設定できる時間単位にはm(分) h(時間) d(日) の3種類がある。この例では短めの15分に指定している。
define(`confOPERATORS', `.:@!^/[]+')dnl
この例のように、使用できる特殊記号の中に「%」を記述しない
ことでソースルーティングを禁止することができる。
define(`confPRIVACY_FLAGS',`goaway')dnl
SMTPコマンドの使用を制限する(プライバシフラグの指定)
goaway -- SMTPは相手のサーバーにどのようなユーザーがいるかを調べるVRFYコマンドや、メーリングリストにはどのようなメンバーがいるかを調べるEXPNコマンドがある。これらのプライバシー に関するコマンドを制限する。
authwarnings -- 問題がある場合はメールのヘッダX-Authentication-Warning:を添付
novrfy -- VRFY(ユーザの存在を確認するコマンド)を拒否
noexpn -- EXPN(メーリングリストのすべての受信者を表示するコマンド)を拒否
restrictqrun -- キューの処理を行なえるユーザを制限(rootとキューディレクトリの所有者)します。
restrictmailq -- 一般ユーザーにmailqコマンドを制限します。
define(`confQUEUE_LA', `12')
高負荷時に、メールの配送を行なわずにキューに入れることによっ負荷をさらに上昇させないようにすることができます。
ここでは、配送するかキューに入れるかを判断するためのパラメータを設定しています。パラメータは他にもありますが、ここで設定するのは閾値になります。
サーバが高性能で多くのプロセスに耐えられる場合は大きめの値を設定しましょう。デフォルトは8です。
define(`confREFUSE_LA', `18')
高負荷時に、メールの受信を拒否し負荷をさらに上昇させないようにすることができます。
ここでは、拒否するかどうかを判断するための閾値を設定しています。サーバが高性能で多くのプロセスに耐えられる場合は大きめの値を設定しましょう。デフォルトは12です。
define(`confSMTP_LOGIN_MSG', `$j Domain YOU/Original; $b')dnl
SMTPでメールサーバーにアクセスすると、サーバーが使用しているメールデーモンの名前とバージョン名が表示される。
この例のように表示させる内容を変えることによって、使用しているバージョンを秘匿することが出来る。
define(`confTO_CONNECT', `1m')
他のホストとの接続に失敗したときのタイムアウト時間です。
指定が無ければ、システムのデフォルトの時間が設定されます。Linuxの場合は90分です。
define(`confTO_IDENT', `0s')dnl
IDENT認証を行わない。IDENT認証はあまり効果的な認証とは思えないので、使用しない。
この例でタイムアウトを0秒にすることで、応答待ち時間を省略することが出来る。(デフォルトでは30秒)
define(`confTO_QUEUEWARN', `1h')dnl
メールが配送できなかったために、「今から何日間か配送を試みます」という旨のメールを送信者に自動通知する。この例ではキューに溜めた時点から1時間後に送信者に自動通知させている。
define(`confTO_QUEUERETURN', `1d')
キューに溜め込んだメールをどれ位の期間保存しておくかを指定させる。
ここで指定した時間を過ぎると、メールは消去され、送信者にその旨報告するメールを送る。
この例では1日(24時間)に指定している。
define(`confTRY_NULL_MX_LIST',true)
MXレコードを無視して直接ホスト接続するか
define(`confTRUSTED_USER', `smmsp')
sendmailに関連するファイルの起動を行なうために信頼されたユーザ
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')
ユーザ・データベースの場所を指定しています。
ユーザ・データベースはアドレスを書き換えるためのデータベースで、aliaseと~/.forwardの間で参照されます。
define(`DATABASE_MAP_TYPE', `dbm')
define(`DATABASE_MAP_TYPE', `hash')
sendmailで使用するデータベースタイプを指定する。
以後タイプの指定が無かった場合は指定したタイプになる。
define(`MAIL_SETTINGS_DIR', `/etc/mail/')dnl
コンフィグファイルなどを格納するディレクトリを/etc/mail/に指定
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')
procmailプログラムの場所です。デフォルトは/usr/local/bin/procmailです。
define(`SMART_HOST', `smtp.test.co.jp')dnl
全てのメールの転送を、smtp.test.co.jp に転送する。 但し、local宛てのメールはスプールする。
define(`STATUS_FILE', `/etc/mail/statistics')
ステータスファイルを指定しています。ステータスファイルは、配信エージェントの統計情報が記録されています。
/etc/mail/statisticsはデフォルトで設定されますので、変更する場合はコマンドを有効にします。統計情報はmailstatsというコマンドで参照することができます。
define(`UUCP_MAILER_MAX', `2000000')
UUCPメイラが処理可能な最大サイズ
divert(0)
以後に書かれた文章及び設定は全て反映され、sendmail.cf作成時に出力される。
divert(-1)
以後書かれた文書は、sendmail.cf 作成時に一切無視される。但し、設定使用する文字に関しては全て読込まれ、sendmail.cf に反映される。
dnl
m4の性質上、sendmail.cfの作成時に余計な改行を入れてしまうため、 余計な改行を作らない様に各行最後に付ける。
Dmdomain.com
この(自分の)ドメイン名を「domain.com」(例)として指定。
DOMAIN(`generic')dnl
../domain/generic.m4 に記載されている設定を使って一般的なドメイン定義を行う。
これを設定しないと、メールの送信時にドメインが引けずにエラーが起こり、 送信者にメールが返ってくる。
恐らく複数ドメインを扱う際に、各ドメイン毎に設定を定義できるのだと思う。
Dwhost
この(自分の)メールサーバーのホスト名を「host」(例)として指定。
EXPOSED_USER(`root')
マスカレードしないユーザー名を記述する。複数いる場合は下記の様に記述する。
[generic.m4]
EXPOSED_USER(`/etc/mail/exposed-users')
[/etc/mail/exposed-users]
root
postmaster
admin
FEATURE(`accept_unresolvable_domains')
DNSによる名前解決のできないドメインを持つアドレスでも受け付けます。
この設定がない場合は拒否されます。
FEATURE(`access_db', `hash -o /etc/mail/access')dnl ・・・sendmail8.11.x以前
FEATURE(`access_db', `hash -T
メールの転送を拒否・許可するドメイン・IPアドレス・メールアドレスを定義するファイルを 指定している。 ローカルのアドレスは未設定の場合、転送を許可する。
「-o」でファイルがなくてもエラーにしないようにします。
[/etc/mail/access]
192.168.0 RELAY ......転送を許可
192.168.1 REJECT ......転送を拒否
192.168.2 OK ......転送を許可
user1@test.co.jp aaaaa[任意の文字列] ......転送を拒否しaaaaa というコメントを送る。
define(`ALIAS_FILE', `/etc/mail/aliases')
エイリアスファイルの指定
FEATURE(`always_add_domain')
ローカル配送されたメールにもドメイン名を付加する
FEATURE(`blacklist_recipients')
メールを受け取らない受信者をaccess_dbに設定することができるようになります。
FEATURE(`drac')dnl
POP Before SMTP(drac)を使用する。
FEATURE(delay_checks)
メールの転送、受信の可否の判定を行なう順番が変更され、状況によっては一部は実行されなくなります。
これにより複雑な状況に対応することもできるようになりますが、不用意に設定するとSPAMなどが素通りしてしまう可能性があります。
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')
procmailをローカル(local)の配信エージェントに指定します。
procmailの場所はPROCMAIL_MAILER_PATHで設定されます。
先にPROCMAIL_MAILER_PATHを設定しておく必要があります。
`procmail -t -Y -a $h -d $u'は、コマンドラインオプションと引数を表していますが、デフォルトは、`procmail -t -Y -a $h -d $u'です。「-t」は、配送を際挑戦するオプションです。
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
mailertableを有効にし、そのデータベースの型と場所が設定されています。
「-o」でファイルがなくてもエラーにしないようにします。
[/etc/mail/mailertable]
mail.domain1.co.jp esmtp:domain1.test.co.jp......転送先サーバー名
mail.domain2.co.jp esmtp.domain2.test.co.jp......転送先サーバー名
mail.domain3.co.jp esmtp:domain3.test.co.jp......転送先サーバー名
domain.co.jp local:......local にスプール
FEATURE(`masquerade_envelope')
エンベロープをMASQUERADE_ASでマスカレードする
FEATURE(`no_default_msa',`dnl')dnl
RFC 2476で定義されているMessage Submission Agentを使用しない。
これを使用しない定義にすることで、Port587を閉じることが出来る。
FEATURE(nocanonify)dnl
MAILER_DEFINITIONS
Msmtpf, P=/usr/lib/smtpfeed, F=mDFMuXz!_, S=11/31, R=21, E=\n, L=990,
T=DNS/RFC822/SMTP, M=5000000, A=smtpfeedsmtpfeedを有効にする。
FEATURE(`nullclient', `smtp.test.co.jp.')dnl
全てのメールの転送を、smtp.test.co.jp に転送する。
但し、localでのスプールを一切しなくなるので注意。
FEATURE(`redirect')dnl
/etc/mail/aliase に
user1:new-user1@test.co.jp.REDIRECT
と指定すると
551 5.1.1 User has moved; please try new-user1:test.co.jp
というメッセージを送信者に送り返す。旧バージョンではデフォルトは定義無し
FEATURE(`relay_based_on_MX')
MXによる転送制限を有効にします。
FEATURE(`smrsh',`/usr/sbin/smrsh')
プログラムにメールを渡すときのシェルとして、shのかわりに、専用のsmrshを使用します。smrshのパスが設定されています。
FEATURE(`use_cw_file')dnl
/etc/mail/local-host-names を参照するようになる。
local-host-names は旧バージョンのsendmail.cw や sendmail.aa になり、このホストで 受信するドメイン名を記述する。
FEATURE(use_ct_file)
信頼されたユーザのユーザ名を/etc/mail/trusted-users ファイルから読み込む。
-f オプションでエンベロープFromを指定した時、これを明示的に変更すると偽装された可能性を示すヘッダが追加されるが、このリストにユーザ名があれば追加されない。
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')
virtusertableを有効にし、そのデータベースの型と場所が設定されています。
「-o」でファイルがなくてもエラーにしないようにします。
LOCAL_DOMAIN(`localhost.localdomain')
自ドメン名の指定
MAILER(procmail)
配送エージェントの設定です。procmailを使用することが設定されています。
MAILER(`smtp')dnl
配送エージェントの設定です。
smtp(メールの転送)を使用することが設定されています。必ず設定しましょう。
MASQUERADE_AS(`test.co.jp')dnl
MASQUERADE_DOMAIN(`ns1.test.co.jp')dnl
MASQUERADE_DOMAIN(`ns2.other.co.jp')dnl
ホスト名を別名に見せかける(マスカレードする)
送信者のメールアドレスのドメイン部分(ns1.test.co.jp , ns2.other.co.jo)をtest.co.jpに 変換して相手に送信する。
変換するドメイン名が多い場合はファイルを作成する。
MASQUERADE_AS(`test.co.jp')dnl
MASQUERADE_DOMAIN_FILE(`/etc/mail/masquerade-domain')dnl
ホスト名を別名に見せかける(マスカレードする)
[/etc/mail/mauquerade-domain]
ns1.test.co.jp
mail.test.co.jp
ns2.other.co.jp
OSTYPE(aix4)dnl
使用するOSを記述する。これが記述されていないと、sendmailが正しく動作しない。
RELAY_DOMAIN_FILE(`/etc/mail/relay-domains')dnl
リレーを許可するドメインの指定する。ローカルのアドレスは未設定でもリレーを許可している。
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
ここで設定されている認証メカニズムを用いて認証を行ないます。
VERSIONID(`$Id: generic-bsd4.4.mc,v 8.10 1999/02/07 07:26:02 gshapiro Exp $')dnl
sendmail.cf 作成時に埋め込むバージョン情報。無くても構わない。
ApacheのHTTPレスポンスヘッダにはデフォルトでApacheのバージョン、OS名及びモジュールが返されます。これらを表示させたくない場合にはServerTokens指示子を使います。引数にはFull(デフォルト)、OS、Minimal(Min)、ProductOnlyが指定可能で、それぞれ
Full Apacheのバージョン、OS名及びモジュール
OS ApacheのバージョンとOS名
Minimal(Min) Apacheのバージョン
ProductOnly 製品名のみ
という結果になります。
例としてMinimal(Min)を指定した場合は
ServerTokens Minimal
Apache/1.3.26 とバージョン名のみ表示されるようになります。ProductOnly指定が推奨されます。
また、インデックス表示や、エラーページを表示する際にもバージョンが表示されますので、これを表示されないようにするためには
ServerSignature Off
と指定します。昨今では「GET / HTTP/1.1(または1.0)」と指定し、HTTPサーバーの種類やOS、ApacheのバージョンやPHP、SSLが動作しているかを調べ、該当する脆弱性がある可能性を見つけると次の動作に入るという種の攻撃が多くなっています。このようにバナーを表示させないことにより無用な次の動作を避けることができます。例えセキュリティーホールを抱えてなくとも攻撃の形跡は気持ちの良いものではありません。
特定のプロセスがオープンしているファイルを調べるには、-cオプションでプロセス名を指定してlsofコマンドを実行する。
例えば、sshがオープンしているファイルを調べるときは、以下のようにする。
# lsof -c ssh
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 2436 root cwd DIR 3,2 4096 2 /
sshd 2436 root rtd DIR 3,2 4096 2 /
sshd 2436 root txt REG 3,2 274692 1343255 /usr/sbin/sshd
(省略)
By @IT
VirtualHost指示子を使います。
ServerName foo.bar1.com
DocumentRoot /var/www/html1
NameVirtualHost 192.168.1.10
ServerName foo.bar2.com
DocumentRoot /var/www/html2
上記は仮想ホストの1つに適用される指示子を
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 |