9:NTPサーバーの設定

ntpサーバーはインストールされていたので、その設定ファイルの /etc/ntp.conf の設定

restrict 192.168.xx.xx mask 255.255.255.0 nomodify notrap ← 18行目位、先頭の#を外し、IPレンジを自分に合わせる
**ここから(20行目位)
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
**ここまで消去、centosのntpは使わない。代わりに次を挿入
server 133.100.10.8 iburst # NTPサーバー(stratum 1)
server 210.173.160.27 iburst # 上記サーバーと直接同期しているNTPサーバー(stratum 2)
server 202.224.32.4 iburst # プロバイダのNTPサーバー※

サーバーをIPアドレスで設定しているのはDNSを引かなくて済むから
一度手動で時刻を合わせる
# ntpdate 133.243.238.163

 6 May 06:08:25 ntpdate[17950]: step time server 133.243.238.163 offset -29.735837 sec

ntpを起動する
# service ntpd start
# chkconfig ntpd on
NTPサーバーへの時刻同期状態確認
# ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter
 ==============================================================================
*ntp-b2.nict.go. .NICT.           1 u    2   64    1    5.517    0.712   0.098
 ntp1.jst.mfeed. 172.29.2.50      2 u    1   64    1  258.952  -126.97  45.508
 orion.asahi-net 133.243.238.244  2 u    -   64    1    3.856    0.853   0.466

行の最初に * や + がついて入ればOK、ない時は数分後に再度行うと表示される筈。
CentOS はシステム終了時にハードウェアクロックの時刻をシステムクロックの時刻に合わせるようになっているらしいが、このサーバーは原則、動きっぱなしなので ハードウェアのクロックとも同期をさせるが、週に1度ぐらいでいいと思うので、/etc/cron.weeklyにsethcと言う名で

#!/bin/bash
hwclock -- systohc

実行フラグを付ける
# chmod +x /etc/cron.weekly/sethc
これで一週間に1回システム時間とハードウェアのクロックを同期する。

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

8:ファイアウォール構築(iptables)

参考URL:http://centossrv.com/iptables.shtml
スクリプトの作成(2016ー5ー10、スクリプトを変更しました。)
# gedit iptables.sh

#!/bin/bash

#---------------------------------------#
# 設定開始 #
#---------------------------------------#

# 内部ネットワークアドレス定義
LOCALNET=192.168.XXX.0/24

# XXXは自身のIPに変更の事

#---------------------------------------#
# 設定終了 #
#---------------------------------------#

# ファイアウォール停止(すべてのルールをクリア)
if [ -f /usr/libexec/iptables/iptables.init ]; then
/usr/libexec/iptables/iptables.init stop
else
/etc/rc.d/init.d/iptables stop
fi

# デフォルトルール(以降のルールにマッチしなかった場合に適用するルール)設定
IPTABLES_CONFIG=`mktemp`
echo "*filter" >> $IPTABLES_CONFIG
echo ":INPUT DROP [0:0]" >> $IPTABLES_CONFIG # 受信はすべて破棄
echo ":FORWARD DROP [0:0]" >> $IPTABLES_CONFIG # 通過はすべて破棄
echo ":OUTPUT ACCEPT [0:0]" >> $IPTABLES_CONFIG # 送信はすべて許可
echo ":ACCEPT_COUNTRY - [0:0]" >> $IPTABLES_CONFIG # 指定した国からのアクセスを許可
echo ":DROP_COUNTRY - [0:0]" >> $IPTABLES_CONFIG # 指定した国からのアクセスを破棄
echo ":LOG_PINGDEATH - [0:0]" >> $IPTABLES_CONFIG # Ping of Death攻撃はログを記録して破棄

# 自ホストからのアクセスをすべて許可
echo "-A INPUT -i lo -j ACCEPT" >> $IPTABLES_CONFIG

# 内部からのアクセスをすべて許可
echo "-A INPUT -s $LOCALNET -j ACCEPT" >> $IPTABLES_CONFIG

# 内部から行ったアクセスに対する外部からの返答アクセスを許可
echo "-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT" >> $IPTABLES_CONFIG

# SYN Cookiesを有効にする
# ※TCP SYN Flood攻撃対策
sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null
sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

# ブロードキャストアドレス宛pingには応答しない
# ※Smurf攻撃対策
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null
sed -i '/net.ipv4.icmp_echo_ignore_broadcasts/d' /etc/sysctl.conf
echo "net.ipv4.icmp_echo_ignore_broadcasts=1" >> /etc/sysctl.conf

