#author("2020-02-07T12:42:01+09:00","default:kouzouken","kouzouken")
#author("2024-03-07T14:56:38+09:00","default:kouzouken","kouzouken")
#contents

*サーバ版 [#f43a92c8]
**インストール [#r358128c]
-http://studio-bey.chicappa.jp/dougubako/ubuntu_server/382
--apache2を入れるときはLAMP serverを選択
-http://www.server-world.info/query?os=Ubuntu_10.04&p=x


**Ubuntu18.04.3サーバー版 [#s0b59f5e]
-https://www.yokoweb.net/2018/05/04/ubuntu-18_04-lts-server-install/
-iiyamaの最近(2021)のOSなしマシンで、SSDとHDDがあり、HDDだけにインストールしたい場合は、まず、ネットワークケーブルを外して、
起動すると、バイオス(UEFI?)が起動するので、advancedから、storageの設定にいき、SATA3.0みたいな感じで認識されている、HDD(容量の大きさで判断)
がdisableになっているのをenableにしてからsaveして再起動
-iiyamaの最近(2021)のOSなしマシンは、ネットワークケーブルを外して、DVDを挿入して起動すると、
だいたい、DVDから起動する。
-言語選択は日本語はないので、Englishを選択
-キーボードは、Japanese
-Network connectionsで、eno1 eth のところを選択してエンターを押し、Edit IPv4を選択してエンター
--IPv4 Method: Manual
--Subnet: 123.123.123.0/24
--Address: 123.123.123.123
--Gateway: 123.123.123.1
--Name server: DNSのアドレス
--Search domains: 空欄
--以上を記入したらDone
-Configure proxy
--Proxy address: http://hoge.akita-u.ac.jp:8080/
-Filesystem setup
-Configure Ubuntu archive mirror
--http://jp.archive.ubuntu.com/ubuntu のまま
--Done
-Filesystem setup(ubuntu20では Guided storage configuration)
--Use An Entire Disk を選択
--(ubuntu20の場合は、Set up this disk as an LVM group のチェックを外す)
---(u20: SSDとHDDがあって、HDDの方にインストールしたい場合は、ここで選び直す
---(u20: そうすると、HDDの容量ぐらいの/パーティション(ext4)(partition 1)と512MBの/boot/efiパーティション(FAT32)(partition 2)が設定されるのを確認してdone
--Choose the disk to install to: 選択されたハードディスクを選択
--Are you sure you want to continue?: Continue
-Profile setup
--ここで入れたユーザー名が管理者になるので、ウェブ公開など、一般ユーザーで使いたいユーザー名とは別にしておく
-SSH Setup
--[X] Install OpenSSH server
--Import SSH identity: No
-Featured Server Snaps 特に選択するものはないような
-Installation comlete! まだ始まってないんでは...?
--View full logを選択してエンターするとlogが表示されるだけ
---(u20だと、Install complete!と出るので、そしたら Reboot Now)
--Rebootしてみるか(いつのまにインストールしてたの?)
-ディスクが出てきたのを取り出してエンターすると再起動
--(
[ OK ] Reached target Cloud-init target.
--)

 [ OK ] Reached target Cloud-init target.

みたいなところで止まってるなあと思って、エンターを押してみたら、
login:カーソルが出てくるので、ログインする。
一般ユーザーなので、sudo suでrootになる。
プロキシの設定とか、しなくて大丈夫かわからないが、まずは、MATEが入るかどうかやってみる。

--(
# apt -y install ubuntu-mate-desktop 
--)
 # apt -y install ubuntu-mate-desktop 

-Menu->AllのLanguage SupportのInstall/Remove LanguagesからJapaneseをインストールすると、Language for menus and windows:欄のEnglishの下に日本語が現れるので、日本語をマウスでドラッグして、Englishの上に持っていく(ちょっとコツがいる)

**ひとまずのインストール [#f792c22b]
 sudo apt install apache2 fcitx-mozc fdclone mlocate net-tools nkf php7.4 vsftpd webalizer


**rootログイン禁止、管理者ログインも禁止 [#g79e9fa2]
-/etc/ssh/の中のsshd_configをsshd_config.orgにバックアップを取ってから、

 #PermitRootLogin prohibit-password

 の行を(1行コピーしてコメントはずして)

 PermitRootLogin no
 DenyUsers admin

に変更。
に変更。adminは管理者ユーザー名

 # sshd -t
で構文チェックし、何もエラーが表示されなければ、以下でsshdをリスタート。
 # /etc/init.d/ssh restart


**visudoエディターの変更(不採用) [#b3a45834]

 # update-alternatives --config editor

sudoersを修正して、管理者アカウントからのsshログインを禁止しようと思ったのだけど、

 admin  ALL=(ALL:ALL) ALL, !/usr/bin/ssh

みたいにやっても、adminでsshログインできてしまう。上記のsshd_configで禁止する方がよい。

**タイムゾーンの変更 [#b9afbcb9]
 timedatectl set-timezone Asia/Tokyo
確認は、timedatectl

**サービス管理 [#fd12bb22]
***サービス一覧 [#t469a74b]
---(
# systemctl list-unit-files -t service
---)

 # systemctl list-unit-files -t service

Vine Linuxだとサービス管理がGUIで行えて便利だったのだけど、systemctlのGUIフロントエンドとかないものか。ちょっと検索した感じだとなさそうな...

**crontab [#q490079e]
crontabがまだ作られてない状態で
 #crontab -e
と打つと、
 no crontab for root - using an empty one
 Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed
と表示されるので2辺りを選んで、viで以下のように編集

 00 00 * * * updatedb
 00 01 * * * apt-get update && apt-get -y upgrade >/media/admin/hdd/apt.log
 00 02 * * * rsync -auv /var/www/cgi-bin /media/admin/hdd/ > /media/admin/hdd/cgi.log
 00 03 * * * rsync -auv /var/www/html /media/admin/hdd/ > /media/admin/hdd/html.log


**FTPサーバー [#p2ea476d]
FTPサーバーはftpdではなく、vsftpdをインストール。
ftpdも使えるが、systemctl list-unit-files -t serviceをやってもサービス一覧に現れないので、サービス管理の方法が不明。vsftpdなら、サービス一覧に現れる。

***gftpでアップロードできるようにする [#x7cad5df]
vsftpdはデフォールトでは書き込み禁止になっているので、/etc/vsftpd.conf の以下のコメントを外して有効にする
 write_enable=YES
そして、service vsftpd restart


*apache2 [#qf8acacc]
--/etc/apache2/mods-available/cgi.load を/etc/apache2/mods-enabled/ に以下でシンボリックリンクを作成(下記のhttpsの設定を先にやるなら不要かも)
--/etc/apache2/mods-available/cgi.load を/etc/apache2/mods-enabled/ に以下でシンボリックリンクを作成
 ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

--/etc/apache2/apache2.confに以下を追加
 DirectoryIndex index.html index.html.var index.cgi index.php

以下の2行は追加しなくてもいいかも(KeepAlive Onは既にあるかも)
 ServerTokens Prod
 KeepAlive On

--.htaccessを使うなら以下を修正
 <Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
 </Directory>
 上記の
 AllowOverride None
 を
 AllowOverride ALL
 に。

-古い.htaccessのgroupfileの項は削除
---古い.htaccessのgroupfileの項は削除

--/etc/apache2/conf-available/serve-cgi-bin.confの以下の箇所を修正

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
を
 ScriptAlias /cgi-bin/ /var/www/cgi-bin/
 <Directory "/var/www/cgi-bin">
に。
--.htaccessを使うなら以下を修正
 AllowOverride None

 AllowOverride ALL
 に。


---.htaccess用のパスワードは、
 perl -e 'print crypt("pasuwaado", "AB"), "\n"'
みたいに実行して(ABのとこは適当な2文字)、生成された文字列 ABtM8w0lwfcH6
を .htaccess内のAuthUserFileで指定しているパスにあるuserfile内に、書き込む。

--pukiwikiがcgi-binディレクトリ内のスタイルシートや画像を参照できるように以下も追加

 AddHandler skin/css  css
 AddHandler image/png png 

-各ユーザーのpublic_htmlが使えるようにする
 a2enmod 
 と打つと、
 Which module(s) do you want to enable (wildcards ok)?
 と聞かれるので、
 userdir
 と打ち、
 service apache2 restart

-apache2の再起動
 service apache2 restart


**https [#a19fcab5]
-SSLモジュールとバーチャルホストの有効化

 # a2enmod ssl
 # a2ensite default-ssl
 # service apache2 restart

 これを実行することでmods-availableへのシンボリックリンクがmods-enabledに置かれ、
 sites-availableへのシンボリックリンクがsites-enabledに置かれることになるようなので、上記のapache2の手動でリンクを貼る作業は不要かも。
 sites-availableへのシンボリックリンクがsites-enabledに置かれることになる。ただし、cgi.loadに関してはリンクが
 生成されないので、上記のapache2の手動でリンクを貼る作業が必要。


-&link(Let's Encryptの無料SSL/TLSサーバ証明書,https://chee-s.net/ubuntu%E3%81%A7lets-encrypt%E3%81%AE%E7%84%A1%E6%96%99ssl-tls%E3%82%B5%E3%83%BC%E3%83%90%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B)
-[[Let's Encryptの無料SSL/TLSサーバ証明書:https://chee-s.net/ubuntu%E3%81%A7lets-encrypt%E3%81%AE%E7%84%A1%E6%96%99ssl-tls%E3%82%B5%E3%83%BC%E3%83%90%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B]]

そもそもk2とか外部に公開されてないサーバーでサーバー証明書を取れないのかもしれないが、
まずは、/var/www/html/.well-known/acme-challenge のディレクトリを作成してから、

 # certbot certonly --webroot -w /var/www/html -d k2.hoge.jp

を実行。すると、以下のエラー

 Failed authorization procedure. k2.hoge.jp (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://k2.hoge.jp/.well-known/acme-challenge/dE9RRQ6FNEVCiUiKUWGPJhnI3KEoAScLREcWBUBwGQk: Timeout during connect (likely firewall problem)

 IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: k2.hoge.jp
   Type:   connection
   Detail: Fetching
   http://k2.hoge.jp/.well-known/acme-challenge/dE9RRQ6FNEVCiUiKUWGPJhnI3KEoAScLREcWBUBwGQk:
   Timeout during connect (likely firewall problem)

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

うまくいった場合は、
 IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/hogehoge.jp/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/hogehoge.jp/privkey.pem
   Your cert will expire on 2020-04-18. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
みたいに出る。

このログをコピペして、encrypt.logとかに保存しておく。
/etc/apache2/sites-availableに移動し、default-ssl.confの中の

 SSLCertificateFile	/etc/ssl/certs/ssl-cert-snakeoil.pem
 SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

の部分を、encrypt.logを参照しながら、

 SSLCertificateFile	/etc/letsencrypt/live/hogehoge.jp/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/hogehoge.jp/privkey.pem

みたいに書き換えて、service apache2 restart

これで、/var/www/html の中も/var/www/cgi-bin の中も /home/hoge/public_html の中もhttps://でアクセスできるよう。

-https://www.str.ce.akita-u.ac.jp/kouzou/
-https://www.str.ce.akita-u.ac.jp/~gotou/


-有効期間が30日未満の証明書の更新

 # certbot renew
毎月1日の0時0分に実行するなら、crontabに以下のように書いておく
 00 00 1 * * certbot renew

***サーバー移行に伴うLet's Encrypt証明書の移行 [#wcfe23c4]
-https://www.lsmodena.com/wordpress/?p=140
-apt install certbotでcertbotをインストール
-/etc/letsencryptを旧サーバーから新サーバーにrsync -auvでコピー
-  certbot certificates を実行
-/etc/apache2/sites-available/default-ssl.conf の中の2箇所を上記と同様に修正
-service apache2 restart



***httpsへのリダイレクト [#c048a5ba]
httpのページへのアクセスをhttpsに飛ばしたい時は、

 a2enmod rewrite
 a2enmod headers
 service apache2 restart

をやって、mod_rewirteとmod_headersを使えるようにしておいてから、
飛ばしたいディレクトリの.htaccessに以下を追加。

 <ifModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
 </ifModule>
 <ifModule mod_headers.c>
 Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
 </ifModule>


***Let's Encryptのルート証明書のうち、DST Root X3が2021/9/30に期限切れ [#cbe31635]
-https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
-https://support.cdnext.stream.co.jp/hc/ja/articles/360049279571-Let-s-Encrypt%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%88%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E7%BD%B2%E5%90%8D%E6%A7%8B%E6%88%90%E5%A4%89%E6%9B%B4%E3%81%AB%E4%BC%B4%E3%81%86%E5%BD%B1%E9%9F%BF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

Let's Encrypt では、ISRG Root X1(Let's Encrypt)とDST Root X3(Identrust社)の2つのルート証明書を使っていたが、このうち、DST Root X3の方が9/30に期限切れになるそうだ。
でも、9/30以降もAndoroid7.0以前の端末でもLet's Encryptを引き続き使えることになったのかな。今ひとつわかりにくいが、9/30以降にAndroid7.0からアクセスしてみよう。

***mathjaxの修正も必要 [#z2b5107b]
-httpsで使うには、mathjax.inc.phpの中の以下のアドレスをhttpからhttpsに変更

 define('MATHJAX_URL', 'https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML');

この修正をしないと、httpからは数式表示できるが、httpsからは数式表示できなくなる。
この修正をすると、httpからでもhttpsからでも数式表示できる(ブラウザーにもよるかもしれないが)




**pukiwiki [#x1639f4a]
まず、synapticからphpをインストールすると、最新バージョンのphp7.2がインストールされる
まず、synapticからphpをインストールすると、最新バージョンのphp7.2がインストールされる。
PukiWiki1.5.3の場合は、php7.4をインストールする。

-https://pukiwiki.osdn.jp/
/var/www/cgi-bin/pukiwiki/に展開するだけでいい

 左のメニューを上寄せで表示にするには、
 /var/www/cgi-bin/pukiwiki/skin/pukiwiki.skin.phpの160行目辺りの
 <td class="menubar">
 を
 <td class="menubar" valign="top">
 に変更。
 に変更。PukiWiki1.5.3の場合は、デフォールトで上寄せになってるので不要。

-mathjax.inc.phpのインストール
***mathjax.inc.phpのインストール [#madd589b]
-https://dev.abicky.net/pukiwiki/plugins/index.php?mathjax.inc.php#rd5e4380
-mathjax.inc.phpを/var/www/cgi-bin/pukiwiki/plugin/にコピー
-convert_html.php.patchとmake_link.php.patchを/var/www/cgi-bin/pukiwiki/lib/にコピー(下記をパス付きで実行するならコピー不要)
-patch<convert_html.php.patchとpatch<make_link.php.patchを実行

-httpsで使うには、mathjax.inc.phpの中の以下のアドレスをhttpからhttpsに変更
--httpで使う場合も2022現在は、この修正が必要と思われる。

 define('MATHJAX_URL', 'https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML');

この修正をしないと、httpからは数式表示できるが、httpsからは数式表示できなくなる。
この修正をすると、httpからでもhttpsからでも数式表示できる(ブラウザーにもよるかもしれないが)

***編集制限 [#vcacd9ec]

-編集ユーザーをhoge, そのパスワードをhogehogeとすると、以下でmd5のハッシュ値を取得
 $ echo -n "hogehoge" |md5sum

-pukiwiki.ini.phpを編集
 $edit_auth = 1;

 $auth_users = array(
        // Username => password
        'hoge' => '{x-php-md5}329435e5e66be809a656af105f42401e',
 );   

 
 $edit_auth_pages = array(
        // Regex                   Username
        '##'    => 'hoge',
 );


***メニューバーが表示されない [#mb7b7e38]
上記で、edit_auth_pagesではなく、間違って、read_auth_pages のところに、
 $read_auth_pages = array(
  // Regex                   Username
        '##'    => 'hoge',
 );
と設定してしまうと、左側のメニューバーが表示されなくなり、
 #menu(): MenuBar is not readable
と表示される。

***adminパスワード [#v41b8dd4]
凍結解除やadminしか編集できないページを編集するパスワードは、pukiwiki.ini.phpの

 $adminpass = '{x-php-md5}!';
を
 $adminpass = 'kanrisyanopasuwaado';
みたいに書き換える。


***スタイルや画像バナーが読み込まれない [#ufc92e60]
上記のapache2の設定のとこを参照して、/etc/apache2/conf-available/serve-cgi-bin.confを書き換える。

***検索すると文字化け [#w7a58b7c]
根本解決ではないのだが、対処療法ということであれば、
libの中のhtml.phpの以下の箇所に//をつけてコメントアウトする。

 //$body  = preg_replace_callback($whole_pattern, '_decorate_Nth_word', $body);

根本解決のためには、php.iniを編集してmbstringを有効にするとからしいのだけど、どうも、この方法がうまくいかないので。

***pukiwikiの移転 [#j51fd1ad]
バージョンが変わらないなら、/var/www/cgi-bin/にそのままコピー。
バージョンが変わっている場合は、まず新しいバージョンのpukiwikiをインストールしてから、attach, backup, cache, counter, diff, wikiのディレクトリを上書き移動。

***pukiwiki移転後、メニューバーが下に表示される [#be08811a]
サーバー移転に伴って、pukiwiki1.5.2から1.5.3に移行した場合、ブラウザーに古いpukiwikiを閲覧した際のcssとかのキャッシュが残っていると、メニューバーが左側に表示されず、下に表示されることがある。この場合は、ブラウザーの履歴を削除して、アクセスし直すとか、shftを押しながら更新とかをやっているうちに直るのでは。

***スマホからアクセスするとメニューバーが下に表示される。 [#m61c3028]
あと、1.5.3のpukiwiki.cssファイルは、/* Mobile-friendly Responsive layout */から下に、スマホ等のモバイル機器用のスタイルが書かれているので、スマホからアクセスすると、メニューバーが下に表示されるようになった。スマホのブラウザーの設定で、「PC版サイト」みたいなのにチェックを入れると、メニューバーが左に表示される。

スマホでも、デフォールトで左側にメニューバーが表示された方がいい場合は、
pukiwiki.cssの中の /* Mobile-friendly Responsive layout */ から下の @media print { より上の部分を削除する。


***pukiwiki移転後、編集パスワードを設定して編集すると「編集できません」となる [#yae0959b]
pukiwiki.ini.phpの設定は間違ってなくても、旧サーバーにアクセスした際のキャッシュが残っていると、そうなることがあるみたい。ひとまず、履歴を削除してみる。


**enq.cgi [#c36ec931]
結城さんのアンケートcgiのenq.cgiを使う場合は、
enq.cgi内のjcode.plのパスの箇所を以下のように絶対パスに修正。

 require "$jcodelib";

を
 require "/var/www/cgi-bin/hoge/jcode.pl";

みたいに。
[[この辺:https://piano2nd.smb.net/PukiWiki/index.php?jcode.pl]]
から新しいjcode.plを持ってきて置き換える。

**IPアドレスの変更 [#b92e8bdf]
-/etc/netplan/50-cloud-init.yaml を編集
-/etc/netplan/50-cloud-init.yaml を編集(ubuntu20の場合は、00-installer-config.yaml)
-netplan applyで反映
-ip addr で確認

*不具合 [#vb1131bc]
**ログアウトした状態でサーバーを立ち上げておくと20分後に勝手にサスペンドしてしまう [#scea3dfa]

/etc/gdm3/greeter.dconf-defaults の以下の2行をコメントアウトして、時間を0にする。
 

 # sleep-inactive-ac-timeout=1200

 # sleep-inactive-battery-timeout=1200


 sleep-inactive-ac-timeout=0

 sleep-inactive-battery-timeout=0



**アップデートしたら有線LANにつながらなくなった [#zb575bff]
-ひとまず、古いカーネルで起動する方法については、
--https://lab4ict.com/system/archives/1408
--https://www.atmarkit.co.jp/ait/articles/1901/25/news044.html

どうもそうではなくて、有線LANは生きているのだけど、
画面上部メニュー右側のネットワークアイコンから有線接続の設定を参照したり、
編集したりができなくなったというだけのような。
というか、上記のようにIPを設定していたんだとすると、もともと、ここは使えてなかったのかな。
つまり、サーバー版にMATEをインストールしたマシンでは、右上のネットワークアイコンは、↑↓にはならずに扇型のままだけど、それでネットワークにはつながっているということ。


*ubuntu22.04 LTSデスクトップ版とサーバー版の違い [#ra32f9c4]

https://forums.ubuntulinux.jp/viewtopic.php?id=4250

https://forums.ubuntulinux.jp/viewtopic.php?id=4461

-用途にもよるが、デスクトップ版にサーバーを構築しても問題はなさそう。

*セキュリティ対策 [#de67c54f]
**クリックジャッキング対策 [#t9e0d37d]
-https://qiita.com/bezeklik/items/1c4145652661cf5b2271 を参照
-/etc/apache2/conf-available/security.confに以下を追記
 Header set X-Frame-Options: "sameorigin"

service apache2 restartするとおそらく、以下のエラーが出て、
 Job for apache2.service failed because the control process exited with error code.
 See "systemctl status apache2.service" and "journalctl -xe" for details.
systemctl status apache2.service をやると、
 Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
みたいに出ると思う。その場合は、まず、a2enmod headersをやってから、service apache2 restart

**HSTSの設定 [#la39fcc0]
-以下を参照
-https://qiita.com/takoratta/items/fb6b3486257eb7b9f12e
-https://techexpert.tips/ja/apache-ja/%E3%82%A2%E3%83%91%E3%83%83%E3%83%81-hsts-%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B/

a2enmod headersをやってから.htaccessに以下を追加。上記のリダイレクト参照。

 <ifModule mod_headers.c>
 Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
 </ifModule>

確認方法:まず、.htaccessでリダイレクトされないページが、httpのまま表示されることを確認する。
リダイレクトされるページにhttpでアクセスして、httpsに飛ばされることを確認した後、その端末からさっきの
リダイレクトされないページにアクセスすると、httpsに飛ばされるようになっているかどうかで確認。


**秋田大学のサーバ証明書の取り方 [#u6c11237]
-秋田大学のサーバ証明書は、UPKI電子証明書発行サービスで取得する。
-↓のやり方で.csrファイルと.tsvファイルを生成
--https://meatwiki.nii.ac.jp/confluence/pages/viewpage.action?pageId=26188809
-次に、情報統括センターに生成したファイルを送付して本人確認
--https://www.gipc.akita-u.ac.jp/service/upki
-その後、送付されたURLから証明書のファイルをダウンロードしてapacheから指定
--https://meatwiki.nii.ac.jp/confluence/pages/viewpage.action?pageId=26192324
-有効期間は395日、更新の際は同じ手順を踏まないといけなさそう
--https://certs.nii.ac.jp/join/ee/case2
***.csrの作成 [#tcce2051]
-/etc内にkeyというフォルダを作成
-適当に.txtファイル(200KB程度)を作成
 cd /etc/
 mkdir key
 vi hoge1.txt
 vi hoge2.txt
 vi hoge3.txt

-次に鍵ペアの作成を行う。パスワードを決めておき、入力する箇所が現れたら入力する。
 openssl genrsa -des3 -rand hoge1.txt:hoge2.txt:hoge3.txt 2048 > hogeserver.key
 Enter pass phrase: <password>
 Verifying - Enter pass phrase: <password>←もう一度入力

-署名アルゴリズムSHA2でCSRを作成し、hogeserver.csrとして保存
 openssl req -new -key servername.key -sha256 -out hogeserver.csr ←CSRファイル名
 Enter pass phrase for servername.key: <password> 

-次に、いろいろ情報を聞かれるので以下のように入力
     Country Name (2 letter code) [AU]:JP ←"JP"を入力
     State or Province Name (full name) []: Akita←都道府県名を入力
     Locality Name (eg, city) []:Akita City  ←市町村名を入力
     Organization Name (eg, company) [Default Company Ltd]:Akita University ← 組織名を入力
     Organizational Unit Name (eg, section) []:入力なし
     Common Name (eg, your name or your server's hostname) []:www.hogeserver.jp ← サーバ名を入力
     Email Address []:入力なし
     Please enter the following 'extra' attributes
     to be sent with your certificate request
     A challenge password []:入力なし
     An optional company name []:入力なし

-.csrの作成は終了。
-内容を確認したい場合は以下のコマンド
 openssl req -noout -text -in hogeserver.csr

***.tsvの作成 [#qb32b800]
-https://certs.nii.ac.jp/tsv-tool/ にアクセスして作成
--「TSVを作成する/既存のTSVを編集する」→作成開始→どこも変えず「この内容で作成を開始」
-「CSRファイル読み込み」から↑で作成した.csrを読み込む
-その他の内容は以下のように入力
 主体者DN:自動で入力される
 サーバFQDN:使用予定のドメイン(wwwから入力)
 利用管理者E-mail:管理者のメールアドレス
 利用管理者氏名:管理者の氏名
 利用管理者所属:〇〇研究科 とか
 Webサーバソフトウェア名等:apache2とかNginxとか
 dNSName:入力なし(1つの証明書で複数ドメインを運用する場合のみ必要)
-入力して「完了」を押すと、.tsvファイルがダウンロードできるので、適当な場所に保存

***サーバ証明書のダウンロード [#m0a1ac66]
-↑の.tsvファイルを添付して情報統括センターにメール
-その後、電話で本人確認
-しばらくすると、 [UPKI] サーバ証明書発行受付通知 というメールが送られてくるので、URLから証明書を取得
-ダウンロードした証明書を「server.crt」という名前に変えておく

***証明書のインストール [#c41691ba]
-https://repo1.secomtrust.net/sppca/nii/odca4/index.html にアクセスして、「サーバー証明書 RSA認証局 中間CA証明書」のPEMをダウンロード
-/etc/key/にconfというフォルダを作成
-/etc/key/conf/に中間CA証明書(nii-odca4g7rsa.cer)、server.crt、hogeserver.keyを配置
 cd /etc/key/
 mkdir conf
 cd conf
 (以下はホームディレクトリにファイルがあるとした場合)
 cp ~/nii-odca4g7rsa.cer ./
 cp ~/server.crt ./
 cp ~/hogeserver.key ./
-中間CA証明書とサーバ証明書を連結させる
 cat nii-odca4g7rsa.cer >> server.crt
-/etc/apache2/sites-available/default-ssl.confの
        SSLCertificateFile  
        SSLCertificateKeyFile 
-のように書いている箇所を以下に書き換え
        SSLCertificateFile  /etc/key/conf/server.crt
        SSLCertificateKeyFile /etc/key/conf/hogeserver.key
-apache2の再起動(停電時も)
 service apache2 restart
-このとき最初に設定したパスワードを聞かれるので入力
 Enter passphrase for SSL/TLS keys for 127.0.1.1:443 (RSA):
***サーバー証明書の更新 [#fddc8917]
-1年くらい経過すると、有効期限が切れるので更新が必要になる。
-keyファイル、crtファイル、中間CA証明書を.oldをつけてコピーしておく
 cp hoge.key hoge.key.old
 cp hoge.crt hoge.crt.old
 cp nii-odca4grsa.cer nii-odca4grsa.cer.old
-上記の[[csrの作成:https://www.str.ce.akita-u.ac.jp/cgi-bin/pukiwiki/?Ubuntu%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E7%89%88%E3%83%A1%E3%83%A2#tcce2051]],[[tsvの作成:https://www.str.ce.akita-u.ac.jp/cgi-bin/pukiwiki/?Ubuntu%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E7%89%88%E3%83%A1%E3%83%A2#qb32b800]],[[サーバ証明書のダウンロード:https://www.str.ce.akita-u.ac.jp/cgi-bin/pukiwiki/?Ubuntu%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E7%89%88%E3%83%A1%E3%83%A2#m0a1ac66]]と同じ作業を行う(tsv作成時は「更新申請用」を選択し、「証明書ファイル読み込み」のところで作成したhoge.crt.oldを選択する)
-https://repo1.secomtrust.net/sppca/nii/odca4/index.html にアクセスして、最新の「サーバー証明書 RSA認証局 中間CA証明書」のPEMをダウンロード
-用意した新しいkeyファイル、crtファイル、中間CA証明書をもとあった場所に配置する

**clamAV [#ya0645a2]
-https://zenn.dev/gladevise/articles/clamav-usage を参考
***ClamAVのインストール [#w545a3a1]
 sudo apt install clamav clamav-daemon libclamunrar9
-以下のコマンドでdaemonが起動しているか確認
 sudo systemctl status clamav-daemon.service
--うまく行かない場合restartさせる
 sudo service clamav-daemon restart
-起動できていれば以下のような結果になる
 clamav-daemon.service - Clam AntiVirus userspace daemon
     Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/clamav-daemon.service.d
             └─extend.conf
     Active: active (running) since Fri 2022-10-28 07:00:00 JST; 7h ago
       Docs: man:clamd(8)
             man:clamd.conf(5)
             https://docs.clamav.net/
   Main PID: 1000 (clamd)
      Tasks: 2 (limit: 10000)
     Memory: 572.0M
     CGroup: /system.slice/clamav-daemon.service
             └─1068 /usr/sbin/clamd --foreground=true
-適当にフォルダを作り、https://www.eicar.org/download-anti-malware-testfile/ からテストファイル(eicar.com.txtやeicar_com.zip)をダウンロード
 mkdir -p ~/.clamav-test/
-テストファイルで正常に実行できるか確認
 cd ~/.clamav-test
 sudo clamscan -r  
-正常に実行されると以下のようになる
 /home/hoge/.clamav-test/eicar.com: Win.Test.EICAR_HDB-1 FOUND
 /home/hoge/.clamav-test/eicar_com.zip: Win.Test.EICAR_HDB-1 FOUND
 ----------- SCAN SUMMARY -----------
 Infected files: 2
 Time: 0.045 sec (0 m 0 s)
 Start Date: 2023:11:20 15:24:00
 End Date:   2023:11:20 15:24:00

***スキャン [#w1ec286a]
 sudo clamscan -r 
-オプション等はhttp://tech.farend.jp/blog/2015/12/28/using-clamav/ を参照
-clamdscanをするとclamdが常駐してしまうので使わない

***詳細設定 [#l2e10f2e]
-ファイルシステム(sysfs,proc)をスキャンしようとするとエラーが出る。
-https://insource-mkd.co.jp/staff-blog/10645/ を参考に、以下のような形でどうか
 clamscan –infected –recursive –max-filesize=4095M –max-scansize=4095M –cross-fs=no $(mount | egrep -v 'type +(sysfs|proc)' | cut -d ' ' -f 3)

*DNSの変更 [#ucde30be]
-https://endy-tech.hatenablog.jp/entry/systemd-resolved-basics
-https://blog.apar.jp/linux/3147/
-http://fishrimper.blogspot.com/2014/07/dhcp-dns-ip.html
-このあたりが参考になりそう


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS