www.smiyasaka.com は、 2019 年2月から SSL 化し 通信を暗号化した方式で発信をしています。
●   CentOS 6.8〜6.10 64bit のインストールと自宅サーバ構築   ●
アクセス数 昨日 2 今日 1
  累計 20,284   

64bit 版 CentOS-6.X-x86_64 を yum を使用しないで、自宅サーバを構築しました。
( SELinux は、有効/無効のどちらでも構築できるようにしています。)
2018.06.30に CentOS 6.10 がリリースされています。

     
※※※ サポート期限は、2020年11月30日までです。※※※

※ 注 意 事 項 ※
コマンド・プログラム等を コピペ する時には、全角のスペース が、入っていることがありますので
半角に変換 してから、使用してください。

スマホ対策の為、長いコマンド・プログラム等を継続記号( linux は、"\" 、EXCELマクロは、"_" )で
故意に数行に分割している箇所が有ります。

目    次
[○○○○]のクリックで、その内容が目次の下に表示、再度クリックで非表示になります。

     ※ [ 総てを表示する ] ※ [ 総てを表示する 非表示 ] ※

0. インストールした PC のスペック等

2019.09.17 付けで CentOS 6.10 のカーネルのバージョンは、
           Kernel 2.6.32-754.22.1.el6.x86_64 になっています。
98%のパッケージは、事前に(○○○el6.x86_64.rpmと○○○.tar.gz等) windows 側でダウンロード しておきます。

ファイル転送プログラム proftpd or vsftpd は、Tera Term の転送機能を使用して windows PC 側 から直接転送し、インストールします。

proftpd or vsftpd インストール後ダウンロードしたファイルをサーバ機に ffftpで書き込み、 各種設定は、Windows PC ( Tera Term を使用 )からの遠隔操作で web サーバを構築 していきます。
windows 10 で ffftp, Tera Term, Tera Pad の動作は、問題なく動作します。
います。
---------------------------------------------------------------------------------
ディレクトリ等の名前は、私のサーバ機の環境での名前を使用していますので、利用するときには、 あなたの環境に合わせて変更してください。
(
/var/www/html/www.smiyasaka.com は、httpd.conf での、DocumentRoot のパスです。 /home/miyasakaは、ホームディレクトリです。 )

サーバ機( OS バージョン CentOS 7.7.1908  64bit )の
CPU 利用率 7.07 % CPU 温度 +30 です。
2020.03.17 付けでカーネル( OS のバージョン )が、更新されました。
( カーネルのバージョン
Kernel 3.10.0-1062.18.1.el7.x86_64 です。)
2017.05.26から、新規に下記スペックの PC にインストールし、使用しています。
-------------------------------------------------------------------------
私の自宅サーバ機のスペック
型   式 : mouse LM-mini76S-S1-MA CPU : Intel Celeron 3855U 2コア/1.60GHz
消費電力 : 約 10W   メ モ リ : 8GBSSD : 128GB
インターネット回線 : STNet 光回線(ギガビット対応)
USBカメラ : Logicool UVC対応 C270sCW 120万画素(固定焦点)
LANカメラ : PCi CS-W05N 30万画素

-------------------------------------------------------------------------


1. CentOS 6.9, 6.10 のインストール

CentOS 6.9, 6.10 32bit のインストールは、DVD1.isoのみで行います。
なお、DVD2.iso は、不要で、iso ファイルは、DVD に書込み使用します。

CentOSの iso ファイルのダウンロードは、[ここをクリック]して最新バージョンをダウ ンロードしてください。
32bit 版は、i386、64bit 版は、x86_64 のフォルダをクリックしてください。

以下にその手順を紹介します。

[ CentOS-6.10-x86_64 からインストール手順 ] の詳細は、
[ここをクリック]してください。



2. CentOS 6.9, 6.10 再起動後のコンソールからの各種設定ル

ここの設定だけは、サーバ機のコンソールから、GNOME(テキスト入力モード)で行ってください。

○ ログインは、[ root ]と[ root のパスワード ]で行います。

@ ユーザーの登録 ( Tera Term, ffftp でのログインの時に必要になります。)

adduser ○○○○○ <--- ○○○○○は、ユーザー名

A ユーザーパスワードの登録 ( Tera Term, ffftp でのログインの時に必要になります。)

passwd ○○○○○ <--- ○○○○○は、ユーザー名

パスワードを2回入力する。

B Tera Termの文字化け対策( Windows側も、EUC コードを使用します。)

ここを変更して再起動後は、サーバ機のディスプレイの漢字は、文字化けします。注意

    vi /etc/sysconfig/i18n

    LANG="ja-JP.UTF-8"  ----> LANG="ja-JP.eucJP" に変更する。

C SELinux を無効にする設定。( これを忘れると、再起動後うまく動作しません。)

    vi /etc/sysconfig/selinux

    SELINUX=enforcing  ----> SELINUX=disabled に変更する。

なお、SELinux を有効にしサーバを構築する時には、SELINUX=permissive にしてください。

SELinux の設定は、[ 5. ファイアウォール・SELinux の設定 ]項で解説しています。


D Windows側から、Tera Termでアクセスするポート番号を設定する。

    vi /etc/ssh/sshd_config

#Port 22 の前の行に、Port 2222 を追加する。

※ sshdが利用するポートで、標準では「22」に設定されていますが、22番ポートへのア

タックは、非常に多いため、任意のポート( 2222等)に変更するのが一般的であると web上に記載されています。


E ファイアウォールを無効にする設定。

下記コマンドを入力すると 写真 @ の画面が表示します。

    system-config-firewall-tui

写真 @ [*]Enabled ----> [ ]Enabled に変更する。 [space] --> [Tab] -->
[Enter]キーの順に押す。

写真 A [Enter]キーを押す。

写真 @
A
写真 A B

F システムのアップデートをする。

  初回の update は、数( 147個 )が多いので少し時間がかかります。

  
yum -y update

G システムの再起動をする。

  
reboot または、 shutdown -rf now

 再起動後、windows 側から Tera Term で接続できない時には、サーバ機から直接ネッ トワークの設定で「起動時の自動起動設定」を忘れていないかを、下記コマンドで確認してみてください
  これでも接続できない時は、ファイアーウォールの無効も確認してみてください。
  変更後は、一度再起動( reboot )してください。

H 再起動後、セキュリティ強化の為、sshd のアクセス制限を設定します。
  ( TCP Wrapper による SSH 接続のアクセス制御 )

  この設定は、必要とする方のみ行って下さい。
  私の場合、サーバ機の管理・設定は、ローカルの PC 以外しないので設定しています。

  hosts.allowとhosts.denyの設定( IPアドレスの制限 )
この設定は、hosts.allow が優先されます。つまり、全てを拒否し、hosts.allow で指 定された IPアドレスは、許可になります。


H-1 /etc/hosts.deny に、 sshd:ALL ( すべての接続を拒否 )と書込みます。

     vi /etc/hosts.deny で sshd:ALLを追加  または、

     echo "sshd:ALL" >> /etc/hosts.deny

H-2 /etc/hosts.allow で接続を許可するIPアドレスを指定します。

vi /etc/hosts.allow で sshd:192.168.0. を追加 または、

     echo "sshd:192.168.0." >> /etc/hosts.allow

  192.168.0. は、私の環境下ですべてのローカルIPアドレスを許可する設定です。

I 再起動後、ネットワークに接続できない時は、ネットワークの設定で「起動時の自動起
動設定」を忘れているので、サーバ機のキーボードから、直接下記コマンドで、ネット ワークの設定を編集してから、一度再起動( reboot )してください。

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT="no" ----> ONBOOT="yes" に変更する。

---------------------------------------------------------------------------------

Tera Term の文字化けを防ぐため、漢字コードをサーバ機側と同じ漢字コード EUC に必 ず設定し、設定の保存」をしてください。

接続すTCPポートは、2222 にすること。

再起動後は、設定は、windows側から、Tera Term を使用して各種設定を行います。
Tera Term の漢字-送受信コードは、EUC を指定して使用してください。

Tera Termの設定・使い方の参考になるサイト Tera Term のセットアップ方法
Tera Term は、窓の杜ライブラリでダウンロードできます。


3. 事前にダウンロードするファイル一覧と探し方

サーバ構築に必要なファイルの探し方は、Google等の検索で、「 パッケージ名 」のキーワード検索でほとんどの場合ヒットします。

下記のパッケージ名をクリックするとダウンロード出来るサイトへジャンプします。
パッケージによっては、クリックだけでダウンロードできます。


( リンク切れでダウンロードできない時には、「 パッケージ名 」で検索してダウンロードしてください。)

CentOS 6.X 64bit のほとんどは、 rpm パッケージは、el6.○○○.x86_64.rpm の名前が付きます。

ソースファイル( tar )は、32bit・64bit の区別がありません


---------------------------------------------------------------
ftp
proftpd-1.3.5.tar.gz
vsftpd-2.2.2-27.1.el6.x86_64.rpm
ftp-0.17-54.el6.x86_64.rpm
---------------------------------------------------------------
RPMforgeリポジトリ
yum-plugin-priorities-1.1.30-17.el6_5.noarch.rpm
rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
---------------------------------------------------------------
httpd
httpd-2.4.41.tar.gz
旧バージョンの httpd ダウンロード
pcre-devel-7.8-6.el6.x86_64.rpm
pcre-devel-7.8-7.el6.x86_64.rpm
expat-devel-2.0.1-13.el6_8.x86_64.rpm
apr-1.7.0.tar.gz
apr-util-1.6.1.tar.gz
---------------------------------------------------------------
fswebcam
fswebcam-20140113.tar.gz
libXpm-3.5.10-2.el6.x86_64.rpm
libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64.rpm
libXpm-devel-3.5.10-2.el6.x86_64.rpm
gd-2.0.35-11.el6.x86_64.rpm
gd-devel-2.0.35-11.el6.x86_64.rpm
---------------------------------------------------------------
sendmail
hesiod-3.1.0-19.el6.x86_64.rpm
procmail-3.22-25.1.el6.x86_64.rpm
sendmail-8.14.4-8.el6.x86_64.rpm
---------------------------------------------------------------
logwatch
logwatch-7.3.6-49.el6.noarch.rpm
perl-YAML-Syck-1.07-4.el6.x86_64.rpm
perl-Date-Manip-6.24-1.el6.noarch.rpm
---------------------------------------------------------------
clamd
clamav-db-0.100.1-2.el6.x86_64.rpm
clamav-0.100.1-2.el6.x86_64.rpm
clamd-0.100.1-2.el6.x86_64.rpm
---------------------------------------------------------------
chkrootkit
chkrootkit.tar.gz
glibc-static-2.12-1.132.el6_5.4.x86_64.rpm
glibc-static-2.12-1.149.el6.x86_64.rpm   <---- CentOS 6.6 の時
---------------------------------------------------------------
webmin-1.680.tar.gz
Jcode-2.07.tar.gz
nkf-2.1.5.tar.gz
---------------------------------------------------------------
sensors
lm_sensors-libs-3.1.1-17.el6.x86_64.rpm
lm_sensors-3.1.1-17.el6.x86_64.rpm.html


4. セキュリティ対策のため停止したサービス

停止したサービスは、下記のとおりです。

atd
cpuspeed
kdump

haldaemon
blk-availability
acpid
messagebus
saslauthd
mdmonitor
netfs

rdisc
saslauthd
auditd
ip6tables
lvm2-monitor
restorecond
postfix

# 単発的にスケジュール化した コマンド を実行させるデーモンです
# 動作負荷に応じてCPUの速度を変化させるデーモンです
# システムがクラッシュした時、原因を特定するためのdumpファイルを
 保存してくれるサービス
# USB外付けHDDやUSBメモリ等を使わないのであればOFF
# LVM2のミラーデバイスを管理する。
# ホスト機の動作と電源を管理#
# アプリケーション間のメッセージを送るD-BUSデーモン
# コネクションベースのプロトコル認証をサポートするデーモン
# ソフトウェアRAID 監視サービ
# システム起動時にfstabに記述されているNFSやsambaを自動マウントする
 ためのサービス
# ネットワークルータディスカバリーデーモン
# コネクションベースのプロトコル認証をサポートするデーモン
# 監査システムの一部を補助し、適切なログデータを出力する
# IPv6でパケットフィルタリングを行うデーモンです
# 論理ボリュームマネージャー(LVM) 利用時の障害監視のためのデーモン
# SELinuxと連動
# メールサーバ

サービスの停止を簡単に済ませたい時には、下記コマンドを入力すると写真 @ のように表 示するので[↑],[↓]キーでサービスの起動・停止したいサービスを選んで[スペース]キーを 押します。
終了は、[Tab]キーを押してから、[Enter]キーを押します。( 再起動後有効になります。) ( * の付いている箇所は、サービスを起動するサービスです。)


   ntsysv

※ 注意 ※
   ntsysv での設定は、現在のランレベルだけでの起動・停止設定になります。
   現在のランレベルの確認は、コマンド runlevel でします。
   私のサーバ機の環境下では、N 3 ( ランレベル 3 )と表示しました。
   [ ランレベル 3 の意味 --- 通常のマルチユーザーモード(テキストログイン)]
   [ N は起動した後、ランレベルを切り替えていないことを意味します。]

写真 @
A


5. ファイアウォール・SELinux の設定

許可(開放)しているネットワークポートの一覧
     ( ファイアウォール iptables で下記のポート番号だけ、許可しています。 )
     1. 21    ( ftp ファイル転送 SMTP )
     2. 2222    ( ssh )
     3. 80    ( Webアクセス http )
     4. 123    ( NTP サーバの時刻合わせ )
     5. 10000   ( webmin )

     先人の知恵を借りて、シェルスクリプトのプログラム作成しました。
     下記は、私が改良したプログラムです。

[ 先人の知恵を借りて作成したファイアーウォールのプログラム ] の詳細は、
[ここをクリック]してください。

〇 SELinux を使用した時の追加設定

[ CentOS 6 SELinux のアクセス制限を有効にした時の追加設定 ] の詳細は、
[ここをクリック]してください。




6-1. Tera Termでproftpd( FTPサーバ )を転送しインストール

私の場合、自宅サーバの構築に必要とする、ファイル等は、windows側で事前にダウンロー ドしておき、ffftpで一括に転送する方法を取っています。

proftpd( FTPサーバ )をインストールするまでは、ffftpが、使用できないのでTera Termの 転送機能で、proftpd( FTPサーバ
proftpd-1.3.5.tar.gz )をホームディレクトリへ転送し インストールします。
( Tera Termの転送機能は、ホームディレクトにしか書込みが出来ません。)

@
Tera Term から、proftpd をサーバ機のホームデレクトリィにファイルを転送する方法は、 次の通りです。

  [ 転送方法 ]
  1. Tera Term の画面上・左端 [ファイル] をクリックする。       
<--- 写真 @
  2. プルダウンメニューの SSH SCP...をクリックする。         
<--- 写真 A
  3. 中央に窓が開くので
写真 B の矢印で示すボタン[…]をクリックする。 <--- 写真 B

写真 @A 写真 AB 写真 BC

  4. 写真 C の様にファイルを選択するダイヤログ画面が開くので、
       proftpd-1.3.5.tar.gzを選択する(ダブルクリックする。)  
<--- 写真 C
  5. 
写真 D の矢印で示す[Send]ボタンをクリックする。       <--- 写真 D
  6. ユーザのホームデレクトリィにファイルが転送される。

写真 C
A
写真 DB

A proftpd のインストール

1. 転送した proftpd-1.3.5.tar.gz を /usr/loacl/src/ コピーする。

      cp /home/miyasaka/proftpd-1.3.5.tar.gz /usr/loacl/src/

2. proftpd-1.3.5.tar.gz を展開する。

      cd /usr/loacl/src/ ;tar zxvf proftpd-1.3.5.tar.gz

3. 展開したソースファイルの configure を実行する。

      cd proftpd-1.3.5; \
      ./configure --prefix=/usr/local/proftpd

1 〜 3 をまとめて実行させると

      cp /home/miyasaka/proftpd-1.3.5.tar.gz /usr/loacl/src/; \
      cd /usr/loacl/src/; \
      tar zxvf proftpd-1.3.5.tar.gz; \
      cd proftpd-1.3.5; \
      ./configure --prefix=/usr/local/proftpd

4. make とインストールをする。

      make && make install

B proftpd.confの設定

※ 注意 ※
○○○○.conf ファイルは、編集前にバックアップをホームディレクトリに取るように しましょう。
ex, proftpd.confの場合

  cp /usr/local/proftpd/etc/proftpd.conf\
     /home/miyasaka/proftpd.conf.bak

vi /usr/local/proftpd/etc/proftpd.conf で、
           "# Bar use of SITE CHMOD by default"
  以降をすべて削除し、下記の文を追加します。
 
※ まとめて削除する方法 ※

  "# Bar use of SITE CHMOD by default"の行へカーソルを移動して
     (削除行数)dd と入力する。

    #
    # Bar use of SITE CHMOD by default
    #     サイト内ファイルの属性変更を許可するグループ
    #
    <Limit SITE_CHMOD>
      #DenyAll
      AllowAll                
    </Limit>
    #ファイル一覧表示(ドットファイルの可視化)
    ListOptions "-a"
    #
    #ログイン時間の短縮化(DNS問い合わせしない・Identの停止)
    UseReverseDNS off
    IdentLookups off
    #
    # アクセス時刻の修正 GMT-->JST
    TimesGMT off
    # LAN内のみアクセスを許可する。
    <Limit LOGIN>
      Allow from 192.168.0.0/24  <--- ここの 192.168.0. は、あなたの
    </Limit>                     環境のIPアドレスに合わせてください。

C proftpdの起動ファイルをコピー・編集する。

作成された起動ファイル
proftpd.init.d を /etc/rc.d/init.d/proftpd へコピーする。

 cp /usr/local/src/proftpd-1.3.5/contrib/dist/rpm/proftpd.init.d \
  /etc/rc.d/init.d/proftpd

D proftpdの起動ファイルの32、46行目を編集する。

  vi /etc/rc.d/init.d/proftpd

32行目に追加( 環境変数 PATH に /usr/local/proftpd/sbin を 追加・有効にする処理 )
これは、proftpd のコンパイル後の保存先が、/usr/local/proftpd にし ているためです。

  export PATH="$PATH:/usr/local/proftpd/sbin"

46行目を修正する

  # Make sure the binary is present.
  [ -x /usr/sbin/proftpd ] || exit 5
    ↓   ↓
  [ -x /usr/local/proftpd/sbin/proftpd ] || exit 5

※ 参考 ※>
 1行毎直すのが面倒な時には、sed コマンドで下記の様にすると同じ事ができます。
 ○○○○は、あなたの環境下のユーザのフォルダ名称です。
 編集は、一度ユーザのフォルダにコピーしてから行います。

   ( sed -e "31a は、31行目の次の行として a 以降の文字列が追加されます。 )
   ( s/△△/□□/g は、△△の文字列が□□文字列に置換されます。 )
   ( \ は、メタ文字[ $,/ 等 ]の指定です。 )

cp /usr/local/src/proftpd-1.3.5/contrib/dist/rpm/proftpd.init.d \
/home/○○○○/proftpd; \
sed -e "31aexport PATH=\$PATH\:\/usr\/local\/proftpd\/sbin
s/-x \/usr\/sbin\/proftpd/-x \/usr\/local\/proftpd\/sbin\/proftpd/" \
/home/○○○○/proftpd > /etc/rc.d/init.d/proftpd

※※ 目から鱗の情報です ※※

sed コマンドでファイル内の書替えを
-i を追加することにより直接ファイルの書替えが できまるようになります。

sed -e "s/○○○/□□□/g" /home/○○○○/proftpd > /etc/rc.d/init.d/proftpd
    ↓   ↓   ↓   ↓
sed -i -e "s/○○○/□□□/g" /etc/rc.d/init.d/proftpd

上記のコマンドは、下記のように変更になります。

cp /usr/local/src/proftpd-1.3.5/contrib/dist/rpm/proftpd.init.d \
/etc/rc.d/init.d/proftpd; \
sed -i -e "31aexport PATH=\$PATH\:\/usr\/local\/proftpd\/sbin
s/-x \/usr\/sbin\/proftpd/-x \/usr\/local\/proftpd\/sbin\/proftpd/" \
/etc/rc.d/init.d/proftpd

E proftpd.conf は、グループの初期値が

  30行目 User  nobody
  31行目 Group nogroup
  の設定なので、グループ名 nogroup を追加( groupadd nogroup )するか、
  31行目を Group nobody に変更します。

私は、groupadd nogroup のコマンド入力をしています。

F /etc/hostsに、ホスト名( 127.0.0.1 ○○○○ )を echo にて追加する。


これをしないと起動しません。

    echo "127.0.0.1 ○○○○" >> /etc/hosts
         ( ○○○○は、ホスト名です。)

G 編集したproftpdの属性を変更、chkconfig に proftpd を追加して起動する。
EFもまとめて実行させると

  groupadd nogroup; \
  echo "127.0.0.1 ○○○○" >> /etc/hosts; \
  chmod 755 /etc/rc.d/init.d/proftpd; \
  chkconfig --add proftpd; \
  /etc/rc.d/init.d/proftpd start

以下の様に表示すれば起動成功です。
 Starting proftpd:                   [ OK ]

※※ 注意事項 ※※

   windows 側の ffftp の[ホストの設定][文字コード]は、
   ホスト側の漢字コード  ---> 無変換
   ファイル名の漢字コード ---> 自動
   に設定してください。

H windows側にある各種インストールするためのプログラムは、ffftpで一度ホームデレク トリィに転送し、コマンドで所定デレクトリィに移動なり、コピーしてから、インスト ールします。

I ffftpの時間ずれを直すには、ffftpの設定を変更します。

windows側でFFTPを起動し、接続時に設定変更で「拡張」を選び、ホストタイムゾーンを GMT+9:00 に変更します。

J ffftpで接続したときに所有者なの欄が数字に成っている時、ユーザー名に変更する方法
ffftpの起動時に表示する「ホスト一覧」の画面で、ダイアログ→「高度」タブ→「可能で あればMLSDコマンドで一覧を取得(M)」のチェックを外すと所有者名が表示されます。

K ffftpの設定で[アップロードするファイルの属性]を事前に設定しておくと、転送後の属性 設 定が不要になるので便利です。

その方法は、ffftp のツールバーの[オプション(O)][環境設定(S)]を選び、表示されるオ プションの画面のタグ[転送3]をクリック、[追加(A)]で拡張子毎に設定追加します。


  設定例

   *.pl *.cgi *.sh ---> 755
   *.txt *.cnt   ---> 666    *.html は、設定不要です。

※ 参考になるサイト linuxmaster.jp



6-2. vsftpd( FTPサーバ )のインストール

ここでは、先人の知恵を借りて、vsftpd のインストールと設定に挑戦してみました。 設定は、管理者のみ・LAN 内のみの接続にしています。また、個人使用の為、ログは取りま せん。

vsftpd のダウンロードは、[ここをクリック]でできます。

※ 役に立つ情報 ※

 私は、サーバ再構築の際保存したある vsftpd.conf を上書きして設定しています。
 ffftp が使えないので、Tera Term の転送機能を利用して行います。
 その方法は、[ここをクリック]して下さい。

@ vsftpd のインストールと設定

   cd /usr/local/src/; \
   rpm -ivh vsftpd-2.2.2-12.el6_5.1.x86_64.rpm

   yum でのインストールは、下記の通りです。

   yum -y install vsftpd

A vsftpd の設定

※ 注意 ※

○○○○.conf ファイルは、編集前にバックアップをホームディレクトリに取るようにしましょう。
ex, vsftpd.confの場合

   cp /etc/vsftpd/vsftpd.conf /home/miyasaka/vsftpd.conf.bak

   vi /etc/vsftpd/vsftpd.conf

12行目 匿名ログイン禁止

   anonymous_enable=NO

39行目:転送記録をログに残す

   xferlog_enable=NO

81,82行目 コメント解除 ( アスキーモードでの転送を許可 )

これを忘れると perl、sh 等のソースファイルの転送が正しく行われない改行コードにエラーがでます。
改行コードが\r\nで保存されるため、Linuxの\nに直す業が発生します。

   ascii_upload_enable=YES
   ascii_download_enable=YES

96,97行目:コメント解除 ( chroot有効 )

   chroot_local_user=YES
   chroot_list_enable=YES

99行目 コメント解除 ( chroot リストファイル指定 )

   chroot_list_file=/etc/vsftpd/chroot_list

105行目 コメント解除 ( ディレクトリごと一括での転送有効 )

   ls_recurse_enable=YES

### 最終行へ追記 ###

# ルートディレクトリ指定 (指定しない場合はホームディレクトリがルートディレクトリとなる)

  local_root=public_html

# ローカルタイムを使う

  use_localtime=YES

# Windows( ffftp )側で所有者名の表示

  text_userdb_names=Yes

# Windows( ffftp )側で . ファイルの表示

  force_dot_files=YES

B 上層への ディレクトリへのアクセスを許可するユーザーを追加

   vi /etc/vsftpd/chroot_list

私の場合、miyasaka です。

または、

   echo "miyasaka" >> /etc/vsftpd/chroot_list

C hosts.allowとhosts.denyの設定( IPアドレスの制限 )

この設定は、hosts.allow が優先されます。つまり、全てを拒否し、 hosts.allow で指定された IPアドレスは、許可になります。

C-1 /etc/hosts.deny に、 vsftpd:ALL ( すべての接続を拒否 )と書込みます。

   vi /etc/hosts.deny
   vsftpd:ALL
   または、
   echo "vsftpd:ALL" >> /etc/hosts.deny

C-2 /etc/hosts.allow で接続を許可するIPアドレスを指定します。

   vi /etc/hosts.allow
   vsftpd:192.168.0.
    または、
   echo "vsftpd:192.168.0." >> /etc/hosts.allow

192.168.0. は、私の環境下ですべてのローカルIPアドレスを許可する設定です。

D vsftpd を起動する。

   /etc/rc.d/init.d/vsftpd start

# が表示すれば OK です。

E vsftpd の自動起動を有効にする。

   chkconfig vsftpd on


# が表示すれば OK です。

F B 〜 F-4 のコマンドをまとめて実行させると下記の様になります。

        echo "miyasaka" >> /etc/vsftpd/chroot_list; \
        echo "vsftpd:ALL" >> /etc/hosts.deny; \
        echo "vsftpd:192.168.0." >> /etc/hosts.allow; \
        /etc/rc.d/init.d/vsftpd start; \
        chkconfig vsftpd on

G ここで、windows 側の ffftp で接続できるか確認します。

 
※※ 注意事項 ※※
 ffftp の設定は、
 ホスト名(アドレス)(N)    ----> CentOS6.5 のIPアドレス
 ユーザー名(U)        ----> CentOS6.5 のユーザー名
 パスワード/パスフレーズ(N) ----> CentOS6.5 のユーザー名パスワード
 ホスト側の漢字コード    ----> 無変換
 ファイル名の漢字コード   ----> 自動>
 に設定してください。

H windows側にある各種インストールするためのプログラムは、ffftpで一度ホームデレク トリィに転送し、コマンドで所定デレクトリィに移動なり、コピーしてから、インスト ールします。

I ffftpの時間ずれを直すには、ffftpの設定を変更します。

windows側でFFTPを起動し、接続時に設定変更で「拡張」を選び、ホストタイムゾーンを GMT+9:00 に変更します。

J ffftpの設定で[アップロードするファイルの属性]を事前に設定しておくと、転送後の属 性設定が不要になるので便利です。
その方法は、ffftp のツールバーの[オプション(O)][環境設定(S)]を選び、表示される オプションの画面のタグ[転送3]をクリック、[追加(A)]で拡張子毎に設定追加します。


  設定例
   *.pl *.cgi *.sh  ---> 755
   *.txt *.cnt    ---> 666
   *.html は、設定不要です。



7. ファイルの転送プログラムの作成

私の場合、インストールするプログラムのファイルは、windows側でダウンロードし、 windows 側のフォルダ src2にまとめて保存しおき、ffftpで /home/miyasaka/に転送し、 サーバ機側では、転送プログラムで所定のディレクトリに転送しています。
ファイルのダウンロードは、ファイル名で検索するとダウンロード先を見つけることができ ます。

ファイルを転送するシェルスクリプトのプログラムをホームディレクトリに作成して行います。
下記は、私が作成したプログラム例です。 [ ファイル転送シェルスクリプト ] の詳細は、
                [ここをクリック]してください。



8. サーバ機の時刻を日本標準時に同期させる

(独)情報通信研究機構 時空標準研究室 が、提供している「公開NTPサービス」を利用 して日本標準時にサーバの時刻を同期させます。
(設定方法等は、先人の知恵を借りて行いました。)


( ntp が無い時には、 yum -y install ntp でインストールをしてください。)

@ vi /etc/ntp.conf を入力して、設定ファイルを下記の様に変更します。  22行目あたり

 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

 こうなっている部分を以下のように変更します。>
 ( 必ず三つ書き込みます。)
  ↓
 server ntp.nict.jp
 server ntp1.jst.mfeed.ad.jp
 server ntp2.jst.mfeed.ad.jp

※ 参考 ※
 1行毎直すのが面倒な時には、sed コマンドで下記の様にすると同じ事ができます。
 ○○○○は、あなたの環境下のユーザのフォルダ名称です。
 編集は、一度ユーザのフォルダにコピーしてから行います。

cp /etc/ntp.conf /home/○○○○/; \
sed -e "s/server 0.centos.pool.ntp.org iburst/server ntp.nict.jp/
s/server 1.centos.pool.ntp.org iburst/server ntp1.jst.mfeed.ad.jp/
s/server 2.centos.pool.ntp.org iburst/server ntp2.jst.mfeed.ad.jp/
s/server 3.centos.pool.ntp.org iburst//" \
/home/○○○○/ntp.conf > /etc/ntp.conf

A ntpdを起動します。

  /etc/init.d/ntpd start

 下記の様に表示するはずです。
 ---------------------------------------------------------------
 ntpd を起動中:                [ OK ]
 ---------------------------------------------------------------

B サーバー起動時に自動で、サーバーの時刻合わせを有効にする設定をする。

  vi /etc/rc.d/rc.local

以下を追加する。

  #ntpd
  /etc/init.d/ntpd start

※ echo コマンドで追加する方法 ※
下記2行をコピペして実行します。

  echo "#ntpd
  /etc/init.d/ntpd start" >> /etc/rc.d/rc.local

ついでに自動起動の設定もしておきましょう。

  chkconfig ntpd on

ABもまとめて実行させると

  echo "#ntpd
  /etc/init.d/ntpd start" >> /etc/rc.d/rc.local; \
  chkconfig ntpd on; \
  /etc/init.d/ntpd start

C ntpdのステータスの確認。

# ntpq -p
起動当初は、下記の様に表示します。

    remote           refid      st t w……h delay offset jitter
==========================================
 ntp-b3.nict.go. .NICT.          1 u  ……  19.006 1011.19 0.002
 ntp1.jst.mfeed. 172.29.2.50     2 u  ……  16.972 1011.42 0.002
 ntp2.jst.mfeed. 133.243.236.18  2 u  ……  16.953 1011.43 0.002

以下のように*印がついていたら同期ができています。
(起動してから同期までに10分ぐらいかかります。)

  # ntpq -p
     remote        refid      st t …… delay offset jitter
==========================================
*ntp-b3.nict.go. .NICT.       1 u   ……  17.612  0.205  0.323
 ntp1.jst.mfeed. 172.29.2.50  2 u  ……  16.167  0.225  0.492
 ntp2.jst.mfeed. 172.29.2.50  2 u  ……  16.255  0.433  0.202

D システム時刻(年月日,曜日,時刻)の確認と手動での修正方法

 date を入力して時刻が確認できます。
 例えば、下記の様に表示します。

 2013年 10月 7日 月曜日 13:21:17 JST

 時刻の修正は、date MMDDhhmmYYYY の様に入力します。
 [ MM 月 01〜12 DD 日 01〜31 hhmm 時刻 24時表示 YYYY 年(西暦) ]

 ex. 2013年10月07日 09:05 --> date 100709052013


9. RPMforgeリポジトリを導入する

RPMforgeリポジトリの導入は、yum でのインストールで依存関係あるファイル等のインスト ールが出来るようにする。つまり、標準リポジトリで提供されないパッケージをyumでイン ストールできるようになります。

yum-plugin-priorities のダウンロードは、[ここをクリック]でできます。

○ yum-prioritiesインストール

  cd /usr/local/src/; \
  rpm -ivh yum-plugin-priorities-1.1.30-17.el6_5.noarch.rpm

yum でのインストールは、下記の通りです。

  yum -y install yum-plugin-priorities

○ 標準リポジトリ設定ファイル編集

  vi /etc/yum.repos.d/CentOS-Base.repo

  [base]
  name=CentOS-$releasever - Base
  mirrorlist=http://mirrorlist.centos.org/?release=$releasev;……
  #baseurl=http://mirror.centos.org/centos/$releasever/os/$b……
  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=$releasev;……
  #baseurl=http://mirror.centos.org/centos/$releasever/updat……
  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=$releasev……
  #baseurl=http://mirror.centos.org/centos/$releasever/extra……
  gpgcheck=1
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  priority=1  ← 追加する
  #additional packages that extend functionality of existing……
  [centosplus]
  name=CentOS-$releasever - Plus
  mirrorlist=http://mirrorlist.centos.org/?release=$releasev;……
  #baseurl=http://mirror.centos.org/centos/$releasever/cento/……
  gpgcheck=1
  enabled=0
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  priority=1  ← 追加する
  #contrib - packages by Centos Users
  [contrib]
         ( 省略 )

○ RPMforgeリポジトリインストール

  rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

○ RPMforgeリポジトリのアップデート

  yum -y update rpmforge-release

以下のメッセージ表示で終わります。
151 packages excluded due to repository priority protections
No packages marked for update

○ CentOS-Base.repo のファイルも編集済のファイルを上書きできるので 保存しておくことをすすめます。

  ホームディレクトリへ保存

  cp /etc/yum.repos.d/CentOS-Base.repo /home/miyasaka/

  上書きする

  cp /home/miyasaka/CentOS-Base.repo /etc/yum.repos.d/

※ 参考にしたサイト RPMforgeリポジトリ導入(RPMforge)


10-1. apache2( httpd-2.4.41 )のインストール

2019.08.12 付けで httpd-2.4.41 がリリースされました。
2020.03.30 付けで httpd-2.4.43 に成っていますがインストール・設定は同じでOKです。

httpd-2.4.X から、 srclib以下は何も用意されていないので、apr、apr-util、pcre を準備しインストールして置く必要があるります。
httpd-2.4.26 からは、 expat-devel も準備しインストールして置く必要があるります。
インストールしないと make で [xml/apr_xml.lo] エラー 等々のエラーが出ます。


@ pcre, expat-devel のインストール

pcre のインストール

   cd /usr/local/src; \

        CentOS6.5, 6.6 の時
   rpm -Uvh pcre-devel-7.8-6.el6.x86_64.rpm

        CentOS6.7, 6.9, 6.10 の時
   rpm -Uvh pcre-devel-7.8-7.el6.x86_64.rpm

   yum でのインストールは、   yum -y install pcre-devel

   expat-develのインストール  <---- httpd-2.4.26 〜 39の時必要

   rpm -Uvh expat-devel-2.0.1-13.el6_8.x86_64.rpm

   yum でのインストールは、   yum -y install expat-devel

このパッケージが無いと make の最後に下記エラーが出ます。

( 表示例 )


  ---------------------------------------------------------------
  make[3]: *** [xml/apr_xml.lo] エラー 1
  make[3]: ディレクトリ `/usr/local/src/……b/apr-util' から出ます
  make[2]: *** [all-recursive] エラー 1
  make[2]: ディレクトリ `/usr/local/src/……b/apr-util' から出ます
  make[1]: *** [all-recursive] エラー 1
  make[1]: ディレクトリ `/usr/local/src/……srclib' から出ます
  make: *** [all-recursive] エラー 1
  ---------------------------------------------------------------

A httpd-2.4.41, apr, apr-util を展開する。

○ httpd-2.4.41 を展開する。

   tar xzvf httpd-2.4.41.tar.gz; \
   chown -R root. httpd-2.4.41; \
   cd ./httpd-2.4.41/srclib

以下で、終われば、OK -----------------------------------------------------------------

  httpd-2.4.41/docs/manual/urlmapping.html
  httpd-2.4.41/buildconf
  httpd-2.4.41/Makefile.in
  httpd-2.4.41/srclib/
  httpd-2.4.41/srclib/Makefile.in

○ apr を展開したファイルをフォルダ ./httpd-2.4.41/srclib/ へ書き込む。

   tar xzvf apr-1.7.0.tar.gz; \
   chown -R root. apr-1.7.0/; \
   mv apr-1.7.0 apr; \
   tar xzvf apr-util-1.6.1.tar.gz; \
   chown -R root. apr-util-1.6.1/; \
   mv apr-util-1.6.1/ apr-util

B configure の実行

   cd /usr/local/src/httpd-2.4.41; \
   ./configure \
   --enable-rewrite \
   --enable-so \
   --enable-deflate=shared \     <---- 圧縮する処理を追加行
   --with-included-apr

  ---------------------------------------------------------------
  ・enable-rewrite        : Rewriteサポート(mod_rewrite)
    Apache側で要求されたURLを書き換えたり、
    リダイレクトしたりしてくれるモジュール
  ・enable-so             : mod_soモジュールを静的に組み込む
  ・enable-deflate=shared : データの転送を圧縮する
                            モジュールを組み込む
  ---------------------------------------------------------------

  以下で、終われば、OK

-----------------------------------------------------------------
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
configure: summary of build options:

    Server Version: 2.4.41
    Install prefix: /usr/local/apache2
    C compiler:     gcc -std=gnu99
    CFLAGS:          -g -O2 -pthread
    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE
    LDFLAGS:
    LIBS:
    C preprocessor: gcc -E

-----------------------------------------------------------------

D make & install

   make && make install

  以下で、終われば、OK

-----------------------------------------------------------------
Installing CGIs
mkdir /usr/local/apache2/cgi-bin
Installing header files
Installing build system files
Installing man pages and online manual
mkdir /usr/local/apache2/man
mkdir /usr/local/apache2/man/man1
mkdir /usr/local/apache2/man/man8
mkdir /usr/local/apache2/manual
make[1]: ディレクトリ `/usr/local/src/httpd-2.4.41' から出ます
-----------------------------------------------------------------

E 私のサーバの環境でした、httpd.confの設定は、下記のとおりです。

※ 注意 ※

○○○○.conf ファイルは、編集前にバックアップをホームディレクトリに取るようにしましょう。
  ex, httpd.confの場合

  cp /usr/local/apache2/conf/httpd.conf\
 /home/miyasaka/httpd.conf.bak

下記は、修正箇所の一覧ですが、ディレクトリは、私のサーバ機の環境での設定値です。

機能は、「cgi, SSI, が、.htmlで使用可能・cgi, SSI のファイルは、ホームページフ ァイルと同一ディレクトリで可能にする・png, jpg ファイル以外は、圧縮して転送する 」を設定しています。
なお、ドメインは一つしか使用しないのでバーチャルドホストの設定は、していません。

圧縮設定は、最後に追加していますが、圧縮ログの出力は、コメントアウトしています ので、ローカルで確認する時 には、削除してください。

下記は、httpd.conf の編集を sed コマンドで一括編集をした時の sed コマンドのリスト です。
ここまで sed コマンドを使うと Linux の正規表現等が良く理解できます。
興味のある方は、下記をクリックしてください。別ページで表示します。
-----------------------------------------------------------------


[ sed コマンドによる httpd-2.4.XX の httpd.conf の一括編集 ] の詳細は、
           [ここをクリック]してください。
-----------------------------------------------------------------
※ httpd.conf の設定が、終わったファイルを ffftp で、windows側に転送しておくと、再
構築の時に、そのファイルを上書きすれば、設定内容は、すべて有効になります。
  ただし、直接上書きはできないので、一度ホームディレクトリへ転送し、コピーコマンド で、上書きします。

  cp /home/miyasaka/src2/httpd.conf\
  /usr/local/apache2/conf/

-----------------------------------------------------------------
[ CentOS 6.X httpd-2.4.41 httpd.conf の編集項目 ] の詳細は、
          [ここをクリック]してください。
-----------------------------------------------------------------

Alias(エイリアス) を使用して、別 DocumentRoot を作り CGI, SSI, html を動作 させる方法を下記に紹介します。

この方法は、当ホームページのトップページ内の指定した「日」および「月」の保存した 定点カメラの映像表示で使用しています。

[ Alias で別 DocumentRoot を作り CGI, SSI, html を動かす ] の詳細は、
           [ここをクリック]してください。

-----------------------------------------------------------------
編集済の httpd.conf は、再構築時使用すると便利なので windows PC へ保存します。
( ディレクトリ・ユーザ名は、私のサーバ機の場合の設定です。)

  cp /usr/local/apache2/conf/httpd.conf /home/miyasaka/

-----------------------------------------------------------------
Fホームページの書き込み先のフォルダを作成・所有者の変更・属性変更をします。
( /var/www/html/www.smiyasaka.com は、私の場合の DocumentRoot です。)

   mkdir -p /var/www/html/www.smiyasaka.com; \
   chown -R miyasaka:miyasaka /var/www/; \
   chmod 777 /var/www/html/www.smiyasaka.com

G httpd.confの設定に間違いが無いか確認します。

   /usr/local/apache2/bin/apachectl configtest

  「 Syntax OK 」と表示されればOKです。

※※ 注意 ※※

  configtest を実行する時に、DocumentRoot で指定したディレクトリが無いと下記エラ
ーが出ますのでディレクトリを作成してから、configtest を実行してください。

              DocumentRoot must be a directory

H apache2を起動する。

 /usr/local/apache2/bin/apachectl start    <--- 停止してから、
                                                   起動する。

  または、

 /usr/local/apache2/bin/apachectl graceful <--- アクセス中の
                               ユーザを有効にしたまま再起動する。

  どちらも、# が、表示すれば OK です。

J システム起動時に、自動起動させるために、rc.local に apache の起動コマンドを書き込みます。

   vi /etc/rc.d/rc.local

  下記を追加する。

   # Apache
   /usr/local/apache2/bin/apachectl start

  ※ echo コマンドで追加する方法 ※
  下記2行をコピペして実行します。

   echo "# Apache
   /usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local

K ここで、 httpd.conf へ設定したドキュメントのルート( DocumentRoot と 別ディレクトリ)へ
ホームページのファイルデータを書き込みます。


下記は、ホームページ表示テスト用のプログラムです。 SSI・CGI もテストするようにしています。

[ ホームページテストプログラム ] の詳細は、[ここをクリック]してください。

私の場合は、自宅サーバの現用機で、毎日下記のファイルを圧縮してバックアップファイルとし

   1. ホームページのhtml・cgi・SSI・写真のファイルとデータ
   2. システム管理用に作成した perl・sh等の各種プログラム
   3. webalizerが解析した apacheのアクセスデータ(htmlデータ)
   4.apache のログデータ(1カ月分)
   5. root宛てメールデータ(10日分)
   6. SSL 用の認証鍵データ


作成しているので、専用の転送プログラムと展開プログラムで簡単に、前日の24時の時点に数分 で復元できるようにシステムを構築しています。

L
動作確認は、予備機のローカルIPアドレスを別の PC から入力して確認します。
予備機を現用機とした時には、[
ホームページが外部へ公開 ] されているかの確認が出来る サイトで行います。下記をクリックするとそのサイトへジャンプします。

[サーバー監視/ネットワーク監視サービス]

M 書き込んだプログラムを定時実行させるため、cron への設定もします。
-----------------------------------------------------------------
※ 圧縮されたかの確認ができるwebサイトを紹介します。下記 URL をクリックしてあなたの
ホームページの URL を入れるだけです。
www.gidnetwork.com または、www.port80software.com

私のドメインでアクセスした結果は、下記の通りです。(圧縮レベル 1 で設定)
入力するドメインには、必ず、http:// 又は、https:// を付けてください。

----------------------------------------
右の写真のような情報が取得できます。
( H28.11.01 アクセスし、データ取得 )


Results for: www.smiyasaka.com
Web page compressed?   Yes   ← 圧縮有
Compression type?     gzip   ← 圧縮タイプ
Size, Markup (bytes)   13,077   ← 解凍した後の バイト数
Size, Compressed (bytes) 4,515   ← 圧縮された時の バイト数
Compression %    65.5   ← 圧縮率
----------------------------------------






www.gidnetwork.com からの回答
B

圧縮結果のログデータは、管理者か゜root の為、ffftp でダウンロードできないので、ユーザー
権限に変更します。


chown -R miyasaka:miyasaka /usr/local/apache2/logs/deflate_log; \
chmod -R 666 /usr/local/apache2/logs/deflate_log

保存場所 ----> /usr/local/apache2/logs/deflate_log

圧縮した時の圧縮ログデータは、このようになりました。( TeraPad で見ます。)

    (出力バイト数)↓  ↓(入力)↓( 元データに対するデータの大きさ[ % ] ) を意味します。

"GET  / HTTP/1.1" 10335/53768 (19%) Mozilla/5.0 (compatible; MSIE 9.0;………
"GET  /.webcam/camdata.jpg HTTP/1.1" 730/1235 (59%) Mozilla/5.0 (compatible;…
"GET  /.webcam/camdata.jpg HTTP/1.1" -/- (-%) Mozilla/4.0 (compatible; )………
"GET  /fswebcam.html HTTP/1.1" 16258/71964 (22%) Mozilla/5.0 (compatible; ……
"GET  /server.html HTTP/1.1" 13682/55830 (24%) Mozilla/5.0 (Windows NT 6.1; …
"GET  /html_point.html HTTP/1.1" 14973/70669 (21%) Mozilla/5.0 (Windows NT …
"GET  /html_point8.html HTTP/1.1" 1017/1985 (51%) Mozilla/5.0 (Windows NT ……
"GET  /html_point4.html HTTP/1.1" 852/1575 (54%) Mozilla/5.0 (Windows NT………
HTMLのページによって圧縮率[ 100 - 上記の()内の値 ]が違う事が分かります。また、jpg は、
圧縮象外にしているので圧縮されてないことも分かります。
対圧縮率の計算は、
{(入力バイト数)-(出力バイト数)}÷(入力バイト数)×100 %になるので
上記1行目の場合、( 53,768 - 10,335 )÷53,768×100=80.78 % になります。
----------------------------------------------------------------------------------


N mod_status を使用した apache サーバステータスの監視機能を使用可能にする設定。

apache サーバステータスを LAN内 PC から、ホームページとして見られる様に設定します。

N-1 httpd.conf の編集

vi /usr/local/apache2/conf/httpd.conf

135行目あたり コメントアウトされてない事を確認する。

LoadModule status_module modules/mod_status.so

461行目(原本での行数)あたり コメントアウトを解除する。

Include conf/extra/httpd-info.conf

N-2 httpd-info..conf の編集

vi /usr/local/apache2/conf/extra/httpd-info.conf

<Location /server-status>
SetHandler server-status

16  Require host .example.com
     ↓ ↓ ↓
  Require host localhost

17  Require ip 127
     ↓ ↓ ↓
  Require ip 192.168.0.> <--- LAN 内のみアクセス許可にする。
  </Location>      ここは、あなたの環境に合わせてください

サーバステータス情報の拡張表示を行う

25  #ExtendedStatus On
     ↓ ↓ ↓
  ExtendedStatus On

httpd の設定情報は、不要なのですべてコメントアウトする

32 #<Location /server-info>
33 #    SetHandler server-info
34 #    Require host .example.com
35 #    Require ip 127
36 #</Location>

上記をまとめて sed コマンドで実行は、下記の様になります。なお、同じ文字列があるので、行を 指定して実行しています。
( s/ の前の数字は、置換をさせる行番号です。32,36s/^/#/ は、32〜36行の先頭に #を挿入する指示です。)


sed -i -e "s/Require host \.example\.com/Require host localhost/g
s/Require ip 127/Require ip 192\.168\.0\./g
s/#ExtendedStatus On/ExtendedStatus On/g
32,36s/^/#/" /usr/local/apache2/conf/extra/httpd-info.conf


○ httpd を再起動する。

    停止してから起動する

        /usr/local/apache2/bin/apachectl restart

    または、アクセス中のユーザを有効にしたまま再起動する。

        /usr/local/apache2/bin/apachectl graceful


N-3 LAN内 PC からのアクセス方法

[LAN内のサーバのIPアドレス]/server-status?refresh=5  <--- 5 秒更新
[LAN内のサーバのIPアドレス]/server-status        <--- 更新なし

下記は、私のサーバ機で表示したサーバステータス情報です。

A

※※ apache のバージョンの確認方法 ※※

  /usr/local/apache2/bin/httpd -v のコマンドで確認できます。

  Server version: Apache/2.4.41 (Unix)
  Server built: Sep 7 2019 06:23:27

○ おまけ

1. Linux OS のバージョンの確認方法

  cat /etc/redhat-release のコマンドで確認できます。

  CentOS release 6.10 (Final)

2. Linux カーネルのバージョンの確認方法

  uname -a のコマンドで確認できます。
  ( ただし、H30.08.25 現在 )

Linux LeoMiya 2.6.32-754.3.5.el6.x86_64 #1 SMP Tue Aug 14 20………


10-2. SELinux を有効にした時の apache2 のポリシー設定

※※※ 参考情報 ※※※
以下の設定が面倒な時は、ブール値 httpd_unified を on してみてください。
[ httpd_t に対して httpd の全タイプへの完全アクセスが許可されます (実行、 読み込み、 書き込み)。]
私のこのホームページで試したら、ほぼ動作しました。
動作しない SSI・CGI プログラムは、ポリシーを httpd_unconfined_script_exec_t に設定したら 動作しました。
ちなみに動作しないプログラムには、OS のコマンドが入っていました。 [ 私のサーバ機で検証 ]


○ httpd に設定したポリシー値


   ホームページ本体は、設定不要( 初期値 : httpd_sys_content_t )

   SSI・CGI プログラム     ---> httpd_sys_script_exec_t
   Read・Write するデータ  ---> httpd_sys_rw_content_t
   sh プログラム       ---> httpd_unconfined_script_exec_t
   SSI・CGI プログラム等で
    動作しないプログラム ---> httpd_unconfined_script_exec_t


○ .html のプログラムファイルは、初期設定値 httpd_sys_content_t のままにしています。

※※ 参考情報 ※※
   上記の設定が面倒な時は、ブール値 httpd_unified を on してみてください。

○ httpd のブール値は、下記を on にしています。

   httpd_enable_cgi  --> on   ← cgi の動作を有効にする。
   httpd_enable_homedirs  --> on   ← ホームディレクトリへのアクセスを有効にする。
   httpd_sys_script_anon_write  --> on   ← pubuic_content_rw_t タイプのラベルが付いた
   ファイルへの書き込みアクセスを HTTPスクリプトに許可するかどうかを定義


  
httpd_ssi_exec  --> off   ← Web ページ内の SSI (server side include) 要素を
   実行可能にするかどうかを定義。 これを on するかは、動作結果を見て決めて見てださい。

httpd-2.4.XX でも off のままで OK です。
httpd-2.4.6 の場合は、off しないと動作しない SSI プログラムがありました。


---------------------------------------------------------------------------------

私のホームページでは、SELinux を有効にするにあたってプログラムの配置を変更しました。
理由は、SELinux のポリシーの設定を明確にし、一括設定をできるようにする為です。
変更設定は、コマンド semanage fcontext でポリシーを宣言してコマンド restorecon でポリシーを 恒久的に設定しています。


変更点 1. perl のブログラムをすべて1つのホルダー内に格納。


プログラムは、すべて CGI 及び SSI実行可能なポリシー httpd_sys_script_exec_t に設定。
一部プログラム内で Linux のコマンドを実行しているプログラムは、SELinux 保護無効の ポリシー httpd_unconfined_script_exec_t に設定。


設定例

semanage fcontext -a -t httpd_sys_script_exec_t\
"/var/www/html/www.smiyasaka.com/SSI(/.*)?"
restorecon -R -vF /var/www/html/www.smiyasaka.com/SSI/
semanage fcontext -a -t httpd_unconfined_script_exec_t\
/var/www/html/www.smiyasaka.com/SSI/cgi_test.cgi
restorecon -vF /var/www/html/www.smiyasaka.com/SSI/cgi_test.cgi


変更点 2. テキストファイル(.txt)を> すべて1つのホルダー内に格納。


ファイルは、すべてホームページからの読み書き有効なポリシー httpd_sys_rw_content_t に設定。


設定例

semanage fcontext -a -t httpd_sys_rw_content_t\
"/var/www/html/www.smiyasaka.com/TXT(/.*)?"
restorecon -R -vF /var/www/html/www.smiyasaka.com/TXT/


※※ 参考情報 1 ※※ semanage fcontext でのポリシーの設定について。
ポリシーは、パスの上位から、下位に向かって行いましょう。 つまり、上位のディレクトリを まとめて設定し、次に下位のファイル単位でポリシーを設定します。


※※ 参考情報 2 ※※ SELinux 有効化でのバックアップの作成について。


バックアップは、コマンド tar で圧縮ファイルを作成しますが、その時、下記の様にオプション --selinux を付けるとバックアップの各ファイルに設定されている SELinux のコンテキスト( SELinux ポリシー )も一緒にバックアップされるので復元先でも各ファイルは、バックアップ元と 同じ SELinux のコンテキストになります。
なお、解凍先でコマンド semanage fcontext -l -C でポリシーの設定内容を見ても何の表示もあ りません。このサーバ機では、何も設定して無い為です。但し、httpd-2.4.XX でバックアップし た HTMLファイルを httpd-2.4.6 の HTMLファイルとして解凍しても SELinux のコンテキスト等は、 引継ぎされませんので再設定が必要です。


/bin/tar
--selinux -zcvf ○○○○.tar.gz △△△△

△△△△ : バックアップとして、まとめたいファイルを指定。複数ある時には、半角スペ ースを入れて続けて指定します。具体的には、下記のようにします。

例 BackUP_Dir="/var/html/www/home_page"
   BackUP_Dir="${BackUP_Dir} /home/miyasaka/home_page_date"
   ・
↑ 半角スペースを入れる事
   ・
○○○○ : 圧縮後のファイル名を指定。○○○○の前に保存先ディレクトリを指定します。
例 /home/BackUP_Dir/back_www_data20180225.tar.gz ${BackUP_Dir} バックア ップは、毎日行うので日付を入れておくと良いと思います。


---------------------------------------------------------------------------------

※ semanage fcontext と restorecon オプションの説明 ※

semanage fcontext -a -t    <----- ポリシーの宣言

「-a」オプションを指定して、コンテキストの設定の追加を行うようにしています。

「-t」オプションで、タイプ「httpd_sys_script_exec_t」のコンテキストを設定するようにしています。
ディレクトリの指定は、正規表現を用いる。例 "/www(/.*)?" : ディレクトリ /www を指定
「-d」オプションで、ポリシーの削除を指定します。


restorecon -vF    <----- 強制的にポリシーを恒久的に設定する。

  「-R」オプションを指定して、ディレクトリの下層にもコンテキストの設定が行われるように

   します。単独ファイル時には、宣言しない。
  「-v」オプションを指定して、コンテキストの変更内容がコマンド実行結果に表示されるように
   します。
  「/var/www/……/」は、設定対象のディレクトリになります。
  「-F」オプションを指定して、強制的に変更を適用します。指定しないと変わらない時があるの
   で指定します。


semanage fcontext -l -C    <----- 自分で設定したポリシーの設定内容を見る



10-3. apache2 の SSL 化の手順と
httpd.conf、httpd-ssl.conf の設定

※※※ 注意事項 ※※※

下記の設定で使用している www.smiyasaka.com と smiyasaka.com は、私のドメイン名です。
コマンドをコピーする時には、あなたのドメインに変更して使用してください。


※※※ 設定の基本方針 ※※※

1. http:// のアクセスを https:// に自動変換させる。

2. LAN 内 IP アドレスでのサーバ機へのアクセスを可能にする。
3. 秘密鍵は、無償の Let's Encrypt を使用する。
4. SELinux は、有効( Enforcing )にしたまま使用する。


※※※ 設定の前提条件 ※※※

1. 現在 http://(ドメイン) でホームページが公開されている事。

2. httpd-2.4.41 のバージョンの apache2 を使用している事。
3. epelレポジトリのインストールが完了している事。
4. iptables のポート 80 と 443 が解放されている事
5. モデムのポート 80 と 443 が解放されている事。


-----------------------------------------------------------------

1. 無償の Let's Encrypt を使用して認証鍵の証明書を取得に関しての詳細( インストー
ル・証明書の取得 )は、[ CentOS-7-x86_64-DVD-1810 のインストールとサーバ構築 ]の[ 10-3. apache2 の SSL 化の手順と httpd.conf、httpd_ssl.conf の設定 ]を参照してください。
なお、この章での[ 認証鍵の証明書 ]の使用は、現用サーバ機のデータをコピーして使用しています。


-----------------------------------------------------------------
2. mod_ssl パッケージのインストール

CentOS 6.10 では、mod_ssl のインストールは、不要です。

インストールされている ssl.conf のバスの確認


  find / -name *ssl.conf

  /usr/local/src/httpd-2.4.41/docs/conf/extra/httpd-ssl.conf
  /usr/local/apache2/conf/extra/httpd-ssl.conf <--- httpd-ssl.conf
                                                              のフルパス
  /usr/local/apache2/conf/original/extra/httpd-ssl.conf

インストールされている mod_ssl.so の確認

  find / -name mod_ssl.so

  /usr/local/src/httpd-2.4.41/modules/ssl/.libs/mod_ssl.so
  /usr/local/apache2/modules/mod_ssl.so           <---  これです。

3. httpd-2.4.41 の SSL を有効にしたインストール

-----------------------------------------------------------------
 @ Apacheのソースコード httpd-2.4.41.tar.gz を展開する。
-----------------------------------------------------------------

  cd /usr/local/src; \
  tar xzvf httpd-2.4.41.tar.gz; \
  chown -R root. httpd-2.4.41; \
  cd ./httpd-2.4.41/srclib/

-----------------------------------------------------------------
 A APRとAPR-Utilのソースコードを Apacheのソースコード内 httpd-2.4.41/srclib/ に展開する。
-----------------------------------------------------------------

  tar xzvf /usr/local/src/apr-1.7.0.tar.gz; \
  chown -R root. apr-1.7.0/; \
  mv apr-1.7.0 apr; \
  tar xzvf /usr/local/src/apr-util-1.6.1.tar.gz; \
  chown -R root. apr-util-1.6.1/; \
  mv apr-util-1.6.1/ apr-util

-----------------------------------------------------------------
 B mod_ssl.so を追加して再インストール
-----------------------------------------------------------------

  cd /usr/local/src/httpd-2.4.41;\
  ./configure \
  --enable-ssl \             <---  SSL の追加
  --with-included-apr \
  --enable-rewrite \
  --enable-so \
  --enable-deflate=shared

-----------------------------------------------------------------
4. Apache の SSLの設定 ssl.confファイルの編集

 DocumentRoot、ServerName、ErrorLog、CustomLog 等は、httpd.conf と同じ設定をします。

 原本は、保存しておきます。

   cp /usr/local/apache2/conf/extra/httpd-ssl.conf\
       /home/miyasaka/httpd-ssl.conf.bak

   vi /usr/local/apache2/conf/extra/httpd-ssl.conf

-----------------------------------------------------------------
 52行目あたり  SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
           ↓    ↓
   SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES:!DH

 53行目あたり  SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
           ↓    ↓
   SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES:!DH

 79行目あたり  SSLProtocol all -SSLv3
           ↓    ↓
   SSLProtocol all -SSLv2 -SSLv3

 80行目あたり  SSLProxyProtocol all -SSLv3
           ↓    ↓
   SSLProxyProtocol all -SSLv2 -SSLv3

 124行目あたり  DocumentRoot "/usr/local/apache2/htdocs"
           ↓    ↓
   DocumentRoot "/var/www/html/www.smiyasaka.com"

 125行目あたり  ServerName www.example.com:443
           ↓    ↓
   ServerName (サーバ機のホスト名):443 
     
 126行目あたり  ServerAdmin you@example.com
           ↓    ↓
   ServerAdmin (メールアドレス)

 127行目あたり  ErrorLog "/usr/local/apache2/logs/error_log"
           ↓    ↓
   ErrorLog "| /usr/local/apache2/bin/rotatelogs\
 /usr/local/apache2/logs/www.smiyasaka.com_error_log_%Y%m%d\
   (長いので3行表示です)       86400 540"

 133行目あたりに以下を追加する

 Header set Strict-Transport-Security\
 "max-age=315360000;includeSubDomains"

上記の設定は、HSTS (HTTP Strict Transport Security) の導入になります。

これは、HTTPで接続した際に、強制的にHTTPSへリダイレクトし、以降のそのドメインへの接続はすべてHTTPSとする機能です。
             315,360,000 秒 というのは 3,650 日間 (10年間)

 144行目あたり  SSLCertificateFile
           ↓    ↓         "/usr/local/apache2/conf/server.crt"
   # 証明書を指定する
   SSLCertificateFile\
 "/etc/letsencrypt/live/www.smiyasaka.com/cert.pem"

 154行目あたり  SSLCertificateKeyFile
                              "/usr/local/apache2/conf/server.key"
           ↓    ↓
   # 秘密鍵を指定する
   SSLCertificateKeyFile\
 "/etc/letsencrypt/live/www.smiyasaka.com/privkey.pem"

 165行目あたり  #SSLCertificateChainFile
                           "/usr/local/apache2/conf/server-ca.crt"
           ↓    ↓
   # 取得した中間証明書を指定
   SSLCertificateChainFile\
 /etc/letsencrypt/live/www.smiyasaka.com/chain.pem

 249行目あたり  <Files ~ "\.(cgi|shtml|phtml|php)$">
           ↓    ↓
   <FilesMatch "\.(cgi|shtml|html)$"$gt;
 
 252行目あたり  <Directory "/var/www/cgi-bin">
           ↓    ↓
   <Directory "/var/www/html/www.smiyasaka.com">

      コメントアウトする
287行目あたり
    #CustomLog "/usr/local/apache2/logs/ssl_request_log" \
288行目あたり
    #    "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
           ↓    ↓
   CustomLog "| /usr/local/apache2/bin/rotatelogs\
 /usr/local/apache2/logs/www.smiyasaka.com_access_log_%Y%m%d\
   (長いので3行表示です)  86400 540" combined env=!no-logfile

    ※※ ここからは、SSL でも圧縮処理をしたい時に追加してください。※※

<IfModule mod_deflate.c>
   #-------------------------------------------------------------
   # 転送データの圧縮設定(画像以外全て圧縮する)
   #            実際の圧縮率は、1 も 3 も大差ありません
   #-------------------------------------------------------------
   # 圧縮レベル 1 に設定
        DeflateCompressionLevel 1
   #
        # 全てを圧縮する設定
        SetOutputFilter DEFLATE
        #
        # gzip圧縮に対応していない古いブラウザを除外
        # Netscape 4.x has some problems...
   # 送信先ブラウザがNetscape 4.xの場合はtext/htmlのみ圧縮
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        # Netscape 4.06-4.08 have some more problems
   # 送信先ブラウザがNetscape 4.06-4.08の場合は圧縮しない
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        # MSIE masquerades as Netscape, but it is fine
   # 送信先ブラウザがMSIEの場合は全て圧縮する
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        #
        # 画像以外全て圧縮する
        # Don't compress images
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
        #
        # Make sure proxies don't deliver the wrong content
   # プロキシサーバーが圧縮未対応ブラウザへ圧縮ファイルを
   # 送信しないようにする
        Header append Vary User-Agent env=!dont-vary
   # html や css, js, javescript などは個別指定
        AddOutputFilterByType DEFLATE text/plain
        AddOutputFilterByType DEFLATE text/html
        AddOutputFilterByType DEFLATE text/xml
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE text/js
        AddOutputFilterByType DEFLATE text/javascript
        AddOutputFilterByType DEFLATE application/xhtml+xml
        AddOutputFilterByType DEFLATE application/xml
        AddOutputFilterByType DEFLATE application/rss+xml
        AddOutputFilterByType DEFLATE application/atom_xml
        AddOutputFilterByType DEFLATE application/js
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE application/x-javascript
        AddOutputFilterByType DEFLATE application/x-httpd-php
   #
        # 圧縮率の確認用ログ設定
        # 不要になったら、# で無効にしておく事。
        # Deflateが有効になっているか確認するログの出力
        #
        DeflateFilterNote Input instream
        DeflateFilterNote Output outstream
        DeflateFilterNote Ratio ratio
        LogFormat '"%r" %{outstream}n/%{instream}n\
 (%{ratio}n%%) %{User-agent}i' deflate
        CustomLog logs/deflate_log deflate
</IfModule>

-----------------------------------------------------------------
5. Apache の SSL の設定 httpd.conf ファイルの編集

10-1 項の設定が完了してから、下記4ヶ所を変更します。

   vi /usr/local/apache2/conf/httpd.conf

〇 mod_socache_shmcbを有効化するには、「httpd.conf」で以下の設定のコメントアウトを解除します。

 88行目あたり #LoadModule socache_shmcb_module
                                     modules/mod_socache_shmcb.so
                 ↓    ↓
   LoadModule socache_shmcb_module\
 modules/mod_socache_shmcb.so

尚、mod_socache_shmcb.soは、httpdに含まれています。

〇 mod_ssl.so の読み込みを行うには、以下の設定のコメントアウトを解除します。

 133行目あたり #LoadModule ssl_module modules/mod_ssl.so
                 ↓    ↓
  LoadModule ssl_module modules/mod_ssl.so

〇 https:// のアクセスを https:// に変換させる処理の追加の為、mod_rewrite.so を有効にします。

 152行目あたり #LoadModule rewrite_module modules/mod_rewrite.so
                 ↓    ↓
  LoadModule rewrite_module modules/mod_rewrite.so

〇 「httpd-ssl.conf」の読み込みを行うには、以下の設定のコメントアウトを解除します。

 494行目あたり #Include conf/extra/httpd-ssl.conf
                 ↓    ↓
  Include conf/extra/httpd-ssl.conf

------------------------------------------------------------------
7. http:// のアクセスを https:// に自動変換させる処理( 301リダイレクト )の追加

  .htaccess ファイルを作成し、下記コマンドを書込み、ドキュメントルート上に書込みます。

  ( LAN 内 IP アドレスでのサーバ機へのアクセスも可能になります。)

--------------------------------------------------------------
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTPS} off
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}\
 [R=301,L]
</IfModule>
--------------------------------------------------------------

※ 参考情報 ※

  上記の設定をしなかった時には、http:// と https:// 共用になります。

-----------------------------------------------------------------
8. エラーのチェック

   /usr/local/apache2/bin/apachectl configtest

「 Syntax OK 」と表示されればOKです。

-----------------------------------------------------------------
9. SELinux 対策 httpd からの秘密鍵のR/Wを有効にする。

semanage fcontext -a -t httpd_sys_rw_content_t\
 "/etc/letsencrypt/live/www.smiyasaka.com(/.*)?"; \
restorecon -R -vF /etc/letsencrypt/live/www.smiyasaka.com/

      上記設定の確認

   ls -Z /etc/letsencrypt/live/www.smiyasaka.com/

-----------------------------------------------------------------
10. apache2 を起動して https://(サーバ機の LAN 内 IP アドレス)でアクセス

   /usr/local/apache2/bin/apachectl start

  Windows PC の Web で、サーバ機の LAN 内 IP アドレスを使いアクセスする。

  (サーバ機の LAN 内 IP アドレス)

  この結果、セキュリティの警告が表示すれば OK です。

  アクセス先の URL が、 https://(サーバ機の LAN 内 IP アドレス)に成っている事を確認してください。


11. fswebcom-20140113.tar.gz の
インストールと定点カメラの設定

※ 注意 ※

CentOS 6.X では、BUFFLOAD のカメラは、使用できません。

2014年 1月にリリースされたfswebcam-20140113.tar.gzバージョンをインストールしました。
このバージョンは、タイトルの日本語が文字化けしますので、タイトルに文字を設定す る時には、必ず E の処理を忘れずして下さい。


○ fswebcam-20140113.tar.gz のインストール手順

@ 依存関係のあるパッケージのインストール

   cd /usr/local/src/; \
  rpm -ivh libXpm-3.5.10-2.el6.x86_64.rpm; \
  rpm -ivh libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64.rpm; \
  rpm -ivh libXpm-devel-3.5.10-2.el6.x86_64.rpm
  rpm -ivh gd-2.0.35-11.el6.x86_64.rpm; \
  rpm -ivh gd-devel-2.0.35-11.el6.x86_64.rpm

 上記のインストールで依存性のエラーになる時には、yum でのインストールを試みてください。
yum でのインストールは、下記の通りです。

  cd /usr/local/src/; \
  yum -y install libXpm libjpeg-turbo-devel\
  libXpm-devel gd gd-devel

A fswebcam-20140113 の展開と configure

  tar zxvf fswebcam-20140113.tar.gz;\
  cd ./fswebcam-20140113; \
  ./configure --prefix=/usr

以下で、終われば、OK

   -------------------------------------------------------
  checking for working mmap... yes
  checking for gdImageCreateTrueColor in -lgd... yes
  checking for gdImageStringFT in -lgd... yes
  checking for gdImageJpeg in -lgd... yes
  checking for gdImagePngEx in -lgd... yes

     Buffer type ........... 16 bit
     PNG support ........... yes
     JPEG support .......... yes
     Freetype 2.x support .. yes
     V4L1 support .......... yes
     V4L2 support .......... yes

  configure: creating ./config.status
  config.status: creating Makefile
  config.status: creating config.h

B make と インストール

  make && make install

以下で、終われば、インストールOK です。

    ------------------------------------------------------
  mkdir -p /usr/bin
  mkdir -p /usr/share/man/man1
  install -m 755 fswebcam /usr/bin
  install -m 644 fswebcam.1.gz /usr/share/man/man1

C Logicool C270 の UVC 対応 USB カメラの輝度・明るさの調整は、下記の様に設定しています。

 -s Brightness=65%  -s Contrast=15%  
<---- 明るさは、ここまで下げないと綺麗な画像になります。

D Logicool C270 のカメラが認識された時の認識データは、cat /proc/bus/usb/devices で下記の様になります。

 S: SerialNumber=E981E810
 ( E981E810 は、USB カメラのシリアル番号なので同一機種でも、カメラを入れ替えれば変わります。)
E タイトルの文字化け対策 cron で一分毎に実行させるコマンドにシステムの文字コード環境変数の文字コードを 変更するコマンドを下記の様( 私のサーバ機の環境の場合 )に追加する。
fswebcam-20100622.tar.gz のバージョンでは、文字化け起こりませんので不要です。

*/1 6-18 * * * /var/www/html/……/webcam/webcam.sh
                    ↓↓↓
*/1 6-18 * * * export LANG=ja_JP.eucJP; /var/www/html/……

webcam.sh は、私が作成した USB カメラで撮影するシェルスクリプトのプログラムです。
fswebcomを使った定点カメラの実現方法については、「定点カメラの実現方法」のペー ジで詳細に解説していますので参考にしてください。

       ※※ fswebcam で実現した 1分更新の定点カメラの映像です。 ※※

上の映像は、我が家の東側の窓に取り付けた USB カメラで撮影した今の映像です。
( なお、17:00 〜 06:00 の間は、撮影を停止しています。)
ここの映像の表示は、iframe を使用して、フレーム内だけを 30秒ごとに更新して表示しています。


HTML のプログラムは、こんな具合にします。( フレームの枠は、cssで定義しています。)


  <iframe src="./( 30秒ごとに更新して表示するページ ).html"
     frameborder="0" scrolling="no"marginwidth="0" marginheight="0"
     width="406" height="296">表示できません。</iframe>

  frameborder="0"  <-- 境界線を表示しない
  scrolling="no"   <-- スクロールバーなし
  marginwidth="0"  <-- 横方向余白なし
  marginheight="0" <-- 縦方向余白なし

-----------------------------------------------------------------
※※ iframe を使用した プログラム(例) ※※

        省略
  
本体ページでは、30 秒毎の画面更新は、不要になります。

  <meta http-equiv="Refresh" content="30">
  </head> 
  
  <body>
  <div>
  <table border="0" width="100%"><col width="100%">
  <tr><td align="left" valign="top">
  
iframe の枠線・スクロールバーは、表示なし・余白なしにします。
  <iframe src="./○○○○.html" frameborder="0" scrolling="no"
     marginwidth="0"marginheight="0" width="497"
                  height="366">表示できません。</iframe>
  </td></tr>
  </table>
  </div></body></HTML>

  ※※  iframeからリンクするページ(○○○○.html)の HTML  ※※
  写真の枠線は、こちら側で設定します。
         省略
  30 秒毎の画面更新は、ここで設定します。
      <meta http-equiv="Refresh" content="30">
  </head> 
  <style type="text/css"><!--
       /* 表示領域 枠線設定 */
  table.wakusen {
      border: solid 1px #649633; border-collapse: collapse;
                 }
  --></style>
  </head>
  <body>
  <div>
  <table class="wakusen" border="0" width="100%">
  <col width="100%">
  <tr><td align="left">
  <img src = "./webcam/camdata.jpg"  width="494" height="362"
       title="鬼北町の今の風景写真を表示中"
                             alt="鬼北町の今の風景写真を表示中>
  </td></tr>
  </table>
  </div></body>
  </HTML>

-----------------------------------------------------------------


12. clamd( アンチウィルスソフト )のインストール

○ clamd のインストール手順 @ clamd のインストール

    cd /usr/local/src; \
    rpm -Uvh clamav-db-0.100.1-2.el6.x86_64.rpm; \
    rpm -Uvh clamav-0.100.1-2.el6.x86_64.rpm; \
    rpm -Uvh clamd-0.100.1-2.el6.x86_64.rpm

 yum でのインストールは、下記の通りです。

    cd /usr/local/src; \
    yum -y install clamd

A clamd設定ファイル編集 root権限で動作するようにする。

    vi /etc/clamd.conf

:194 で194行目へジャンプ

  User clamv
   ↓
  #User clamv  <----  コメントアウトする。

  sed コマンドで直接編集する。 念のため、オリジナルのバックアップを取ってから編集します。

cp /etc/clamd.conf /home/miyasaka/clamd.conf.bak; \
sed -i -e "s/User clam/#User clam/g" /etc/clamd.conf

B clamdの起動と自動起動設定

    /etc/rc.d/init.d/clamd start; \
    chkconfig clamd on

C ウィルス定義ファイル最新化

    freshclam

   ※ 定義ファイルのダウロードが極端に遅い時には、一度 [Ctrl]+c で強制終了させ再度実行させて見てください。

D ウィルススキャン実行スクリプト作成

  作成方法は、下記リンクの「アンチウィルスソフト導入(Clam AntiVirus)」を参照してください。

E セルフチェックの頻度をへんこうする。
  初期設定では、10分に1回(24時間では、144回になる。)になっているので回数を30分に 1回(24時間では、48回になる。)に変更する為、clamd.conf を編集する。

  Logwatch の rooo宛てメールを見ると下記のようなっています。

--------------------- Clamav Begin ------------------------

 Daemon check list:
  Database status OK: 144 Time(s) <--- ここが、セルフチェックの回数
                      48回になります。


---------------------- Clamav End -------------------------

vi /etc/clamd.conf

  :186 で186行目へジャンプ
186 # SelfCheck 600  <--- 単位は、秒,10分は、10 × 60 = 600
    ↓  ↓
   SelfCheck 1800  
<--- コメントを取り、1800 にする。

sed コマンドで直接編集する。 念のため、オリジナルのバックアップを取ってから編 集します。


cp /etc/clamd.conf /home/miyasaka/clamd.conf.bak; \
sed -i -e "s/#SelfCheck 600/SelfCheck 1800/g" /etc/clamd.conf

変更後再起動します。

   /etc/init.d/clamd restart

下記の様に表示すれば、OKです。( チョット時間がかかります。)

   ---------------------------------------------------------------
   Stopping Clam AntiVirus Daemon:                       [  OK  ]
   Starting Clam AntiVirus Daemon:                       [  OK  ]
   ---------------------------------------------------------------

Linux用のフリーのアンチウィルスソフトであるClam AntiVirus のインストール・設定 方法は、下記サイトに詳しく紹介されていますので参考にしてください。

※ 参考にしたサイト アンチウィルスソフト導入(Clam AntiVirus)
-----------------------------------------------------------------

○ yum を使用して ClamAV のバージョンアップする手順

clamd のバージョンは、その時点での最新版を使用しないとウィルス定義ファイル更新 時に下記の様にバージョンが古いと警告されてしまいます。
( 下記の警告は、0.100.1-1 の時に、0.98.7 を使用した時の警告です。 )

    WARNING: Your ClamAV installation is OUTDATED!
    WARNING: Local version: 0.98.7 Recommended version: 0.100.1-1

@ ClamAVは EPELレポジトリにあるので、EPELレポジトリを追加します。
ここでは、EPELレポジトリを yum でインストールするのでなく、rpmのパッケージでの インストールをしてみます。


ダウロードは、[ここをクリック(epel-release-6-8.noarch.rpm)]して下さい。

A EPELレポジトリのインストール

    rpm -ivh epel-release-6-8.noarch.rpm

インストール後は、EPELレポジトリをアップデートして下さい。

    yum -y --enablerepo=epel update epel-release

B yum で ClamAV をアップデートします。

    yum -y --enablerepo=epel update clamav

C バージョンを確認してみます。 バージョンの確認コマンド

    rpm -qa | grep clam

アップデート前のバージョン

    clamd-0.100.1-2.el6.x86_64
    clamav-db-0.100.1-2.el6.x86_64
    clamav-0.100.1-2.el6.x86_64

      ↓   ↓   ↓

アップデート後のバージョン H30.09.24現在

    clamd-0.100.3-1.el6.x86_64
    clamav-0.100.3-1.el6.x86_64
    clamav-db-0.100.3-1.el6.x86_64


13. chkrootkit のインストール

@ chkrootkit のインストール時のエラー対策

make で「 chkrootkit /usr/bin/ld: cannot find -lc 」エラーが、出るので不足パッケージ glibc-static をインストールしておきます。

  cd /usr/local/src; \
           CentOS 6.5 の時
  rpm -Uvh glibc-static-2.12-1.132.el6_5.4.x86_64.rpm
           CentOS 6.5 以降の時
  rpm -Uvh glibc-static-2.12-1.149.el6.x86_64.rpm

CentOS 6.7 の時には、依存性が多いので yum でインストールします。

  ここは、依存性が多いので yum でインストールします。

     cd /usr/local/src/; \
     yum -y install glibc-static

A chkrootkit のインストール

     cd /usr/local/src; \
     tar zxvf chkrootkit.tar.gz; \
     cd chkrootkit-0.50; \
     make sense; \
     mv ./chkrootkit /usr/bin/chkrootkit

B 起動用シェルスクリプトの作成

     cd /usr/local/src; \
     vi rootkit.sh
-----------------------------------------------------------
#!/bin/sh
# コマンドパスの設定
PATH=/usr/bin:/bin:/root/bin  <--- 環境変数へ chkrootkit のパス設定
#
LOG='/var/log/chkrootkit.log'

# chkrootkit実行
chkrootkit > ${LOG}

if [ ! -z "$(grep INFECTED$ ${LOG})" ]; then  <--- 改ざんがあったか
                                                   チェック
    #  改ざんがあった時の root 宛メール
    #  upstartパッケージ更新時のSuckit誤検知対策
    if ! rpm -V `rpm -qf /sbin/init` >/dev/null 2>&1;
      then
        cat "$(grep INFECTED$ ${LOG})"\
         | mail -s "rootkit discovery" root
    fi
else
  # 改ざんが無かった時の root 宛メールの出力の有
  echo "**** rootkit check OK ****"   <--- 手動実行時の確認
  echo "**** rootkit check OK ****"\      メッセージ
 | mail -s "*** rootkit check ***" root 
fi
#
chmod 600 ${LOG}

---------------------------------------------------------------

※ 参考情報 ※
  
if ! rpm -V `rpm -qf /sbin/init` > /dev/null 2>&1; とは、何か?

rpm -qf ○○○○は、

パッケージ名○○○○が、どのRPMパッケージでインストールされているかを調べるコマンドです。


私のサーバ機で rpm -qf /sbin/init 実行すると upstart-0.6.5-13.el6_5.3.x86_64 のパッケージ名がられました。

rpm -V ○○○○は、パッケージ名○○○○が、改ざんされていないかを検証するコマンドです。

改ざんがなかった時には、何の出力もありません。


if ! ○○○○は、○○○○の文字列が、0 の時に then 以下が実行されます。

つまり、「/sbin/init」のパッケージがアップデートされた時には、改ざんなしとする処理です。
> /dev/null 2>&1; で出力結果とエラーメッセージは、捨てられます。


なお、本当に改ざんがあり、かつ、「/sbin/init」のパッケージがアップデートされた時には、

改ざんなしになってしまいます。
  -------------------------------------------------------------------------------


C rootkit.sh に属性設定

     chmod 700 rootkit.sh

D 毎日2時に実行するよう cron に設定する。

     0 2 * * * /usr/local/src/rootkit.sh

E ハッカーの攻撃にあったかの確認

   root 宛てにメールが、来ているので確認する。

   mail コマンドを入力して rootkit check OK が、表示すれば、ハッカーの攻撃は、なしです。


詳細の設定は、下記サイトを参考にしてください。

※ 参考にしたサイト rootkit検知ツール導入(chkrootkit)

F 遊び心で上記オリジナルに処理時間の計算結果の表示や改ざんあった時には、chkrootkit が
検 知した結果のしたした結果の表示機能を追加したスクリプトです。

[ chkrootkitを定期的に実行させるためのスクリプトの作成 ] の詳細は、
[ここをクリック]してください。

G 「 Searching for Suckit rootkit... Warning: /sbin/init INFECTED 」の誤検知対策

   ( 2018.09.16 追加 )
  この誤検知は、必ず出るので、ウィルススキャン実行スクリプト rootkit.sh で chkrootkit を実行した時に誤検知情報をカットする方法にしました。
  その改良点は、下記のの通りです。


# chkrootkit実行 実行結果は、chkrootkit.log へ出力

chkrootkit > ${LOG}

    ↓ ↓ ↓

  # chkrootkit実行 実行結果は、chkrootkit.log へ出力

  ## [Searching for Suckit rootkit... Warning: /sbin/init INFECTED] は、###
  ## 当然誤検知で出るので事前にカットしておく ###


chkrootkit
| grep INFECTED | egrep -v "/sbin/init" > ${LOG}

## 説明 ##
  | grep INFECTED で "INFECTED" の有る行を抽出します。その中で "/sbin/init" のある行は、

  | egrep -v "/sbin/init" でカットします。


14. sendmail のインストール

○ root 宛てのメールは、sendmail が、無いと来ないみたいのでインストールします。

    cd /usr/local/src; \
    rpm -ivh hesiod-3.1.0-19.el6.x86_64.rpm; \
    rpm -ivh procmail-3.22-25.1.el6.x86_64.rpm; \
    rpm -ivh sendmail-8.14.4-8.el6.x86_64.rpm

  yum でのインストールは、下記の通りです。

    yum -y install sendmail

  yum でインストールした時には、sendmail を起動する必要があります。

    /etc/rc.d/init.d/sendmail start

  sendmail を起動中:                 [ OK ]
  sm-client を起動中:                 [ OK ]

root 宛てのメールは、mail コマンドでみます。詳細は、下記サイトを参考にしてください。

※ 参考にしたサイト mail コマンドの使い方


15. Logwatch のインストールと
毎日のメールを簡単にチェックする方法

○ サーバー上のログを定期的にまとめ、集約してレポートを出してくれるソフトウェア

  cd /usr/local/src/; \
  rpm -ivh perl-YAML-Syck-1.07-4.el6.x86_64.rpm; \
  rpm -ivh perl-Date-Manip-6.24-1.el6.noarch.rpm; \
  rpm -ivh logwatch-7.3.6-49.el6.noarch.rpm

yum でのインストールは、下記の通りです。

  yum -y install logwatch

Logwatch のインストールは、依存関係から、下記の順序で行ってください。

○ logwatch.conf は、下記の箇所を変更して 実行させれば root宛てにメールがきます。

※ 参考 ※
 1行毎直すのが面倒な時には、sed コマンドで下記の様にすると同じ事ができます。
 念のため、バックアップを取ってから置換します。


cp /usr/share/logwatch/default.conf/logwatch.conf\
 /home/miyasaka/logwatch.conf.bak; \
sed -i -e "s/#Archives = No/Archives = Yes/g
s/Detail = Low/Detail = Med/g
s/sendmail -t/sendmail -t -f root@localhost/g"\
 /usr/share/logwatch/default.conf/logwatch.conf

  vi /usr/share/logwatch/default.conf/logwatch.conf 

アーカイブされたログも含めるかどうか

60行目 コメントアウトの解除

  #Archives = Yes
     ↓
  Archives = Yes

ログの詳細度、Low (=0), Med (=5), High (=10) または 0から10までの数字。

72行目 私の場合、Med にしました。

  Detail = Low
           ↓
  Detail = Med

メールコマンドパスの変更
109行目 rooo宛てにする。
[ Can't execute sendmail -t: No such file or directory ]というエラーが出るので修正します。

  mailer = "sendmail -t"
    ↓   ↓   ↓ 
  mailer = "sendmail -t -f root@localhost"

○ Logwatch の定時実行は、cron.daily の設定で午前 3時から 4時頃の間のランダムな 時刻に毎日実行されるので、crontab に設定する必要は、無いようです。

○ Logwatch の rooo宛てメールを毎日簡単にチェック出来るように下記のような プログラムを作ってみました。

1. Logwatch の rooo宛てメールを前日の日付でユーザーエリヤに保存するとともに、 パスワードのかかったヘージから、ホームページから日にちを指定して見られるよ うにしています。

2. 保存したLogwatch の rooo宛てメールは、10日間としそれ以前は、削除する ようにした。

3. プログラムは、cron で毎日一回4時以降に実行させています。

4. /var/spool/mail/root のメールデータは、本プログラムで転送後肥大を防ぐた め削除しています。

5. また、ついでに chkrootkit 実行結果・DiCE のイベントログも同時に見られる ようにもしています。

こんな具合に表示します。

表示例


 ○ 11/14 7:34 デーモン動作を開始しました  変更後のグロバル
 ○ 11/14 11:26 デーモン動作を開始しました ↓↓ IPアドレス
 ○ 11/14 11:26 IPアドレスが変わりました >123.215.114.234  
 ★ 11/14 11:27 に(イベント名が表示)が実行されました  
   IPアドレスを更新しました
 ○ 11/14 11:45 デーモン動作を開始しました

※※ 参考情報 ※※
corn で定時的に実行させている処理のコマンドの最後に [
> /dev/null 2>&1 ] を付 けましょう。これを付けないと実行結果が rooo宛てメールとして残ってしまいます。
( これは、実行結果を表示させない処理です。 メールデータの肥大化防止にもなります。)

6. DiCE のイベントログの rooo宛てメールは、シェルスクリプトで簡単なプログラ ムを作り IPアドレスの更新が7日毎なので、これに合わせて、週一回 cron で 実行させています。
( DiCE の IPアドレスの更新実行は、起動した日を基準に繰返し行われます。 )

7. Logwatch の rooo宛てメールは、漢字があるので文字化けしない様に漢字コードを Jcode で Shift_JIS 変換にしてユーザーエリヤに保存しています。

8. rooo宛てメールをホームページエリヤに移動保存すると、不正に見られることがあ るかもしれないので、移動保存は、ホームディレクトリにしていますが、perl では、 cp ( コピーコマンド )使えないので、ユーザーエリヤに保存してあるメールデータ を読みだすため、open コマンドで変数( get_data )に書込む方法をとりました。

コピーコマンド( cp )の替りに open を使つてプログラムを組むとデータの読込みが 簡単になり、便利です。皆さんも是非マスターしてください。

    open( get_data, "<ユーザーエリヤの保存先のパス+ファイル名");

下記がシェルスクリプト・cgi のプログラムと Logwatch の rooo宛てメールの内容です。
ユーザーエリヤ等のパスは、○表記にしていますが、使用するときには、あなたの環境 に合わせてください。

※ 注意 ※
「rooo宛てメール」が見られる様になるのは、システムを起動後、翌々日からになり ますので注意してください。

[ Logwatch の rooo宛てメールをホームページとして簡単にみられるプログラム一式 ]
            の詳細は、[ここをクリック]してください。

○ rooo宛てメールで
[ Searching for Suckit rootkit... Warning: /sbin/init INFECTED ]の
メッセージがある時に、
chkrootkit の誤検知かを判断する方法

1. サーバ機にログインして rpm -qf /sbin/init のコマンドを入力して、インスト ールされているパッケージ名を確認します。

CentOS 6.4 の場合、upstart-0.6.5-12.el6_4.1.i686 でした。

2. Logwatch の rooo宛てメール内の yum によるアップデート情報をチェックします。
私のサーバ機でのrooo宛てメールの表示例です。

 --------------------- yum Begin ------------------------ 
     Packages Updated:
     libcom_err-devel-1.41.12-14.el6_4.2.i686
     libss-1.41.12-14.el6_4.2.i686
     e2fsprogs-1.41.12-14.el6_4.2.i686
     e2fsprogs-libs-1.41.12-14.el6_4.2.i686
     upstart-0.6.5-12.el6_4.1.i686
     libcom_err-1.41.12-14.el6_4.2.i686
 ---------------------- yum End -------------------------

3. /sbin/init にインストールされているパッケージがアップデートされているの でこの場合は、誤検知になります。

4. メッセージの消去は、サーバ機を
reboot する事により、次回からは、出なくな るそうです。
( 私は、試してはいませんが、私の場合には、予備機に入れ替えています。)


16. 漢字コード変換用に nkf のインストール

○ apache のアクセスログの文字化けを修正するための漢字コード変換パッケージ nkf をインストールします。

※※ 参考情報 ※※

漢字コードの変換は、Jcode より nkf の変換の方が使用方法が簡単に済ます。

○ nkf のインストール

   cd /usr/local/src; \
   tar zxvf nkf-2.1.5.tar.gz; \
   cd nkf-2.1.5; \
   make && make install

   以下で、終われば、OK


   -----------------------------------------------------------
   mkdir /usr/local/bin       <---- ここが nkf のフルパスです。
   mkdir: ディレクトリ `/usr/local/bin' を作成できません: ファイルが
   make: [install] エラー 1 (無視されました)              存在します
mkdir /usr/local/man mkdir /usr/local/man/man1 mkdir /usr/local/man/ja mkdir /usr/local/man/ja/man1 cp -f nkf /usr/local/bin/ cp -f nkf.1 /usr/local/man/man1/ cp -f nkf.1j /usr/local/man/ja/man1/nkf.1 -----------------------------------------------------------

○ nkf の使用方法

私のサーバ機の環境では、EUC-JP コードを ホームページ表示コード Shift_JIS に変換す
るので下記の様な設定をします。なお、cronで自動実行させる時には、パスが通らないので フルパスで nkfコマンドを実行させてください。

   1) 変換後上書き保存する時は、


     /usr/local/bin/nkf -s --overwrite ( 元ファイルのフルパス )

-s : 変換コード Shift_JIS 指定
-e : 変換コード EUC 指定
-w : 変換コード UTF-8 指定

( オプション --overwrite を付けると変換後のテキストデータが上書きされます。)

2) 変換後別ファイルへ保存する時、ファイルのパスは、フルパスで指定します。

   /usr/local/bin/nkf -s ( 元ファイル) > ( 保存先ファイル )

3) コマンド実行後の結果が文字化けする時 nkf の使用方法 文字化けは、Tera Term の文字コードが EUC なので起こります。コマンドの後ろに | nkf -e を付けるだけです。

    ex.  cat -n ○○○○ | nkf -e

○ ファイルの文字コードの確認

GMODE でのコマンド実行は、パス不要です。 結果は、Shift-JIS, EUC-JP の様に表示します

    nkf -g ( ファイルのフルパス )

○ コマンドのフルパスの確認

   Linux のコマンドのフルパスは、which コマンドで確認できます。

例 nkf の場合

          which nkf   --->  /usr/local/bin/nkf

○ perl,シェルスクリプト(sh)でnkfを使用する時にも、パスが通らないのでフルパスでコマンド を記述してください。

○ cron で起動させる perl, シェルスクリプト(sh)で日本語を使用する時の文字化け対策

1.
Tera Term 使用して遠隔管理しているサーバ機では、ユーザの文字コードを初期設定で   eucJP( EUC )に変更しているので cron で起動させる perl, シェルスクリプト(sh)で nkf を使用する時には、root 権限の文字コード( ja_JP.UTF-8 )になるので下記の様に 文字コードを一時的に変更して実行させてください。

   11 */1 * * *
export LANG=ja_JP.eucJP; /(DocumentRoot)/ondo_○○○.pl

2.
日本語を含むデータをコマンド等で取得・解析する時には、nkf コマンドで EUC コードに 変換してから解析をして下さい。

Tera Term 等から実行した時には、上手く動くのに「 cron での実行時には、設計道理にな らない 」という現象が発生します。( cron での実行は、root 権限なので文字コードは、 UTF-8 になります。 )
( Tera Term の文字コードが EUC 、サーバ側のユーザー文字コードも EUC になっているか らです。)


○ Tera Tarm で自作プログラム( perl, sh )等のデバック時に出力結果が文字化けする時の 対策方法

例えば、perl SD_Card_Check.pl を実行したら出力結果が 「 <b>SD J[h }Eg nj </b> 」

の様になってしまいました。
これを nkf を使用して perl SD_Card_Check.pl | nkf -e と実行させると出力結果は、 下記の様に正しく表示します。
つまり、Tera Term 側の文字コード EUC に変換して出力する指定を追加するだけです。

perl SD_Card_Check.pl | nkf -e  --->「 SD カード マウント OK 」

3. cron で起動させた perl のプログラムで日本語を使用して無くとも、プログラム内から、 実行させるシェルスクリプト(sh)内で日本語を使用している時には、
    
export LANG=ja_JP.eucJP; を追加して実行させてください。

-----------------------------------------------------------------
※※ 参考情報 ※※

○ apache のアクセスログの文字化けを修正するための漢字コード変換パッケージ Jcode をインストールします。

    cd /usr/local/src; \
    tar zxfv Jcode-2.07.tar.gz; \
    cd ./Jcode-2.07; \
    perl Makefile.PL; \
    make; \
    make install

  以下で、終われば、OK

    -----------------------------------------------------------
    Jcode-2.07/Unicode/Unicode.xs
    Checking if your kit is complete...
    Looks good
    Writing Makefile for Jcode
    cp Jcode/Nihongo.pod blib/lib/Jcode/Nihongo.pod
    cp Jcode.pm blib/lib/Jcode.pm
    Manifying blib/man3/Jcode::Nihongo.3pm
    Manifying blib/man3/Jcode.3pm
    Installing /usr/local/share/perl5/Jcode.pm
    Installing /usr/local/share/perl5/Jcode/Nihongo.pod
    Installing /usr/local/share/man/man3/Jcode::Nihongo.3pm
    Installing /usr/local/share/man/man3/Jcode.3pm
    Appending installation info to /usr/lib/perl5/perllocal.pod


17. 自宅サーバの管理・運用監視対策等

1 ). DiCEの設定(実行)時ののエラー対策

 ./diced で DiCE を起動した時、下記エラーが出るので ld-linux.so.2 をインストールします。
--------------------------------------------------------------
-bash: ./diced: /lib/ld-linux.so.2: bad ELF interpreter: そのようなファイルや
ディレクトリはありません
--------------------------------------------------------------
 
この原因は、DiCE のパッケージが 32bit ベースで作られている為、OS 側に必要とするパッケージが不足しているからです。
 32bit ベースのパッケージの依存関係がチョット複雑なので ここは、yum でインストールします。

      yum -y install ld-linux.so.2

2 ). DiCE 起動後 「 IPアドレスチェック タイムアウト 」が、頻発する時の対処方法

  DiCE 起動後は、下記コマンドでエラーが無いか確認しましょう。

    cat /usr/local/DiCE/log/events.log

 もしも、「 × 12/6 13:41 IPアドレスチェック タイムアウト 」のメッセージが出て いる時には、設定内容を確認した上で Linux システムを再起動してみてください。

 
なお、DiCE の setup 「IPアドレスの検出方法を指定してください」で「(2) 外部の スクリプトから検出」に設定し、VALUE DOMAIN が提供しているIPアドレスの検出サービスのURLに変更しています。

  なお、URL は、http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip です。
  「(0) 自動検出」では、上手く検出できないようです。????
  ちなみに、デフォルトでは、下記のサイトが設定されていました。

         http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/ip_chk.cgi
         http://hpcgi3.nifty.com/sarad/ip_check.cgi
         http://checkip.dyndns.org/

 私の場合、ネット上に色々解説がされていることを試しましたが、止まりませんでし   たが再起動後、12 分毎に出ていたエラーが、ぴったりと止まりました。

3 ). CPU 温度を取得する sensors コマンドのインストール

   cd /usr/local/src; \
   rpm -Uvh lm_sensors-libs-3.1.1-17.el6.x86_64.rpm; \
   rpm -Uvh lm_sensors-3.1.1-17.el6.x86_64.rpm

yum でのインストールは、下記の通りです。

   yum -y install lm_sensors

  CPU 温度を取得する方法は、[ 18. 自宅サーバの管理・運用監視・アクセスログ文   字化け対策等の 8. CPU 温度を取得する ]で解説しています。

4 ). CPUの利用率を表示する方法

現在のサーバ機の です。

  
CPUの利用率は、コマンド mpstat を使用して取得します。
   mpstat コマンドを実行すると下記の様な出力結果が得られます。
   プログラムは、" all " の文字が有る行の %idle を抽出します。
   抽出したデータは、CPU のアイドル状態の割合なので CPU の利用率は、    ( 100 - %idleの値 )になります。


Linux 2.6.32-431.29.2.el6.x86_64 (LeoMiya) 2014年XX月23日 _x86_64_  (2 CPU)

時刻 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
時刻 all 2.22 1.55 12.60  0.04   0.01  0.03  0.00  0.00   83.56

時刻の箇所には、00時00分00秒 が表示されます。

 下記は、perl で作成した SSI のプログラムです。

[ perl で作成した CPU の利用率を表示するプログラム ] の詳細は、
             [ここをクリック]してください。

6 ). 私のサーバ機では、プロセスコマンド( ps -ef )で http が起動しているかを 1 分    毎にチェックし、止まっている場合は、起動するようにして運用しています。

  下記は、perl で作成したプロセス監視プログラムの例です。参考にしてみてください。
  監視は、cron で 1 分毎に下記プロセス監視プログラムを起動するだけです。

[ Linux サーバプロセス監視プログラム ] の詳細は、
            [ここをクリック]してください。

7 ). サーバ機起動時に SDカードを自動でマウントする方法

 SDカードは、サーバ機起動時自動でマウントされないので私の場合、下記の様な方法でマウントしてます。


@ SDカードを差し込んで認識されるデバイス名をコマンド lsblk で調べます。

   コマンド lsblk の表示例


   NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
   sdb                            8:16   0 232.9G  0 disk
   |-sdb1                         8:17   0   500M  0 part /boot
   `-sdb2                         8:18   0 232.4G  0 part
    |-vg_leomiya-lv_root (dm-0) 253:0    0    50G  0 lvm  /
    |-vg_leomiya-lv_swap (dm-1) 253:1    0     2G  0 lvm  [SWAP]
    `-vg_leomiya-lv_home (dm-2) 253:2    0 180.5G  0 lvm  /home
   sda                            8:0    1   3.7G  0 disk 
    ↑ SDカードのデバイス名

   ( -sda1 が表示しない時は、SDカードのデバイス名は、sda になります。)
A SDカードのマウントを実行するプログラムの作成

   vi SD_Card_mount.shで下記をコピペする    ( root 上に作成 )
   --------------------------------------------------------------
   #!/bin/sh
   #---------------------------------------------
   #  システム起動時に SDカードをマウント
   #---------------------------------------------
   #  || は、エラーの時には、次のコマンドをマウント実行して
   #  終了する指定       sda ⇒ sda1 ⇒ sdb ⇒ sdb1
   #
   mount -t vfat /dev/sda /mnt/SD_Card > /dev/null 2>&1\
   || mount -t vfat /dev/sda1 /mnt/SD_Card > /dev/null 2>&1\
   mount -t vfat /dev/sdb /mnt/SD_Card > /dev/null 2>&1\
   || mount -t vfat /dev/sdb1 /mnt/SD_Card > /dev/null 2>&1
   --------------------------------------------------------------

  SD_Card_mount.sh に実行権限を付与します。

      chmod 755 SD_Card_mount.sh

  ※ 注意 ※ sda, sdb は、貴方のPC 環境に合わせてください。
         /mnt にマウント先がない時には、事前に作成してください。
        (例) マウントディレクトリ SD_Card を /mnt に作成する。

      mkdir -p /mnt/SD_Card

B 起動時にマウントを実行させる為、下記コマンドを /etc/rc.d/rc.local に登録します。

      echo "#SD_Card_mount
      sh /root/SD_Card_mount.sh" >> /etc/rc.d/rc.local

C マウントされるかのテスト

コマンド sh /root/SD_Card_mount.sh を実行し、コマンド lsblk で確認する。

   sda      8:0  1  3.7G 0 disk
/mnt/SD_Card

  この例の様にマウント先が表示されれば OK です。



TOPへ戻る