# ICMP Redirectパケットは拒否
sed -i '/net.ipv4.conf.*.accept_redirects/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_redirects=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_redirects=0" >> /etc/sysctl.conf
done

# Source Routedパケットは拒否
sed -i '/net.ipv4.conf.*.accept_source_route/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_source_route=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_source_route=0" >> /etc/sysctl.conf
done

# フラグメント化されたパケットはログを記録して破棄
echo "-A INPUT -f -j LOG --log-prefix \"[IPTABLES FRAGMENT] : \"" >> $IPTABLES_CONFIG
echo "-A INPUT -f -j DROP" >> $IPTABLES_CONFIG

# 外部とのNetBIOS関連のアクセスはログを記録せずに破棄
# ※不要ログ記録防止
echo "-A INPUT ! -s $LOCALNET -p tcp -m multiport --dports 135,137,138,139,445 -j DROP" >> $IPTABLES_CONFIG
echo "-A INPUT ! -s $LOCALNET -p udp -m multiport --dports 135,137,138,139,445 -j DROP" >> $IPTABLES_CONFIG
echo "-A OUTPUT ! -d $LOCALNET -p tcp -m multiport --sports 135,137,138,139,445 -j DROP" >> $IPTABLES_CONFIG
echo "-A OUTPUT ! -d $LOCALNET -p udp -m multiport --sports 135,137,138,139,445 -j DROP" >> $IPTABLES_CONFIG

# 1秒間に4回を超えるpingはログを記録して破棄
# ※Ping of Death攻撃対策
echo "-A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT" >> $IPTABLES_CONFIG
echo "-A LOG_PINGDEATH -j LOG --log-prefix \"[IPTABLES PINGDEATH] : \"" >> $IPTABLES_CONFIG
echo "-A LOG_PINGDEATH -j DROP" >> $IPTABLES_CONFIG
echo "-A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH" >> $IPTABLES_CONFIG

# 全ホスト(ブロードキャストアドレス、マルチキャストアドレス)宛パケットはログを記録せずに破棄
# ※不要ログ記録防止
echo "-A INPUT -d 255.255.255.255 -j DROP" >> $IPTABLES_CONFIG
echo "-A INPUT -d 224.0.0.1 -j DROP" >> $IPTABLES_CONFIG

# 113番ポート(IDENT)へのアクセスには拒否応答
# ※メールサーバ等のレスポンス低下防止
echo "-A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset" >> $IPTABLES_CONFIG

# ACCEPT_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを許可するユーザ定義チェイン作成
ACCEPT_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
echo "-A ACCEPT_COUNTRY -s $addr -j ACCEPT" >> $IPTABLES_CONFIG
done
grep ^$1 $IP_LIST >> $CHK_IP_LIST
}

# DROP_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを破棄するユーザ定義チェイン作成
DROP_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
echo "-A DROP_COUNTRY -s $addr -m limit --limit 1/s -j LOG --log-prefix \"[IPTABLES DENY_COUNTRY] : \"" >> $IPTABLES_CONFIG
echo "-A DROP_COUNTRY -s $addr -j DROP" >> $IPTABLES_CONFIG
done
grep ^$1 $IP_LIST >> $CHK_IP_LIST
}

# IPアドレスリスト取得
IP_LIST=/tmp/cidr.txt
CHK_IP_LIST=/tmp/IPLIST
if [ ! -f $IP_LIST ]; then
wget -q http://nami.jp/ipv4bycc/cidr.txt.gz
gunzip -c cidr.txt.gz > $IP_LIST
rm -f cidr.txt.gz
fi
rm -f $CHK_IP_LIST

# 日本からのアクセスを許可するユーザ定義チェインACCEPT_COUNTRY作成
ACCEPT_COUNTRY_MAKE JP
# 以降,日本からのみアクセスを許可したい場合はACCEPTのかわりにACCEPT_COUNTRYを指定する

# 全国警察施設への攻撃元上位5カ国(日本・アメリカを除く)からのアクセスをログを記録して破棄
# http://www.cyberpolice.go.jp/detect/observation.htmlより
DROP_COUNTRY_MAKE CN
DROP_COUNTRY_MAKE CA
DROP_COUNTRY_MAKE IR
DROP_COUNTRY_MAKE NL
DROP_COUNTRY_MAKE TW
echo "-A INPUT -j DROP_COUNTRY" >> $IPTABLES_CONFIG

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここから) #
#----------------------------------------------------------#

# 外部からのTCP22番ポート(SSH)へのアクセスを日本からのみ許可
# ※SSHサーバーを公開する場合のみ
echo "-A INPUT -p tcp --dport 22 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# 外部からのTCP/UDP53番ポート(DNS)へのアクセスを許可
# ※外部向けDNSサーバーを運用する場合のみ
#echo "-A INPUT -p tcp --dport 53 -j ACCEPT" >> $IPTABLES_CONFIG
#echo "-A INPUT -p udp --dport 53 -j ACCEPT" >> $IPTABLES_CONFIG

# 外部からのTCP80番ポート(HTTP)へのアクセスを許可
# ※Webサーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 80 -j ACCEPT" >> $IPTABLES_CONFIG

# 外部からのTCP443番ポート(HTTPS)へのアクセスを許可
# ※Webサーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 443 -j ACCEPT" >> $IPTABLES_CONFIG

# 外部からのTCP21番ポート(FTP)へのアクセスを日本からのみ許可
# ※FTPサーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 21 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# 外部からのPASV用ポート(FTP-DATA)へのアクセスを日本からのみ許可
# ※FTPサーバーを公開する場合のみ
# ※PASV用ポート60000:60030は当サイトの設定例
#echo "-A INPUT -p tcp --dport 60000:60030 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# 外部からのTCP25番ポート(SMTP)へのアクセスを許可
# ※SMTPサーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 25 -j ACCEPT" >> $IPTABLES_CONFIG

# 外部からのTCP465番ポート(SMTPS)へのアクセスを日本からのみ許可
# ※SMTPSサーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 465 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# 外部からのTCP110番ポート(POP3)へのアクセスを日本からのみ許可
# ※POP3サーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 110 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# 外部からのTCP995番ポート(POP3S)へのアクセスを日本からのみ許可
# ※POP3Sサーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 995 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# 外部からのTCP143番ポート(IMAP)へのアクセスを日本からのみ許可
# ※IMAPサーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 143 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# 外部からのTCP993番ポート(IMAPS)へのアクセスを日本からのみ許可
# ※IMAPSサーバーを公開する場合のみ
#echo "-A INPUT -p tcp --dport 993 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# 外部からのUDP1194番ポート(OpenVPN)へのアクセスを日本からのみ許可
# ※OpenVPNサーバーを公開する場合のみ
#echo "-A INPUT -p udp --dport 1194 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# VPNインタフェース用ファイアウォール設定
# ※OpenVPNサーバーを公開する場合のみ
#[ -f /etc/openvpn/openvpn-startup ] && \
#grep ^iptables /etc/openvpn/openvpn-startup|sed -e 's/iptables //p' -e d >> $IPTABLES_CONFIG

# vnc server
echo "-A INPUT -p tcp --dport 5900:5910 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# bacula-fd --内部からのアクセスをすべて許可しているので必要ない--
#echo "-A INPUT -p tcp --dport 9102 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

# zabbix server --自ホストからのアクセスをすべて許可しているので必要ない--
#echo "-A INPUT -p tcp --dport 10051 -j ACCEPT_COUNTRY" >> $IPTABLES_CONFIG

#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここまで) #
#----------------------------------------------------------#

# 拒否IPアドレスからのアクセスはログを記録せずに破棄
# ※拒否IPアドレスは/root/deny_ipに1行ごとに記述しておくこと
# (/root/deny_ipがなければなにもしない)
if [ -s /root/deny_ip ]; then
for ip in `cat /root/deny_ip`
do
echo "-I INPUT -s $ip -j DROP" >> $IPTABLES_CONFIG
done
fi

# 上記のルールにマッチしなかったアクセスはログを記録して破棄
echo "-A INPUT -m limit --limit 1/s -j LOG --log-prefix \"[IPTABLES INPUT] : \"" >> $IPTABLES_CONFIG
echo "-A INPUT -j DROP" >> $IPTABLES_CONFIG
echo "-A FORWARD -m limit --limit 1/s -j LOG --log-prefix \"[IPTABLES FORWARD] : \"" >> $IPTABLES_CONFIG
echo "-A FORWARD -j DROP" >> $IPTABLES_CONFIG

# ファイアウォール設定反映
echo "COMMIT" >> $IPTABLES_CONFIG
cat $IPTABLES_CONFIG | iptables-restore
if [ -f /usr/libexec/iptables/iptables.init ]; then
/usr/libexec/iptables/iptables.init save
else
/etc/rc.d/init.d/iptables save
fi
rm -f $IPTABLES_CONFIG

ファイアウォール設定スクリプト外部関数作成

# gedit iptables_functions

# IPアドレスリスト取得関数定義
IPLISTGET(){
    # http://nami.jp/ipv4bycc/から最新版IPアドレスリストを取得する
    wget -q http://nami.jp/ipv4bycc/cidr.txt.gz
    gunzip cidr.txt.gz
    # 最新版IPアドレスリストが取得できなかった場合
    if [ ! -f cidr.txt ]; then
        if [ -f /tmp/cidr.txt ]; then
            # バックアップがある場合はその旨をroot宛にメール通知して処理を打ち切る
            echo cidr.txt was read from the backup! | mail -s $0 root
            return
        else
            # バックアップがない場合はその旨をroot宛にメール通知して処理を打ち切る
            echo cidr.txt not found!|mail -s $0 root
            exit 1
        fi
    fi
    # 最新版IPアドレスリストを /tmpへバックアップする
    /bin/mv cidr.txt /tmp/cidr.txt
}

IPアドレスリストチェックスクリプト作成
# gedit /etc/cron.daily/iplist_check.sh

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# 新旧IPLIST差分チェック件数(0を指定するとチェックしない)
# ※新旧IPLIST差分がSABUN_CHKで指定した件数を越える場合はiptables設定スクリプトを実行しない
# ※新旧IPLIST差分チェック理由はhttp://centossrv.com/bbshtml/webpatio/1592.shtmlを参照
SABUN_CHK=100
[ $# -ne 0 ] && SABUN_CHK=${1}

# チェック国コード
COUNTRY_CODE='JP CN IR RU CA NL TW'

# iptables設定スクリプトパス
IPTABLES=/root/iptables.sh

# iptables設定スクリプト外部関数取り込み
. /root/iptables_functions

# IPアドレスリスト最新化
rm -f IPLIST.new
IPLISTGET
for country in $COUNTRY_CODE
do
    if [ -f /tmp/cidr.txt ]; then
        grep ^$country /tmp/cidr.txt >> IPLIST.new
    else
        grep ^$country /tmp/IPLIST >> IPLIST.new
    fi
done
[ ! -f /tmp/IPLIST ] && cp IPLIST.new /tmp/IPLIST

# IPアドレスリスト更新チェック
diff -q /tmp/IPLIST IPLIST.new > /dev/null 2>&1
if [ $? -ne 0 ]; then
    if [ ${SABUN_CHK} -ne 0 ]; then
        if [ $(diff /tmp/IPLIST IPLIST.new | egrep -c '<|>') -gt ${SABUN_CHK} ]; then
            (
             diff /tmp/IPLIST IPLIST.new
             echo
             echo "$IPTABLES not executed."
            ) | mail -s 'IPLIST UPDATE' root
            rm -f IPLIST.new
            exit
        fi 
    fi
    /bin/mv IPLIST.new /tmp/IPLIST
    sh $IPTABLES > /dev/null
else
    rm -f IPLIST.new
fi

IPアドレスリストチェックスクリプトに実行権限付加
# chmod +x /etc/cron.daily/iplist_check.sh
ファイアウォール設定スクリプト実行
# sh iptables.sh
iptables自動起動設定
# chkconfig iptables on
開いているポートを調べる為にnmapとそのGUIフロントエンドをインストールする
# yum -y install nmap nmap-frontend
その後、ポートをチェックするがnmapの使い方はgoogleで調べてね
ここなんかは良さげhttp://knowledge.sakura.ad.jp/tech/97/

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

7:アンチウィルスソフト導入(Clam AntiVirus)

参考URL:http://centossrv.com/clamav.shtml
この前にhttps://centossrv.com/epel.shtmlを参照し、EPELレポジトリーをインストールする事
# yum -y install clamd
# gedit /etc/clamd.conf

#User clam ← 行頭に#を追加(root権限で動作するようにする)

Clam AntiVirusの起動
# service clamd start
# chkconfig clamd on
ウィルス定義ファイル最新化
# freshclam

ClamAV update process started at Mon May  5 14:29:28 2014
main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo)
WARNING: getfile: daily-18354.cdiff not found on remote server (IP: 211.10.155.48)
WARNING: getpatch: Can't download daily-18354.cdiff from db.jp.clamav.net
Trying host db.jp.clamav.net (203.212.42.128)...
WARNING: getfile: daily-18354.cdiff not found on remote server (IP: 203.212.42.128)
WARNING: getpatch: Can't download daily-18354.cdiff from db.jp.clamav.net
Trying host db.jp.clamav.net (219.94.128.99)...
WARNING: getfile: daily-18354.cdiff not found on remote server (IP: 219.94.128.99)
WARNING: getpatch: Can't download daily-18354.cdiff from db.jp.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
Downloading daily.cvd [100%]
daily.cvd updated (version: 18924, sigs: 929974, f-level: 63, builder: neo)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 236, sigs: 43, f-level: 63, builder: dgoddard)
Database updated (3354242 signatures) from db.jp.clamav.net (IP: 120.29.176.126)

毎日のアップデートは/etc/cron.dailyに自動的に出来た freshclam によりなされる。
ウィルススキャンテスト
# clamscan –infected –remove –recursive
全体をスキャンするので時間がかかる。スキャンが終わるとサマリーが表示され何行目かに ”Infected files: 0″ と表示がでていればOK。
テスト用のウィルスをダウンロード。(もちろん害はない) : は ; に変えてある(XOOPSの問題)
# wget http;//www.eicar.org/download/eicar.com
# wget http;//www.eicar.org/download/eicar.com.txt
# wget http;//www.eicar.org/download/eicar_com.zip
# wget http;//www.eicar.org/download/eicarcom2.zip
再度ウィルスチェック
# clamscan –infected –remove –recursive

/root/eicarcom2.zip: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicarcom2.zip: Removed ← ウィルス削除
/root/eicar.com.txt: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicar.com.txt: Removed ← ウィルス削除
/root/eicar_com.zip: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicar_com.zip: Removed ← ウィルス削除
/root/eicar.com: Eicar-Test-Signature FOUND ← ウィルス検知
/root/eicar.com: Removed ← ウィルス削除
以下省略

ウィルススキャン定期自動実行設定
# gedit virusscan

#!/bin/bash
PATH=/usr/bin:/bin
# clamd update yum -y update clamd > /dev/null 2>&1
# excludeopt setup
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
# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

# chmod +x virusscan
除外するファイル、ディレクトリーの設定、ディレクトリを除外する場合は末尾に「/」を付加すること
# echo “/proc/” >> clamscan.exclude
# echo “/sys/” >> clamscan.exclude
スクリプトをcron.dailyへ
# mv virusscan /etc/cron.daily/

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

6:chkrookitのインストール

参考URL:http://centossrv.com/chkrootkit.shtml
この前にhttp://www.kinryokai.net/modules/news/article.php?storyid=208を参照し、EPELレポジトリーをインストールする事
# yum -y install chkrootkit
# chkrootkit | grep INFECTED
grepは大文字と子文字を区別するので必ず大文字でINFECTEDとする事。
汚染されていない場合は not infected となるので、小文字でやると正常な分が表示される。
chkrootkit定期自動実行設定
# gedit 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

# upstartパッケージ更新時のSuckit誤検知対応
if [ ! -z "$(grep Suckit $TMPLOG)" ] && [ -z $(rpm -V `rpm -qf /sbin/init`) ]; then
       sed -i '/Suckit/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/
その後、http://centossrv.com/chkrootkit.shtmlを参考に”chkrootkitで使用する安全なコマンドの確保”をやっておく

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

ギャラリーの横幅を大きくする

wp-content/themes/twentyten/functions.phpを編集

/*
 * Set the content width based on the theme’s design and stylesheet.
 *
 * Used to set the width of images and content. Should be equal to the width the theme
 * is designed for, generally via the style.css stylesheet.
 */
if ( ! isset( $content_width ) )
    $content_width = 860; /* 内容部分の横幅の設定 */

/* Tell WordPress to run twentyten_setup() when the ‘after_setup_theme’ hook is run. */
add_action( ‘after_setup_theme’, ‘twentyten_setup’ );

これでギャラリーの横幅が大きくなる。

カテゴリー: WordPress関連メモ | コメントする

ヘッダー画像の横幅を大きくする

まずはWEB全体の大きさを変更。wp-content/themes/twentyten/style.cssを編集

/* =Structure
————————————————————– */

/* The main theme structure */
#access .menu-header,
div.menu,
#colophon,
#branding,
#main,
#wrapper {
margin: 0 auto;
width: 1160px; /*全体の幅*/
}

中略

/* =Header header画像の大きさの調整は functions.phpで設定
————————————————————– */

#header {
padding: 30px 0 0 0;
}
#site-title {
float: left;
font-size: 30px; /* ヘッダー画像左上のフォントサイズ */
line-height: 36px;
margin: 0 0 18px 0;
width: 700px;
}
#site-title a {
color: #000;
font-weight: bold;
text-decoration: none;
}
#site-description { /* ヘッダー画像右上の文字関連 */
clear: right;
float: right;
font-style: italic;
font-size: 18px;
margin: 15px 0 18px 0;
width: 220px;
}

/* This is the custom header image */
#branding img {
 /* header image 上下の線の色  コメントアウトして線を入れない様にした */
    /* border-top: 4px solid #fff; */
    /* border-bottom: 1px solid #000; */
display: block;
float: left;
}

/* =Menu header画像の下にあるメニュー
————————————————————– */

#access {
background: #000;
display: black;
float: left;
margin: 0 auto;
width: 1160px; /* 上部のメニューの幅 */
}
#access .menu-header,
div.menu {
font-size: 18px; /* menu size、オリジナルより大きくした*/
font-weight: bold; /* 太字にした */
margin-left: 12px;
width: 1130px;
}

画像の大きさはwp-content/themes/twentyten/functions.phpを編集

// The custom header business starts here.

$custom_header_support = array(
/*
* The default image to use.
* The %s is a placeholder for the theme template directory URI.
*/
‘default-image’ => ‘%s/images/headers/path.jpg’,
// The height and width of our custom header.
/**
* Filter the Twenty Ten default header image width.
*
* @since Twenty Ten 1.0
*
* @param int The default header image width in pixels. Default 940.
*/
‘width’ => apply_filters( ‘twentyten_header_image_width’, 1160 ),  /* ヘッダー画像の横幅 */
/**
* Filter the Twenty Ten defaul header image height.
*
* @since Twenty Ten 1.0
*
* @param int The default header image height in pixels. Default 198. /* ヘッダー画像の縦幅 */
*/
‘height’ => apply_filters( ‘twentyten_header_image_height’, 198 ),
// Support flexible heights.
‘flex-height’ => true,
// Don’t support text inside the header image.
‘header-text’ => false,
// Callback for styling the header preview in the admin.
‘admin-head-callback’ => ‘twentyten_admin_header_style’,
);

これで、画像は1160×198ピクセルを使用する

カテゴリー: WordPress関連メモ | コメントする

5:EPELレポジトリの導入

参考URL:https://centossrv.com/epel.shtml
yumでは出来ないプログラムの為にEPELレポジトリの導入する
# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm ← これは64bitの場合、32bitの場合は途中のx86_64をi386に変更。(例によってxoopsの問題で ; は : に変更してね。
今日やったらrikenのftpサーバーが落ちているみたい。たまたまかも知れないが、
# rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm ← ここからでも出来る
yum-prioritiesプラグイン導入
# yum -y install yum-plugin-priorities

CentOSのレポジトリーのプライオリティーを設定する
# gedit /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1 ← 追加

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1 ← 追加

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1 ← 追加

プライオリティーについて
優先度は “1~99″、値が小さいほど優先度が高くなる。又未設定の場合は優先度が “99” 。つまりこの設定はBase,updates,extraを最優先にし、EPELを含むそれ以外は最低のプライオリティーという事。

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

4:仮想環境を整える

前のサーバーの時はインストールDVDから行ったので、仮想環境を指定してインストールしたのだが、今回はlive DVDからインストールしたので仮想環境がなかったのでインストールする
# yum -y groupinstall “Virtualization” “Virtualization Client” “Virtualization Platform” “Virtualization Tools”
オフラインゲスト編集ツールインストール
# yum -y install ‘*guestf*’
ここで再起動をしておく。
このまま仮想環境を作るとサブホストは 192.168.122.xx のレンジになり何かと不便なので、このホストと同じレンジにするためにブリッジを導入する。
(注)NetworkManagerはブリッジをサポートしてないそうな!(ここを参照)。もしNetworkManagerが走っていれば止めておく事。再起動後もスタートしないように。又、/etc/resolv.confの設定も忘れずに
# virsh iface-bridge eth0 br0
もしここで

エラー:An error occurred, 後略

見たいなエラーが出る時は、/etc/sysconfig/network-scripts/ifcfg-eth0にDEVICE=eth0が無いと思うので、追加する。name=eth0はあるのだがこれではダメ見たい。
/etc/sysconfig/network-scripts/ifcfg-br0の確認

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.xx.xx ←伏せ字にしています、自分の環境に合わせて設定してください
NETMASK=255.255.255.0
GATEWAY=192.168.xx.xx ←伏せ字にしています、自分の環境に合わせて設定してください
STP=on
DELAY=0

eth0に設定されていたIPアドレスがブリッジのアドレスになっている
/etc/sysconfig/network-scripts/ifcfg-eth0の確認

DEVICE=eth0
HWADDR=D0:50:99:25:73:1F
ONBOOT=yes
BRIDGE=br0

色々設定していたものがbr0に設定され非常にシンプルになっている。 BRIDGE=br0 になっていることが重要
ホスト停止時にサブホストの挙動を設定
# gedit /etc/sysconfig/libvirt-guests

ON_SHUTDOWN=suspend ← 先頭の#を取りコメントを外す
SHUTDOWN_TIMEOUT=120 ← 先頭の#を取りコメントを外し、右辺を120秒に

色々な資料を見ると180秒になっているのが多いのですが、私は経験上30秒くらいですんでいる、もっともSSDの恩恵もあると思うが。
再起動しネットが使えることを確認する

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

3:初期設定

参考URL http://centossrv.com/centos6-init.shtml(現在はページが無くなっている)
前回の基本的なインストールで随分と苦労した。気を取り直してインストールを続ける。
rootになれるユーザーの制限。まず可能なユーザーを設定
# usermod -G wheel xxxxx (xxxxはユーザー名)
設定ファイルの修正
# gedit /etc/pam.d/su

#auth       required     pam_wheel.so use_uid ← 先頭の#を取りコメントを外す

その後、一般ユーザーからrootになれる事を確認しておく
SELinuxの無効化
本来は有効にしていた方がもちろん良いのだが、未熟な為何かとつまずく元凶なので、ここでは無効化にする。
# setenforce 0 ← SELinux無効化
# getenforce ← SELinux状態確認
Permissive ← SELinux無効
# gedit /etc/sysconfig/selinux

SELINUX=enforcing ←右辺を disabled に変更

OSのアップデートと(Ver6.7になる2015-12-9現在)yum関連のインストール
注:この前に ”https://www.kinryo.net/?p=339” を参照し、ネットワークICのドライバーを変更しておく事
私の場合は6.5になった時点でネットワークが使えなくなった(ドライバーr8169の問題)
# yum -y update
# yum -y install yum-cron
# service yum-cron start
# chkconfig yum-cron on
root宛のメールを転送 /etc/aliasesに

root: 自分のメアド

を最後にでも追加
# newaliases
でエイリアスを反映。
# echo test|mail root
で設定したメアドにメールが着ているか確認
その後、再起動

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする

2:OS(CentOS Ver6.5)のインストール

追記:CentOS 6.7では問題なくインストール出来た。

組み立てが終了し、さっそくOSをインストールしようとCentOSの6.5をUSBでアッタッチしたBD- Driveからやったが、言語設定の後にドライバーの選択を求められるが、どのハードのドライバーをインストールするのか特定できない。今時SSDや HDDのドライバーではないと思うし、ビデオドライバーかなー、それともLAN関連?結局わからないのであきらめる。手元にCentOS6.4のLIVE DVDがあったので、ダメもとでやってみるとOSが立ち上がったぞ!!
記:このDVDは英語版だった。後のサブホストのインストールでも日本語が問題になったので、英語だからインストールが出来たみたい。
ではとディスクトップからinstall to Hard Driveをダブルクリックし、インストールを開始、無事インストールが終了し、BD-Driveを外し、再起動後、OSの初期設定を終わらせ、さらに再起動。
ログインでその他のユーザをクリックし、rootでログインをする。
いくつか問題、
1:IP がDHCPになっている。ホストは固定で運用したいので変更する。/etc/sysconfig/network-scripts/ifcfg-eth0 がないぞー! NetworkManagerが走っているのでその関係?でもifconfigをするとIPアドレスが表示されているので、どこかに設定が あるのだろー、だが何処にあるかは不明
2:言語がEnglishになっている?インストール時にJapaneseを指定(これはキーボードの設定だった。この時は言語の設定と勘違い)したが反映されていない。この時は英語判だったのに気がつかなかった。
3:ログイン画面に登録されているユーザーのリストが表示されている。私は好きでないし、セキュリティー上問題もあるので、ログイン時にユーザー名から入力するようにしたい。
まずは日本語化にする。関連パッケージのインストール
# yum groupinstall “Japanese Support”
次に /etc/sysconfig/i18nのLANGを

LANG="ja_JP.UTF-8"

