初回起動時のSetup Agentで下記設定を行う
# service cups stop # chkconfig cups off # chkconfig --list cups 0:off 1:off 2:off 3:off 4:off 5:off 6:off ←ランレベル2,3,4,5を確認※不要サービス停止についてはここも参考に
# service iptables stop # chkconfig iptables off
# setenforce 0 # getenforce Permissive ←確認 # vi /etc/sysconfig/selinux SELINUX=disabled ←disabledにして無効化
# vi /etc/hosts.deny ALL:ALL # vi /etc/hosts.allow ALL:192.168.1.
# useradd admin # passwd admin
# groupadd appgroup
# useradd -G appgroup appuser # passwd appuser
# usermod -G wheel admin # vi /etc/pam.d/su auth required pam_wheel.so use_uid ←コメント記号#を外す
# vi /etc/pam.d/su auth required pam_wheel.so root_only ←root_only と記述
# visudo %wheel ALL=(ALL) ALL ←コメント除去 wheelグループはsuでrootになれるから許可 hoge ALL=(ALL) ALL ←パスワードなしで何でも許可 hoge ALL=(ALL) PASSWD:ALL ←パスワード必須にする場合(普通はこっち)
# visudo Defaults syslog=local3 # vi /etc/syslog.conf local3.* /var/log/sudo.log # service syslog restart
# vi /etc/sysconfig/prelink PRELINKING=no # prelink -ua
# service yum-updatesd stop # yum -y remove yum-updatesd
# yum -y update
# yum -y install yum-cron # service yum-cron start # chkconfig yum-cron on
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm # rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm # vi /etc/yum.repos.d/rpmforge.repo #enabled = 1 enabled = 0 ←デフォルトでは有効にならないようにする
# yum -y install ntp
# ntpdate ntp.dnsbalance.ring.gr.jp
# service ntpd start # chkconfig ntpd on
# vi /etc/ssh/sshd_config Protocol 2 ← #を削除して 2 に変更(SSH2でのみ接続を許可) PermitRootLogin no ← #を削除して no に変更(スーパーユーザでのログインを禁止) PasswordAuthentication no ← #を削除して no に変更(通常のパスワードではなく鍵方式に変更) PermitEmptyPasswords no(空パスワードの禁止) AuthorizedKeysFile .ssh/authorized_keys ←#を削除(公開鍵ファイルの場所をユーザのホームディレクトリ下の .ssh にする) AllowUsers hoge ←SSH接続許可ユーザ
# vi /etc/ssh/sshd_config Protocol 2 ← #を削除して 2 に変更(SSH2でのみ接続を許可) PermitRootLogin no ← #を削除して no に変更(スーパーユーザでのログインを禁止) PasswordAuthentication yes ← #を削除 PermitEmptyPasswords no(空パスワードの禁止) AllowUsers hoge ←SSH接続許可ユーザ
$ ssh-keygen -t rsa Generating public/private rsa key pair. ↓何も入力しないでエンターキー押す Enter file in which to save the key (/home/hoge/.ssh/id_rsa): Created directory '/home/hoge/.ssh'. ↓パスワードを入力 Enter passphrase (empty for no passphrase): ↓再度パスワードを入力 Enter same passphrase again: Your identification has been saved in /home/hoge/.ssh/id_rsa. Your public key has been saved in /home/hoge/.ssh/id_rsa.pub. The key fingerprint is: 73:21:a5:f6:d5:d5:ac:1b:7c:7f:fd:3d:5c:46:7a:7d hoge@hogeserver.jp $ ls -la /home/hogeuser/.ssh/ ←鍵の作成先確認
$ cat /home/hoge/.ssh/id_rsa.pub >> /home/hoge/.ssh/authorized_keys $ rm -f /home/hoge/.ssh/id_rsa.pub
クライアントに秘密鍵をコピーする
# yum -y --enablerepo=rpmforge install clamd
# vi /etc/clamd.conf rootで動作するようにする 設定ファイル編集 #User clamav
# cd /tmp←/tmp/clamd が無いとか怒られたので作成 # mkdir clamd # chmod 700 clamd # freshclam
# service clamd start # chkconfig clamd on
# vi clamscanDaily.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`
echo i["$i"]
excludeopt="${excludeopt} --exclude-dir=$i"
echo excludopt["$excludeopt"]
else
excludeopt="${excludeopt} --exclude=$i"
echo excludopt["$excludeopt"]
fi
done
fi
CLAMSCANTMP=`mktemp`
freshclam > /dev/null←clamavインストール時に別途cronでの日次処理設定されるのでいらんかも
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP
# vi clamscan.exclude /proc/ /sys/ /tmp/
# mv clamscanDaily.sh /etc/cron.daily/
# yum -y --enablerepo=rpmforge install chkrootkit
# chkrootkit | grep INFECTED
# vi chkrootkit
#!/bin/bash
PATH=/usr/bin:/bin
TMPLOG=`mktemp`
# chkrootkit実行
chkrootkit > $TMPLOG
# ログ出力
cat $TMPLOG | logger -t chkrootkit
# SMTPSのbindshell誤検知対応
if [ ! -z "$(grep 465 $TMPLOG)" ] && \
[ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
sed -i '/465/d' $TMPLOG
fi
# rootkit検知時のみroot宛メール送信
[ ! -z "$(grep INFECTED $TMPLOG)" ] && \
grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root
rm -f $TMPLOG
# chmod 700 chkrootkit
# mv chkrootkit /etc/cron.daily
# mkdir chkrootkitcmd # cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname` chkrootkitcmd/
# chkrootkit -p /root/chkrootkitcmd|grep INFECTED
# yum -y install screen
# yum -y install sysstat