2005年4月27日

RRDtool & HotSaNIC

20050427hot.jpgHotSaNIC でデータ集めて
RRDtool でグラフを描く感じ?
CPU の状況とか、グラフで確認出来ます

apt-get install rrdtool librrds-perl(/unstable)

HotSaNIC のダウンロード
tar zxvf hotsanic-0.5.0-pre5.tgz
mv ./HotSaNIC /usr/local/
cd /usr/local/HotSaNIC/

./setup.pl を実行、全部 Yes あとで調整出来る

その他設定
/usr/local/HocSaNIC/settings
DAEMONDIR="/usr/local/HotSaNIC"
BINPATH="/usr/bin"
WEBDIR="/web/HotSaNIC"


一度動かして、データ取れるまで放置
./rrdtimer -D

ページ作ったり、画像作ったり
./makeindex.pl
./convert.pl

起動時に実行するように
cp ./rrdgraph /etc/init.d/
update-rc.d rrdgraph defaults

いろいろ出来て、楽しめそうですが
一番HD容量の監視をしたかったのに、画像の通り
単位変えたい・・ってより自動で変わらないの?


詳しく書いてあります
面白く書いてあります

2005年4月20日

Clam Antivirus

メールは来ないけど、ウィルスチェックもしてみる
apt-get install clamav-daemon clamav-milter clamav-freshclam 他
なんかもう、色々と言われるがままに関連するものを

設定は、あまり難しいことはない気が
更新データのダウンロード先を日本にした位?

Sendmail → milter ( → clamav → spamassassin ) →
Sendmail が受け取って、チェックしてどこかに配送。


Sendmail 連携設定
/etc/mail/sendmail.mc

INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav/clamav-milter.ctl, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clamav,spamassassin')dnl

clamav & milter 起動 & Sendmail を再起動
ウィルスは、この辺から送って貰いテストしてみる。

SpamAssassin

メール来ないけどスパム対策
学習型フィルター搭載らしい
Sendmail → milter → SpamAssassin
milter は仲介役みたいな感じ

apt-get install spamass-milter

新しいバージョンを欲しがるので
Depends: libgcc1 (>= 1:3.4.1-3) but 1:3.0.4-7 is to be installed
Depends: libstdc++5 (>= 1:3.3.4-1) but it is not going to be installed

apt-get install libgcc1/unstable libstdc++5/unstable
apt-get install spamass-milter/unstable

本体が一緒に入らない
こっちも unstable 入れないと変な動きする
apt-get install spamassassin/unstable
→ apt-get install debconf/unstable
→ apt-get install perl-base/unstable perl-modules/unstable perl/unstable
→ apt-get install libhtml-parser-perl/unstable libdigest-sha1-perl/unstable

※ unstable は自己責任で


デーモンモードにする
/etc/default/spamassassin

ENABLED=1

milter設定
/etc/mail/sendmail.mc

INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/sendmail/spamass.sock, F=,T=S:4m;R:4m;E:10m')dnl

sendmail -d0.1 で MILTER が
出なければ使えるようにしないとダメ


既存のルールを取って来る
~/.spamassasin/user_prefs
wget この辺

スパム(spam)と、普通(ham)を覚えさせる
gzip -d sample-nonspam.txt.gz
wget この辺
tar jxf yoh_spam_050102.tar.bz2

