<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>あにょの自宅サーバ構築メモ（CentOS）</title>
    <link>http://yokensaka.com/centos/</link>
    <description></description>
    <language>ja</language>
    <generator>Nucleus CMS v3.41</generator>
    <copyright>&#169;</copyright>
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://yokensaka.com/centos/nucleus/nucleus2.gif</url>
      <title>あにょの自宅サーバ構築メモ（CentOS）</title>
      <link>http://yokensaka.com/centos/</link>
    </image>
    <item>
 <title>chkrootkitのアラーム</title>
 <link>http://yokensaka.com/centos/?itemid=42</link>
<description><![CDATA[先日、以下のメールが来るようになった。<br />
Checking `bindshell'... INFECTED (PORTS:  1008)<br />
<br />
bindshellが仕掛けられたのかと思い、色々調べたら、どうもポート1008がrpc.statdのプロセスによって使用されていることが分かり、bindshellではなかったようなので、まずは一安心。<br />
<br />
<pre>ポート1008が使ってるプロセスを確認
[root@server ~]# lsof -i:1008
COMMAND    PID    USER   FD   TYPE DEVICE SIZE NODE NAME
rpc.statd 2098 rpcuser    7u  IPv4   5737       TCP *:1008 (LISTEN)

rpc.statdが、rpcuserによって起動している。

バックアップしてあったchkrootkitで使用するコマンド群使って再検査を行うことに。
[root@server ~]# shutdown -r now

クライアントマシンにバックアップしてあったchkrootkitcmd.zipを、/home/higo/にアップロードしてから以下の作業を行う。
[root@server ~]# cd /home/higo/
[root@server higo]# mv -v chkrootkitcmd.zip /root
`chkrootkitcmd.zip' -> `/root/chkrootkitcmd.zip'
[root@server higo]# cd
[root@server ~]# unzip chkrootkitcmd.zip
Archive:  chkrootkitcmd.zip
   creating: chkrootkitcmd/
  inflating: chkrootkitcmd/id
  inflating: chkrootkitcmd/egrep
  inflating: chkrootkitcmd/sed
  inflating: chkrootkitcmd/netstat
  inflating: chkrootkitcmd/echo
  inflating: chkrootkitcmd/find
  inflating: chkrootkitcmd/awk
  inflating: chkrootkitcmd/head
  inflating: chkrootkitcmd/strings
  inflating: chkrootkitcmd/ps
  inflating: chkrootkitcmd/uname
  inflating: chkrootkitcmd/ls
  inflating: chkrootkitcmd/cut
[root@server ~]# ls -l ./chkrootkitcmd/
合計 1084
-rwxr-xr-x 1 root root 320416  7月 12 09:20 awk
-rwxr-xr-x 1 root root  34408  7月 12 09:20 cut
-rwxr-xr-x 1 root root  19852  7月 12 09:20 echo
-rwxr-xr-x 1 root root  85060  7月 12 09:20 egrep
-rwxr-xr-x 1 root root 151244  7月 12 09:20 find
-rwxr-xr-x 1 root root  31660  7月 12 09:20 head
-rwxr-xr-x 1 root root  22600  7月 12 09:20 id
-rwxr-xr-x 1 root root  95116  7月 12 09:20 ls
-rwxr-xr-x 1 root root 121300  7月 12 09:20 netstat
-r-xr-xr-x 1 root root  79004  7月 12 09:20 ps
-rwxr-xr-x 1 root root  51764  7月 12 09:20 sed
-rwxr-xr-x 1 root root  25892  7月 12 09:20 strings
-rwxr-xr-x 1 root root  20024  7月 12 09:20 uname

/root/chkrootkitcmd/の外部コマンドで、chkrootkitを実行。
[root@server ~]# which chkrootkit
/usr/sbin/chkrootkit
[root@server ~]# chkrootkit -p /root/chkrootkitcmd/

INFECTEDは無いようだが、INFECTEDのみ表示させてみる。
[root@server ~]# chkrootkit -p /root/chkrootkitcmd/ | grep INFECTED

INFECTEDは無かった。

rpc.statdの待ち受けポートを確認してみる。
[root@server ~]# netstat -anp|grep rpc.statd
tcp        0      0 0.0.0.0:1006                0.0.0.0:*                   LISTEN      2096/rpc.statd
udp        0      0 0.0.0.0:1000                0.0.0.0:*                               2096/rpc.statd
udp        0      0 0.0.0.0:1003                0.0.0.0:*                               2096/rpc.statd
unix  2      [ ]         DGRAM                    5427   2096/rpc.statd

rpc.statdが使ってた1008はすでに違うものになってる。

ポート1008番は、どのプロセスも使用してないことを確認。
[root@server ~]# lsof -i:1008
[root@server ~]#

再検査で使ったファイル群を削除。
[root@server ~]# rm -v -f -R ./chkrootkitcmd/
removed `./chkrootkitcmd//id'
removed `./chkrootkitcmd//egrep'
removed `./chkrootkitcmd//sed'
removed `./chkrootkitcmd//netstat'
removed `./chkrootkitcmd//echo'
removed `./chkrootkitcmd//find'
removed `./chkrootkitcmd//awk'
removed `./chkrootkitcmd//head'
removed `./chkrootkitcmd//strings'
removed `./chkrootkitcmd//ps'
removed `./chkrootkitcmd//uname'
removed `./chkrootkitcmd//ls'
removed `./chkrootkitcmd//cut'
removed directory: `./chkrootkitcmd/'

zipファイルも削除
[root@server ~]# rm -v chkrootkitcmd.zip
rm: remove 通常ファイル `chkrootkitcmd.zip'? y
removed `chkrootkitcmd.zip'

以前のコマンドでchkrootkitを実行
[root@server ~]# chkrootkit | grep INFECTED
[root@server ~]#
rootkitは検出されなかった。</pre>]]></description>
 <category>rootkit検知（chkrootkit）</category>
<comments>http://yokensaka.com/centos/?itemid=42</comments>
 <pubDate>Sun, 11 Jul 2010 23:19:00 +0900</pubDate>
</item><item>
 <title>SMTPサーバ(Postfix)</title>
 <link>http://yokensaka.com/centos/?itemid=18</link>
<description><![CDATA[メールサーバーを構築するためには、まずメール配送を行うためのSMTPサーバーが必要となる。 SMTPサーバーとして動作するソフトウェアの代表的なものにはPostfix、sendmail、qmailがある。 Postfixはsendmailやqmailより後に開発されたため、それぞれの良い部分を反映して開発されており、簡単に設定することが可能なので、ここではsendmailとの互換性が優れているPostfixを使用する。 <br />
<br />
<b>■sendmailを停止する</b><br />
デフォルトでインストールされているsendmailをPostfixをインストールする前に停止しておく<br />
<pre>[root@linux ~]# /etc/rc.d/init.d/sendmail stop
sendmail を停止中:                                         [  OK  ]
sm-client を停止中:                                        [  OK  ]

sendmail自動起動設定解除
[root@linux ~]# chkconfig sendmail off

sendmail自動起動設定解除確認
[root@linux ~]# chkconfig --list sendmail
sendmail        0:off   1:off   2:off   3:off   4:off   5:off   6:off
　　　　　　　　　　　　　　　　（ランレベル2〜5のoffを確認）</pre><br />
<br />
<b>■Postfixのインストール</b><br />
<pre>[root@linux ~]# yum -y install postfix</pre><br />
<br />
<b>■sendmail環境からPostfix環境へ移行する</b><br />
CentOSでは、利用するMTAプログラムの選択にalternativesという仕組みを利用しており、このalternativesコマンドを実行することにより、簡単にsendmail環境からPostfix環境へ移行することが出来る。<br />
<pre>[root@linux ~]# alternatives --config mta

2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力:2
postfixを使うので選択番号[2]を入力</pre><br />
<br />
<b>■Postfixの設定</b><br />
Postfixの基本的な設定は、/etc/postfix/main.cfで行う<br />
<pre>[root@linux ~]# vi /etc/postfix/main.cf　←　viエディタでmain.cfを開く
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = host.domain.tld
↓
myhostname = linux.yokensaka.com　←　#を外して、サーバーのホスト名を設定
#myhostname = virtual.domain.tld

# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld
↓
mydomain = yokensaka.com　←　#を外して、ドメイン名を設定

# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
#myorigin = $myhostname
#myorigin = $mydomain
↓
myorigin = $mydomain　←　#を外して、設定を有効に
　　　　　　（メールアドレスの「@」以下に付加する文字列を指定)

# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
メールの受信を許可するネットワークインターフェースを設定
#inet_interfaces = all
↓　#を外して、設定を有効にする（自サーバーからのメールだけを受信する場合は設定しない）
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
↓　行頭に#を追加（自サーバーからのメールだけを受信する場合は設定しない）
#inet_interfaces = localhost

# Specify a list of host or domain names, /file/name or type:table
# patterns, separated by commas and/or whitespace. A /file/name
# pattern is replaced by its contents; a type:table is matched when
# a name matches a lookup key (the right-hand side is ignored).
# Continue long lines by starting the next line with whitespace.
#
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
#
受信したメールを拒否するかどうかを設定
mydestination = $myhostname, localhost.$mydomain, localhost
↓
#mydestination = $myhostname, localhost.$mydomain, localhost　←　行頭に#を追加
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
↓
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain　←　#を外す
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain

# Specify "mynetworks_style = host" when Postfix should "trust"
# only the local machine.
#
#mynetworks_style = class
#mynetworks_style = subnet
↓
mynetworks_style = subnet　←　#を外す
#mynetworks_style = host

# You can also specify the absolute pathname of a pattern file instead
# of listing the patterns here. Specify type:table for table-based lookups
# (the value on the table right-hand side is not used).
#
内部ネットワークアドレスとローカルホストアドレスを指定
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
↓
mynetworks = 192.168.1.0/24, 127.0.0.0/8　←　#を外して書き換える
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table

# NOTE: Postfix will not automatically forward mail for domains that
# list this system as their primary or backup MX host. See the
# permit_mx_backup restriction description in postconf(5).
#
#relay_domains = $mydestination
↓
relay_domains = $mydestination　←　#を外す

# DELIVERY TO MAILBOX
#
# The home_mailbox parameter specifies the optional pathname of a
# mailbox file relative to a user's home directory. The default
# mailbox file is /var/spool/mail/user or /var/mail/user.  Specify
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
↓
home_mailbox = Maildir/　←　#を外してメールボックス格納形式をMaildir形式にする

SMTP Authを有効にする。設定ファイルの最終行まで移動して、以下のように設定を追記。
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

relays.ordb.org が、2006/12/18で正式な活動を停止した為以下は設定しない。
<s>メール不正中継ホストからの接続を拒否する場合以下を最終行へ追加する。
smtpd_client_restrictions = reject_rbl_client relays.ordb.org</s>

送信するメール１通当たりのサイズはデフォルトで10MByte、
受信するメール合計の総容量はデフォルトで50MByteに設定されている。
それぞれ100MByteと500MByteに変更するには以下を最終行へ追加。
message_size_limit = 102400000
mailbox_size_limit = 512000000

変更を有効にする為、postfixを再起動。
[root@server ~]# /etc/rc.d/init.d/postfix reload
postfix を再読み込み中:                                    [  OK  ]</pre><br />
<br />
<b>■SMTP Auth設定</b><br />
SMTP AuthではCyrus SASLと呼ばれる認証プログラムを利用している。 PostfixでCyrus SASLを利用出来るように設定する必要がある。<br />
<pre>[root@linux ~]# vi /usr/lib/sasl2/smtpd.conf　←　smtpd.confを開く
設定ファイルの最後に追記
mech_list: plain login cram-md5 digest-md5

saslauthdの起動
[root@linux ~]# /etc/init.d/saslauthd start
saslauthd を起動中:                                        [  OK  ]

saslauthdの自動起動設定
[root@linux ~]# chkconfig saslauthd on

saslauthdの自動起動設定確認
[root@linux ~]# chkconfig --list saslauthd
saslauthd       0:off   1:off   2:on    3:on    4:on    5:on    6:off
　　　　　　　　　　　　　　　　（ランレベル2〜5のonを確認）</pre><br />
<br />
<b>■root宛メールを一般ユーザ（webmaster）へ転送</b><br />
システムからroot宛に送られてくるメールを、一般ユーザ（webmaster）へ転送するようにする。<br />
<pre>管理者ユーザ宛メールのroot宛転送設定を解除
[root@linux ~]# sed -i 's/^webmaster/#webmaster/g' /etc/aliases

管理者ユーザ宛メールのroot宛転送設定解除を確認
[root@linux ~]# grep ^webmaster /etc/aliases　←　結果がなにも表示されないことを確認

root宛メールを管理者ユーザ（webmaster）へ転送するように設定
[root@linux ~]# sed -i 's/^root/#root/g' /etc/aliases

root宛メールを管理者ユーザ（webmaster）へ転送するように設定
[root@linux ~]# echo "root: webmaster" &gt;&gt; /etc/aliases

root宛メールが管理者ユーザ（webmaster）宛へ転送されるかの確認
[root@linux ~]# grep ^root /etc/aliases
root: webmaster　←　root宛メールが管理者ユーザ（webmaster）へ転送されるように設定されている

転送先を反映させる
[root@linux ~]# postalias /etc/aliases</pre><br />
<br />
<b>■一般ユーザー（webmaster）の作成</b><br />
webmasterへメールが届くようにするためには一般ユーザー（webmaster）の作成が必要。<br />
<pre>一般ユーザ(webmaster)を追加。
[root@linux ~]# useradd webmaster

一般ユーザーでログインするためにはパスワードを設定する必要がある
[root@linux ~]# passwd webmaster

パスワードの入力（入力したパスワードは表示されない）
Changing password for user webmaster.
New UNIX password:パスワード

再入力を促されるので、もう一度入力。(上記のパスワードと同じ物を入れる)
Retype new UNIX password:パスワード
passwd: all authentication tokens updated successfully.</pre><br />
<br />
<b>■Postfixの起動</b><br />
<pre>Postfixの起動 
[root@linux ~]# /etc/rc.d/init.d/postfix start
postfix を起動中:                                          [  OK  ]</pre><br />
<br />
<b>■Postfixの自動起動設定</b><br />
<pre>Postfixの自動起動設定
[root@linux ~]# chkconfig postfix on

Postfixの自動起動設定確認
[root@linux ~]# chkconfig --list postfix
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
　　　　　　　　　　　　　　　　（ランレベル2〜5のonを確認）</pre><br />
<br />
<b>■sendmailのアンインストール</b><br />
<pre>不要になったSendmailは、念のためアンインストールしておく。
[root@linux ~]# yum remove sendmail</pre><br />
<br />
<b>■sendmailパスの確認</b><br />
掲示板などで投稿があったらメール通知する設定をしている時は CGIのsendmailパスの設定を変更しないと送信エラーになる場合がある。<br />
<pre>一般ユーザーでsendmailパスの確認をする
[root@linex ~]# su - higo
[higo@linux ~]$ which sendmail　←　sendmailパスの確認
/usr/bin/which: no sendmail in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/higo/bin)

