Linux Server

6代目WebServer稼働してみる

やっぱり何度作ってもLinuxは難しい@・@。。。
smp20140723-100

















サーバーラック(棚?)に納めて。。
とりあえず稼働してみた。。。
稼働してみるとまだまだいろんな問題がありそう。。。
少しづつ潰すしかないかぁ。。
上段が6代目で下段が5代目サーバーです。
smp20140723-101








6代目WebServer作成備忘録-Vine Linux設定編-09(パスワード設定)

■指定したディレクトリ内へのアクセスにID/パスワードを設定する
●.htaccessを有効にする
# vi /etc/apache2/conf/httpd.conf
以下を追記する
<Directory "/home/httpd/cgi_bin/ディレクトリ名">   CGIにID/パスワード設定の場合
AllowOverride All
</Directory>
<Files .htaccess>
     .htaccessを有効にする 
Order allow,deny
Deny from all
</Files>

必要に応じて複数設定する

編集終了 保存

Apache2の再起動
# /etc/rc.d/init.d/apache2 restart
Apache2 HTTP Serverを停止中:                                    [  OK  ]
Apache2 HTTP Serverを起動中:                                   
OK  ]


●.htaccessファイルの作成
Windows環境で.htaccessファイルをテキストエディタで作成する
以下を入力する
AuthUserFile /home/httpd/cgi_bin/ディレクトリ/.htpasswd   ディレクトリはパスワードを設定するディレクトリ
AuthGroupFile /dev/null
AuthName "Please enter username and password" 
  ID/パスワード入力を促す表示を出す
AuthType Basic
require valid-user

保存して
サーバーの「/home/httpd/cgi_bin/CGIディレクトリ」に.htpasswdをアップロードする

●.htpasswd(パスワードファイル)を作成する
Windows環境でhtaccess用パスワード生成サイト
http://www.ahref.org/cgi/htaccess/index.cgi
にアクセスしてID/パスワードを生成する
ID欄と
パスワード欄に
それぞれ入力して「→生成→」をクリックする
「暗号化情報」欄にIDとパスワードが暗号化された文字列が生成される
「クリップボードへコピー」をクリックして
テキストファイル.htpasswdに暗号化情報を貼り付ける
htaccess_passwordMake













.htpasswdファイルはこのようにIDと暗号化パスワードの組み合わせになる
ID1:mem/Etqv5py.c
ID2:FvG440CefZKvg



IDn:G8FTHJ.AtCJWA
IDnn:CZEhk85Y9j9LQ


保存して
サーバーの.htaccessをアップロードした時と同じ「/home/httpd/cgi_bin/CGIディレクトリ」に.htpasswdをアップロードする

これで、http://:www.xxmain1xx.net/cgi_bin/ディレクトリ/xxx.cgiへのアクセスにはID/パスワードが必要になる
PasswordWindow

















この記事はこちらにも掲載しています。
こちらの方が見やすいと思います。
logo154_81-kzn-blu




6代目WebServer作成備忘録-Vine Linux設定編-08(セキュリティ設定-2)

■アップグレードパッケージの自動検索
アップグレードパッケージを検索して、あればroot宛てにメールを送信ろログ保存する。
# vi apt-up.sh
以下を入力
#!/bin/sh
     
apt-get update > /var/log/apt-up.log
apt-get -s upgrade >> /var/log/apt-up.log
grep "Inst" /var/log/apt-up.log
chmod 600 /var/log/apt-up.log


編集終了 保存

# chmod 700 apt-up.sh   スクリプトに実行権を与える
cronに登録

# crontab -e
以下を追記
00 04 * * * /root/apt-up.sh   毎日4時に実行

保存終了

cronを再起動
# /etc/rc.d/init.d/crond restart
crondを停止中:                                                  [  OK  ]
crondを起動中:                                                  [  OK  ]



