google

最近のトラックバック

他のアカウント

Powered by TypePad

日々の管理

2008年4月26日 (土)

logcheck

日々の管理は,やはり/var/log以下のログを随時チェックすることが大事ですが,膨大なログを,逐一チェックするのは大変に手間のかかる作業です.

しかし,我々には大きな見方がいます.その名はlogcheck.大事なログだけを抜粋して設定時間おきにメールで送ってきてくれます.

RPMで入れて,早速設定します.まず,どのログファイルチェックするかを設定します./usr/bin/logcheck.shを編集します.以下に抜粋を示します.

$LOGTAIL /var/log/messages > $TMPDIR/check.$$
$LOGTAIL /var/log/secure >> $TMPDIR/check.$$
$LOGTAIL /var/log/maillog >> $TMPDIR/check.$$
$LOGTAIL /var/log/router >> $TMPDIR/check.$$
$LOGTAIL /var/log/httpd/error_log >> $TMPDIR/check.$$

次に,どんなログが大事で,どんなログがいらないかを設定します.特に,いらないログを設定することは大事です.一杯送られてきたら意味がないです から・・・.この設定は/etc/logcheck以下にありますが,今回はいらないログの設定を示します./etc/logcheck/ignoreに は,「こんな文字列があるものは,いらない!」という設定をすることができます.

authsrv.*AUTHENTICATE
cron.*CMD
cron.*RELOAD
cron.*STARTUP
ftp-gw.*: exit host
ftp-gw.*: permit host
ftpd.*ANONYMOUS FTP LOGIN
ftpd.*FTP LOGIN FROM
ftpd.*retrieved
ftpd.*stored
http-gw.*: exit host
http-gw.*: permit host
mail.local
named.*Lame delegation
named.*Response from
named.*answer queries
named.*points to a CNAME
named.*reloading
named.*starting
netacl.*: exit host
netacl.*: permit host
popper.*Unable
popper: -ERR POP server at
popper: -ERR Unknown command: "uidl".
telnetd.*ttloop:  peer died
tn-gw.*: exit host
tn-gw.*: permit host
x-gw.*: exit host
x-gw.*: permit host
xntpd.*Previous time adjustment didn't complete
xntpd.*time reset
root 1
named.*Cleaned
named.*USAGE
named.*NSTATS
named.*XSTATS
ntpd.*ntpd
ntpd.*precision
ntpd.*using
ntpd.*frequency
ntpd.*: synchronisation lost
postfix/pickup.*: uid=
postfix/cleanup.*: message-id
postfix/nqmgr.*: from=
postfix/local.*: to=
postfix/smtp.*250
postfix/smtpd.*: connect from
postfix/smtpd.*: disconnect from
postfix/smtpd.*client
sshd.*: Connection closed by
sshd.*: Accepted rsa
PAM_pwdb.*: (login) session opened
PAM_pwdb.*: (login) session closed
named.*bad referral
named.*Lame server on
popper.*: login
popper.*: Stats:
xinetd.*pop3

.* というのはワイルドカードです.上手に利用して,アタックの早期発見を心がけましょう.

最後に,一時間おきにlogcheckを起動します.cronに書いておきます.

% su
% crontab -e
(この行を追加)
00 * * * * /usr/bin/logcheck.sh

SYSLOG機能を利用したルータのログ管理

私の所有するルータには,SYSLOG機能があります.ログを,指定したIPアドレスに送ってくれる機能です.もしルータにこの機能があるなら,絶対に利用するべきです.

ルータの設定は説明書にお任せして,ここではサーバ側の設定を行います./etc/sysconfig/syslogを編集します.

#Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-m 0 -r" <-ここを変更
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
#    once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-2"

SYSLOGD_OPTIONS="-m 0 -r"の"-r"オプションをつけることで外部からのSYSLOGを受け付けるようになります.最後に,SYSLOGデーモンを再起動すると,/var/log/messagesにルータのログが記録されていきます.

% /etc/init.d/syslog restart

Gentoo Linuxの強力なパッケージ管理(emerge と glsa-check)を利用したアップデート

セキュリティホールを埋めるためのアップデートはLinuxでは依存関係なんかがあってとても面倒くさいものだとされてきましたが、Gentoo LinuxにはPortageと呼ばれる仕組みで強力なパッケージ管理がされているため、依存関係をほぼ意識することなくアップデートを行えるようになり ました。ここでは、Portageを利用したアップデートを仕方を紹介します。

# emerge --sync

で更新情報のアップデートを行った後、

# glsa-check -t new
dns home # glsa-check -t new
WARNING: This tool is completely new and not very tested, so it should not be
used on production systems. It's mainly a test tool for the new GLSA release
and distribution system, it's functionality will later be merged into emerge
and equery.
Please read http://www.gentoo.org/proj/en/portage/glsa-integration.xml
before using this tool AND before reporting a bug.

This system is affected by the following GLSA:
200510-26 ←この辺から注目
200601-10
200511-14
200605-02
200605-05

というように、セキュリティ関係でアップデートが必要な情報があった場合、その日付が表示されます。さらに、

# glsa-check -l 200601-10
WARNING: This tool is completely new and not very tested, so it should not be
used on production systems. It's mainly a test tool for the new GLSA release
and distribution system, it's functionality will later be merged into emerge
and equery.
Please read http://www.gentoo.org/proj/en/portage/glsa-integration.xml
before using this tool AND before reporting a bug.

[A] means this GLSA was already applied,
[U] means the system is not affected and
[N] indicates that the system might be affected.

200601-10 [N] Sun and Blackdown Java: Applet privilege escalation
( dev-java/sun-jre-bin dev-java/blackdown-jre dev-java/blackdown-jdk ... )

glsa-check -l yyyymm-dd といった文法で、その更新情報の内容が表示されます。必要だと思われたら、

# emerge -u [更新すべきパッケージ名]

とし、パッケージの更新を行います。cronでglsa-checkを動かしておくと、毎日メールなりで更新情報が届けられます。

Gentoo Linuxに玄人志向のGbE-PCI(VT6122)をインストールした時のメモ

家庭内LANをGigabit Ethernetにした時に、Gentoo Linuxサーバに玄人志向のGbE-PCIをインストールした時でメモです。

GbE-PCIは、 VIA製VT6122を搭載した、玄人志向のギガビットのNICです。1000円で購入でき、性能も比較的高評価です。Gentoo Linuxにもインストール可能ですが、私の場合は結構苦労したので、インストール方法を紹介します。なお、カーネルは2.6.16時の記録です。

まず、ドライバをダウンロードします。
VIA Velocity Family Gigabit Ethernet Driver

解凍したら、解凍したディレクトリに移動して、

# make
# make install

で、コンパイルに成功したらラッキー。しかし、私はコンパイルでエラー発生。その場合は、以下の内容を"patch.txt"として保存します。た だし、改行コードなどは「velocity_main.c」ファイルと同じくしなければなりません。私は、Fedora Core5上のFireFoxでコピーした後、gEditでペーストし、保存しました。

--- velocity_main.orig.c        2005-07-22 10:57:16.000000000 +0200
+++ velocity_main.c     2006-05-17 22:14:14.000000000 +0200
@@ -1957,7 +1957,11 @@
#endif
             if(pci_dev_driver(pcid) == &velocity_driver) {
                 if (pci_get_drvdata(pcid))
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11)
+                    velocity_suspend(pcid, PMSG_SUSPEND);
+#else
                     velocity_suspend(pcid, 3);
+#endif
             }
         }
     }
@@ -2001,7 +2005,11 @@
         velocity_save_pci_context(pInfo, &pInfo->pci_context);
         velocity_shutdown(&pInfo->hw);
         pci_disable_device(pcid);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11)
+  power_status = pci_set_power_state(pcid, pci_choose_state(pcid, state));
+#else
         power_status = pci_set_power_state(pcid, state);
+#endif
     }
#else
     pci_disable_device(pcid);

保存後、

# patch < patch.txt

として、「velocity_main.c」にパッチを当てます。

# make
# make install

で、モジュールのコンパイルとインストールが終了。コンパイルできなければ文字コード、改行コードなどを改めてみてください。

ディレクトリ /etc/modules.autoload.d にあるkernel-2.6のファイルに、

velocityget

の一行を書き込みます。これで、起動時にvelocitygetのモジュールが読み込まれます。

# cd /etc/init.d
# cp net.eth0 net.eth1
# rc-update add net.eth1 default

で、再起動時にeth0とeth1が起動するようにし、

# vi /etc/conf.d/net

で、ネットワークの設定を行います.

# /etc/conf.d/net:
# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/conf.d/net,v 1.7
# 2002/11/18 19:39:22 azarah Exp $

# Global config file for net.* rc-scripts

# eth0とeth1のネットワークの設定
#
iface_eth0="192.168.0.10 broadcast 192.168.0.255 netmask 255.255.255.0"
iface_eth1="192.168.0.20 broadcast 192.168.0.255 netmask 255.255.255.0"

#ゲートウェイをどうするか。インタフェース/デフォルトゲートウェイ
gateway="eth1/192.168.0.1"

再起動してみて、

# /sbin/ifconfig
eth1      Link encap:Ethernet  HWaddr 00:02:2A:DD:05:45
          inet addr:192.168.0.20  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:85241 errors:0 dropped:0 overruns:0 frame:0
          TX packets:119855 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:26372969 (25.1 Mb)  TX bytes:45627488 (43.5 Mb)
          Interrupt:9 Base address:0x1800

とし、「HWaddr 00:02:2A:DD・・・」となっているほうが今回インストールしているVT6122のNICとなります。従来ついているNICと逆転するかもしれま せん(従来ついているのがeth0からeth1になったりする)。場合によっては/etc/conf.d/netを所望の設定になるようにさらに設定しな おします。