sendmailパスが見つからないときは
以下のようにすれば一般ユーザーでもsendmailパスがみえるようになる。
[higo@linux ~]$ su -　←　ルートになる
パスワード(P):　←　ルートのパスワードを入力

[root@linux ~]# ln -s /usr/sbin/sendmail /usr/bin/sendmail

[root@linux ~]# su - higo　←　一般ユーザーになる

[higo@linux ~]$ which sendmail　←　sendmailパスの確認
/usr/bin/sendmail</pre><br />
<br />
joyful.cgiではsendmailパスがデフォルトで「/usr/lib/sendmail」になっているので、上記で確認したsendmailパス「/usr/bin/sendmail」に直さないと投稿時に送信エラーになる。 <br />
<pre># sendmailパス（メール通知する時）
$sendmail = '/usr/lib/sendmail';
　↓
# sendmailパス（メール通知する時）
$sendmail = '/usr/bin/sendmail';　←　libをbinに変更</pre><br />
<br />
※SMTPサーバーを使うには、ルーターの設定が必要なので25番のポートを開ける。<br />
<br />
<b>■　ポートチェック【ポート開放確認】</b><br />
「管理しているサーバーが外部から接続アクセスできるか？」「ポートは開放されているか？」「portは閉じているか？」「ルータのポートは開放されているか」等の<br />
<a href="http://www.cman.jp/network/support/port.html" target="_blank">ポートチェック・ポートの疎通確認テストはこちらで</a><br />
<br />
Postfixをインストールしただけでは、メールの読み出しは出来ない。 Postfixはメールを配信するためのSMTPサーバーとしての機能しか持たないので、<a href="http://yokensaka.com/centos/index.php?catid=14&amp;blogid=1" target="_blank">dovecotをインストール</a>することにより、POP3/IMAP4どちらでもメールを読み出せるようにする。<br />
<div align=right><a href="#">▲ ページトップへ</a></div>]]></description>
 <category>SMTPサーバ（Postfix）</category>
