<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
	xml:lang="ja">
	<title>MSG</title>
	<subtitle>ハマった。 MSG-MACINTOSH-SUPPORT/2nd</subtitle>
        <link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/index.php"/>
        <link rel="self" type="application/atom+xml" href="http://www.msg-macintosh-support.com/2nd/hamatta/atom.xml"/>
	<updated>2012-01-19T17:30:50+09:00</updated>
	<author>
	<name>msg</name>
	<uri>http://www.msg-macintosh-support.com/2nd/hamatta/index.php</uri>
	<email>takashi.hayasaka@mac.com</email>
	</author>
	<id>tag:pivotpowered,2012:MSG</id>
	<generator uri="http://www.pivotlog.net" version="MSG-BLOG-SYSTEM Ver1.2 beta">Pivot</generator>
	<rights>Copyright (c) 2012, Authors of MSG</rights>
	
	
	
	<entry>
		<title>CentOS（Linux系）sshへの総当り攻撃をiptablesの2行で防ぐ方法</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=88" />
		<updated>2010-12-16T19:22:00+09:00</updated>
		<published>2010-12-16T19:22:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.88</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">iptablesのオプションは間違うとひどいことになりますが、うまく動くと素晴らしい。わずか2行でsshへの総当り攻撃を防ぐことが出来る方法。知っている方には何をいまさらですが、不勉強な私は知りませんでした。ネタは以下のリンクです。</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=88"><![CDATA[
                iptablesのオプションは間違うとひどいことになりますが、うまく動くと素晴らしい。わずか2行でsshへの総当り攻撃を防ぐことが出来る方法。知っている方には何をいまさらですが、不勉強な私は知りませんでした。ネタは以下のリンクです。　<br />
<a rel="external" href="http://kevin.vanzonneveld.net/techblog/article/block_brute_force_attacks_with_iptables/" title="TechBlog - How to: Block brute force attacks with iptables(%u82F1%u6587)">TechBlog - How to: Block brute force attacks with iptables(%u82F1%u6587)</a><br />
自宅サーバを立ち上げている方やサーバ管理をされている方は一度や二度はsshへの総当り攻撃を見たことがあると思います。私のところではログインする元がほぼ決まっているので/etc/hosts.allowにSSHで接続を許可するホスト/ネットワークを指定しており、これでほとんど問題ありません。<br />
<br />
それでも一日100回以上アタックの形跡が残っています。もしポートが開いていると辞書攻撃などをガンガンかけてきてくれてうっとうしいことこの上ありません。そこで以下のようなiptablesの設定で繰り返しアクセスのあるサイトを締め出すことが出来ます。 <br />
<br />
Ubuntu/Debian系<br />
<br />
# iptables -A INPUT -ieth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH<br />
# iptables -A INPUT -ieth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP<br />
iptablesに上のルールを追加することで過去60秒間に8回以上SSHポートに接続を試みたIPアドレスを拒否する設定になります。詳しくは上のリンクにUbuntuでの解説があります。<br />
<br />
Redhat/Fedora/CentOS系<br />
<br />
Redhat系(Fedora/CentOS含む)では/etc/sysconfig/iptablesのsshの設定の前あたりに以下の2行を追加して"/etc/init.d/iptables restart"すればいいと思います。<br />
<br />
/etc/sysconfig/iptables: <br />
<br />
-A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH<br />
-A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP<br />
hosts.allow/denyでの拒否 <br />
<br />
もう少しお手軽で、セットでやると効果的な/etc/hosts.allow/denyの例。これだけでもずいぶんと違います。iptablesで同じことを設定してもいいのですが、ドメインでの指定も出来るので便利です。考えたらこちらも2行ですね。自分の許可した範囲からのアタックは防げませんが、海外からのものは十分防いでくれます。<br />
<br />
/etc/hosts.allow: <br />
<br />
sshd: 192.168.  MY.IP.  HOGEHOGE.JP ...<br />
 <br />
<br />
/etc/hosts.deny:<br />
<br />
sshd: ALL
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>【WordPress】Contact Form 7 でスパム対策を行う方法</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=87" />
		<updated>2010-12-13T22:17:00+09:00</updated>
		<published>2010-12-13T22:17:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.87</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">Contact Form 7 で作成したお問い合わせフォームで、スパム対策を行う方法です。Akismet が有効になっていることが条件です。

Contact Form 7 の編集画面で、名前、メールアドレス、URL の欄にそれぞれ下記のようにオプションを追加します。
　</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=87"><![CDATA[
                Contact Form 7 で作成したお問い合わせフォームで、スパム対策を行う方法です。Akismet が有効になっていることが条件です。<br />
<br />
Contact Form 7 の編集画面で、名前、メールアドレス、URL の欄にそれぞれ下記のようにオプションを追加します。<br />
　[text* your-name akismet:author]<br />
[email* your-email akismet:author_email]<br />
[text your-url akismet:author_url]<br />
<br />
これで試しに、名前欄に viagra などと入力して送信しようとすると弾かれます。
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>CentOS（Linux系）umask ファイル・ディレクトリ生成マスクの設定</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=86" />
		<updated>2010-11-17T22:24:00+09:00</updated>
		<published>2010-11-17T22:19:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.86</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">CentOS（Linux系）umask ファイル・ディレクトリ生成マスクの設定</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=86"><![CDATA[
                CentOS（Linux系）umask ファイル・ディレクトリ生成マスクの設定(エディタでも touch コマンドでも何でもいいから)ファイルを作成すると、そのファイルのパーミッションは、普通 644 (rw-r--r--) となるはずである。これはもっともな話で、新しいファイルを作るたびにパーミッションが 666 (rw-rw-rw-) や 777 (rwxrwxrwx) になっていては誰でも書き込めてしまい、いちいち chmod しなくてはならず不便である。このように、新規作成したファイル・ディレクトリのパーミッションを決めるのが、umask である。<br />
<br />
umask は、新しくファイルを作成する際に、許可*しない*ビットを示すものである。普通、ファイルの新規作成時はファイルの実行ビット (eXecute) は立てないので、umask が 022 ということは、666 から 022 を引いた 644 というパーミッションで新規ファイルが作られることになる。umask が 002 なら 664 、 umask が 000 なら 666 となる。<br />
<br />
umask を設定するには、<br />
% umask 022<br />
などとする。作成したファイルを誰にも見せたくなかったら、<br />
% umask 066<br />
とすればいいし、誰にでも読み書きしてほしかったら<br />
% umask 000<br />
とすればいい(もちろんお勧めはしない)。引数を省略すると、現在の umask の値を表示する。<br />
% umask<br />
22<br />
<br />
umask が影響を与えるのは、新規ファイル・ディレクトリの作成時だけであって、既に存在するファイルのパーミッションには全く影響を与えない。また、umask の値は親プロセスから引き継がれるが、プロセスごとに独自の umask を設定することができる。<br />
<br />
<br />
※<br />
0022とすると755になります。<br />
0072とすると705になります。
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>CentOS（Linux系）apacheのログをローテーションする【logrotate】の設定</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=85" />
		<updated>2010-11-15T21:46:00+09:00</updated>
		<published>2010-11-15T21:45:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.85</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">CentOS（Linux系）apacheのログをローテーションする【logrotate】の設定

apacheのログ「access_log」「error_log」はほっておくとどんどん容量が増えて無駄にディスクを消費する上にapacheのパフォーマンスが落ちる。
ログをローテーションするには「logrotate」を使用する。</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=85"><![CDATA[
                CentOS（Linux系）apacheのログをローテーションする【logrotate】の設定<br />
<br />
apacheのログ「access_log」「error_log」はほっておくとどんどん容量が増えて無駄にディスクを消費する上にapacheのパフォーマンスが落ちる。<br />
ログをローテーションするには「logrotate」を使用する。まず共通の設定を行います。<br />
<br />
vi /etc/logrotate.conf<br />
weekly<br />
rotate 4<br />
errors root<br />
create<br />
include /etc/logrotate.d<br />
weekly：週単位でローテーション（daily：日単位　monthly：月単位）<br />
<br />
rotate 4：最大4つ前までのファイルを残す<br />
<br />
errors root：エラーがあれば rootまでメールする<br />
<br />
create：ローテーション後すぐに同名のログファイルを作成する。<br />
<br />
include /etc/logrotate.d：/etc/logrotate.d　以下の設定ファイルを読み込む<br />
<br />
<br />
logrotateの個別のapache設定は（ /etc/logrotate.d/httpd ）に記述されてあるのでここを変更する。<br />
<br />
cd /etc/logrotate.d<br />
vi httpd<br />
でファイルを開くと<br />
<br />
/var/log/httpd/*log {<br />
    missingok<br />
    notifempty<br />
    sharedscripts<br />
    postrotate<br />
        /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true<br />
    endscript<br />
}<br />
となっている。<br />
<br />
使用しているログファイルが「access_log」「error_log」ならこのままでOK。<br />
<br />
ログファイルが「access_log.sitename.com」「error_log.sitename.com」等に変更<br />
<br />
してある場合は<br />
<br />
/var/log/httpd/*log {<br />
<br />
↓<br />
<br />
/var/log/httpd/*log.sitename.com {<br />
<br />
に変更する。<br />
<br />
また複数のファイルはスペースで区切って指定する<br />
<br />
/var/log/httpd/*log.siteA.com /var/log/httpd/*log.siteB.com {<br />
<br />
<br />
<br />
追記-----------------------------------<br />
logrotateの設定例<br />
各デーモン毎の設定をlogrotateに書いた例です。/etc/logrotate.dに作成するファイル名を列挙しておきます。<br />
<br />
acpid<br />
cups<br />
cupsを使用しないならば不要<br />
httpd<br />
Apacheのログをlogrotateで処理する場合のみ<br />
mgetty<br />
ppp<br />
不要<br />
proftpd<br />
ProFTPdのログをlogrotateで処理する場合のみ<br />
psacct<br />
rpm<br />
syslog<br />
up2date<br />
CentOSでup2dateを使わないならば不要<br />
yum<br />
<br />
acpid<br />
<br />
acpidのログローテーションです。この内容はデフォルトで用意されているものです。<br />
<br />
/var/log/acpid {<br />
    missingok<br />
    notifempty<br />
    size=64k<br />
    postrotate<br />
        /etc/init.d/acpid condrestart >/dev/null || :<br />
    endscript<br />
}<br />
sizeが64kに達した際にローテーションされます。ローテーション後はacpidをリスタートします。世代はlogrotate.confの設定を引き継ぎます。<br />
<br />
<br />
cups<br />
<br />
cupsのログローテーションです。この内容はデフォルトで用意されているものです。ログファイルは/var/log/cups/以下に*_logという名前で保存されます。その全てを処理対象としています。<br />
<br />
/var/log/cups/*_log {<br />
    missingok<br />
    weekly<br />
    rotate 64<br />
    notifempty<br />
    sharedscripts<br />
    postrotate<br />
        /etc/init.d/cups condrestart >/dev/null 2>&1 || true<br />
    endscript<br />
}<br />
cupsを使ってないならば、このファイルを削除してしまっても良いでしょう。<br />
<br />
<br />
httpd<br />
<br />
Apacheのログファイルをlogrotateを使ってローテーションする場合の例です。ファイルを/etc/logrotate.d/httpdとして作成します。<br />
<br />
/var/log/httpd/access_log /var/log/httpd/error_log /var/log/httpd/ssl_request_log {<br />
    sharedscripts<br />
    nocompress<br />
    postrotate<br />
        /sbin/service httpd graceful > /dev/null 2>&1<br />
    endscript<br />
    lastaction<br />
        EXT=`/bin/date +%Y%m%d`<br />
        LOGDIR='/var/log/httpd'<br />
        OLDDIR='/var/log/httpd/archives'<br />
        /bin/gzip -9 ${LOGDIR}/access_log.1<br />
        /bin/gzip -9 ${LOGDIR}/error_log.1<br />
        /bin/gzip -9 ${LOGDIR}/ssl_request_log.1<br />
        /bin/mv -f ${LOGDIR}/access_log.1.gz ${OLDDIR}/access_log.${EXT}.gz<br />
        /bin/mv -f ${LOGDIR}/error_log.1.gz ${OLDDIR}/error_log.${EXT}.gz<br />
        /bin/mv -f ${LOGDIR}/ssl_request_log.1.gz ${OLDDIR}/ssl_request_log.${EXT}.gz<br />
    endscript<br />
}<br />
<br />
ここで処理対象としているApacheのログファイルは、下記の3つです。<br />
<br />
/var/log/httpd/access_log<br />
/var/log/httpd/error_log<br />
/var/log/httpd/ssl_request_log<br />
これらのファイル名は環境によっても変わってきます。SSLを使用していない場合は、<br />
<br />
ssl_request_logファイルは無いです。<br />
<br />
<br />
ローテーション後にファイル名を *.日付.gz にリネームし、さらに過去ログ用ディレクトリに移動してあります。ローテーション後のファイルは全て /var/log/httpd/archives に置かれることになります。また、ローテーション処理後にhttpdのプロセスをgracefulで再起動しています。<br />
<br />
<br />
ログファイルの場所移動にはlogrotateの olddir オプションを利用してもよいかもしれません。移動先のディレクトリ名を年月にしたり、そういった場合はolddirオプションでは対応できないので、上記のような書き方をします。<br />
<br />
<br />
mgetty<br />
<br />
#<br />
# Rotate mgetty log files.<br />
#<br />
/var/log/mgetty.log.tty[^.] <br />
/var/log/mgetty.log.tty[^.][^.] <br />
/var/log/mgetty.log.tty[^.][^.][^.]<br />
/var/log/mgetty.log.tty[^.][^.][^.][^.] <br />
/var/log/mgetty.log.tty[^.][^.][^.][^.][^.] <br />
/var/log/mgetty.log.tty[^.][^.][^.][^.][^.][^.] <br />
/var/log/mgetty.log.tty[^.][^.][^.][^.][^.][^.][^.] <br />
/var/log/mgetty.log.tty[^.][^.][^.][^.][^.][^.][^.][^.]<br />
/var/log/mgetty.log.tty[^.][^.][^.][^.][^.][^.][^.][^.][^.]<br />
/var/log/mgetty.log.tty[^.][^.][^.][^.][^.][^.][^.][^.][^.][^.] <br />
/var/log/mgetty.log.unknown /var/log/mgetty.callback {<br />
    nocompress<br />
    missingok<br />
}<br />
これは何のログでしょう～！？普段は生成されていないのですが。<br />
<br />
<br />
ppp<br />
<br />
# Logrotate file for ppp RPM<br />
<br />
/var/log/ppp/connect-errors {<br />
    missingok<br />
    compress<br />
    notifempty<br />
    daily<br />
    rotate 5<br />
    create 0600 root root<br />
}<br />
これはpppのログで/var/log/ppp以下に生成される。pppを使用していない場合は当然ながら記述不要である。<br />
<br />
<br />
proftpd<br />
<br />
ProFTPdのログファイルをlogrotateを使ってローテーションする場合の記述例です。次の3つのログファイルを対象としています。<br />
<br />
/var/log/proftpd/extended.log /var/log/proftpd/proftpd.log /var/log/proftpd/transfer.log {<br />
    sharedscripts<br />
    nocompress<br />
    postrotate<br />
        if test -n "`/bin/ps acx | /bin/grep proftpd`";<br />
        then<br />
            /usr/bin/killall -HUP in.proftpd<br />
        fi<br />
    endscript<br />
    lastaction<br />
        EXT=`/bin/date +%Y%m%d`<br />
        LOGDIR='/var/log/proftpd'<br />
        OLDDIR='/var/log/proftpd/archives'<br />
        /bin/gzip -9 ${LOGDIR}/extended.log.1<br />
        /bin/gzip -9 ${LOGDIR}/proftpd.log.1<br />
        /bin/gzip -9 ${LOGDIR}/transfer.log.1<br />
        /bin/mv -f ${LOGDIR}/extended.log.1.gz ${OLDDIR}/extended.log.${EXT}.gz<br />
        /bin/mv -f ${LOGDIR}/proftpd.log.1.gz ${OLDDIR}/proftpd.log.${EXT}.gz<br />
        /bin/mv -f ${LOGDIR}/transfer.log.1.gz ${OLDDIR}/transfer.log.${EXT}.gz<br />
    endscript<br />
}<br />
ローテーション処理終了後にproftpdのプロセスを再起動させています。この記述はxinetd経由でproftpdを起動してる場合です。standaloneモードの場合はserviceを使って再起動させます。<br />
<br />
<br />
また、ローテーション後にファイル名を日付でリネームし、過去ログ用のディレクトリに保存しています。<br />
<br />
<br />
psacct<br />
<br />
# Logrotate file for psacct RPM<br />
/var/account/pacct {<br />
# prerotate loses accounting records, let's no<br />
#prerotate<br />
#        /usr/sbin/accton<br />
#endscript<br />
    compress<br />
    delaycompress<br />
    notifempty<br />
    daily<br />
    rotate 31<br />
    create 0600 root root<br />
    postrotate<br />
        /usr/sbin/accton /var/account/pacct<br />
    endscript<br />
}<br />
これは何のログでしょう～！？普段は生成されていないのですが。<br />
<br />
<br />
rpm<br />
<br />
cron.dailyで実行されているrpmのログファイルをローテーションします。これはインストール済みRPMの一覧になります。dailyで生成されるのですが、取り立てて必要なものではないのでweeklyでローテーションするようにしています。<br />
<br />
/var/log/rpmpkgs {<br />
    weekly<br />
    notifempty<br />
    missingok<br />
    nocompress<br />
    lastaction<br />
        EXT=`date +%Y%m%d`<br />
        ODATE=`/bin/date -d '3 week ago' +%Y%m%d`<br />
        /bin/mv -f /var/log/rpmpkgs.1 /var/log/rpmpkgs.${EXT}<br />
        if [ -f /var/log/rpmpkgs.${ODATE} ];<br />
        then<br />
            /bin/mv -f /var/log/rpmpkgs.${ODATE} /var/log/archives/rpmpkgs/<br />
        fi<br />
    endscript<br />
}<br />
直近の3ファイルだけを残し、古いデータは/var/log/archives/rpmpkgs/に移動しています。また、ファイル名に日付を入れています。<br />
<br />
<br />
up2date<br />
<br />
RedHatEnterpriseLinux系のup2dateのログをローテーションします。CentOSを使っていてup2dateを利用していない場合は記述不要です。<br />
<br />
/var/log/up2date {<br />
    missingok<br />
    weekly<br />
}<br />
<br />
yum<br />
<br />
CentOS/Fedoraのyumのログをローテーションする設定です。yumのログはアップデートが行われなかった場合は生成されないので、下記のような記述でよいでしょう。マッチするファイルが存在しなかった場合はlastactionスクリプトが実行されません。直前に実施されたアップデートのログをweeklyで退避するようなイメージです。<br />
<br />
/var/log/yum.log {<br />
    missingok<br />
    nocompress<br />
    weekly<br />
    nocreate<br />
    lastaction<br />
        EXT=`date +%Y%m%d`<br />
        ODATE=`/bin/date -d '3 week ago' +%Y%m%d`<br />
        /bin/mv -f /var/log/yum.log.1 /var/log/yum.log.${EXT}<br />
        if [ -f /var/log/yum.log.${ODATE} ];<br />
        then<br />
            /bin/mv -f /var/log/yum.log.${ODATE} /var/log/archives/yum/<br />
        fi<br />
    endscript<br />
}<br />
また、古いログはarchivesディレクトリに移動させています。<br />
<br />
<br />
syslog<br />
<br />
最後にsyslog経由で生成されるログのローテーションの設定です。Linuxサーバを運用する上では最も基本となるログですので、きちんとローテーションして保存しておきましょう。<br />
<br />
/var/log/messages /var/log/secure /var/log/maillog /var/log/boot.log <br />
/var/log/cron {<br />
    sharedscripts<br />
    missingok<br />
    nocompress<br />
    postrotate<br />
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true<br />
    endscript<br />
    lastaction<br />
        EXT=`/bin/date +%Y%m%d`<br />
        ODATE=`/bin/date -d '3 week ago' +%Y%m%d`<br />
        /bin/gzip -9 /var/log/messages.1<br />
        /bin/gzip -9 /var/log/secure.1<br />
        /bin/gzip -9 /var/log/maillog.1<br />
        /bin/gzip -9 /var/log/boot.log.1<br />
        /bin/gzip -9 /var/log/cron.1<br />
        /bin/mv -f /var/log/messages.1.gz /var/log/messages.${EXT}.gz<br />
        /bin/mv -f /var/log/secure.1.gz /var/log/secure.${EXT}.gz<br />
        /bin/mv -f /var/log/maillog.1.gz /var/log/maillog.${EXT}.gz<br />
        /bin/mv -f /var/log/boot.log.1.gz /var/log/boot.log.${EXT}.gz<br />
        /bin/mv -f /var/log/cron.1.gz /var/log/cron.${EXT}.gz<br />
        <br />
        if [ -f /var/log/messages.${ODATE}.gz ];<br />
        then<br />
            /bin/mv -f /var/log/messages.${ODATE}.gz /var/log/archives/messages/<br />
        fi<br />
        <br />
        if [ -f /var/log/secure.${ODATE}.gz ];<br />
        then<br />
            /bin/mv -f /var/log/secure.${ODATE}.gz /var/log/archives/secure/<br />
        fi<br />
        <br />
        if [ -f /var/log/maillog.${ODATE}.gz ];<br />
        then<br />
            /bin/mv -f /var/log/maillog.${ODATE}.gz /var/log/archives/maillog/<br />
        fi<br />
        <br />
        if [ -f /var/log/boot.log.${ODATE}.gz ];<br />
        then<br />
            /bin/mv -f /var/log/boot.log.${ODATE}.gz /var/log/archives/boot/<br />
        fi<br />
        <br />
        if [ -f /var/log/cron.${ODATE}.gz ];<br />
        then<br />
            /bin/mv -f /var/log/cron.${ODATE}.gz /var/log/archives/cron/<br />
        fi<br />
    endscript<br />
}<br />
syslogが書きだす6つのログを処理対象とし、ローテート後に圧縮、ファイル名のリネーム、ログディレクトリへの移動を行っています。処理対象は下記のファイル。<br />
<br />
/var/log/messages<br />
/var/log/secure<br />
/var/log/maillog<br />
/var/log/boot.log<br />
/var/log/cron<br />
<br />
また、ローテーションを行った後にpostrotateスクリプト内にてsyslogdをリスタートしています。続くlastactionスクリプト内がファイル名の処理です。<br />
<br />
<br />
ログファイルの保存先<br />
<br />
各種ログファイルの保存先ディレクトリを再度確認しておきます。<br />
<br />
<br />
運用時の出力先一覧。<br />
<br />
サービス	ディレクトリ<br />
acpid	/var/log<br />
cups	/var/log/cups<br />
httpd	/var/log/httpd<br />
mgetty	/var/log<br />
ppp	/var/log/ppp<br />
proftpd	/var/log/proftpd<br />
psacct	/var/account<br />
rpm	/var/log<br />
up2date	/var/log<br />
yum	/var/log<br />
syslog	/var/log<br />
※新しいログは常にここのファイルに書き込まれます。<br />
<br />
<br />
古いログの保存先一覧。<br />
<br />
サービス	ディレクトリ<br />
acpid	無し<br />
cups	無し<br />
httpd	/var/log/httpd/archive<br />
mgetty	無し<br />
ppp	無し<br />
proftpd	/var/log/proftpd/archive<br />
psacct	無し<br />
rpm	/var/log/archives/rpmpkgs<br />
up2date	/var/log/archives/up2date<br />
yum	/var/log/archives/yum<br />
syslog	/var/log/archives<br />
※古いログはこちらのarchivesディレクトリに保存されます。
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>CentOS（Linux系）duコマンドについて ディスクの使用量を調べる</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=84" />
		<updated>2010-11-15T21:38:00+09:00</updated>
		<published>2010-11-15T21:38:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.84</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">CentOS（Linux系）duコマンドについて ディスクの使用量を調べる
容量の大きいディレクトリやファイルの調査・特定に有効な手法です。</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=84"><![CDATA[
                CentOS（Linux系）duコマンドについて ディスクの使用量を調べる<br />
容量の大きいディレクトリやファイルの調査・特定に有効な手法です。■１．コマンドの使い方<br />
<br />
du [options] [file...]<br />
<br />
主なオプション<br />
-k　　　キロバイト(1,024バイト)単位でサイズを表示<br />
-m　　　メガバイト(1,048,576バイト)単位でサイズを表示<br />
-h　　　サイズに合わせてキロ/メガ/ギガ単位と人が読みやすい単位で表示<br />
-s　　　引き数で指定した対象の総計のみを表示し、そのサブディレクトリの使用量は表示しない<br />
<br />
du コマンドは引数で指定したファイルとがディレクトリの容量を表示してくれるコマンドです。何も指定しなければカレントディレクトリが対象になります。<br />
<br />
<br />
■２．とりあえず実験<br />
<br />
実験する環境をこんな感じで作ってみました。<br />
<br />
# pwd<br />
/root/Desktop<br />
<br />
# tree<br />
.<br />
|-- aaa<br />
|   |-- abc.txt<br />
|   `-- bbb<br />
|       `-- def.txt<br />
|-- ghi.txt<br />
`-- jkl.txt<br />
<br />
du コマンド単体で使うとカレントディレクトリ（ここでは /root/Desktop）と、そのサブディレクトリの使用量を表示してくれます。<br />
<br />
# du<br />
32      ./aaa/bbb<br />
60      ./aaa<br />
100     .<br />
<br />
ファイルの容量も表示したい場合は、*(アスタリスク)を使って対象を指定します。<br />
<br />
# du ./*<br />
32      ./aaa/bbb<br />
60      ./aaa<br />
12      ./ghi.txt<br />
24      ./jkl.txt<br />
<br />
<br />
■３．「-s」オプションについて<br />
<br />
du コマンドをそのまま使うと指定したディレクトリ以下のサブディレクトリを何階層でも調べて要領を表示するので、オプションを付けずに /(ルート)ディレクトリとかを調べようとすると、、、<br />
<br />
# du /* | wc -l<br />
21692<br />
<br />
というように2万行以上も出力されるので、-s オプションを使って指定したディレクトリの総計のみを表示するようにします。下記は -s オプションを使って /(ルート)ディレクトリ内の全てのディレクトリとファイルを指定しているので、たとえば /bin なら /bin の総量だけを表示し以下のサブディレクトリについては表示しないというワケです。<br />
<br />
# du -sh /*<br />
7.0M    /bin<br />
16M     /boot<br />
88K     /dev<br />
125M    /etc<br />
316M    /home<br />
148M    /lib<br />
16K     /lost+found<br />
8.0K    /media<br />
0       /misc<br />
12K     /mnt<br />
0       /net<br />
27M     /opt<br />
0       /proc<br />
2.8M    /root<br />
31M     /sbin<br />
8.0K    /selinux<br />
8.0K    /srv<br />
0       /sys<br />
666K    /tmp<br />
3.2G    /usr<br />
14G     /var<br />
<br />
「-s」については分かりましたか？基本を押さえたら /var の中を調べていきましょう。<br />
<br />
<br />
■４．例えば /var の容量が 99% になった時の障害対応<br />
<br />
じゃあ実際に /var の中で容量の大きいディレクトリやファイルを探っていきます。<br />
<br />
# du -s /var/*<br />
12      /var/account<br />
28148   /var/cache<br />
8       /var/crash<br />
8       /var/cvs<br />
24      /var/db<br />
32      /var/empty<br />
　：<br />
　：<br />
<br />
とはいえこれだと、/var の中だけでも20行以上あって面倒なので、容量の大きいものベスト5くらいに絞って調べる方が効率的ですね。sort と head をパイプで繋いでひと工夫します。<br />
<br />
# du -s /var/* | sort -nr | head -5<br />
12877184        /var/log<br />
743400  /var/lib<br />
103148  /var/www<br />
28148   /var/cache<br />
780     /var/spool<br />
<br />
メッチャ分かりやすくなりました。ちなみに -h オプションを使っちゃうと正しく並んでくれないので注意して下さい。<br />
<br />
で、次は /var/log を調べます。さらにその次は /var/log の中の一番大きなディレクトリ、という風に調べていきます。<br />
<br />
# du -s /var/log/* | sort -nr | head -5<br />
12864128        /var/log/httpd<br />
2524    /var/log/maillog.4<br />
2524    /var/log/maillog.3<br />
1720    /var/log/maillog.2<br />
1080    /var/log/maillog<br />
<br />
# du -s /var/log/httpd/* | sort -nr | head -5<br />
12863264        /var/log/httpd/fake.log<br />
392     /var/log/httpd/a.txt<br />
92      /var/log/httpd/ssl_request_log<br />
84      /var/log/httpd/ssl_access_log<br />
64      /var/log/httpd/ssl_request_log.4<br />
<br />
こんな感じで調べていくと、容量が大きなファイルとかを簡単に特定できます。
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>コマンドの使いかたがわからないときは? マニュアルについて</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=82" />
		<updated>2010-09-21T16:30:00+09:00</updated>
		<published>2010-09-21T16:29:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.82</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">コマンドの使いかたがわからないときは?
とても豊富なコマンド群。しかもコマンドひとつひとつにもいっぱいオプションが有り、いちいち覚えていられない、もぅわけがわからない。そんなときは取説であるマニュアルを読む。</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=82"><![CDATA[
                コマンドの使いかたがわからないときは?<br />
とても豊富なコマンド群。しかもコマンドひとつひとつにもいっぱいオプションが有り、いちいち覚えていられない、もぅわけがわからない。そんなときは取説であるマニュアルを読む。例えば、ファイルをコピーするコマンド。Windowsだとcopyという名前ですが、linuxだとcpというコマンドが相当します。ファイルをコピーするコマンドですから使いかたはwindowsもlinuxも本質的に同じですが、このcpコマンドの詳しい使いかたを知りたいときは、<br />
<br />
man cp<br />
と端末に打ち込みます。すると詳しいマニュアルが表示される。<br />
ページを読み進めるときは、スペースキー<br />
ページを巻戻るときは、b キー。<br />
終了するときは、q キー。<br />
ページ内を検索するときは、/を打ち込んで続けて検索文字列を入力してリターン。<br />
次を検索するときは、n キー。<br />
<br />
あたりの操作を覚えておけばマニュアルを自由に読み進めることが出来る。<br />
<br />
しかし、デフォルトでは日本語のマニュアルがインストールされていませんので入れておく。
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>さくらインターネットのスパムメール対策</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=81" />
		<updated>2010-07-07T22:11:00+09:00</updated>
		<published>2010-07-07T22:11:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.81</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">さくらインターネットのスパムメール対策

さくらインターネットのメールの迷惑メールフィルターで、
既存のSpanassassinを使って行う対策が無いかと探していたら、有りました。</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=81"><![CDATA[
                さくらインターネットのスパムメール対策<br />
<br />
さくらインターネットのメールの迷惑メールフィルターで、<br />
既存のSpanassassinを使って行う対策が無いかと探していたら、有りました。さくらインターネットのspamassassin設定<br />
<br />
さくらインターネットのレンタルサーバにはメールサービスに迷惑メールフィルタ機能がある。spamassassinを使って実現されており、学習をさせれば精度はあがっていく。それにしてもすり抜けが多い。どうやらspamassassinのデフォルト設定は、SPAM判定の閾値がやや高すぎるらしい（5.0ポイント）。こーゆー時はユーザ設定で独自に閾値を設定してやると良い模様。世の中には練りこまれたspamassassinユーザ設定というのも出回っているが、さくらインターネットで使われているパッケージのバージョンが古いのでそのまま適用出来ない。とりあえず閾値だけ変更してみることにする。<br />
<br />
設定は1つだけ。~/.spamassassin/にuser_prefsというファイルを作成し、中身を以下のように記述する。<br />
<br />
SSHでログインしたら<br />
以下のコマンドを入力<br />
<br />
vi .spamassassin/user_prefs<br />
<br />
そして、下記を入力（コピペでOK）<br />
required_hits 2.4<br />
<br />
この状態でメールの受信を行ってみると、閾値を2.4としてSPAM判定を行うようになった。2.4という数字にあまり根拠はない。フィルタをすり抜けるメールのヘッダを確認するとだいたい2.5ポイントくらいのが多かったので設定してみた。
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>Windows XPで自動ログイン</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=80" />
		<updated>2010-07-07T18:10:00+09:00</updated>
		<published>2010-07-07T18:10:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.80</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">Windows XPで自動ログインさせたいのだけど
全然わかんなかった。

結局これだった。</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=80"><![CDATA[
                Windows XPで自動ログインさせたいのだけど<br />
全然わかんなかった。<br />
<br />
結局これだった。コマンドプロンプト開いて、下記を入力（そのままコピペしてエンター！）<br />
control userpasswords2<br />
<br />
もしくはファイル名を指定して実行でもいけます。<br />
<br />
1.「ユーザーがこのコンピュータを使うには、 ユーザー名とパスワードの入力が必要」のチェックをはずして適用。<br />
2. 自動ログインしたいユーザ名とパスワードを入力。<br />
<br />
これでOK。
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>digがない！CentOSにyum経由でdigをインストールする方法</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=79" />
		<updated>2010-07-01T18:46:00+09:00</updated>
		<published>2010-07-01T18:46:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.79</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">CentOSをインストールした環境によって、digがインストールされていない場合がある。

digはbind-utilsというパッケージに含まれているものなので、 bind-utilsをインストールしてあげれば使用できるようになります。</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=79"><![CDATA[
                CentOSをインストールした環境によって、digがインストールされていない場合がある。<br />
<br />
digはbind-utilsというパッケージに含まれているものなので、 bind-utilsをインストールしてあげれば使用できるようになります。digコマンドのインストール方法<br />
<br />
bind-utilsのインストール<br />
# yum -y install bind-utils<br />
<br />
digが入ったかどうか確認する。<br />
# dig it.kndb.jp
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
	<entry>
		<title>hetemlにOpenPNE3.4を設置、インストール。</title>
		<link rel="alternate" type="text/html" href="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=78" />
		<updated>2010-05-28T14:19:00+09:00</updated>
		<published>2010-05-28T03:35:00+09:00</published>
		<id>tag:pivotpowered,2012:MSG.78</id>
		<link rel="related" type="text/html" href=""  />
		<summary type="text">hetemlにOpenPNE3.4をインストール、設置しました、
やや、難儀したので忘備録です。</summary>
        <content type="html" xml:lang="ja" xml:base="http://www.msg-macintosh-support.com/2nd/hamatta/blog/entry.php?id=78"><![CDATA[
                hetemlにOpenPNE3.4をインストール、設置しました、<br />
やや、難儀したので忘備録です。1. hetemlでデータベースをつくる<br />
hetemlのコントロールパネルからOpenPNE用のDBを作成。<br />
<br />
2. hetemlにSSHで接続<br />
hetemlにSSHで接続。<br />
SSHのアカウントを作成していない場合はコントロールパネルから<br />
SSHのアカウントを作成する。<br />
<br />
3. OpenPNE3.4 ダウンロード & 解凍<br />
webディレクトリに移動してOpenPNEのパッケージをDLします。<br />
OpenPNEのダウンロード先URLを調べる<br />
今回は→だったので http://github.com/openpne/OpenPNE3/zipball/OpenPNE-3.4.4.1<br />
$ wget http://github.com/openpne/OpenPNE3/zipball/OpenPNE-3.4.4.1<br />
上記のコマンドでダウンロード。<br />
<br />
ダウンロードしたら、そのzipファイルを解凍します、解凍するコマンドは以下。<br />
$ unzip openpne-OpenPNE3-76e9765.zip<br />
解凍したらディレクトリ名を任意に変更。<br />
<br />
4. .htaccess 変更<br />
hetemlはデフォルトでPHP4 で動いているため、<br />
web/.htaccess に1行追加してPHP5 で動くようにする。<br />
コマンドは以下。<br />
$vi web/.htaccess<br />
上記のコマンドで.htaccessを開いたら下記をそのままコピーペースト。<br />
AddHandler php5-script .php<br />
Options +FollowSymLinks +ExecCGI<br />
<br />
5. ProjectConfiguration.class.php 作成<br />
ここからはOpenPNEマニュアルそのままですが、<br />
$ cp config/ProjectConfiguration.class.php.sample config/ProjectConfiguration.class.php<br />
コピー後にファイルを変更する必要はなし。<br />
<br />
6. openpne:install 実行、下記コマンドを入力<br />
$ php5 symfony openpne:install<br />
あとはアナウンスに従ってDBの情報とか入れていく。<br />
<br />
7. 最後にプラグインの読み込みを実行しておく<br />
$ php5 symfony plugin:publish-assets<br />
<br />
以上。
		]]></content>
		<author>
			<name>MSG</name>
		</author>
	</entry>
	
	
	
</feed>