sa-learn --ham ./sample-nonspam.txt
sa-learn --spam ./sample-spam.txt
sa-learn --spam ./spam/*

あとは、ほっとけばいいのかな?


起動順でエラーが出るので変更
update-rc.d -f sendmail remove
update-rc.d sendmail defaults 25

S19spamassassin → S20sendmail → S20spamass-milter
S19spamassassin → S20spamass-milter → S25sendmail


※ ご注意
unstable 入れまくったら
以前入れた oinkmaster が気づけば消え
Perlのバージョンが微妙にズレてて入らず
ずいぶんとシステムがおかしくなりました

やけになったら入れ直せたけど、悲しい
stable な環境を壊したくない人は気をつけましょう

やけな結果
apt-show-versions | grep unstable

libstdc++5/unstable uptodate 1:3.3.5-12
libgcrypt11/unstable uptodate 1.2.0-11
cf/unstable uptodate 3.7Wpl2-2
libgnutls11/unstable uptodate 1.0.16-13
debconf-english/unstable uptodate 1.4.48
gcc-3.3-base/unstable uptodate 1:3.3.5-12
zlib1g/unstable uptodate 1:1.2.2-4
spamass-milter/unstable uptodate 0.3.0-1
libtasn1-2/unstable uptodate 0.2.10-4

apt-show-versions | grep testing

libdb3/testing uptodate 3.2.9-22
grub/testing uptodate 0.95+cvs20040624-16
libpcap0.8/testing uptodate 0.8.3-5
spamassassin/testing uptodate 3.0.2-1
libpcre3/testing uptodate 4.5-1.1
libdigest-sha1-perl/testing uptodate 2.10-1
perl-modules/testing uptodate 5.8.4-8
libwww-perl/testing uptodate 5.803-4
snort-rules-default/testing uptodate 2.3.2-2
libc6/testing uptodate 2.3.2.ds1-20
snort/testing uptodate 2.3.2-2
libhtml-parser-perl/testing uptodate 3.45-2
spamc/testing uptodate 3.0.2-1
oinkmaster/testing uptodate 1.1-1
snort-common/testing uptodate 2.3.2-2
libncurses5/testing uptodate 5.4-4
libgdbm3/testing uptodate 1.8.3-2
perl/testing uptodate 5.8.4-8
mb2md/testing uptodate 3.20-1
libssl0.9.7/testing uptodate 0.9.7e-3
libgpg-error0/testing uptodate 1.0-1
perl-base/testing uptodate 5.8.4-8
libdb1-compat/testing uptodate 2.1.3-7
libcompress-zlib-perl/testing uptodate 1.34-1
libdb4.2/testing uptodate 4.2.52-18
libio-zlib-perl/testing uptodate 1.04-1
debconf/testing uptodate 1.4.30.13
libmilter0/testing uptodate 8.13.4-1
libgcc1/testing uptodate 1:3.4.3-12
libopencdk8/testing uptodate 0.5.5-10

woody 使ってる意味無いような( ゚-゚)

Sendmail

たぶん一番有名なメールサーバー
とりあえず受信は Qpopper にしとく

apt-get install sendmail
apt-get install cf
apt-get install qpopper

unable to qualify my own domain name
名前解決出来ないと怒るので hosts か dns で

環境的に aaa.net と bbb.net が
外からは、両方同じIPになります
今回の sendmail は aaa.net で
bbb.net 宛は relay する感じ。


sendmail.mc から sendmail.cf は
make して sendmail 再起動
db系は makemap するだけでOK


access_db 有効化
内部192.168.0. をRELAYする

/etc/mail/sendmail.mc

FEATURE(access_db)dnl

/etc/mail/access

192.168.0 RELAY


mailertable 有効化
内部 bbb.net へ送信

/etc/mail/sendmail.mc

FEATURE(mailertable)dnl

/etc/mail/mailertable

bbb.net esmtp:[192.168.0.bbb]

[ 逆引きさせない ]

relay-domains 有効化
外から受け取るようにする

/etc/mail/sendmail.mc

define(`confCR_FILE', `/etc/mail/relay-domains')dnl

/etc/mail/relay-domains

aaa.net
bbb.net


bbb.net から受け取れないので追記
ローカルドメイン使わなければOKぽいけど?
(bbb.net は Fedora を使ってます)

/etc/mail/access

localhost.localdomain RELAY

マスカレードすればいいかも
あくまで sendmail の設定

/etc/mail/sendmail.mc

MASQUERADE_AS(`$m')dnl


外から使うならそれなりに認証を
POP Before か SMTPAUTH あたり
今回は SMTPAUTH でいってみる

SMTPAUTH 設定
sendmailconfig した時に
libsasl とか足りなければ入れる

/etc/mail/sasl/Sendmail.conf

pwcheck_method: sasldb
#pwcheck_method: PAM
auto_transition: true

認証IDの追加
saslpasswd -u aaa.net test
ID test@aaa.net で認証する

確認
sasldblistusers
/etc/sasldb

user: test realm: aaa.net mech: CRAM-MD5
user: test realm: aaa.net mech: DIGEST-MD5
user: test realm: aaa.net mech: PLAIN

この辺が出ればOK

50-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN ← 対応してる認証方式
250-DELIVERBY
250 HELP
AUTH CRAM-MD5 ← 使った認証方式
334 PDIyODk2NjA1ODEuMjUyMjQzNUBkZ ← パスワード的なもの
235 2.0.0 OK Authenticated ← 成功


Maildir へ配送
courier-pop とか
Maildir に対応した物を入れる

ローカル配送を procmail に変更する
/etc/mail/sendmail.mc

FEATURE(`local_procmail')

procmail の設定
/home/.procmailrc

LOGFILE=$HOME/procmail.log
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR

メールフォルダ作成
maildirmake Maildir

/bin/mail が Maildir の
チェックが出来ないから使ってない


POP before SMTP
受信したら、送信出来るようになる
Sendmail+DRAC+Qpopper で

Debian だとパッケージがあったり
apt-get install qpopper-drac

/etc/drac/dracd.allow
strings /var/lib/drac/dracd.db

/etc/mail/sencmail.mc

LOCAL_CONFIG
## Custom configurations below (will be preserved)
#dynamic relay authorization control map
Kdrac btree /var/lib/drac/dracd
LOCAL_RULESETS
SLocal_check_rcpt
#allow recent POP/IMAP mail clients to relay
R$* $: $&{client_addr}
R$+ $: $(drac $1 $: ? $)
R? $@ ?
R$+ $@ $#OK

2005年4月19日

Can't locate module

・ 問題
Can't locate module char-major-10-135
という警告が出るようになりました

・ 原因
Real Time Clock サポートを
有効にしなかったのでしょう。

・ 対処
Real Time Clock を有効にすれば出なくなりますが
これは必須ではないので必ずしも有効にする必要はありません。
警告が邪魔なようであれば
次のような行を /etc/modutils/aliases に記述して
update-modules を実行すれば、以降この警告は出なくなります。

alias char-major-10-135 off


どっちがいいんだろ?
/etc/modules.conf
alias char-major-10-135 off

どっちも update-modules したら
元に戻ったりするので、こんな感じで

/etc/modutils/arch/i386

#alias char-major-10-135 rtc
alias char-major-10-135 off

その後 update-modules で。

swap領域の追加。

swap領域を増やしたいな、と
入れ直し?とか思ったらこんな方法が

増やしたい容量(メガ)× 1024 = count
384×1024 = 393216
現状、約128Mなので512Mにする感じ

dd if=/dev/zero of=/swapfile bs=1024 count=393216
mkswap swapfile
swapon swapfile

cat /proc/swaps で
/swapfile が表示されてればOK

起動時に自動で有効にする
/etc/fstab

# (file system) (mount point) (type) (options) (dump) (pass)
/swapfile swap swap defaults 0 0


スワップ領域追加
パーティションを追加する場合

2005年4月15日

snort

IDS(Intrusion Detection System)
俗にいう、侵入検知システム
ネットワーク型IDSということで
データの監視をするみたいです

自動でルールを更新してくれる
oinkmaster を使うなら
snort は unstable版 を入れた方がいいっぽい(下の方に)


apt-get install snort
debconf は eth0 192.168.0.0./24 root

syslogへ出力
/etc/snort/snort.conf

output alert_syslog: LOG_AUTH LOG_ALERT

logrotate
/etc/logrotate.d/snort

/var/log/snort/portscan.log /var/log/snort/alert {
daily
rotate 30
compress
notifempty
create 600 snort snort
sharedscripts
postrotate
/etc/init.d/snort restart > /dev/null
endscript
}

logcheck使ってたら、見るログに追加
/etc/logcheck/logcheck.logfiles

/var/log/snort/alert

(syslogに出力したら意味なさげ)

ACTIVE SYSTEM ATTACK!
というメールが来るようになってビビる。


ルールを自動でアップデート
apt-get install oinkmaster

更新先のファイルが無いとエラーが
確認すると、どうも更新が有料とかなんとか
5日遅れでいいなら無料らしい

どっちにしろ、登録が必要で
登録してログインすると Oink Code を取得出来る

更新先の変更
/etc/oinkmaster.conf

#url = http://www.snort.org/dl/rules/snortrules-snapshot-2_2.tar.gz
url = http://www.snort.org/pub-bin/oinkmaster.cgi//snortrules-snapshot-2.2.tar.gz

更新出来るようになったので cron に登録
/etc/cron.d/oinkmaster

/usr/sbin/oinkmaster -o /etc/snort -b /etc/snort/backup


ルール更新して snort を起動すると
そんなルールないです、とエラー
2.2用のルールなのに snort -V で 1.8.4Beta とか
サイト探したけど、1.8用のルールないっぽい

一度全部消す
apt-get remove --purge snort

新しいのを入れる
apt-get install snort-rules-default/unstable snort-common/unstable snort/unstable
apt-get install stat も要るっぽい

設定はsyslogへ出力くらいで
logrotateは、勝手にやってくれる

snort -V で Version 2.3.2
ルール更新してもOK(新しい分にはいいらしい)


詳しい説明や設定はこの辺で
Snortとは?
日本 Snort ユーザ会

syslog-ng

NewかNextな感じで、新世代か次世代なsyslog
TCPでログ送ったりメールを送ったり

swatchでメール送信するよりいいのかな、と
とりあえずインストールしてみる
apt-get install syslog-ng


Priority: 1を見つけたらrootへメールする感じ
/etc/syslog-ng/syslog-ng.conf

destination email_alert_script {program ("/usr/local/bin/alert_mail.sh"); };
filter high_priority {match ("Priority: 1"); };
log { source(src); filter(high_priority); destination(email_alert_script); };

メール送信部
/usr/local/bin/aleat_mail.sh

#!/bin/sh
while read line; do
echo $line |mail -s "High Priority Snort Alert" root
done

chmod +x aleat_mail.sh

要らないログ(logcheck 使ってたら)
/etc/logcheck/logcheck.ignore

syslog-ng\[.*\]: STATS: dropped 0

syslog の受信 UDP ポートで待機

source src { unix-stream("/dev/log"); internal(); udp(); };

UDP のスキャン
nmap localhost -sU


syslog() 及び syslogd の考察
syslogdの設定をマスターしよう
安全性の高いログ・サーバへの乗り換えのススメ
syslog-ngへの切り替え
Snortにリアルタイム警告を実装する
BSDとか
Optionsとか
説明とか

2005年4月11日

KNOPPIX インストール?

デスクトップでLinux使ってみようかなと
CDから起動出来るし、Debian系だし

インストールってより
CDさえ出来れば起動するはず
この辺からダウンロードしてCDに焼く

CD入れて、起動したらご自由に
ブートオプションよくわからないけど
家のは failsafe をつけないと起動しなかった


とりあえず、ネットワーク設定
KDEメニュー → KNOPPIX → Network/Internet
→ ネットワークカードの設定

設定の保存
KDEメニュー → KNOPPIX → Configure
→ KNOPPIXの設定を保存

CDから起動してるので
設定をどこかに残さないと
また元の設定に戻ってしまう

例えばFDに保存して、次回起動するときに
knoppix floppyconf
knoppix myconfig=/mnt/auto/floppy
knoppix myconfig=scan
(どれでも)
とやれば、FDから設定を読み込んでくれる


軽く使ってみたけど CD からは遅すぎ
ずっと使うにはイケてない気が
Rescue CD 的な使い方がいいような?


KNOPPIXの基礎
WindowsへインストールできるKNOPPIX 3.4

2005年4月 5日

noip2

DDNS用の起動スクリプト
/etc/init.d/noip2
stop がうまく効かない

start-stop-daemon の --make-pidfile がよろしくない

そもそも、noipのプログラムがよろしくないらしい
そう言われても、どうにもこうにも
とりあえずエラーが出なければと適当な修正

/etc/init.d/noip2

stop)
echo -n "Shutting down dynamic address update:"
→ kill `pidof noip2`
→ rm -f /var/run/noip2.pid
# start-stop-daemon --stop --pidfile /var/run/noip2.pid \
# --oknodo --retry 30 --exec $DAEMON
echo "noip2."
;;

restart)
echo -n "Restarting dynamic address update: "
→ kill `pidof noip2`
# start-stop-daemon --stop --pidfile /var/run/noip2.pid \
# --oknodo --retry 30 --exec $DAEMON
start-stop-daemon --start --pidfile /var/run/noip2.pid \
--exec $DAEMON
echo "noip2."
;;


公式サイトのスクリプト自体、イケてないらしい
sarge と sid には、パッケージが。
no-ip (2.1.1-4 Debian:unstable)

logrotate

仕事柄、ログをちゃんと見るようになったので
エラーとか警告とか、潰していこうかなと

/var/log/xferlog が
ローテーションしてないっぽいので作ってみる

基本設定は触らず
/etc/logrotate.conf
weekly
rotate 4
create
include /etc/logrotate.d

こんなファイルを作る
/etc/logrotate.d/xferlog

/var/log/xferlog {
compress
notifempty
}

毎週ログを圧縮して作成、4世代まで?残す
weekly / rotate 4 / create
この辺は記載しなくても
logrotate.conf から引き継ぐ感じ

/var/log/xferlog.1.gz
その内、こんなのが出来てればOK

logrotateの実行結果
/var/lib/logrotate/status


logrotateを使いこなしたい
各設定の説明
LogファイルのRotate