www.smiyasaka.com は、 2021 年 1月から CentOS Stream 8 にバージョンアップしました。 |
● CentOS 6.8〜6.10 64bit のインストールと自宅サーバ構築 ● |
アクセス数 昨日 - 今日 1 累計 21,294 |
64bit 版 CentOS-6.X-x86_64 を yum を使用しないで、自宅サーバを構築しました。 |
||
※ 注 意 事 項 ※ |
||
目 次 |
||
※
[ 総てを表示する ] ※
0.
[ インストールした PC のスペック等 ]
1.
[ CentOS 6.9, 6.10 のインストール ]
3.
[ 事前にダウンロードするファイル一覧と探し方 ]
4.
[ セキュリティ対策のため停止したサービス ]
5.
[ ファイアウォール・SELinux の設定 ]
6-2.
[ Tera Termでvsftpd( FTPサーバ )を転送しインストール ]
7.
[ ファイルの転送プログラムの作成 ]
8.
[ サーバの時刻を日本標準時に同期させる ]
9.
[ RPMforgeリポジトリを導入する ]
10-1.
[ apache2( httpd-2.4.41 )のインストールと設定 ]
10-2.
[ SELinux を有効にした時の apache2 のポリシー設定 ]
12.
[ clamd( アンチウィルスソフト )のインストール ]
13.
[ chkrootkitの導入 ]
14.
[ sendmail のインストール ]
16.
[ 漢字コード変換用に nkf のインストー ]
17.
[ 自宅サーバの管理・運用監視等 ]
|
||
0. インストールした PC のスペック等 |
||
2020.08.25 付けで CentOS 6.10 のカーネルのバージョンは、 | ||
サーバ機( OS バージョン CentOS Stream 8 64bit )の |
1. CentOS 6.9, 6.10 のインストール |
||
CentOS 6.9, 6.10 32bit のインストールは、DVD1.isoのみで行います。 |
||
2. CentOS 6.9, 6.10 再起動後のコンソールからの各種設定ル |
||
ここの設定だけは、サーバ機のコンソールから、GNOME(テキスト入力モード)で行ってください。 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 にしてください。 vi /etc/ssh/sshd_config
#Port 22 の前の行に、Port 2222 を追加する。 system-config-firewall-tui
写真 @ [*]Enabled ----> [ ]Enabled に変更する。 [space] --> [Tab] --> |
写真 @![]() |
写真 A
![]() |
F システムのアップデートをする。 vi /etc/hosts.deny で sshd:ALLを追加 または、 echo "sshd:ALL" >> /etc/hosts.deny
H-2 /etc/hosts.allow で接続を許可するIPアドレスを指定します。 echo "sshd:192.168.0." >> /etc/hosts.allow
192.168.0. は、私の環境下ですべてのローカルIPアドレスを許可する設定です。 vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT="no" ----> ONBOOT="yes" に変更する。 |
3. 事前にダウンロードするファイル一覧と探し方 |
||
サーバ構築に必要なファイルの探し方は、Google等の検索で、「 パッケージ名 」のキーワード検索でほとんどの場合ヒットします。 |
4. セキュリティ対策のため停止したサービス |
||
停止したサービスは、下記のとおりです。 |
atd |
# 単発的にスケジュール化した コマンド を実行させるデーモンです |
サービスの停止を簡単に済ませたい時には、下記コマンドを入力すると写真 @ のように表
示するので[↑],[↓]キーでサービスの起動・停止したいサービスを選んで[スペース]キーを
押します。 |
||
写真 @![]() |
5. ファイアウォール・SELinux の設定 |
||
許可(開放)しているネットワークポートの一覧 |
写真 @![]() |
写真 A![]() |
写真 B![]() |
4. 写真 C の様にファイルを選択するダイヤログ画面が開くので、 |
写真 C![]() |
写真 D![]() |
A proftpd のインストール 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の設定 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"の行へカーソルを移動して (削除行数)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の起動ファイルをコピー・編集する。 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 を
追加・有効にする処理 ) 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
※ 参考 ※> 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
※※ 目から鱗の情報です ※※ 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 は、グループの初期値が echo "127.0.0.1 ○○○○" >> /etc/hosts
( ○○○○は、ホスト名です。)
G 編集したproftpdの属性を変更、chkconfig に proftpd を追加して起動する。 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
以下の様に表示すれば起動成功です。 |
6-2. vsftpd( FTPサーバ )のインストール |
||
ここでは、先人の知恵を借りて、vsftpd のインストールと設定に挑戦してみました。
設定は、管理者のみ・LAN 内のみの接続にしています。また、個人使用の為、ログは取りま
せん。 cd /usr/local/src/; \
rpm -ivh vsftpd-2.2.2-12.el6_5.1.x86_64.rpm
yum でのインストールは、下記の通りです。
yum -y install vsftpd
A vsftpd の設定 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行目 コメント解除 ( アスキーモードでの転送を許可 ) 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アドレスの制限 ) 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アドレスを許可する設定です。 /etc/rc.d/init.d/vsftpd start
# が表示すれば OK です。 chkconfig vsftpd on
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 で接続できるか確認します。 |
7. ファイルの転送プログラムの作成 |
||
私の場合、インストールするプログラムのファイルは、windows側でダウンロードし、
windows 側のフォルダ src2にまとめて保存しおき、ffftpで /home/miyasaka/に転送し、
サーバ機側では、転送プログラムで所定のディレクトリに転送しています。 |
8. サーバ機の時刻を日本標準時に同期させる |
||
(独)情報通信研究機構 時空標準研究室 が、提供している「公開NTPサービス」を利用
して日本標準時にサーバの時刻を同期させます。 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
下記の様に表示するはずです。 vi /etc/rc.d/rc.local 以下を追加する。 #ntpd
/etc/init.d/ntpd start
※ echo コマンドで追加する方法 ※ 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のステータスの確認。 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
以下のように*印がついていたら同期ができています。 # 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 システム時刻(年月日,曜日,時刻)の確認と手動での修正方法 |
9. RPMforgeリポジトリを導入する |
||
RPMforgeリポジトリの導入は、yum でのインストールで依存関係あるファイル等のインスト
ールが出来るようにする。つまり、標準リポジトリで提供されないパッケージをyumでイン
ストールできるようになります。 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
以下のメッセージ表示で終わります。 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 がリリースされました。 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 を展開する。 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の設定は、下記のとおりです。 cp /usr/local/apache2/conf/httpd.conf\
/home/miyasaka/httpd.conf.bak
下記は、修正箇所の一覧ですが、ディレクトリは、私のサーバ機の環境での設定値です。 cp /home/miyasaka/src2/httpd.conf\
/usr/local/apache2/conf/
----------------------------------------------------------------- cp /usr/local/apache2/conf/httpd.conf /home/miyasaka/
----------------------------------------------------------------- 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です。 DocumentRoot must be a directory H apache2を起動する。 /usr/local/apache2/bin/apachectl start <--- 停止してから、
起動する。 または、 /usr/local/apache2/bin/apachectl graceful <--- アクセス中の
ユーザを有効にしたまま再起動する。
どちらも、# が、表示すれば OK です。 vi /etc/rc.d/rc.local 下記を追加する。 # Apache
/usr/local/apache2/bin/apachectl start
※ echo コマンドで追加する方法 ※ echo "# Apache
/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
K ここで、 httpd.conf へ設定したドキュメントのルート( DocumentRoot と 別ディレクトリ)へ |
---------------------------------------- |
www.gidnetwork.com からの回答![]() |
圧縮結果のログデータは、管理者か゜root の為、ffftp でダウンロードできないので、ユーザー /usr/local/apache2/bin/apachectl restart または、アクセス中のユーザを有効にしたまま再起動する。 /usr/local/apache2/bin/apachectl graceful
|
||
![]() |
||
※※ apache のバージョンの確認方法 ※※ |
10-2. SELinux を有効にした時の apache2 のポリシー設定 |
||
※※※ 参考情報 ※※※ |
10-3. apache2 の SSL 化の手順と |
||
※※※ 注意事項 ※※※ 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 を有効にしたインストール 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/
----------------------------------------------------------------- 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
----------------------------------------------------------------- cd /usr/local/src/httpd-2.4.41;\ ./configure \ --enable-ssl \ <--- SSL の追加 --with-included-apr \ --enable-rewrite \ --enable-so \ --enable-deflate=shared
----------------------------------------------------------------- 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) の導入になります。 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>
----------------------------------------------------------------- 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に含まれています。 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
------------------------------------------------------------------ -------------------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}\ [R=301,L] </IfModule> --------------------------------------------------------------
※ 参考情報 ※ /usr/local/apache2/bin/apachectl configtest
「 Syntax OK 」と表示されればOKです。 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/
----------------------------------------------------------------- /usr/local/apache2/bin/apachectl start
Windows PC の Web で、サーバ機の LAN 内 IP アドレスを使いアクセスする。 |
11. fswebcom-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 でのインストールを試みてください。 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 カメラの輝度・明るさの調整は、下記の様に設定しています。 */1 6-18 * * * /var/www/html/……/webcam/webcam.sh ↓↓↓ */1 6-18 * * * export LANG=ja_JP.eucJP; /var/www/html/……
webcam.sh は、私が作成した USB カメラで撮影するシェルスクリプトのプログラムです。 |
||
上の映像は、我が家の東側の窓に取り付けた USB カメラで撮影した今の映像です。 <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" <-- 縦方向余白なし
-----------------------------------------------------------------
|
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 で強制終了させ再度実行させて見てください。
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 のインストール・設定
方法は、下記サイトに詳しく紹介されていますので参考にしてください。 WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.98.7 Recommended version: 0.100.1-1
@ ClamAVは EPELレポジトリにあるので、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 のインストール時のエラー対策 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 でインストールします。 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} ---------------------------------------------------------------
※ 参考情報 ※ chmod 700 rootkit.sh D 毎日2時に実行するよう cron に設定する。 0 2 * * * /usr/local/src/rootkit.sh
E ハッカーの攻撃にあったかの確認 |
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 ] |
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 のインストールは、依存関係から、下記の順序で行ってください。 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
アーカイブされたログも含めるかどうか #Archives = Yes
↓
Archives = Yes
ログの詳細度、Low (=0), Med (=5), High (=10) または 0から10までの数字。 Detail = Low
↓
Detail = Med
メールコマンドパスの変更 mailer = "sendmail -t"
↓ ↓ ↓
mailer = "sendmail -t -f root@localhost"
○ Logwatch の定時実行は、cron.daily の設定で午前 3時から 4時頃の間のランダムな
時刻に毎日実行されるので、crontab に設定する必要は、無いようです。 ○ 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 デーモン動作を開始しました
※※ 参考情報 ※※ open( get_data, "<ユーザーエリヤの保存先のパス+ファイル名");
下記がシェルスクリプト・cgi のプログラムと Logwatch の 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 にインストールされているパッケージがアップデートされているの
でこの場合は、誤検知になります。 |
16. 漢字コード変換用に nkf のインストール |
||
○ apache のアクセスログの文字化けを修正するための漢字コード変換パッケージ 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 (無視されました) 存在します
○ nkf の使用方法
/usr/local/bin/nkf -s --overwrite ( 元ファイルのフルパス )
-s : 変換コード Shift_JIS 指定 /usr/local/bin/nkf -s ( 元ファイル) > ( 保存先ファイル ) 3) コマンド実行後の結果が文字化けする時 nkf の使用方法 文字化けは、Tera Term の文字コードが EUC なので起こります。コマンドの後ろに | nkf -e を付けるだけです。 ex. cat -n ○○○○ | nkf -e
○ ファイルの文字コードの確認 nkf -g ( ファイルのフルパス )
○ コマンドのフルパスの確認 which nkf ---> /usr/local/bin/nkf
○ perl,シェルスクリプト(sh)でnkfを使用する時にも、パスが通らないのでフルパスでコマンド
を記述してください。 perl SD_Card_Check.pl | nkf -e --->「 SD カード マウント OK 」
3. cron で起動させた perl のプログラムで日本語を使用して無くとも、プログラム内から、
実行させるシェルスクリプト(sh)内で日本語を使用している時には、 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の設定(実行)時ののエラー対策 yum -y install ld-linux.so.2
2 ). DiCE 起動後 「 IPアドレスチェック タイムアウト 」が、頻発する時の対処方法 cat /usr/local/DiCE/log/events.log
もしも、「 × 12/6 13:41 IPアドレスチェック タイムアウト 」のメッセージが出て
いる時には、設定内容を確認した上で Linux システムを再起動してみてください。 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 分毎に出ていたエラーが、ぴったりと止まりました。 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 温度を取得する ]で解説しています。 時刻 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 のプログラムです。
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 になります。)
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 環境に合わせてください。 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 マウントされるかのテスト |