<comments>http://yokensaka.com/centos/?itemid=18</comments>
 <pubDate>Wed, 14 Apr 2010 00:15:00 +0900</pubDate>
</item><item>
 <title>ウィルス対策(Clam Antivirus)</title>
 <link>http://yokensaka.com/centos/?itemid=23</link>
<description><![CDATA[Clam AntivirusはGPLライセンスに従って利用することができるオープンソースのソフトウェアであり、LinuxやBSD、Mac OS Xなど各種UNIX系のシステムで動作するアンチウイルスソフト。しかしyumではなかなか最新版にアップデートされないのでwgetでソースからインストールすることにする。<br />
<br />
<b>■古いバージョンのclamavがある場合はアンインストールしておく</b><br />
<pre>アンインストール用にバックアップしてあったモジュールを展開。
[root@server ~]# tar zxvf clamav-0.95.3_self.tar.gz

clamav-0.95.3のディレクトリへ移動
[root@server ~]# cd clamav-0.95.3

clamav-0.95.3のアンインストール
[root@server clamav-0.95.3]# make uninstall

clamav-0.95.3のファイルとディレクトリーを削除
[root@server clamav-0.95.3]# cd
[root@server ~]# rm -f clamav-0.95.3_self.tar.gz
[root@server ~]# rm -rf clamav-0.95.3

古いバージョンのディレクトリーの削除
[root@server ~]# rm -rf /usr/local/clamav</pre><br />
<br />
<b>■ユーザとグループの作成</b><br />
<pre>clamavはインストールする前に
「clamav」という名前のユーザとグループを作成しておく必要がある。
[root@linux ~]# groupadd clamav
[root@linux ~]# useradd -g clamav -s /bin/false clamav</pre><br />
<br />
<b>■最新版のClamAVをダウンロード　（<a href="http://www.clamav.net/download/sources/" target="_blank">最新版は公式サイトで確認できる</a>）</b><br />
<pre>[root@server ~]# wget http://downloads.sourceforge.net/clamav/clamav-0.96.tar.gz
--2010-04-02 06:55:13--  http://downloads.sourceforge.net/clamav/clamav-0.96.tar.gz
downloads.sourceforge.net をDNSに問いあわせています... 216.34.181.59
downloads.sourceforge.net|216.34.181.59|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://jaist.dl.sourceforge.net/project/clamav/clamav/0.96/clamav-0.96.tar.gz [続く]
--2010-04-02 06:55:14--  http://jaist.dl.sourceforge.net/project/clamav/clamav/0.96/clamav-0.96.tar.gz
jaist.dl.sourceforge.net をDNSに問いあわせています... 150.65.7.130
jaist.dl.sourceforge.net|150.65.7.130|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 39792593 (38M) [application/x-gzip]
`clamav-0.96.tar.gz' に保存中

100%[==========================================================>] 39,792,593  4.76M/s 時間 9.4s

2010-04-02 06:55:23 (4.05 MB/s) - `clamav-0.96.tar.gz' へ保存完了 [39792593/39792593]

clamav-0.96を展開
[root@server ~]# tar zxvf clamav-0.96.tar.gz

ダウンロードしたファイルを削除
[root@server ~]# rm -f clamav-0.96.tar.gz

clamav-0.96ディレクトリーへ移動
[root@server ~]# cd clamav-0.96

Makefileを自動作成するためのツール「configure」を実行。
[root@server clamav-0.96]# ./configure --prefix=/usr/local/clamav

makeを実行し、clamavをインストール
[root@server clamav-0.96]# make
[root@server clamav-0.96]# make install</pre><br />
<br />
<b>■アンインストール用にバックアップしておく</b><br />
<pre>[root@server clamav-0.96]# cd
[root@server ~]# tar cvf clamav-0.96_self.tar ./clamav-0.96
[root@server ~]# gzip clamav-0.96_self.tar</pre><br />
<br />
<b>■設定ファイル変更</b><br />
インストールが正常に完了したらまず、二つの設定ファイル<br />
/usr/local/clamav/etc/freshclam.conf<br />
/usr/local/clamav/etc/clamd.conf<br />
をエディタで開きExampleと書かれた行をコメントアウトし、保存。<br />
<pre>[root@server ~]# vi /usr/local/clamav/etc/freshclam.conf

# Comment or remove the line below.
Example
↓
#Example

[root@server ~]# vi /usr/local/clamav/etc/clamd.conf

# Comment or remove the line below.
Example
↓
#Example</pre><br />
<br />
<b>■「freshclam」を使用してVirusDBをアップデート</b><br />
<pre>[root@server ~]# /usr/local/clamav/bin/freshclam
ClamAV update process started at Fri Apr  2 07:16:41 2010
main.cvd is up to date (version: 52, sigs: 704727, f-level: 44, builder: sven)
Downloading daily-10678.cdiff [100%]
Downloading daily-10679.cdiff [100%]
Downloading daily-10680.cdiff [100%]
Downloading daily-10681.cdiff [100%]
Downloading daily-10682.cdiff [100%]
Downloading daily-10683.cdiff [100%]
Downloading daily-10684.cdiff [100%]
Downloading daily-10685.cdiff [100%]
Downloading daily-10686.cdiff [100%]
Downloading daily-10687.cdiff [100%]
Downloading daily-10688.cdiff [100%]
Downloading daily-10689.cdiff [100%]
Downloading daily-10690.cdiff [100%]
Downloading daily-10691.cdiff [100%]
daily.cld updated (version: 10691, sigs: 49537, f-level: 44, builder: neo)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 5, sigs: 2, f-level: 44, builder: nervous)
Database updated (754266 signatures) from database.clamav.net (IP: 193.1.193.64)</pre><br />
<br />
<b>■ウィルススキャン確認（/etc/passwdをスキャンしてみる）</b><br />
<pre>[root@server ~]# /usr/local/clamav/bin/clamscan --infected --remove --recursive /etc/passwd

----------- SCAN SUMMARY -----------
Known viruses: 753570
Engine version: 0.96
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 3.654 sec (0 m 3 s)

version: 0.96でスキャンされてることを確認</pre><br />
<br />
<b>■Clam AntiVirusの定期自動実行設定</b><br />
<pre>毎日自動的にウィルス定義ファイル最新化して、全てのファイルのウィルススキャンを行うスプリクトの作成 
[root@linux ~]# vi clamav.sh
#!/bin/bash

PATH=/usr/bin:/bin
# excludelist
excludelist=/root/clamscan.exclude

if [ -s $excludelist ]; then
    for i in `cat $excludelist`
    do
        if [ $(echo "$i"|grep \/$) ]; then
            i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
            excludeopt="${excludeopt} --exclude-dir=$i"
        else
            excludeopt="${excludeopt} --exclude=$i"
        fi
    done
fi
CLAMSCANTMP=`mktemp`
/usr/local/clamav/bin/freshclam &gt; /dev/null
/usr/local/clamav/bin/clamscan --recursive --remove ${excludeopt} / &gt; $CLAMSCANTMP 2&gt;&amp;1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] &amp;&amp; \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP</pre><br />
<br />
<b>■Clam AntiVirus定期自動実行スクリプトに実行権限付加</b><br />
<pre>[root@linux ~]# chmod 700 clamav.sh</pre><br />
<br />
<b>■cron編集</b><br />
<pre>[root@linux ~]# crontab -e
00 03 * * * /root/clamav.sh　←　追加(毎日3:00にClam AntiVirusの定期自動実行)</pre><br />
<br />
<b>■スキャン除外設定</b><br />
<pre>backupディレクトリをスキャン対象外にするように設定
[root@linux ~]# echo "/backup/" &gt;&gt; clamscan.exclude</pre><br />
<br />
<div align=right><a href="#">▲ ページトップへ</a></div>]]></description>
 <category>ウィルス対策（Clam Antivirus）</category>
<comments>http://yokensaka.com/centos/?itemid=23</comments>
 <pubDate>Fri, 2 Apr 2010 07:20:00 +0900</pubDate>
</item><item>
 <title>Tripwire、/backupディレクトリーのチェック対象外設定</title>
 <link>http://yokensaka.com/centos/?itemid=41</link>
<description><![CDATA[下記のようなTripwireのエラーメールが届いた。<br />
<pre>### Warning: File system error.
### Filename: /backup/backup.tar.bz2
### Value too large for defined data type
### Continuing...</pre><br />
<br />
/backup/backup.tar.bz2のファイルサイズが2Gを超えてしまったため、2Gを超えるファイルに対応してないtripwireがエラーを出したようだ。なので、/backupのディレクトリーをチェック対象外にすることにした。<br />
<pre>ポリシーファイル(テキスト版)の復活
[root@server ~]# twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt

ポリシーファイル(テキスト版)の編集
[root@server ~]# vi /etc/tripwire/twpol.txt
  ################################################
 #                                              ##
################################################ #
#                                              # #
#  Monitor Filesystems                         # #
#                                              ##
################################################
(
  rulename = "Monitor Filesystems",
)
{
  /                             -> $(ReadOnly) ;
  /home                         -> $(ReadOnly) ;  # Modify as needed
  /usr                          -> $(ReadOnly) ;
  /var                          -> $(ReadOnly) ;
  !/backup;　←　/backupをチェック対象外にするので追加
}

ポリシーファイル(暗号署名版)を作成
[root@server ~]# twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt

Please enter your site passphrase:　←　サイトパスフレーズを入力
Wrote policy file: /etc/tripwire/tw.pol

ポリシーファイル(テキスト版)を削除
[root@server ~]# rm -f /etc/tripwire/twpol.txt

ポリシーファイルよりデータベースを作成
[root@server ~]# tripwire -m i -s -c /etc/tripwire/tw.cfg
Please enter your local passphrase:　←　ローカルパスフレーズを入力
※データベースを作成するには結構時間がかかる</pre>]]></description>
 <category>ファイル改竄検知（Tripwire）</category>
<comments>http://yokensaka.com/centos/?itemid=41</comments>
 <pubDate>Sat, 30 Jan 2010 16:40:13 +0900</pubDate>
</item><item>
 <title>MySQL管理（phpMyAdmin）</title>
 <link>http://yokensaka.com/centos/?itemid=6</link>
<description><![CDATA[phpMyAdminはWebブラウザからMySQLデータベースを管理するためのPHPで記述されたソフトウェア。WebブラウザからMySQLのテーブル操作、インポート・エクスポートすることが出来る。<br />
<br />
<b>■　phpMyAdminインストール</b><br />
<a href="http://www.phpmyadmin.net/home_page/downloads.php" target="_blank">こちらで最新版 </a>を確認すること<br />
（最新版を確認してダウロード 10/01/11 時点では phpMyAdmin 3.2.5）<br />
<pre>[root@linux ~]# wget http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-3.2.5-all-languages.tar.bz2

ダウンロードしたphpMyAdminを展開
[root@linux ~]# tar jxvf phpMyAdmin-3.2.5-all-languages.tar.bz2

古いphpMyAdminを削除
[root@linux ~]# rm -rf /var/www/phpmyadmin

phpMyAdmin展開先ディレクトリを所定の場所へコピー
[root@linux ~]# mv phpMyAdmin-3.2.5-all-languages/ /var/www/phpmyadmin

ダウンロードしたphpMyAdminを削除
[root@linux ~]# rm -f phpMyAdmin-3.2.5-all-languages.tar.bz2</pre><br />
<br />
<b>■　php-mysqlインストール</b><br />
phpMyAdminはPHPで動作するため、PHPからMySQLデータベースへアクセスするためのパッケージ「php-mysql」をインストールする<br />
<pre>[root@linux ~]# yum -y install php-mysql</pre><br />
<br />
<b>■　mbstringモジュールインストール</b><br />
phpMyAdmin は mbstring 拡張なしでは文字列を正確に分割することができないのでmbstringモジュールをインストールする<br />
<pre>[root@linux ~]# yum -y install php-mbstring</pre><br />
<br />
<b>■　phpMyAdmin設定</b> <br />
<pre>phpmyadmin/libraries/config.default.phpを名前変更して/var/www/phpmyadmin/の直下にコピー
[root@linux ~]# cp /var/www/phpmyadmin/libraries/config.default.php /var/www/phpmyadmin/config.inc.php

設定ファイルのパーミッションを変更
[root@linux ~]# chmod 660 /var/www/phpmyadmin/config.inc.php

設定ファイル編集
[root@linux ~]# vi /var/www/phpmyadmin/config.inc.php
$cfg['blowfish_secret'] = 'xxxxxxxxxxxx';　←　46文字以内の適当な文字列を指定
※上記はロiグイン時のパスワード暗号化の際に内部的に利用されるパスフレーズであり、ユーザに入力要求されるものではない

phpMyAdminの所有者を変更
[root@linux ~]# chown -R root.apache /var/www/phpmyadmin/</pre><br />
<br />
<b>■　Apache設定</b><br />
phpMyAdmin用Apache設定ファイル作成 <br />
<pre>[root@linux ~]# vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /var/www/phpmyadmin

内部と特定の外部IPからのみアクセスできるように指定する
&lt;Location /phpmyadmin&gt;
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1　←　サーバー自身からのアクセスを許可
    Allow from 192.168.1.　←　内部ネットワークからのアクセスを許可
    Allow from xxx.xxx.xxx.xxx　←　特定の外部IP(xxx.xxx.xxx.xxx)からのアクセスを許可
&lt;/Location&gt;

[root@linux ~]# /etc/rc.d/init.d/httpd reload　←　Apache設定反映
httpd を再読み込み中:                                      [  OK  ]</pre><br />
会社等からアクセスする場合、自分の会社の接続環境（IPアドレス）を調べ、/etc/hosts.allowへ登録する必要がある。そんな時は<a href="http://www.taruo.net/e/" target="_blank">診断くん</a>で確認できる。<br />
<br />
<b>■　phpMyAdmin確認</b><br />
http://サーバー名/phpmyadmin/へアクセスして、phpMyAdminのログイン画面が表示されること<br />
MySQLに登録されているアカウントでログインできること <br />
<br />
※アクセスしてみると「PHP を 5.2 以降にアップグレードしてください」というエラーメッセージが出てきた。<br />
<br />
<b>■　インストールされてるphpバージョン確認</b><br />
[root@linux ~]# yum list installed php*<br />
<pre>php.i386                                 5.1.6-20.el5_2.1       installed
php-cli.i386                             5.1.6-20.el5_2.1       installed
php-common.i386                          5.1.6-20.el5_2.1       installed
php-gd.i386                              5.1.6-20.el5_2.1       installed
php-mbstring.i386                        5.1.6-20.el5_2.1       installed
php-mysql.i386                           5.1.6-20.el5_2.1       installed
php-pdo.i386                             5.1.6-20.el5_2.1       installed</pre><br />
<br />
<b>■　phpを5.2以降のバージョンにアップグレード</b><br />
<pre>[root@linux ~]# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

リポジトリを追加
[root@linux ~]# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka</pre><br />
<br />
<b>■　phpのアップグレード</b><br />
<pre>[root@linux ~]# yum update php</pre><br />
<br />
http://サーバー名/phpmyadmin/へアクセスしてみると<br />
「mcrypt 拡張をロードできません。PHP の設定を確認してください」というエラーメッセージが出てきた。<br />
<br />
<b>■　php-mcryptをインストール</b><pre>[root@linux ~]# yum install php-mcrypt</pre><br />
<br />
<b>■　phpバージョン確認</b><br />
<pre>[root@linux ~]# yum list installed php*

php.i386                                 5.2.6-jason.1          installed
php-cli.i386                             5.2.6-jason.1          installed
php-common.i386                          5.2.6-jason.1          installed
php-gd.i386                              5.2.6-jason.1          installed
php-mbstring.i386                        5.2.6-jason.1          installed
php-mcrypt.i386                          5.2.6-jason.1          installed
php-mysql.i386                           5.2.6-jason.1          installed
php-pdo.i386                             5.2.6-jason.1          installed</pre><br />
<br />
<br />
<b>■　リポジトリを無効にする</b><br />
<pre>[root@linux ~]# vi /etc/yum.repos.d/utterramblings.repo
enabled=1
　↓
enabled=0</pre><br />
<br />
<b>■　Apacheの再起動</b><br />
<pre>[root@linux ~]# /etc/rc.d/init.d/httpd restart</pre><br />
<br />
<br />
<b>■　PHP の初期設定の変更</b><br />
リストアで利用できるバックアップデータの最大サイズは2,048KB と書かれているとおり、 デフォルト では2 MB になっている。これはphpMyAdminの制限ではなく、 PHP の初期設定での制限。 これを変更するには、 "/etc/php.ini" を開き、 "upload_max_filesize" ディレクティブ を修正。 <br />
<br />
/etc/php.iniを cp コマンドでバックアップを作成してから作業するようにする。<br />
<br />
<pre>[root@server ~]# cp -p /etc/php.ini /etc/php.ini.org
[root@server ~]# vi /etc/php.ini

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
↓
upload_max_filesize = 30M　←　30Mに変更</pre><br />
<br />
<div align=right><a href="#">▲ ページトップへ</a></div>]]></description>
 <category>MySQL管理（phpMyAdmin）</category>
<comments>http://yokensaka.com/centos/?itemid=6</comments>
 <pubDate>Mon, 11 Jan 2010 12:11:00 +0900</pubDate>
</item><item>
 <title>ファイル転送(WinSCP)</title>
 <link>http://yokensaka.com/centos/?itemid=11</link>
<description><![CDATA[WinSCPはSSH (Secure Shell)を使用してファイルを転送するプログラム。 Telnetによるリモートコンピュータへの接続ではパスワードが暗号化さないので、SSH(暗号化シェル)でのリモート接続を行う。 WinSCPを導入するに当って事前にSSHサーバの構築を行っている必要がある。<br />
<br />
<b>■秘密鍵のジェネレート</b><br />
・秘密鍵をWinSCPで使用するには <a href="http://yokensaka.com/centos/index.php?catid=06&blogid=1" target="_blank">PuTTYgenによるジェネレート</a> が必要。<br />
<br />
<b>■WinSCPをインストールする</b><br />
・<a href="http://winscp.net/eng/download.php" target="_blank">WinSCP のダウンロードページ</a>からInstallation packageをダウンロードして、実行。<br />
（最新版を確認してダウロード 09/12/23 時点ではWinSCP 4.2.5）<br />
<br />
<b>■WinSCPの設定</b><br />
<ol><li>winscp425setup.exeをダウンロードして、実行すると、WinSCP ログイン画面になる。</li><br />
<li>Languagesボタンを押して[Japanese - 日本語]を選択。</li><br />
<li>[セッション]でホスト名かサーバーのIPアドレスを入力。（例 192.168.1.2 ）</li><br />
<li>[セッション]でユーザー名を入力。（例 higo ）</li><br />
<li>[セッション]で秘密鍵の入力欄にある「 … 」ボタンを押して、保存した秘密鍵「 **.ppk 」ファイルを指定。</li><br />
<li>カテゴリ[SSH]でプロトコルの優先順位を[2]に選択。</li><br />
<li>保存ボタンを押す。</li><br />
<li>セッションの保存名に、適当な名前を付けてOKボタンを押す。（例 自宅サーバー）</li></ol><br />
<b>■接続前の準備</b><br />
外部からの接続には、ルータの設定が必要なので、ルータの設定で22番のポートを開ける。<br />
<br />
<b>■WinSCPの起動</b><br />
<ol><li>WinSCPを起動し、保存したセッションを選択してログイン。</li><br />
<li>パスワードの入力画面が出るので、パスワードを入力し、OKボタンを押す。</li></ol><br />
<div align=right><a href="#">▲ ページトップへ</a></div>]]></description>
 <category>ファイル転送（WinSCP）</category>
<comments>http://yokensaka.com/centos/?itemid=11</comments>
 <pubDate>Wed, 23 Dec 2009 20:56:00 +0900</pubDate>
</item><item>
 <title>ClamAV version: 0.95.3にアップデート</title>
 <link>http://yokensaka.com/centos/?itemid=40</link>