■ファイアーウォールの設定
iptablesコマンドをシェルスクリプトを使って実行する
# rm -f /etc/ppp/firewall-masq   デフォルトの設定ファイルを削除
設定ファイルを【Vine Linuxで自宅サーバー】様よりダウンロードする
# cd /etc/ppp/
# wget http://vine.1-max.net/rpm/firewall-masq


# vi /etc/ppp/firewall-masq.1
以下を自分の環境に合わせて変更
LAN='192.168.0.0/24' # ローカル・ネットワーク・アドレス

編集終了 保存

設定の反映
# sh /etc/ppp/firewall-masq.1
iptables: Flushing firewall rules:                                                              [  OK  ]
iptables: Setting chains to policy ACCEPT: filter                                    [  OK  ]
iptables: Unloading modules:                                                                 [  OK  ]
Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).
Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).
Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).
Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).
iptables: Saving firewall rules to /etc/sysconfig/iptables:                          [  OK  ]
iptables: Flushing firewall rules:                                                              [  OK  ]
iptables: Setting chains to policy ACCEPT: filter                                      [  OK  ]
iptables: Unloading modules:                                                                    [  OK  ]
iptables: ファイアウォールルールを適用中:

これでいいのでしょうか??


■Swatchで不正アクセス遮断(Swatch+iptables)
SWATCHで各システムのログファイルを監視し、特定のパターンにマッチした場合iptablesと連係しアクセスを遮断させる
cpanでモジュールをインストール
# cpan
cpanからの確認は全てenterする
cpan[1]>exit  終了

SWATCHをダウンロードする
# wget http://downloads.sourceforge.net/swatch/swatch-3.2.3.tar.gz
展開
# tar fvxz swatch-3.2.3.tar.gz
展開されたディレクトリに移動
# cd swatch-3.2.3

●アクセス遮断スクリプトの作成
スクリプト作成

# vi /usr/bin/swatch.sh

以下を入力する
#!/bin/bash

PATH=/bin:/sbin:/usr/bin
LANG=C

# IPブロック時メール送信先(送信しない場合はコメントアウト)
mail=root

# 不正アクセスをブロックするまでの回数
max=3

# ログを標準入力から取得
read LOG

# ログからIPアドレスを抽出
IPADDR=`echo $LOG|cut -d " " -f $1`
echo "$IPADDR"|grep "^[0-9]*\." > /dev/null 2>&1
if [ $? -eq 0 ]; then
    IPADDR=`echo "$IPADDR"|sed -e 's/\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/p' -e d`
else
    IPADDR=`echo "$IPADDR"|sed -e 's/.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\).*/\1/p' -e d`
fi

# IPアドレス分割
addr1=`echo $IPADDR|cut -d . -f 1`
addr2=`echo $IPADDR|cut -d . -f 2`
addr3=`echo $IPADDR|cut -d . -f 3`
addr4=`echo $IPADDR|cut -d . -f 4`

# IPアドレスがプライベートIPアドレスの場合は動作させない
if [ "$IPADDR" = "127.0.0.1" ]; then
    exit
elif [ $addr1 -eq 10 ]; then
    exit
elif [ $addr1 -eq 172 ] && [ $addr2 -ge 16 ] && [ $addr2 -le 31 ]; then
    exit
elif [ $addr1 -eq 192 ] && [ $addr2 -eq 168 ]; then
    exit
fi
# 不正IPアドレス別にログファイル作成
echo $LOG >> /var/log/swatch/$IPADDR

# 不正IPアドレス別ログファイルから累積不正アクセス数取得
cnt=`cat /var/log/swatch/$IPADDR | wc -l`

