www.smiyasaka.com は、 2022 年 11月から Oracle LInux 8.X にOSを変更しました。 |
● Oracle Linux 8.10 64bit ● |
アクセス数 昨日 1 今日 1 累計 2,538 |
Oracle Linux R8-U9-x86_64-dvd.iso を使用し、自宅サーバを構築しました。 |
目 次 |
||
※
[ 総てを表示する ] ※
0.
[ 現在稼働中のサーバ機のスペック ]
1.
[ Oracle Linux 8.Xのインストール ]
3.
[ 事前にダウンロードするファイル一覧と探し方 ]
4.
[ セキュリティ対策のため停止したサービス ]
7.
[ ファイルの転送プログラムの作成 ]
8.
[ サーバの時刻を日本標準時に同期させる ]
9.
[ リポジトリを導入する ]
10-1.
[ apache2( httpd-2.4.62 )のインストールと設定 ]
10-2.
[ SELinux を有効にした時の apache2 のポリシー設定 ]
10-4.
[ 圧縮パッケージ Brotli を使用しての圧縮処理の追加 ]
12.
[ clamav( アンチウィルスソフト )のインストール ]
13.
[ chkrootkitの導入 ]
14.
[ sendmail のインストール ]
16.
[ 漢字コード変換用に nkf のインストール ]
17.
[ 自前プログラムでダイナミック DNS を定期更新させる。 ]
18.
[ 自宅サーバの管理・運用監視 等 ]
|
||
0. 現在稼働中のサーバ機のスペック |
||
このウェブサイトは、 下記のシステム仕様で小型パソコンを使用して私の自宅から発信しています。 サーバ機の OS は、 Oracle Linux 8.10 64bit Web サーバは、 httpd-2.4.62 を使用して運用しています。 SELinux mode : Enforcing ( 有効 ) SSL 認証鍵の証明書 = Let's Encrypt を使用・SSL プロトコル HTTP/2 に対応 ( Let's Encrypt は、一か月毎更新しています。 ) カーネルのバージョンは、2024.11.21 に更新された Kernel 5.15.0-302.167.6.1.el8uek.x86_64 です。 [ サーバ機 連続稼働時間 4 日と 19 時間 43 分 SSD 機器温度 33 度 ] [ SSD 稼動時間 2,218 時間 ( 92 日 10 時間 ) ] [ CPU 利用率 0.45 % CPU 温度 +28 度 ] 稼 働 中 サ ー バ 機 の ス ペ ッ ク ------------------------------------------------------------------------- 私の自宅サーバ機のスペック 型 式 : Mouse Pro-M591F-WA CPU : Intel i3-7100U 2コア/4スレッド 2.40GHz 消費電力 : 約 10W メ モ リ : 8GB SSD : 128GB インターネット回線 : STNet 光回線(ギガビット対応) USBカメラ : Logicool UVC対応 C270sCW 120万画素(固定焦点) ------------------------------------------------------------------------- |
1. OracleLinux-R8-U9-x86_64.iso のインストール |
||
OracleLinux-R8-U10-x86_64-dvd.iso (13.2GB) でのインストール・動作確認を本ページでの手順で行いました。 |
||
[ Oracle Linux 8.Xの USB からのインストール手順 ] の詳細は、 |
2. Oracle Linux 8.X再起動後のコンソールからの各種設定(SELinux を含む) |
||
|
||
各種コマンドの設定を連続で実行させてみました。 |
○○○○は、貴方のユーザー名です。 〇 ポート番号の変更から、public.bak.xml への https,ntp,ftp 追加設定 ------------------------------------------------------ sed -i 's/#Port 22/ Port 2222/g' /etc/ssh/sshd_config;\ # firewall-cmd --zone=public --add-port=2222/tcp --permanent;\ # semanage port -a -t ssh_port_t -p tcp 2222;\ # # Oracle Linux 8.X の場合 semanage 等のコマンドパッケージのインストールが必要 dnf -y install policycoreutils-python-utils;\ # semanage port -l| grep ssh;\ # cp /etc/firewalld/zones/public.xml /home/○○○○/public.bak.xml;\ sed -i -e"s/<service name=\"dhcpv6-client\"\/>/<service name=\"http\"\/>\n\ <service name=\"https\"\/>\n\ <service name=\"ntp\"\/>\n\ <service name=\"ftp\"\/>/g" /etc/firewalld/zones/public.xml; \ cat /etc/firewalld/zones/public.xml ----------------------------------------------------------- 〇 ここまでで 次回のログインは、ポート番号 2222 でOKです。 ----------------------------------------------------------- ここで、vsftpd-3.0.3-35.el8.x86_64.rpm をドラッグする ~/ を消去 か /home/○○○○ を書き込む ------------------------------------------------------- 〇 vsftpd のインストールから、各種設定まで ------------------------------------------------------- cp /home/○○○○/vsftpd-3.0.3-35.el8.x86_64.rpm /usr/local/src/; \ cd /usr/local/src/; \ rpm -ivh vsftpd-3.0.3-35.el8.x86_64.rpm;\ # cp /etc/vsftpd/vsftpd.conf /home/○○○○/vsftpd.conf.bak; \ sed -i -e "/anonymous_enable=/s/YES/NO/ /xferlog_enable=/s/YES/NO/ # 先頭の # を削除 /#ascii_upload_enable/s/^#// /#ascii_download_enable/s/^#// /#chroot_local_user/s/^#// /#chroot_list_enable/s/^#// /#chroot_list_file/s/^#// /#ls_recurse_enable/s/^#// /listen=/s/NO/YES/ /listen_ipv6=/s/YES/NO/ # ここからは、最終行後に追加です。 \$a\local_root=public_html\n\ use_localtime=YES\n\ text_userdb_names=Yes\n\ force_dot_files=YES\n\ pasv_min_port=50010\n\ pasv_max_port=50012" /etc/vsftpd/vsftpd.conf;\ # firewall-cmd --zone=public --add-port=50010-50012/tcp --permanent; \ firewall-cmd --reload;\ # echo "○○○○" >> /etc/vsftpd/chroot_list; \ echo "vsftpd : ALL" >> /etc/hosts.deny; \ echo "vsftpd : 192.168.0.0/24" >> /etc/hosts.allow; \ systemctl start vsftpd; \ systemctl enable vsftpd;\ # setsebool -P ftpd_full_access 1;\ setsebool -P httpd_enable_ftp_server 1;\ setsebool -P httpd_enable_homedirs 1;\ firewall-cmd --reload ----------------------------------------------------------- 〇 ここで 各ソースプログラムを ffftp で転送できます。 ----------------------------------------------------------- # インストールプログラムの転送を実行 chmod 777 -R /home/○○○○/root_program/;\ /home/○○○○/root_program/tensou.sh;\ # # chrony.conf;\ cp /etc/chrony.conf /home/○○○○/chrony.conf.bak; \ sed -i -e "s/pool 2\.centos/#pool 2\.centos/ /pool 2\.centos\.pool\.ntp\.org iburst/aserver ntp\.nict\.jp\n\ server ntp1\.jst\.mfeed\.ad\.jp\n\ server ntp2.\jst.mfeed\.ad\.jp" /etc/chrony.conf;\ systemctl restart chronyd;\ # # service_stop プログラムの書込み cat <<EOF > /home/○○○○/service_stop.sh #!/usr/bin/sh systemctl stop atd.service systemctl disable atd.service #systemctl stop auditd.service systemctl disable auditd.service systemctl stop kdump.service systemctl disable kdump.service systemctl stop lvm2-monitor.service systemctl disable lvm2-monitor.service systemctl stop mdmonitor.service systemctl disable mdmonitor.service systemctl stop rngd.service systemctl disable rngd.service systemctl stop smartd.service systemctl disable smartd.service systemctl stop tuned.service systemctl disable tuned.service systemctl stop dm-event.socket systemctl disable dm-event.socket echo "サービス_STOP 完了" EOF && \ chmod 755 /home/○○○○/service_stop.sh;sh /home/○○○○/service_stop.sh ------------------------------------------------ 〇 ここからは、httpd-2.4.62 のインストールです。 ------------------------------------------------ # perl-core のインストール cd /usr/local/src/;\ dnf install -y perl-core;\ # # openssl-3.0.13.tar.gz のインストール cd /usr/local/src/;\ tar zxvf openssl-3.0.13.tar.gz;\ cd ./openssl-3.0.13;\ ./Configure \ --prefix=/usr/local/openssl-3.0 shared zlib;\ make && make install;\ # パスを通しておきます。 echo /usr/local/openssl-3.0/lib64 > /etc/ld.so.conf.d/openssl.conf;\ ldconfig;\ # # nghttp2-1.59.0.tar.gz のインストール cd /usr/local/src;\ dnf -y install jansson-devel libev-devel python3-devel;\ # cd /usr/local/src; \ tar xvzf nghttp2-1.59.0.tar.gz; \ cd nghttp2-1.59.0/; \ env OPENSSL_CFLAGS="-I/usr/local/openssl111/include" \ OPENSSL_LIBS="-L/usr/local/openssl111/lib -lssl -lcrypto" \ ./configure \ --with-ssl=/usr/local/openssl-3.0 \ --disable-static \ -enable-app;\ make && make install;\ # # cmake のインストール cd /usr/local/src;\ dnf -y install cmake;\ # # brotli-1.1.0.tar.gz のインストール cd /usr/local/src;\ tar xvzf brotli-1.1.0.tar.gz; \ cd brotli-1.1.0/; \ mkdir out && cd out; \ cmake -DCMAKE_BUILD_TYPE=Release\ -DCMAKE_INSTALL_PREFIX=/usr/local ..;\ cmake --build . --config Release --target install;\ # パスを通しておきます。 echo /usr/local/lib64 > /etc/ld.so.conf.d/usr-local-lib64.conf;\ ldconfig --------------------- 〇 チョット休憩です。 --------------------- # apr-1.7.0.tar.gz のインストール cd /usr/local/src; \ tar xzvf /usr/local/src/apr-1.7.0.tar.gz; \ cd ./apr-1.7.0; \ ./configure; \ make && make install;\ cd /usr/local/src;\ # # apr-util-1.6.1.tar.gz のインストール tar xzvf /usr/local/src/apr-util-1.6.1.tar.gz; \ cd ./apr-util-1.6.1; \ ./configure \ --with-apr=/usr/local/apr; \ make && make install;\ # # httpd-2.4.62.tar.gz のインストール cd /usr/local/src; \ tar xzvf httpd-2.4.62.tar.gz; \ cd ./httpd-2.4.62;\ ./configure \ --enable-http2 \ --enable-brotli \ --with-brotli=/usr/local/lib \ --enable-ssl \ --with-ssl=/usr/local/openssl111 \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr \ --enable-rewrite \ --enable-so \ --enable-mods-shared=all \ --enable-mpms-shared=all;\ make && make install ------------------------------------- 〇 連続コマンド紹介は、ここまでです。 ------------------------------------- |
|
Tera Term の文字化けを防ぐため、漢字コードをサーバ機側と同じ漢字コード UTF-8 に必ず設定し、
「設定の保存」をしてください。 接続すTCPポートは、私の場合 2222 に変更しています。 |
||
※※ 参考情報 ※※ |
4. セキュリティ対策のため停止したサービス |
||
暫定的に停止したサービスは、下記のとおりです。 |
||
サービス名 |
機 能 |
下記は、サービスを一括停止するプログラムです。
------------------------------------------------------------
vi service_stop.sh
#!/usr/bin/sh
systemctl stop atd.service
systemctl disable atd.service
systemctl stop kdump.service
systemctl disable kdump.service
systemctl stop lvm2-monitor.service
systemctl disable lvm2-monitor.service
systemctl stop mdmonitor.service
systemctl disable mdmonitor.service
systemctl stop rngd.service
systemctl disable rngd.service
systemctl stop smartd.service
systemctl disable smartd.service
systemctl stop tuned.service
systemctl disable tuned.service
systemctl stop dm-event.socket
systemctl disable dm-event.socket
echo "サービス_STOP 完了"
-------------------------------------------------------------
属性を変更して、実行します。
chmod 755 service_stop.sh;sh service_stop.sh
|
5. ファイアウォール( firewalld )と Systemd |
||
私が設定したファイアウォール( firewalld )の内容は、下記の通りです。 |
vi /etc/firewalld/zones/public.xml ------------------------------------------------------------------ <?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not……… computers on networks to not harm your computer. Only ……… connections are accepted.</description> <service name="ssh"/> <service name="dhcpv6-client"/> <----- ここを修正 <port protocol="tcp" port="2222"/> <----- 追加したポート </zone> ------------------------------------------------------------------ 下記の様に編集します。 <service name="dhcpv6-client"/> ↓ ↓ ↓ <service name="ntp"/> <---- 123/tcp の有効化 <service name="http"/> <---- 80/tcp の有効化 <service name="ftp"/> <---- 21/tcp の有効化 <service name="https"/> <---- 443/tcp の有効化
上記の操作を sed コマンドで一括処理してみました。
cp /etc/firewalld/zones/public.xml\
/etc/firewalld/zones/public_bak.xml;\
sed -i -e"s/ssh/http/g
s/<service name=\"dhcpv6-client\"\/>/<service\
name=\"https\"\/>\n\
<service name=\"ntp\"\/>\n\
<service name=\"ftp\"\/>/g" /etc/firewalld/zones/public.xml
編集保存したら、firewall-cmd --reload で設定を反映します。 |
6. Tera Termでvsftpd( FTPサーバ )を転送しインストール |
||
ここでは、先人の知恵を借りて、vsftpd のインストールと設定に挑戦してみました。 |
---------------------------------------------- |
|||
① vsftpd のインストールと設定 |
||
vsftpd-3.0.3-35.el8.x86_64.rpm は、Tera Term の転送機能を利用してホームディレクトリに読込み |
||
cd /usr/local/src/;\ |
||
編集済の vsftpd.conf が有る場合には、Tera Term の転送機能を利用してホームディレクトリに読込み |
||
下記の操作を sed コマンドで一括処理してみました。下記を実行します。 cp /etc/vsftpd/vsftpd.conf /home/miyasaka/vsftpd.conf.bak; \ sed -i -e "/anonymous_enable=/s/YES/NO/ /xferlog_enable=/s/YES/NO/ # 先頭の # を削除 /#ascii_upload_enable/s/^#// /#ascii_download_enable/s/^#// /#chroot_local_user/s/^#// /#chroot_list_enable/s/^#// /#chroot_list_file/s/^#// /#ls_recurse_enable/s/^#// /listen=/s/NO/YES/ /listen_ipv6=/s/YES/NO/ ##### ここからは、最終行後に追加です。 \$a\local_root=public_html\n\ use_localtime=YES\n\ text_userdb_names=Yes\n\ force_dot_files=YES\n\ pasv_min_port=50010\n\ pasv_max_port=50020" /etc/vsftpd/vsftpd.conf vi /etc/vsftpd/vsftpd.conf
|
||
③ ③-1 Port 50010 ~ 50020 を有効化( 追加 )する。 echo "○○○○" >> /etc/vsftpd/chroot_list; \
echo "vsftpd:ALL" >> /etc/hosts.deny; \
echo "vsftpd:192.168.0." >> /etc/hosts.allow; \
systemctl start vsftpd; \
systemctl enable vsftpd
ユーザー名 ○○○○・接続を許可するIPアドレスは、あなたの環境に合わせてください。 |
7. ファイルの転送プログラムの作成 |
||
※※ 準備中 ※※ |
8. サーバの時刻を日本標準時に同期させるル |
||
(設定方法等は、先人の知恵を借りて行いました。) sed -i -e "s/pool 2\.centos/#pool 2\.centos/
/pool 2\.centos\.pool\.ntp\.org iburst/aserver ntp\.nict\.jp\n\
server ntp1\.jst\.mfeed\.ad\.jp\n\
server ntp2.\jst.mfeed\.ad\.jp" /etc/chrony.conf
② chrony を再起動します。 ( chrony のサービス名は、chronyd です。) |
||
MS Name/IP address Stratum Poll Reach LastRx Last sample
========================================
^+ ntp1.jst.mfeed.ad.jp 2 9 377 125 -462us[ ……
^* ntp2.jst.mfeed.ad.jp 2 10 377 1019 +140us[ ……
以下のように*印がついていたら同期ができています。
(起動してから同期までに10分ぐらいかかります。)
|
9. リポジトリを導入する |
||
サードパーティ( 外部 )リポジトリの導入方法 |
10-1. apache2( httpd-2.4.62 )のインストールと設定 |
||
2022年 3月14日付けで httpd-2.4.53 cd /usr/local/src; \
tar xzvf httpd-2.4.62.tar.gz; \
chown -R root. httpd-2.4.62; \
cd ./httpd-2.4.62/srclib 2. apr を展開する。 tar xzvf /usr/local/src/apr-1.7.5.tar.gz; \
chown -R root. apr-1.7.5/; \
mv apr-1.7.5 apr; \
tar xzvf /usr/local/src/apr-util-1.6.3.tar.gz; \
chown -R root. apr-util-1.6.3/; \
mv apr-util-1.6.3/ apr-util ② configure( make 用にソースファイルの配置をする ) の実行 cd /usr/local/src/httpd-2.4.62; \ ./configure \ --with-included-apr \ --enable-rewrite \ <---- リクエストされた URL の 動的書き換えを行うモジュール --enable-so \ <---- モジュールの有効化 --enable-deflate=shared <---- 圧縮する処理を追加
SSL を有効にしたい時には、[./configure \]の後に[--enable-ssl \]を追加します。 |
||
・enable-rewrite : Rewriteサポート(mod_rewrite) |
||
以下で、終われば、OK ------------------------------------------------------------------
config.status: creating support/split-logfile
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.62
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
|
||
③ 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.62' から出ます
-------------------------------------------------------------------
④ 私のサーバの環境でした、httpd.confの設定は、下記のとおりです。 |
||
下記は、httpd.conf の編集を sed コマンドで一括編集をした時の sed コマンドのリストです。 |
||
Alias を使用して、別 DocumentRoot を作り CGI, SSI, html を動作させる方法を下記に紹介します。 |
||
編集済の httpd.conf は、再構築時使用すると便利なので windows PC へ保存します。 cp /usr/local/apache2/conf/httpd.conf /home/miyasaka/; \
chown -R miyasaka:miyasaka /home/miyasaka/httpd.conf; \
chmod 644 /home/miyasaka/httpd.conf |
||
⑦ホームページの書き込み先のフォルダを作成・所有者の変更・属性変更をします。 mkdir -p /var/www/html/www.smiyasaka.com;\
chown -R miyasaka:miyasaka /var/www/;\
chmod 777 /var/www/html/www.smiyasaka.com;\
mkdir -p /home/miyasaka/www/;\
chown -R miyasaka:miyasaka /home/miyasaka/www/;\
chmod 777 /home/miyasaka/www/ ⑧ httpd.confの設定に間違いが無いか確認します。 /usr/local/apache2/bin/apachectl configtest
「 Syntax OK 」と表示されればOKです。 |
||
|
||
※※ 注意事項 ※※ |
10-2. SELinux を有効にした時の apache2 のポリシー設定 |
||
※※※ 参考情報 ※※※ |
||
私のホームページでは、SELinux を有効にするにあたってプログラムの配置を変更しました。 |
||
※ semanage fcontext と restorecon オプションの説明 ※ |
10-3. nghttp2 を使用して SSL プロトコル |
||
※※※ 設定の前提条件 ※※※ | ||
※※ 編集済みの各種 conf ファイルのバックアップを取り、再構築の時に利用しましょう。 ※※ | ||
1. CentOS Strem 8.X で取得している Let's Encrypt の認証鍵データを Oracle Linux 8.X への移設 | ||
2. Oracle Linux 8.X での certbot のインストールと認証鍵データの継続確認 |
||
※※ 参考情報 ※※ cd /usr/local/src/;\ tar zxf openssl-3.0.15.tar.gz; \ cd ./openssl-3.0.15; \ ./Configure \ --prefix=/usr/local/openssl-3.0 shared zlib make && make install openssl-3.0 は、openssl のインストールディレクトリフォルダ名です。 ライブラリへのパス通しをしておきます。 ここは、忘れないようにしてください。 エラーになります。 echo /usr/local/openssl-3.0/lib64 > /etc/ld.so.conf.d/openssl.conf;\ ldconfig OpenSSL 3.0 の確認 /usr/local/openssl-3.0/bin/openssl version openSSL のバージョンが、下記のように表示すれば動作OKです。 OpenSSL 3.0.15 3 Sep 2024 (Library: OpenSSL 3.0.15 3 Sep 2024) |
||
4. HTTP/2 のパッケージ nghttp2 をインストールする。 cd /usr/local/src; \ tar xvzf nghttp2-1.59.0.tar.gz; \ cd ./nghttp2-1.59.0; \ ./configure \ --with-ssl=/usr/local/openssl-3.0 \ --disable-static \ --enable-app nghttp2-1.63.0 の時は、下記方法でインストールします。 但し、コンパイル結果は、yes の項目が減ってしまいます。 tar xvzf nghttp2-1.63.0.tar.gz; \ cd nghttp2-1.63.0/; \ ./configure \ --with-ssl=/usr/local/openssl-3.0 \ --enable-lib-only
|
||
=====================================
nghttp2-1.63.0 の コンパイル結果
=====================================
( 上部省略 )
Library:
Shared: yes
Static: yes
Libtool:
LIBTOOL_LDFLAGS:
Python:
Python: /usr/bin/python3.11
PYTHON_VERSION: 3.11
Test:
Failmalloc: yes
Libs:
OpenSSL: no (CFLAGS='' LIBS='')
Libxml2: no (CFLAGS='' LIBS='')
Libev: no (CFLAGS='' LIBS='')
Libc-ares: no (CFLAGS='' LIBS='')
libngtcp2: no (CFLAGS='' LIBS='')
libngtcp2_crypto_quictls: no (CFLAGS='' LIBS='')
libngtcp2_crypto_boringssl: no (CFLAGS='' LIBS='')
libnghttp3: no (CFLAGS='' LIBS='')
libbpf: no (CFLAGS='' LIBS='')
Libevent(SSL): no (CFLAGS='' LIBS='')
Jansson: no (CFLAGS='' LIBS='')
Jemalloc: no (CFLAGS='' LIBS='')
Zlib: no (CFLAGS='' LIBS='')
Systemd: no (CFLAGS='' LIBS='')
Libbrotlienc: no (CFLAGS="' LIBS='')
Libbrotlidec: no (CFLAGS="' LIBS='')
Third-party:
http-parser: no
MRuby: no (CFLAGS='' LIBS='')
Neverbleed: no
Features:
Applications: no
HPACK tools: no
Examples: no
Threading: yes
HTTP/3 (EXPERIMENTAL): no
=====================================
nghttp2-1.59.0 の コンパイル結果
=====================================
( 上部省略 )
Library:
Shared: yes
Static: no
Libtool:
LIBTOOL_LDFLAGS:
Python:
Python: /usr/bin/python3.11
PYTHON_VERSION: 3.11
Test:
CUnit: no (CFLAGS='' LIBS='')
Failmalloc: yes
Libs:
OpenSSL: yes (CFLAGS='' LIBS='-lssl -lcrypto ')
Libxml2: yes (CFLAGS='-I/usr/include/libxml2 ' LIBS='-lxml2 ')
Libev: yes (CFLAGS='' LIBS='-lev')
Libc-ares: yes (CFLAGS='' LIBS='-lcares ')
libngtcp2: no (CFLAGS='' LIBS='')
libngtcp2_crypto_quictls: no (CFLAGS='' LIBS='')
libngtcp2_crypto_boringssl: no (CFLAGS='' LIBS='')
libnghttp3: no (CFLAGS='' LIBS='')
libbpf: no (CFLAGS='' LIBS='')
Libevent(SSL): no (CFLAGS='' LIBS='')
Jansson: yes (CFLAGS='' LIBS='-ljansson ')
Jemalloc: no (CFLAGS='' LIBS='')
Zlib: yes (CFLAGS='' LIBS='-lz ')
Systemd: yes (CFLAGS='' LIBS='-lsystemd ')
Third-party:
http-parser: yes
MRuby: no (CFLAGS='' LIBS='')
Neverbleed: no
Features:
Applications: yes
HPACK tools: yes
Examples: no
Threading: yes
HTTP/3 (EXPERIMENTAL): no
|
||
OK なら、インストールします。 echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf;\
ldconfig
| ||
5. httpd-2.4.62 の再インストール cd /usr/local/src; \
tar xzvf /usr/local/src/apr-1.7.5.tar.gz; \
cd ./apr-1.7.5; \
./configure; \
make && make install APR-Util のソースコードをインストール cd /usr/local/src; \
tar xzvf /usr/local/src/apr-util-1.6.3.tar.gz; \
cd ./apr-util-1.6.3; \
./configure \
--with-apr=/usr/local/apr; \
make && make install
プロトコル HTTP/2 対応化のための mod_http2.so の組込は、個別のインストールでなく、再インストールで対応します。 systemctl stop apache2; \ systemctl disable apache2; \ rm -rf /usr/local/apache2; \ rm -rf /usr/local/src/httpd-2.4.62 ② mod_http2.so を追加する為の再インストール [省略] 詳細は、10-1 項を参照してください。 cd /usr/local/src/;\ tar xzvf httpd-2.4.62.tar.gz; \ cd ./httpd-2.4.62;\ ./configure \ --enable-ssl \ --with-ssl=/usr/local/openssl-3.0 \ <------- openssl のパス --enable-http2 \ <------- mod_http2.so の追加 --with-apr=/usr/local/apr \ <------- apr-1.7.0 のパス --with-apr-util=/usr/local/apr \ <------- apr-util-1.6.1 のパス --enable-rewrite \ --enable-so \ --enable-deflate=shared \ --enable-mods-shared=all \ --enable-mpms-shared=all
----------------------------------------------------------------- ( 途中省略 ) creating modules/slotmem/Makefile creating modules/ssl/Makefile creating modules/test/Makefile creating os/unix/Makefile creating modules/http2/Makefile creating modules/md/Makefile ( 途中省略 ) config.status: creating docs/conf/extra/httpd-multilang-…… config.status: creating docs/conf/extra/…… config.status: creating docs/conf/extra/httpd-userdir.conf config.status: creating docs/conf/extra/httpd-vhosts.conf ( 途中省略 ) configure: summary of build options: Server Version: 2.4.62 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 ----------------------------------------------------------------- 〇 httpd-2.4.62 の make と install を実行する。 make && make install | ||
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 "TLS_AES_256_GCM_SHA384 \ TLS_CHACHA20_POLY1305_SHA256 \ <------- \ マークは、 ECDHE-RSA-AES128-GCM-SHA256 \ 行の継続指示記号です。 ECDHE-RSA-AES256-GCM-SHA384 \ ECDHE-RSA-AES256-SHA \ ECDHE-RSA-AES256-SHA384 \ DHE-RSA-AES256-GCM-SHA384 \ DHE-RSA-AES256-SHA \ DHE-RSA-AES256-SHA256" 53 SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES ↓ ↓ SSLProxyCipherSuite "TLS_AES_256_GCM_SHA384 \ TLS_CHACHA20_POLY1305_SHA256 \ ECDHE-RSA-AES128-GCM-SHA256 \ ECDHE-RSA-AES256-GCM-SHA384 \ ECDHE-RSA-AES256-SHA \ ECDHE-RSA-AES256-SHA384 \ DHE-RSA-AES256-GCM-SHA384 \ DHE-RSA-AES256-SHA \ DHE-RSA-AES256-SHA256" 79 SSLProtocol all -SSLv3 ↓ ↓ SSLProtocol -all +TLSv1.2 +TLSv1.3 SSL プロトコル のすべてを無効にして、 TLSv1.2 ・TLS1.3 を有効にする。 80 SSLProxyProtocol all -SSLv3 ↓ ↓↓ SSLProxyProtocol -all +TLSv1.2 +TLSv1.3 SSL プロトコル のすべてを無効にして、 TLSv1.2 ・TLS1.3 を有効にする。 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 86400 540" 132行目 SSLEngine on の次の行に下記を追加 #---- HTTP/1.1 HTTP/2 add ---- <IfModule http2_module> ProtocolsHonorOrder On Protocols h2 http/1.1 </IfModule>
h2 とは、TLS暗号化接続によるHTTP/2プロトコル
http/1.1 とは、従来のHTTP/1.1プロトコル。 133行目に以下を追加する Header set Strict-Transport-Security\ "max-age=315360000;includeSubDomains" Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure Header always set X-Frame-Options SAMEORIGIN
上記の設定は、HSTS (HTTP Strict Transport Security) の導入・常時 SSL 化になります。 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> までコメントアウトします。 287 #CustomLog "/usr/local/apache2/logs/ssl_request_log" \ 288 # "%t %h %{SSL_……L}x %{SSL_……R}x \"%r\" %b" ↓ ↓↓ Include conf/extra/httpd-log.conf <--- ログ条件設定用 conf 標準のログローテーション( Apache logrotate )を使用する時には、 コメントアウトしないでください。 私の場合、自前でログローテーションをしています。 ( httpd-log.conf の作成方法は、[ここをクリック]してください。) 最終行の後に下記を追加します。 # Include conf/extra/httpd-zgip.conf <---- 新規に作成します。 #-------------------------------------------------- # セキュリティ対策のため、最終行に追加しておきます。 # サーバ署名(バージョンとサーバ名)のOFF ServerSignature Off #
※※ ここからは、SSL でも圧縮処理をしたい時に追加してください。※※ |
||
空の httpd-zgip.conf ファイルを作成します。 touch /usr/local/apache2/conf/extra/httpd-zgip.conf vi コマンドで下記モジュール( mod_deflate )の設定条件を書き込みます。 vi /usr/local/apache2/conf/extra/httpd-zgip.conf <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> |
||
httpd-SSL.conf の編集を sed コマンドで一括編集をした時の sed コマンドのリスを公開しています。 | ||
7. httpd-2.4.58 httpd.conf 設定ファイルの SSL( h2 ) 追加設定 vi /usr/local/apache2/conf/httpd.conf 〇 mod_socache_shmcbを有効化する。 88 #LoadModule socache_shmcb_module……d_socache_shmcb.so ↓ ↓ LoadModule socache_shmcb_module mod……_shmcb.so 尚、mod_socache_shmcb.soは、httpdに含まれています。 〇 mod_ssl.so の読み込みを行う。 145 #LoadModule ssl_module modules/mod_ssl.so ↓ ↓ LoadModule ssl_module modules/mod_ssl.so 〇 mod_http2.so を有効化するため、コメントアウトを解除します。 147 #LoadModule http2_module modules/mod_http2.so ↓ ↓ LoadModule http2_module modules/mod_http2.so 〇 https:// のアクセスを https:// に変換させる処理の追加。 171 #LoadModule rewrite_module modules/mod_rewrite.so ↓ ↓ LoadModule rewrite_module modules/mod_rewrite.so 〇 「httpd-ssl.conf」の読み込みを行う。 513 #Include conf/extra/httpd-ssl.conf ↓ ↓ Include conf/extra/httpd-ssl.conf 上記の操作を sed コマンドで一括処理してみました。 sed -i -e "/mod_socache_shmcb\.so/s/^#// /mod_ssl\.so/s/^#// /mod_http2\.so/s/^#// /mod_rewrite\.so/s/^#// /httpd-ssl\.conf/s/^#//" /usr/local/apache2/conf/httpd.conf |
||
8. URL の正規化をします。 |
||
vi ( ドキュメントルートのパス )/.htaccess |
||
※※※ 参考情報 ※※※ |
||
10. エラーのチェック /usr/local/apache2/bin/apachectl configtest 「 Syntax OK 」と表示されればOKです。 ----------------------------------------------------------------- 11. apache2.service の変更して reload を追加します。 vi /usr/lib/systemd/system/apache2.service ------------------------------------------------------ [Unit] Description=httpd-2.4.62 daemon After=network.target [Service] Type=forking ExecStart=/usr/local/apache2/bin/apachectl start ExecReload=/usr/local/apache2/bin/apachectl graceful <--- 安全な 再起動を追加します。 ExecStop=/usr/local/apache2/bin/apachectl stop [Install] WantedBy=multi-user.target ------------------------------------------------------- systemctl start apache2 <------- 起動 systemctl reload apache2 <------- 安全な再起動 systemctl stop apache2 <------- 停止 |
||
12. apache2 を起動して https://(サーバ機の LAN 内 IP アドレス)でアクセス |
||
13. Apache を DoS 攻撃から守る処理の導入 |
||
14. エラーのチェック |
||
※ 追伸 ※ |
10-4 圧縮パッケージ Brotli を使用しての圧縮処理の追加 |
||
圧縮パッケージ Brotli を使用しての圧縮処理の追加をしてみました。 cd /usr/local/src; \ dnf -y install cmake; \ tar xvzf brotli-1.1.0.tar.gz; \ cd brotli-1.1.0/; \ mkdir out && cd out; \ cmake -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release .. 上記終了したら、 cmake --build . --config Release --target install を実行します。 brotli-1.1.0 では、ライブラリへのパス通しを行います。 echo /usr/local/lib64 > /etc/ld.so.conf.d/usr-local-lib64.conf;\ ldconfig ② インストール済の httpd-2.4.62 を削除します。 systemctl stop apache2; \
systemctl disable apache2; \
rm -rf /usr/local/apache2; \
rm -rf /usr/local/src/httpd-2.4.62
③ httpd-2.4.62 の再インストール cd /usr/local/src; \ tar xzvf httpd-2.4.62.tar.gz; \ cd ./httpd-2.4.62;\ ./configure \ --enable-http2 \ --enable-ssl \ --with-ssl=/usr/local/openssl-3.0 \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr \ --enable-brotli <------- Brotli の組み込み --with-brotli=/usr/local/lib64 <------- Brotli のパス --enable-rewrite \ --enable-so \ --enable-rewrite \ --enable-mods-shared=all \ --enable-mpms-shared=all 上記終了したら、 make ---> make install を実行します。
④ /usr/local/apache2/conf/httpd.conf への設定の追加 |
空の httpd-Brotli.conf ファイルを作成します。 <ifModule brotli_module>
#---------------------------------------------------
# Brotli 圧縮設定
#---------------------------------------------------
#
## 圧縮レベル: 0-11 (default: 11)
BrotliCompressionQuality 5
#
## BrotliWindowSize: 10-24 (default: 22)
BrotliCompressionWindow 18
#
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain\
text/css text/xml text/javascript\
application/json application/javascript\
application/x-javascript\
application/xml\
application/xml+rss
#
SetOutputFilter BROTLI_COMPRESS
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-brotli
#
BrotliFilterNote Input instream
BrotliFilterNote Output outstream
BrotliFilterNote Ratio ratio
#
# 圧縮率の確認用ログ設定
# 不要になったら、# で無効にしておく事。
# BROTLI_COMPRESSが有効になっているか確認するログの出力
#
LogFormat '"%r" %{outstream}n/%{instream}n\
(%{ratio}n%%) %{User-agent}i' brotli
CustomLog "logs/Brotil_access_log" brotli
#---------------------------------------------------
</ifModule brotli_module>
|
⑥ apache を起動します。
chown -R miyasaka:miyasaka\
/usr/local/apache2/logs/Brotil_access_log; \
chmod -R 666 /usr/local/apache2/logs/Brotil_access_log
保存場所 ----> /usr/local/apache2/logs/Brotil_access_log |
------------------------------------------- |
応答ヘッダーの情報 |
||
|
||
⑩ 私の Web サイトの安全性の評価を受けてみました。 |
||
11. fswebcom-20200725.tar.gz のインストールと定点カメラの設定 |
||
CentOS 8 では、dnf でもインストール出来ますが 私の設定では、タイトル文字・タイムスタンプの半角数字が表示しない現象( 下記写真 )が出ています。( 解決済み ) |
||
fswebcam-20200725 の dnf でのインストール方法 |
||
最新版の fswebcam-20200725 の日本語の文字化け等の解消方法 |
||
文字化けを解消するために 日本語フォント( ゴシック )を dnf でインストールする必要があります。 |
||
fswebcomを使った定点カメラの設定方法・ダウンロードについては、「定点カメラの実現方法」のページで詳細に
解説していますので参考にしてください。 |
||
fswebcam-20200725.tar.gz のインストール手順 |
||
fswebcam-20200725 のバージョンでタイトル文字の日本語フォントを変更する方法は、上記に追記しています。 tar zxvf fswebcam-20200725.tar.gz;\ cd ./fswebcam-20200725; \ ./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 ② make と インストール make && make install
make では、下記の様なエラーがでますがそのままインストールします。 |
||
fswebcam-20200725 のバージョンで |
||
1. 明朝体の日本語フォントのダウンロード |
||
12. clamav ( アンチウィルスソフト )のインストール |
||
○ clamav のインストール・設定手順 cd /usr/local/src;\ dnf -y install clamav clamav-update 2021年 12月時点では、下記バージョンがインストールされます。 インストール済み: clamav-0.103.4-1.el8.x86_64 clamav-data-0.103.4-1.el8.noarch clamav-filesystem-0.103.4-1.…… clamav-lib-0.103.4-1.el8.x86_64 clamav-update-0.103.4-1.el8.…… libprelude-5.2.0-1.el8.x86_64 完了しました!
cp /etc/freshclam.conf /home/miyasaka/freshclam.conf.bak; \
sed -i -e "s/#DatabaseDirectory/DatabaseDirectory/
s/#UpdateLogFile/UpdateLogFile/
s/#LogFileMaxSize/LogFileMaxSize/
s/#LogTime/LogTime/
s/#LogRotate/LogRotate/
/instead\./aDatabaseMirror db.jp.clamav.net" /etc/freshclam.conf
vi /etc/freshclam.conf |
||
[ ウィルススキャンを定期的に実行させるためのスクリプトの作成 ] の詳細
#!/usr/bin/bash |
||
〇 ウィルススキャン実行スクリプトへ実行権限付加とテスト |
||
⑨ ClamAV のSELinuxのポリシーの設定 setsebool -P antivirus_can_scan_system 1;\
setsebool -P antivirus_use_jit 1 設定確認コマンド getsebool -a | grep antivirus
antivirus_can_scan_system --> on vi /etc/logrotate.d/clamav-update /var/log/freshclam.log { <---- ここのパスは、 daily ⑤ 項で設定したパスを指定します。 missingok rotate 5 notifempty missingok postrotate systemctl try-restart clamav-freshclam.service endscript }
⑪ freshclam の定時実行の設定 |
13. chkrootkitの導入 |
||
① chkrootkit のインストール cd /usr/local/src; \ tar zxvf chkrootkit.tar.gz; \ cd chkrootkit-0.53; \ <--- chkrootkit-0.5X の X は、 mkdir -p /root/bin; \ 確認する事 mv ./chkrootkit-0.53/chkrootkit /root/bin ② 起動用シェルスクリプトの作成 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 echo "**** rootkit check OK ****" <--- 手動実行時の確認メッセージ # 改ざんが無かった時の root 宛メールの出力の有 echo "**** rootkit check OK ****" |\ mail -s "*** rootkit check ***" root fi # chmod 600 ${LOG} |
||
※ 参考情報 ※ if ! rpm -V `rpm -qf /sbin/init` > /dev/null 2>&1; とは、何か? |
||
③ rootkit.sh に属性設定 |
14. sendmail のインストール |
||
cd /usr/local/src; \
rpm -Uvh procmail-3.22-47.el8.x86_64.rpm; \
rpm -Uvh sendmail-8.15.2-31.el8.x86_64.rpm チョット時間がかかります。 dnf -y install sendmail ○ CentOS 8.X , Oracle Linux 8.X では、mail のコマンドが使えないので該当パッケージを dnf でインストールします。 dnf install mailx
インストール済み: systemctl start sendmail
# が表示するまで、結構時間がかかるので待ちます。 systemctl enable sendmail
# が表示するば OK です。 |
15. Logwatch のインストールと毎日のメールを簡単にチェックする方法 |
||
○ サーバー上のログを定期的にまとめ、集約してレポートを出してくれるソフトウェア cd /usr/local/src/; \
rpm -ivh mailx-12.5-29.el8.x86_64.rpm; \
rpm -ivh perl-Date-Manip-6.60-2.el8.noarch.rpm ; \
rpm -ivh perl-Sys-CPU-0.61-14.el8.x86_64.rpm; \
rpm -ivh perl-Sys-MemInfo-0.99-6.el8.x86_64.rpm; \
rpm -ivh logwatch-7.4.3-11.el8.noarch.rpm dnf でのインストールは、下記の通りです。 dnf -y install 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
|
16. 漢字コード変換用に nkf のインストール |
||
cd /usr/local/src; \
tar zxvf nkf-2.1.5.tar.gz; \
cd nkf-2.1.5; \
make && make install
以下で、終われば、OK |
17. 自前プログラムでダイナミック DNS を定期更新させる。 |
||
2020年10月10日 変更( DiCE の処理関係を削除し、下記を追加する。) |
||
プログラムの説明 |
||
vi VALUE_DOMAIN_DNS_set.sh |
||
※ wget -O - (大文字オー)で実行結果を書き出す。(引数に「-」を指定すると標準出力) |
||
グローバルIPアドレスが、変化したときの対策 |
||
私のサーバ機の環境で グローバル IP アドレス が、変化する要因は、99% 停電によるモデム(ブロードバンドルータ)の再起動によるインターネットサービスプロバイダ(ISP)の グローバル IP アドレス 再割り当てです。 |
||
※※ 参考になりますか?。[ グローバル IP アドレス 変化チェックのプログラム ] ※※ |
||
|
||
18. 自宅サーバの管理・運用監視 等 |
||
cd /usr/local/src; \
rpm -Uvh lm_sensors-3.4.0-17.20180522git70f7e08.el8.x86_64.rpm
dnf -y install lm_sensors
#!/usr/bin/perl
#----------------------------------------------------
# lm_sensorsを使用して CPU の温度を抽出する。
#----------------------------------------------------
# 先頭に Core の文字列がある行のみ抽出する
open(get_data, "/bin/sensors |");
# 改行コードを削除
chomp;
# スペースで分割して配列に代入
@Data = split(" ", $_ );
#
if ( $Data[0] eq "Core" ) {
# 3番目の配列に温度データがある
$temp = substr( $Data[2], 0,3 );
}
}
# 温度データを HTML へ出力する
print "CPU 温度 $temp 度\n";
-----------------------------------------------------------
cd /usr/local/src; \
rpm -Uvh ftp-0.17-78.el8.x86_64.rpm dnf でのインストールは、下記の通りです。 dnf -y install ftp
※※ 参考情報 ※※ |