www.smiyasaka.com は、 2021 年 1月から CentOS Stream 8 にバージョンアップしました。 |
● CentOS Stream 9 ● |
アクセス数 昨日 5 今日 7 累計 4,667 |
CentOS-Stream-9-20220613.0-x86_64-dvd1.iso (8.1GB) |
||
構築方法は、CentOS Stream 8 とほとんど変わりがありません。 |
目 次 |
||
※
[ 総てを表示する ] ※
0.
[ 現在稼働中のサーバ機のスペック ]
1.
[ CentOS Strem 9 のインストール ]
3.
[ 事前にダウンロードするファイル一覧と探し方 ]
4.
[ セキュリティ対策のため停止したサービス ]
7.
[ ファイルの転送プログラムの作成 ]
8.
[ サーバの時刻を日本標準時に同期させる ]
9.
[ リポジトリを導入する ]
10-1.
[ SELinux を有効にした時の apache2 のポリシー設定 ]
10-3.
[ 圧縮パッケージ Brotli を使用しての圧縮処理の追加 ]
12.
[ clamav( アンチウィルスソフト )のインストール ]
13.
[ chkrootkitの導入 ]
14.
[ sendmail のインストール ]
16.
[ 漢字コード変換用に nkf のインストール ]
17.
[ 自宅サーバの管理 等 ]
|
||
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.04 に更新された Kernel 5.15.0-302.167.6.el8uek.x86_64 です。 [ サーバ機 連続稼働時間 7 日と 14 時間 48 分 SSD 機器温度 33 度 ] [ SSD 稼動時間 1,925 時間 ( 80 日 5 時間 ) ] [ CPU 利用率 0.36 % CPU 温度 +33 度 ] 稼 働 中 サ ー バ 機 の ス ペ ッ ク ------------------------------------------------------------------------- 私の自宅サーバ機のスペック 型 式 : Mouse Pro-M591F-WA CPU : Intel i3-7100U 2コア/4スレッド 2.40GHz 消費電力 : 約 10W メ モ リ : 8GB SSD : 128GB インターネット回線 : STNet 光回線(ギガビット対応) USBカメラ : Logicool UVC対応 C270sCW 120万画素(固定焦点) ------------------------------------------------------------------------- |
1. CentOS Strem 9 のインストール |
||
CentOS-Stream-9-2022XXXX.X-x86_64-dvd1.iso の更新履歴 2022年 1月 6日付けで CentOS-Stream-9-20220106.0-x86_64-dvd1.iso 2022年 1月 7日付けで CentOS-Stream-9-20220107.0-x86_64-dvd1.iso 2022年 1月12日付けで CentOS-Stream-9-20220112.1-x86_64-dvd1.iso 2022年 1月13日付けで CentOS-Stream-9-20220113.0-x86_64-dvd1.iso 2022年 1月17日付けで CentOS-Stream-9-20220117.1-x86_64-dvd1.iso 2022年 1月18日付けで CentOS-Stream-9-20220118.0-x86_64-dvd1.iso 2022年 1月20日付けで CentOS-Stream-9-20220120.0-x86_64-dvd1.iso 2022年 1月21日付けで CentOS-Stream-9-20220121.1-x86_64-dvd1.iso 2022年 1月25日付けで CentOS-Stream-9-20220125.0-x86_64-dvd1.iso 2022年 1月27日付けで CentOS-Stream-9-20220127.0-x86_64-dvd1.iso 2022年 2月 1日付けで CentOS-Stream-9-20220201.0-x86_64-dvd1.iso 2022年 2月 2日付けで CentOS-Stream-9-20220202.0-x86_64-dvd1.iso 2022年 2月 4日付けで CentOS-Stream-9-20220204.0-x86_64-dvd1.iso 2022年 2月 7日付けで CentOS-Stream-9-20220207.0-x86_64-dvd1.iso 2022年 2月 8日付けで CentOS-Stream-9-20220208.1-x86_64-dvd1.iso 2022年 2月11日付けで CentOS-Stream-9-20220211.1-x86_64-dvd1.iso 2022年 2月16日付けで CentOS-Stream-9-20220216.0-x86_64-dvd1.iso 2022年 2月17日付けで CentOS-Stream-9-20220217.0-x86_64-dvd1.iso 2022年 2月21日付けで CentOS-Stream-9-20220221.0-x86_64-dvd1.iso 2022年 2月22日付けで CentOS-Stream-9-20220222.0-x86_64-dvd1.iso 2022年 2月23日付けで CentOS-Stream-9-20220223.0-x86_64-dvd1.iso 2022年 2月24日付けで CentOS-Stream-9-20220224.0-x86_64-dvd1.iso 2022年 3月 2日付けで CentOS-Stream-9-20220302.0-x86_64-dvd1.iso 2022年 3月 9日付けで CentOS-Stream-9-20220309.0-x86_64-dvd1.iso 2022年 3月10日付けで CentOS-Stream-9-20220310.0-x86_64-dvd1.iso 2022年 3月15日付けで CentOS-Stream-9-20220315.0-x86_64-dvd1.iso 2022年 3月21日付けで CentOS-Stream-9-20220321.4-x86_64-dvd1.iso 2022年 3月25日付けで CentOS-Stream-9-20220325.0-x86_64-dvd1.iso 2022年 3月28日付けで CentOS-Stream-9-20220328.0-x86_64-dvd1.iso 2022年 3月31日付けで CentOS-Stream-9-20220331.0-x86_64-dvd1.iso 2022年 4月 5日付けで CentOS-Stream-9-20220405.0-x86_64-dvd1.iso 2022年 4月13日付けで CentOS-Stream-9-20220413.0-x86_64-dvd1.iso 2022年 4月19日付けで CentOS-Stream-9-20220419.0-x86_64-dvd1.iso 2022年 4月26日付けで CentOS-Stream-9-20220426.0-x86_64-dvd1.iso 2022年 5月 2日付けで CentOS-Stream-9-20220502.1-x86_64-dvd1.iso 2022年 5月 5日付けで CentOS-Stream-9-20220505.0-x86_64-dvd1.iso 2022年 5月 9日付けで CentOS-Stream-9-20220509.0-x86_64-dvd1.iso 2022年 5月16日付けで CentOS-Stream-9-20220516.0-x86_64-dvd1.iso 2022年 5月23日付けで CentOS-Stream-9-20220523.0-x86_64-dvd1.iso 2022年 5月31日付けで CentOS-Stream-9-20220531.0-x86_64-dvd1.iso 2022年 6月 7日付けで CentOS-Stream-9-20220607.0-x86_64-dvd1.iso 2022年 6月13日付けで CentOS-Stream-9-20220613.0-x86_64-dvd1.iso 2022年 6月21日付けで CentOS-Stream-9-20220621.1-x86_64-dvd1.iso 2022年 6月29日付けで CentOS-Stream-9-20220629.0-x86_64-dvd1.iso 2022年 7月 5日付けで CentOS-Stream-9-20220705.0-x86_64-dvd1.iso 2022年 7月11日付けで CentOS-Stream-9-20220711.0-x86_64-dvd1.iso 2022年 8月22日付けで CentOS-Stream-9-20220822.0-x86_64-dvd1.iso 2022年 9月19日付けで CentOS-Stream-9-20220919.0-x86_64-dvd1.iso 2022年 9月28日付けで CentOS-Stream-9-20220928.0-x86_64-dvd1.iso 2022年 10月 3日付けで CentOS-Stream-9-20221003.2-x86_64-dvd1.iso 2022年 10月17日付けで CentOS-Stream-9-20221017.0-x86_64-dvd1.iso 2022年 10月24日付けで CentOS-Stream-9-20221024.0-x86_64-dvd1.iso |
||
上記の通り次々と iso のバージョンが更新されています。 |
||
2. CentOS 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\ && \ 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-49.el9.x86_64.rpm をドラッグする ~/ を消去 か /home/○○○○ を書き込む ------------------------------------------------------- 〇 vsftpd のインストールから、各種設定まで ------------------------------------------------------- cp /home/○○○○/vsftpd-3.0.3-49.el9.x86_64.rpm /usr/local/src/; \ cd /usr/local/src/; \ rpm -ivh vsftpd-3.0.3-49.el9.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 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 smartd.service systemctl disable smartd.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.54 のインストールです。 ------------------------------------------------ # perl-core のインストール;\ cd /usr/local/src/;\ dnf install -y perl-core\ && \ # openssl-1.1.1o.tar.gz のインストール;\ tar zxf openssl-1.1.1o.tar.gz;\ cd ./openssl-1.1.1o;\ ./config \ --prefix=/usr/local/openssl \ --openssldir=/usr/local/openssl/shared \ enable-md2 enable-rc5 sctp zlib;\ make && make install\ && \ # openssl のパスを通します。;\ echo /usr/local/openssl/lib > /etc/ld.so.conf.d/openssl.conf;\ ldconfig\ && \ # nghttp2-1.47.0.tar.gz のインストール;\ cd /usr/local/src; \ tar xvzf nghttp2-1.47.0.tar.gz; \ cd nghttp2-1.47.0/; \ env OPENSSL_CFLAGS="-I/usr/local/openssl/include" \ OPENSSL_LIBS="-L/usr/local/openssl/lib -lssl -lcrypto" \ ./configure \ --disable-static \ --enable-lib-only \ -enable-app;\ make && make install\ && \ # cmake のインストール;\ cd /usr/local/src;\ dnf -y install cmake\ && \ # brotli-1.0.9.tar.gz のインストール;\ cd /usr/local/src;\ tar xvzf brotli-1.0.9.tar.gz; \ cd brotli-1.0.9/; \ mkdir out && cd out; \ ../configure-cmake;\ make;\ make install --------------------- 〇 チョット休憩です。 --------------------- # 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.54.tar.gz のインストール;\ cd /usr/local/src; \ tar xzvf httpd-2.4.54.tar.gz; \ cd ./httpd-2.4.54;\ ./configure \ --enable-http2 \ --enable-brotli \ --with-brotli=/usr/local/lib \ --enable-ssl \ --with-ssl=/usr/local/openssl \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr \ --enable-rewrite \ --enable-so \ --enable-mods-shared=all;\ make && make install ------------------------------------- 〇 連続コマンド紹介は、ここまでです。 ------------------------------------- |
||
Tera Term の文字化けを防ぐため、漢字コードをサーバ機側と同じ漢字コード EUC に必ず設定し、
「設定の保存」をしてください。 接続すTCPポートは、私の場合 2222 に変更しています。 |
3. 事前にダウンロードするファイル一覧と探し方 |
||
rpm パッケージのダウンロードは、このサイト[ RPM Search ]で検索するとほとんどのパーケージが
入手できます。 |
||
ftp |
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 smartd.service
systemctl disable smartd.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;\
cat /etc/firewalld/zones/public.xml;\
firewall-cmd --reload
|
||
ファイアウォール( firewalld )の設定内容を確認する。 |
6. Tera Termでvsftpd( FTPサーバ )を転送しインストール |
||
ここでは、先人の知恵を借りて、vsftpd のインストールと設定に挑戦してみました。 |
---------------------------------------------- |
|||
① vsftpd のインストールと設定 |
||
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 12行目 匿名ログイン禁止 anonymous_enable=NO 40行目:転送記録をログに残す xferlog_enable=NO 82,83行目 コメント解除 ( アスキーモードでの転送を許可 ) ascii_upload_enable=YES ascii_download_enable=YES 100,101行目:コメント解除 ( chroot有効 ) chroot_local_user=YES chroot_list_enable=YES 103行目 コメント解除 ( chroot リストファイル指定 ) chroot_list_file=/etc/vsftpd/chroot_list 109行目 コメント解除 ( ディレクトリごと一括での転送有効 ) ls_recurse_enable=YES 114行目 変更 ( IPv4を有効にする ) listen=YES 123行目 変更 ( IPv6 は、無視させる ) listen_ipv6=NO ### 最終行へ追記 ### # PAM認証のサービス名指定 ( これを設定しないと接続できない為、設定しておく。) pam_service_name=vsftpd # アクセスユーザーリストファイルの使用 # NO : 「/etc/vsftpd/user_list」内の指定ユーザに関わらず接続が許可される。 userlist_enable=NO # tcp_wrappers( IPアドレスの制限 )を使用する tcp_wrappers=YES # ルートディレクトリ指定 (指定しない場合はホームディレクトリがルートディレクトリとなる) local_root=public_html # ローカルタイムを使う use_localtime=YES # Windows( ffftp )側で所有者名の表示 text_userdb_names=Yes # Windows( ffftp )側で . ファイルの表示 force_dot_files=YES # PASVモードでの接続のためのポート番号を設定します。 # PASVモードは、デフォルトで有効になっています。 # ポート番号の設定は、任意の番号で良いと思います。 # CentOS 7.X では、無くても動作しましたが、CentOS 8.X では、設定しないと動作しません。 pasv_min_port=50010 ← pasvモード通信用 任意のポート番号 pasv_max_port=50020 ← pasvモード通信用 任意のポート番号 |
||
③ ③-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 です。) |
||
下記の様に表示します。
===============================================================================
^? ntp-a3.nict.go.jp 1 6 1 5 -161us[ -161us] +/- 8903us
^? ntp1.jst.mfeed.ad.jp 2 6 1 5 -920us[ -920us] +/- 65ms
^? ntp2.jst.mfeed.ad.jp 2 6 1 4 -864us[ -864us] +/- 56ms
-------------------------------------------------------------------------------
|
||
以下のように*印がついていたら同期ができています。 |
9. リポジトリを導入する |
||
|
10-1. SELinux を有効にした時の apache2 の |
||
ポリシー設定の詳細は、[ centOS Stream 8 サーバ構築 ]を参照して下さい。 |
10-2. nghttp2 を使用して SSL プロトコル |
||
※※※ 注意事項 ※※※ | ||
3. openssl を 新規にインストールします。 cd /usr/local/src/;\
tar zxf openssl-1.1.1o.tar.gz; \
cd ./openssl-1.1.1o; \
./config \
--prefix=/usr/local/openssl \
--openssldir=/usr/local/openssl/shared \
enable-md2 enable-rc5 sctp zlib
make && make install
ライブラリへのパス通します。 |
||
4. HTTP/2 のパッケージ nghttp2 をインストールする。 cd /usr/local/src; \
tar xvzf nghttp2-1.47.0.tar.gz; \
cd ./nghttp2-1.47.0; \
env OPENSSL_CFLAGS="-I/usr/local/openssl/include" \
OPENSSL_LIBS="-L/usr/local/openssl/lib -lssl -lcrypto" \
./configure \
--disable-static \
--enable-lib-only \
--enable-app
|
||
Test:
CUnit: no (CFLAGS='' LIBS='')
Failmalloc: yes
Libs:
OpenSSL: yes (CFLAGS='-I/usr/local/openssl/include' LIBS='-L/usr/local/openssl/lib -lssl -lcrypto')
Libxml2: yes (CFLAGS='-I/usr/include/libxml2 ' LIBS='-lxml2 ')
Libev: no (CFLAGS='' LIBS='')
Libc-ares: yes (CFLAGS='' LIBS='-L/usr/usr/lib64 -lcares ')
libngtcp2: no (CFLAGS='' LIBS='')
libngtcp2_crypto_openssl: 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: yes (CFLAGS='' LIBS='-lz ')
Systemd: yes (CFLAGS='' LIBS='-lsystemd ')
Boost CPPFLAGS:
Boost LDFLAGS:
Boost::ASIO:
Boost::System:
Boost::Thread:
Third-party:
http-parser: no
MRuby: no (CFLAGS='' LIBS='')
Neverbleed: no
Features:
Applications: no
HPACK tools: no
Libnghttp2_asio:no
Examples: no
Python bindings:no
Threading: yes
HTTP/3 (EXPERIMENTAL): no
|
||
make && make install |
||
5. httpd-2.4.54 のインストール cd /usr/local/src; \
tar xzvf /usr/local/src/apr-1.7.0.tar.gz; \
cd ./apr-1.7.0; \
./configure; \
make && make install APR-Util のソースコードをインストール cd /usr/local/src; \ 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.54 の configure cd /usr/local/src/;\ tar xzvf httpd-2.4.54.tar.gz; \ cd ./httpd-2.4.54;\ ./configure \ --enable-ssl \ --with-ssl=/usr/local/openssl \ <------- openssl のパス --enable-ssl-staticlib-deps \ <------- OS 標準の openssl の ライブラリが、動的にリンクされる ことを防ぐため。つまり、Apacheの 実行ファイルと一緒に SSL モジュールを組み込む為です。 --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 ----------------------------------------------------------------- 以下の様に、SSL, http2 がビルドされます。 ----------------------------------------------------------------- ( 途中省略 ) 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/httpd-ssl.conf 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.54 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.54 の make と install を実行する。 make && make install | ||
6. httpd-2.4.54 の SSL の設定 httpd-ssl.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 "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.54 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
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
### 2020.12.08 追加 ###
# 有効化(DoS攻撃確定判定時)
RewriteCond %{ENV:SuspectHardDoS} =1
# 条件に合致する場合は503ステータスをレスポンス
RewriteRule ^.*$ - [R=503,L]
#
### 301リダイレクト http ---> htpps ###
#
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#
### index.htmlあり→index.html無し ###
#
RewriteCond %{REQUEST_URI} ^.*/index\.html$
RewriteRule ^(.*)index.html$ https://%{HTTP_HOST}/$1 [R=301,L]
#
### www ありのドメインに統一する ###
#
RewriteCond %{HTTP_HOST} ^smiyasaka\.com$ [NC]
RewriteRule ^(.*) https://www.smiyasaka.com%{REQUEST_URI} [R=301,L]
#
</IfModule>
ErrorDocument 401 /error401.html
ErrorDocument 403 /error403.html
ErrorDocument 404 /error404.html
ErrorDocument 500 /error500.html
ErrorDocument 503 /error503.html
|
||
※※※ 参考情報 ※※※ |
||
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.54 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-3 圧縮パッケージ Brotli を使用しての圧縮処理の追加 |
||
圧縮パッケージ Brotli を使用しての圧縮処理の追加をしてみました。 cd /usr/local/src; \
dnf -y install cmake; \
tar xvzf brotli-1.0.9.tar.gz; \
cd brotli-1.0.9/; \
mkdir out && cd out; \
../configure-cmake
終了直前に、CMake Warning at CMakeLists.txt:319 (message): の警告が出ますが、無視してください。 systemctl stop apache2; \
systemctl disable apache2; \
rm -rf /usr/local/apache2; \
rm -rf /usr/local/src/httpd-2.4.54
③ httpd-2.4.54 の再インストール cd /usr/local/src; \ tar xzvf httpd-2.4.54.tar.gz; \ cd ./httpd-2.4.54;\ ./configure \ --enable-http2 \ --enable-ssl \ --with-ssl=/usr/local/openssl \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr \ --enable-brotli <------- Brotli の組み込み --with-brotli=/usr/local/lib <------- Brotli のパス --enable-rewrite \ --enable-so \ --enable-mods-shared=all
上記終了したら、 make ---> make install を実行します。 |
||
<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 |
------------------------------------------- |
応答ヘッダーの情報 |
||
11. fswebcom-20200725.tar.gz のインストールと定点カメラの設定 |
||
fswebcam-20200725.tar.gz のインストール手順 |
||
CentOS Stream 9 では、文字化けの現象は出ませんでした。 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
以下で、終われば、インストールOK です。 |
12. clamav ( アンチウィルスソフト )のインストール |
||
○ clamav のインストール・設定手順 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 |
||
[ ウィルススキャンを定期的に実行させるためのスクリプトの作成 ] の詳細
vi /usr/local/src/virusscan.sh
#!/usr/bin/bash
START_Messge=" 開始時間 `date +"%k時%M分%S秒"`"
START_TIME=`date +%s` # 秒で開始時刻を取得
# 除外ファイル・ディレクトリーの文字列作成
# "--exclude=^/var/www/backup/www_bak --exclude-dir=^/proc" の様な文字列作成
# 変数名の { } は、分かり易くするために入れています。
excludelist=/root/clamscan.exclude
if [ -s ${excludelist} ]; then
for i in `cat ${excludelist}`
do
if [ $(echo "$i"|grep \/$) ]; then # 行末に "/" があるか?
# -n を付けなくとも string の文字列長が 0 より大ならば「真」となり
# 実行されます。if [ -n $(echo "$i"|grep \/$) ]と同じです。
# 削除対象 ディレクトリー 末尾の / を削除する処理
# ^\([^ ]*\) スペース以外の先頭文字からを \1 に代入する
# \/$ で末尾の / を削除して \1 に代入する
# オリジナル i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
ii=`echo ${i}|sed -e 's/^\([^ ]*\)\/$/\1/'`
excludeopt="${excludeopt} --exclude-dir=^${ii}"
else
# 削除対象 特定ファイル
excludeopt="${excludeopt} --exclude=^$i"
fi
done
fi
# mktemp (適当なファイル名の空ファイルを作成するコマンド)
CLAMSCANTMP=`mktemp` # ウイルスに関するメッセージを入れる変数作成
# システム全体をサブディレクトリごと再帰的(--recursive)にスキャンし ウィルスを発見次第削除(--remove)する
# --recursive ディレクトリ内に存在するものに一つ一つに対して処理をする
# スキャンサイズの設定 --max-filesize=200M --max-scansize=200M
#/usr/bin/clamscan --recursive --remove ${excludeopt} / > ${CLAMSCANTMP}
/usr/bin/clamscan --max-filesize=200M --max-scansize=200M \
--recursive --remove ${excludeopt} / > ${CLAMSCANTMP}
# ウィルスが発見された場合、FOUNDの文字列が付加される
# FOUNDの文字列があるかのチェックをする
M_swith=0 # 処理結果メッセージ切替スイッチ OFF
Virus_FOUND="\n" # ウィルスなしにする
if [ ! -z "$(grep FOUND$ ${CLAMSCANTMP})" ]; then
# ウィルスに感染したファイル名を変数 Virus_FOUND に出力
Virus_FOUND=$(grep FOUND$ ${CLAMSCANTMP})
# ウィルスに感染したファイルの個数の表示メッセージ行を取得
Virus_FOUND_No=$(grep Infected ${CLAMSCANTMP})
M_swith=1 # 処理結果メッセージ切替スイッチ ON
fi
rm -f ${CLAMSCANTMP} # -f 作成したファイル CLAMSCANTMP を確認なしで削除する
END_Messge=" 終了時間 `date +"%k時%M分%S秒"`"
#---------------------------------------------------------
END_TIME=`date +%s` # 秒で終了時刻を取得
# 処理時間計算とその結果をメール本文として出力
SS=`expr ${END_TIME} - ${START_TIME}` # 経過時間を求める(秒)
# 時を求める時には、3600で割る
MM=`expr ${SS} / 60` # 分を求める
SS=`expr ${SS} % 60` # 秒を求める (1分で割ったあまり)
SYORI_Messge=" 処理時間 ${MM}分 ${SS}秒"
# 処理結果メッセージ切替
if [ $M_swith -eq 1 ]; then
# ウィルスの感染数のみを取得する
i_CNT=`echo ${Virus_FOUND_No}|sed -e 's/Infected files://'`
KETUKA__Messge=" *** Clamscan ${i_CNT} Virus Found ***\n"
else
KETUKA__Messge=" *** Clamscan normal END ****"
fi
# 処理時間計算をメール本文として出力
# 開始時間 + 終了時間 + 処理時間 + 処理結果メッセージ + ウィルスに感染したファイル名 を
# メール本文として合成し出力
echo -e "${START_Messge}\n${END_Messge}\n${SYORI_Messge}\n${KETUKA__Messge}\n${Virus_FOUND}" | mail -s "*** SYORI_KETSUKA_REPORT *** " root
#---------------------------------------------------------
|
||
〇 ウィルススキャン実行スクリプトへ実行権限付加とテスト |
||
⑨ 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 のインストール |
||
systemctl start sendmail
# が表示するまで、結構時間がかかるので待ちます。 systemctl enable sendmail
# が表示するば OK です。 |
15. 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. 自宅サーバの管理 等 |
||
1 ). ftp のインストール cd /usr/local/src; \
rpm -Uvh ftp-0.17-89.el9.x86_64.rpm dnf でのインストールは、下記の通りです。 dnf -y install ftp
※※ 参考情報 ※※ |