<description><![CDATA[ClamAVがversion: 0.95.3にアップデートされたので、ソースから手動でインストール。<br />
ダウンロード先が変わるだけで他は<a href="http://yokensaka.com/centos/index.php?itemid=23&amp;catid=19" target="_blank">こちら「ウィルス対策(Clam Antivirus)」</a>と一緒。<br />
<br />
<a href="http://www.clamav.net/download/sources/" target="_blank">最新版はこちらで確認</a><br />
<pre>[root@linux ~]# wget http://downloads.sourceforge.net/clamav/clamav-0.95.3.tar.gz</pre><br />
<br />
]]></description>
 <category>ウィルス対策（Clam Antivirus）</category>
<comments>http://yokensaka.com/centos/?itemid=40</comments>
 <pubDate>Thu, 29 Oct 2009 19:13:34 +0900</pubDate>
</item><item>
 <title>CentOS 5.4リリース</title>
 <link>http://yokensaka.com/centos/?itemid=39</link>
<description><![CDATA[Webサーバ（Apache）のドキュメントルートの所有者がrootに戻ってるようで、サーバー内のファイルが削除できない状態になってた。調べたらOSが5.4にバージョンアップしてたようだ。<br />
<br />
<pre>[root@server ~]# cat /etc/redhat-release
CentOS release 5.4 (Final)</pre><br />
<br />
カーネルバージョンは古いままのようだ。<br />
<pre>[root@server ~]# uname -r
2.6.18-128.4.1.el5.centos.plus</pre><br />
<br />
再起動してカーネルも更新することに。<br />
<pre>[root@server ~]# shutdown -r now

[root@server ~]# uname -r
2.6.18-164.2.1.el5.plus</pre><br />
<br />
Webサーバ（Apache）のドキュメントルートの所有者変更。<br />
<pre>[root@server ~]# chown higo:higo /var/www/html/</pre><br />
<br />
<a href="http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.4/Japanese" target="_blank">CentOS 5.4 リリースノート</a>]]></description>
 <category>OS のインストール</category>
<comments>http://yokensaka.com/centos/?itemid=39</comments>
 <pubDate>Wed, 28 Oct 2009 14:46:45 +0900</pubDate>
</item><item>
 <title>atom v1.0のRSS表示、文字化け及びエラー対策</title>
 <link>http://yokensaka.com/centos/?itemid=38</link>
<description><![CDATA[nucleusのatom v1.0を使ってRSS表示しようとすると、Firefoxだと文字化け、IEだとエラーになってたので、atom.phpを以下のように修正。FirefoxでもIEでもちゃんと表示できるようになった。<br />
<br />
<pre>	} else {
		header("Content-Type: application/xml");
		// dump feed
		echo $feed;
	}

　　　↓　↓

	} else {
		if ($CONF['Language'] == 'japanese-euc') { $feed = mb_convert_encoding($feed, "UTF-8", "EUC-JP");}
		header("Content-Type: application/xml");
		// dump feed
		echo $feed;
	}</pre>]]></description>
 <category>ブログツール（Nucleus）</category>
<comments>http://yokensaka.com/centos/?itemid=38</comments>
 <pubDate>Wed, 12 Aug 2009 18:19:33 +0900</pubDate>
</item><item>
 <title>Tripwire エラー</title>
 <link>http://yokensaka.com/centos/?itemid=37</link>
<description><![CDATA[/root/tripwire.shを実行すると以下のようなエラーが出るようになった。<br />
<br />
<pre>[root@server ~]# /root/tripwire.sh
### Warning: File system error.
### Filename: /var/lib/rpm/__db.001
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...
### Warning: File system error.
### Filename: /var/lib/rpm/__db.002
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...
### Warning: File system error.
### Filename: /var/lib/rpm/__db.003
### \xa4\xbd\xa4\xce\xa4\xe8\xa4\xa6\xa4\xca\xa5\xd5\xa5\xa1\xa5\xa4\xa5\xeb\xa4\xe4\xa5\xc7\xa5\xa3\xa5\xec\xa5\xaf\xa5\xc8\xa5\xea\xa4\xcf\xa4\xa2\xa4\xea\xa4\xde\xa4\xbb\xa4\xf3
### Continuing...
</pre><br />
<br />
rpmのデータベース/var/lib/rpm/__db.001〜/var/lib/rpm/__db.003を念のため移動してから再構築する。<br />
<pre>[root@server ~]# ls -l /var/lib/rpm/
合計 46964
-rw-r--r-- 1 rpm  rpm    196608  8月 11 17:17 Requireversion
-rw-r--r-- 1 rpm  rpm     81920  8月 11 17:17 Sha1header
-rw-r--r-- 1 rpm  rpm     49152  8月 11 17:17 Sigmd5
-rw-r--r-- 1 rpm  rpm     12288  7月 15 06:01 Triggername
-rw-r--r-- 1 root root    24576  8月 11 18:46 __db.001
-rw-r--r-- 1 root root  1318912  8月 11 18:46 __db.002
-rw-r--r-- 1 root root   450560  8月 11 18:46 __db.003

[root@server ~]# mv /var/lib/rpm/__db.00? /tmp

[root@server ~]# rpm --rebuilddb</pre><br />
<br />
再構築が終了したら正常に動作するか確認する。<br />
<pre>[root@server ~]# rpm -qa

[root@server ~]# yum list
</pre><br />
再度/root/tripwire.shを実行<br />
<pre>[root@server ~]# /root/tripwire.sh</pre><br />
エラーは出ないようになった。]]></description>
 <category>ファイル改竄検知（Tripwire）</category>
<comments>http://yokensaka.com/centos/?itemid=37</comments>
 <pubDate>Tue, 11 Aug 2009 19:38:58 +0900</pubDate>
</item>
  </channel>
</rss>