# 該当IPアドレスが指定した累積不正アクセス数に達した時と
# 引数でBlockと指定された場合アクセス規制
if [ "$cnt" -ge "$max" ] || [ $# -eq 2 -a  "$2" = "Block" ]; then

    # 該当IPアドレスからのアクセスを拒否するルールを挿入
    iptables -I INPUT -s $IPADDR -j DROP

    # 上記ルールを24時間後に削除するスケジュールを登録
    echo "iptables -D INPUT -s $IPADDR -j DROP > /dev/null 2>&1" | \
    at now+24hour > /dev/null 2>&1

    # アクセス規制IPアドレス情報をメール通知
    [ "$mail" != "" ] && (cat /var/log/swatch/$IPADDR ; \
                echo ; whois $IPADDR) | \
                mail -s "IP Block!" $mail
    # ブロック済不正IPアドレス別ログファイル削除
    rm -f /var/log/swatch/$IPADDR

    echo "`date` $IPADDR $cnt Block!"
else
    echo "`date` $IPADDR $cnt"

fi


編集終了 保存

スクリプトに実行権限を与える
# chmod 700 /usr/bin/swatch.sh

設定ファイル用ディレクトリ作成
# mkdir /etc/swatch

●ログローテーション設定ファイル作成
# vi /etc/logrotate.d/swatch
以下を入力
/var/log/swatch/swatch.log {
    missingok
    notifempty
    sharedscripts
    postrotate
        /etc/rc.d/init.d/swatch restart > /dev/null || true
    endscript


編集終了 保存

■FTPサーバー(ProFTPd)の不正接続を監視する
●ProFTPd用の設定ファイルを作成
# vi /etc/swatch/proftpd-auth.conf
以下を入力
#監視ログの場所を指定
# logfile /var/log/proftpd/auth.log

#監視したい文字列を記載
watchfor /530$/

#ログのIPアドレスの場所を指定し、アクセス遮断スクリプトへ渡す
    pipe "/usr/bin/swatch.sh 5"6

編集終了 保存

●Swatchの起動スクリプトDLと自動起動設定
起動スクリプトDL先へ移動
# cd /etc/rc.d/init.d/
【Vine Linuxで自宅サーバー】から起動スクリプトDL
# wget http://vine.1-max.net/rpm/swatch
# cd  rootに戻る
実行権を与える
# chmod +x /etc/rc.d/init.d/swatch
SWATCH起動
# /etc/rc.d/init.d/swatch start
Starting swatch

SWATCH起動スクリプトをcheconfigへ登録
# chkconfig --add swatch

SWATCH自動起動設定
# chkconfig swatch on
SWATCH自動起動設定確認
# chkconfig --list swatch
swatch          0:off   1:off   2:on    3:on    4:on    5:on    6:off
ランレベル2~5がonならOK


この記事はこちらにも記載しています。
こちらの方が見やすいと思います。
logo154_81-kzn-blu





【Vine Linuxで自宅サーバー】様を参考にしてサーバーを構築しています。
Homeserver on Linux – 自宅サーバーを作ろう様を参考にしてサーバーを構築しています。

6代目WebServer作成備忘録-Vine Linux設定編-07(メールサーバー)

■Postfixのインストールと設定
Postfixがインストールされているかどうか確認する
# rpm -qa | grep postfix
postfix-2.8.10-1vl6.x86_64  インストールされている
もし、インストールされていなければ以下を実行する
# apt-get install postfix

Postfixが起動しているか確認
# ps ax | grep postfix
 2110 ?        Ss     0:00 /usr/lib64/postfix/master  起動している
 2915 pts/0    S+     0:00 grep --color=auto postfix
もし、何も表示されなければPostfixを起動する
# /etc/rc.d/init.d/postfix start

Postfixが自動起動になっているか確認
# chkconfig --list postfix
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off       3:onなのでOK
もし、3:offになっていたら
# chkconfig postfix on

●設定ファイルの編集
# vi /etc/postfix/main.cf
myhostname = xxmain1xx.net      自分のドメインに変更する
mydomain = xxmain1xx.net        自分のドメインに変更する

サーバーから送られるメールに付加するドメインを選択する
myorigin = $myhostname  この行頭の#削除

メール受信する範囲選択・・・インターネット使用する
inet_interfaces = all    この行頭の#削除

メールを最終的に受信するドメイン名設定
mydestination = $myhostname, localhost.$mydomain $mydomain

メール中継許可・・・同じサブネットのLAN内だけ許可
mynetworks_style = subnet   この行頭の#削除

POPサーバーとしてCourier-IMAPを使う
home_mailbox = Maildir/    この行頭の#削除

編集完了 保存終了

Postfixを再起動するとメール送受信準備完了する
# /etc/rc.d/init.d/postfix restart
Postfixを停止中:                                                [  OK  ]
Postfixを起動中:                                                [  OK  ]


■POPサーバーCourier-IMAPのインストールと設定
POPメール受信サーバー
Courier-IMAPはインストールされていないのでインストールする
# apt-get install courier-imap

自動起動設定の確認
# chkconfig --list courier-imap
courier-imap    0:off   1:off   2:on    3:on    4:on    5:on    6:off

ランラベル2~5がonならOK
# chkconfig --list courier-imap
courier-authlib 0:off   1:off   2:on    3:on    4:on    5:on    6:off
ランラベル2~5がonならOK

●メールボックスの準備
受信メールの保存ディレクトリ作成
# cd /home/httpd/html      自分のホームディレクトリに移動
Maildirを作成する
下のコマンドを実行するとcur、new、tmpの各ディレクトリがMaildir以下に作成される
# /usr/sbin/maildirmake Maildir

 ------------ 参考 ------------------------------------------------------------------
 ユーザー毎にMaildir作成は面倒なので/etc/skelディレクトリにMaildirを作成しておけば、次回ユーザーを作成すると同時にホームディレクトリにMaildirが作成される
 # /usr/sbin/maildirmake /etc/skel/Maildir
 --------------------------------------------------------------------------------------

●メールアカウントの作成
メールのみのユーザーの場合は以下を実行する
# useradd -s /sbin/nonlogin xxxx    xxxxはユーザー名
/home以下にユーザー/xxxxが作成される
 ------------ 参考 ------------------------------------------------------------------
 標準設定ではLinuxユーザーがそのままPostfixユーザーになる
 ユーザー名@xxmain1xx.net
 になる
 --------------------------------------------------------------------------------------

●Courier-IMAPの起動
courier-imapとcourier-authlibの二つを起動する
# service courier-imap start
Starting Courier-IMAP server: imap generating-SSL-certificate... imap-ssl pop3 generating-SSL-certificate... pop3-ssl

# service courier-authlib start
Starting Courier authentication services: authdaemond

動作確認
# ps ax | grep courier-imap
4918 ?   S   0:00 /usr/sbin/courierlogger -pid=/var/run/imapd.pid -start -name=imapd /usr/libexec/courier-imap/couriertcpd -address=0 -maxprocs=40 -maxperip=4 -nodnslookup -noidentlookup 143 /usr/sbin/imaplogin /usr/sbin/imapd Maildir 
 ・
 ・
 ・
 5157 pts/0 S+ 0:00 grep --color=auto
courier-imap
これでいいの??
起動していない場合は
・・・・・・courier-imap起動していない
となる


# ps ax | grep courier-authlib

 4971 ?        S      0:00 /usr/sbin/courierlogger -pid=/var/spool/authdaemon/pid -start /usr/libexec/courier-authlib/authdaemond
 4972 ?        S      0:00 /usr/libexec/courier-authlib/authdaemond
 4973 ?        S      0:00 /usr/libexec/courier-authlib/authdaemond
 4974 ?        S      0:00 /usr/libexec/courier-authlib/authdaemond
 4975 ?        S      0:00 /usr/libexec/courier-authlib/authdaemond
 4976 ?        S      0:00 /usr/libexec/courier-authlib/authdaemond
 4977 ?        S      0:00 /usr/libexec/courier-authlib/authdaemond
 5108 pts/0    S+     0:00 grep --color=auto
courier-authlib
起動していない場合は
・・・・・・courier-authlib起動していない
となる



この記事はこちらにも記載しています。
こちらの方が見やすいと思います。
logo154_81-kzn-blu







【Vine Linuxで自宅サーバー】様を参考にしてサーバーを構築しています。
Homeserver on Linux – 自宅サーバーを作ろう様を参考にしてサーバーを構築しています。

6代目WebServer作成備忘録-Vine Linux設定編-06(アクセス解析)

■Webalizerでアクセス解析
webalizer をインストール
# apt-get install webalizer

●Webalizer設定
# vi /etc/webalizer.conf
LogFile /var/log/apache2/access_log    access_logのパス(httpdをapache2に変更)
OutputDir /home/httpd/html/webalizer       デフォルト(解析結果を納めるディレクトリ)
HistoryName /home/httpd/html/webalizer/webalizer.hist  変更
Incremental yes      デフォルト(解析結果を保存)
IncrementalName /home/httpd/html/webalizer/webalizer.current  変更
HostName www.xxmain1xx.net      解析対象ホスト
PageType php        追加拡張子(私の環境では不要htm*とcgiがあれば良い)

編集終了 保存

●統計結果ファイルを作成
# /usr/bin/webalizer -c /etc/webalizer.conf
これで、
http://www.xxmain1xx.net/webalizer/
で解析結果が見られるようになる。


●各ユーザーごとに個別で利用する場合
webalizer.confを各々のユーザフォルダにコピー
# cp /etc/webalizer.conf /home/ユーザー名   

各々のユーザーフォルダー下にWebalizer解析結果保存フォルダー(/webalizer)を作成

# mkdir /home/ユーザー名/public_html/webalizer  


各ユーザーの設定ファイル/home/ユーザー名/webalizer.confを編集
(各ユーザー各々編集)
# vi /home/ユーザー名/webalizer.conf
LogFile /var/log/apache2/ユーザー名/access_log
OutputDir /home/ユーザー名/public_html/webalizer
HistoryName /home/ユーザー名/public_html/webalizer/webalizer.hist
IncrementalName /home/ユーザー名/public_html/webalizer/webalizer.current
HostName
xxmain2xx.com    ユーザードメイン

各ユーザーの解析ファイルを/home/ユーザー名/public_html/webalizer下に作成するようにする
# /usr/bin/webalizer -c /home/ユーザー名/webalizer.conf 

これで、 http://www.xxmain2xx.com/webalizer/や
http://www.xxmain1xx.net/~ユーザー名/webalizer/
でアクセスが可能になる。

webalizer


















●解析結果の自動更新
# vi webalizer.sh
#!/bin/sh
/usr/bin/webalizer -c /etc/webalizer.conf
/usr/bin/webalizer -c /home/ユーザー名/webalizer.conf  
 複数ユーザーの場合各ユーザー毎記述

編集終了 保存

# chmod 755 webalizer.sh   実行権を与える

cronに登録
# crontab -e
20 04 * * * /root/webalizer.sh   毎日4時20分に実行

編集終了 保存

cronを再起動
# /etc/rc.d/init.d/crond restart

crondを停止中:                                                  [  OK  ]
crondを起動中:                                                  [  OK  ]




■AWStatsでアクセス解析
Webalizerより詳細なアクセス解析が出来るAWStatsを導入する
URLをデコードするために必要となるJcodeをインストールする

CPANモジュールを起動
# perl -MCPAN -e shell
cpan[1]> install Jcode   install Jcode
cpan[2]> exit     exit

# tar zxf Jcode-2.00.tar.gz   解凍

AWStatsダウンロードとインストール
# wget http://www.bflets.dyndns.org/AWStats66_Jpn.tar.gz
# mv AWStats66_Jpn.tar.gz /usr/local/bin
# cd /usr/local/bin
    ディレクトリ移動
# tar xvzf AWStats66_Jpn.tar.gz  展開

AWStatsを置くディレクトリの作成
# mkdir /home/httpd/cgi_bin/awstats    本体を置く場所
# mkdir /home/httpd/cgi_bin/awstats/icon   iconを置く場所1
設定ファイルの移動
# cd /usr/local/bin/AWStats66_Jpn/wwwroot/  ディレクトリ移動
# cp -rf cgi-bin/* /home/httpd/cgi_bin/awstats   コピー
# cp -rf icon/* /home/httpd/cgi_bin/awstats/icon   コピー
# cd /home/httpd/cgi_bin/awstats     ディレクトリ移動
# cp awstats.model_jp.conf awstats.conf   日本語設定ファイルをコピー

●設定ファイルの編集
# vi /home/httpd/cgi_bin/awstats/awstats.conf
ログの保管場所を指定
LogFile="/var/log/apache2/access_log.utf8"  httpd→apache2変更   .utf8を付加
サイトのドメインを指定
SiteDomain="xxxmain1x.net"
DNSの設定
DNSLookup=0  逆引きを行わないので0指定
CGIスクリプトのディレクトリを指定
DirCgi="/cgi_bin/awstats"
画像ディレクトリを指定
DirIcons="/cgi_bin/awstats/icon"

アクセス解析対象外の指定
SkipHosts="127.0.0.1 REGEX[^192.168.0.]"

表示言語を指定
Lang="jp"

編集終了 保存

●手動でApacheのログを変換しアクセス解析してみる
アクセスログファイルを手動で、utf8形式にログを変換してみる
先に属性変更
# chmod 755 /home/httpd/cgi_bin/awstats/utf8_decode.pl
# chmod 755 /home/httpd/cgi_bin/awstats/awredir.pl
# chmod 755 /home/httpd/cgi_bin/awstats/awstats.pl

して
# /home/httpd/cgi_bin/awstats/utf8_decode.pl < /var/log/apache2/access_log > /var/log/apache2/access_log.utf8
手動でアクセス解析を実行する
# /home/httpd/cgi_bin/awstats/awstats.pl -config=awstats.conf -update
ブラウザから確認できるようにawstatsディレクトリのアクセス権を変更

# chown -R ユーザー /home/httpd/cgi_bin/awstats

ブラウザで確認してみる
http://192.168.0.206/cgi_bin/awstats/awstats.pl
OKのようだ♪♪
AWStats
















●定期的に、ログの結合と変換、自動実行させる
自動実行スクリプトの作成
# vi awstats.sh
以下を入力
#!/bin/sh

ALOG=/var/log/httpd/access_log
A1LOG=/var/log/httpd/access_log.1
NEWLOG=/var/log/httpd/access_log.new
UTF8LOG=/var/log/httpd/access_log.utf8
UTF8DECODE=/home/httpd/html/cgi-bin/awstats/utf8_decode.pl
AWSTATS=/home/httpd/html/cgi-bin/awstats/awstats.pl
LOG=/var/log/awstats.log

cat $ALOG > $NEWLOG
cat $A1LOG >> $NEWLOG

$UTF8DECODE < $NEWLOG > $UTF8LOG

$AWSTATS -config=awstats.conf -update > $LOG

chmod 600 $LOG

編集終了 保存

スクリプトに実行件を与える
# chmod +x awstats.sh

Cronの編集
# crontab -e
21 04 * * * /root/awstats.sh   追加(毎日4時21分にスクリプト実行)
保存終了

Cron を再起動する
# /etc/rc.d/init.d/crond restart
crondを停止中:                                                  [  OK  ]
crondを起動中:                                                  [  OK  ]




この記事はこちらにも記載しています。
こちらの方が見やすいと思います。
logo154_81-kzn-blu






【Vine Linuxで自宅サーバー】様を参考にしてサーバーを構築しています。




空飛ぶバルーン
kzn.tokyo
ギャラリー
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • ねこさんのおもちゃを修理してみたが。。
  • NAS導入-セットアップ編
  • NAS導入-セットアップ編
  • NAS導入-セットアップ編
  • NAS導入-セットアップ編
  • NAS導入-セットアップ編
  • NAS導入-セットアップ編
  • NAS導入-セットアップ編
Amazonライブリンク
記事検索
livedoor 天気
タグクラウド
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

livedoor画像検索
本ブログパーツの提供を終了しました
経済情報
達人のFX
QRコード
QRコード
  • ライブドアブログ