に訂正し、保存後
# source /etc/sysconfig/i18n
次にログイン時のユーザーリストを表示しないようにするには、/etc/gconf/gconf.xml.defaults/%gconf-tree.xmlの22678行目くらいに下記があるので

<entry name="disable_user_list" mtime="1366723318" type="schema" stype="bool" owner="gdm-simple-greeter" gettext_domain="gdm">
	<local_schema locale="C" short_desc="Do not show known users in the login window">
 		<default type="bool" value="false"/> ←ここを True に変更
 		<longdesc>Set to true to disable showing known users in the login window.</longdesc>
        /local_schema>
</entry>

上に示したようにfalseをtureに変更し保存。
その後、再起動すると日本語になっているが、downloadやDesktopなどを日本語にするか聞いてくるので、好みで。変更前は入力が日本語にならなかったが、変更後は入力できるようになる。
もし、日本語のキーボード・マップになっていない場合は /lib/kbd/keymaps/i386/qwerty/jp106.map.gz があることを確認し、/etc/sysconfig/keyboard を

KEYTABLE="jp106"
KEYBOARDTYPE="pc"

として保存後、再起動すれば日本語になる。保存前は MODEL=”pc105+inet” LAYOUT=”us” の二つがあったが、なくてもいいみたいです。
次にIPアドレスをを固定にするので、/etc/sysconfig/network-scripts/ifcfg-eth0 に下記を設定

DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.xx.xx
PREFIX=24
GATEWAY=192.168.xx.xx
NAME="System eth0"

IPアドレスはすぐにブリッジを作るのでいらなくなるが、その前に固定IPでネットワークのテストをしたいので設定しておく。
DHCPでなくなるので、DNSの設定をする。/etc/resolv.conf に

search kinryokai.net
nameserver 192.168.xx.xx
nameserver 8.8.8.8
nameserver 202.224.32.2

3行目はgoogleのDNS、4行目はISPのDNSです。
インストール時にホスト名を設定したが、反映していないので、/etc/sysconfig/networkのホスト名を

HOSTNAME=xxx.kinryokai.net

に変更し、NetworkManagerを止める(後で仮想化をインストールし、ブリッジを作りますが、NetworkManagerはブリッジをサポートしていないそうな。なのでここで止めるのが正解)
# service NetworkManager stop
# chkconfig NetworkManager off
NetworkManagerを止めないと、resolve.confが書き換えられてしまうので注意。
そ して、ネットワークドライバーを変更する。現在のドライバーはマザーボードのLANチップであるRealtekのRTL8111GR用のr8169が自動 的にインストールされているが、r8169は何かと問題が多い。その前にソースからインストール出来るように環境を作る。
注: ここで順番が大事、順番を間違えるとドライバーがダウンロードできなくなる。全てをダウンロード後、再起動してから、LANドライバーをインストールする 事。これは”Base” “Development tools”のインストールによりカーネルもアップデートされるが、再起動しないと有効になっていない為、順番を間違えるとネットワークが使えなくなる。
# yum -y groupinstall “Base” “Development tools”
でインストール。
ついでに日本語環境で有用なnkfをインストールしておく。
# yum -y install nkf
ドライバーはrealtekのRealtekのWEBからUnix (Linux)用の LINUX driver for kernel 3.x and 2.6.x and 2.4.x をダウンロードし、その保存した場所をカレントディレクトリーにし(CDをする)現在はrealtekのWEBにGBE Ethernet LINUX driver r8169 for kernel up to 5.6 がダウンロードできる見たいだが、テストをしていないので何とも言えない
# tar vjxf r8168-8.038.00.tar.bz2
# cd r8168-8.038.00
# ./autoru.sh
とすると、r8169を削除し、r8168を入れてくれる。この時

make: *** /lib/modules/2.6.32-358.el6.x86_64/build: そのようなファイルやディレクトリはありません.  中止.

と出る時は再起動し、再度行う。
追 記:ある時再起動後、キーボードとマウスが動かないので、ログインすら出来ない。”Development tools” を入れたらカーネルのアップデートもあり、それでかなー。古いカーネルでは入力が出来る。色々調べたら、USBキーボードの取り付けをUSB3(青い USB)にするとOKになった。
そして再起動。あれネットに繋がらない。入り色調べたらネットワークが走っていないみたい。なので
# service network start
# chkconfig network on
でやっと正常に繋がった。

その後、OSがupdateされる度にr8169に戻るので、update後は必ず ./autoru.sh 必要になる

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする