Ubuntuサーバー版メモ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#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-serv...
-iiyamaの最近(2021)のOSなしマシンで、SSDとHDDがあり、HDD...
起動すると、バイオス(UEFI?)が起動するので、advancedから、...
がdisableになっているのをenableにしてからsaveして再起動
-iiyamaの最近(2021)のOSなしマシンは、ネットワークケーブル...
だいたい、DVDから起動する。
-言語選択は日本語はないので、Englishを選択
-キーボードは、Japanese
-Network connectionsで、eno1 eth のところを選択してエンタ...
--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/
-Configure Ubuntu archive mirror
--http://jp.archive.ubuntu.com/ubuntu のまま
--Done
-Filesystem setup(ubuntu20では Guided storage configurati...
--Use An Entire Disk を選択
--(ubuntu20の場合は、Set up this disk as an LVM group の...
---(u20: SSDとHDDがあって、HDDの方にインストールしたい場...
---(u20: そうすると、HDDの容量ぐらいの/パーティション(ext...
--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...
--Rebootしてみるか(いつのまにインストールしてたの?)
-ディスクが出てきたのを取り出してエンターすると再起動
[ OK ] Reached target Cloud-init target.
みたいなところで止まってるなあと思って、エンターを押して...
login:カーソルが出てくるので、ログインする。
一般ユーザーなので、sudo suでrootになる。
プロキシの設定とか、しなくて大丈夫かわからないが、まずは...
# apt -y install ubuntu-mate-desktop
-Menu->AllのLanguage SupportのInstall/Remove Languagesか...
**ひとまずのインストール [#f792c22b]
sudo apt install apache2 fcitx-mozc fdclone mlocate net-...
**rootログイン禁止、管理者ログインも禁止 [#g79e9fa2]
-/etc/ssh/の中のsshd_configをsshd_config.orgにバックアッ...
#PermitRootLogin prohibit-password
の行を(1行コピーしてコメントはずして)
PermitRootLogin no
DenyUsers admin
に変更。adminは管理者ユーザー名
# sshd -t
で構文チェックし、何もエラーが表示されなければ、以下でssh...
# /etc/init.d/ssh restart
**visudoエディターの変更(不採用) [#b3a45834]
# update-alternatives --config editor
sudoersを修正して、管理者アカウントからのsshログインを禁...
admin ALL=(ALL:ALL) ALL, !/usr/bin/ssh
みたいにやっても、adminでsshログインできてしまう。上記のs...
**タイムゾーンの変更 [#b9afbcb9]
timedatectl set-timezone Asia/Tokyo
確認は、timedatectl
**サービス管理 [#fd12bb22]
***サービス一覧 [#t469a74b]
# systemctl list-unit-files -t service
Vine Linuxだとサービス管理がGUIで行えて便利だったのだけど...
**バックアップ用ポータブルHDDの設定 [#fb8c6ef4]
まず、ボリューム名をそのポータブルHDDだとわかるような名前...
マウントされた状態で、メニュー→設定→ディスク→(左側に表示...
→(/media/kouzou/diskにマウント みたいに書かれていることで...
歯車2つの設定ボタンをクリック→「ファイルシステムを編集」→...
ラベルを「iodata」とか「buffalo」とか、そのポータブルHDD...
ラベルを disk のままにしておくと、下の方法でバックアップ...
/media/kouzou/disk の中にバックアップが取られてはいるのだ...
実は、これは内蔵ハードディスク内に作られた disk というデ...
ことが起きたりする。そういうことが起きている場合、ポータ...
ということが起きる。
よくわからないのだが、一番 最初にポータブルHDDが /media/k...
ポータブルHDDにバックアップが取られて、その後、マウントの...
ポータブルHDDは /media/kouzou/disk1 にマウントされるよう...
crontab とかで、/media/kouzou/disk にバックアップを取ると...
内蔵ハードディスク上に作られてしまい、以後、ポーターブルH...
取られているというようなことが起きていることにしばらく気...
そういう事態を避けるため、バックアップ目的のポータブルHDD...
自動的につけられる disk という名前から変更しておいた方が...
と思ったが、それでも十分ではなく、ポータブルHDDのラベル名...
なにかの拍子に(ポータブルHDDを接続したまま再起動したとか...
iodataの方は、ポータブルHDDを最初につないだ際に/media/kou...
ポータブルHDDをつなぎっぱなしで再起動すると、/media/kouzo...
ポータブルHDDが新たに/media/kouzou/iodata1 の方にマウント...
再起動の度に、ポータブルHDDを外して、/media/kouzou/iodata...
ポータブルHDDを /media/kouzou/iodata にマウントさせるとい...
crontabで指定するバックアップ先を /media/kouzou/iodata1 ...
外付けHDDにバックアップを取っている人たちは、どうやってる...
いや、それでもだめみたい。今、ubuntu20とubuntu22それぞれ...
今回は、iodata1みたいなディレクトリは作られていない。うー...
iodata1ができてしまったのだろう。
再起動の度に、もしiodata1ができてたら、もう1つあるであろ...
ポータブルHDDをマウントし直して、iodataでマウントされるよ...
***fstabで固定マウント [#y0235b6a]
自動マウントにしていると、なにかのはずみ?でポータブルHDD...
crontabでの自動バックアップ先のディレクトリが違うところに...
fstabで固定マウントするのがいいのではないかと思う。/etc/f...
UUIDの確認は、メニュー→設定→ディスク→ポータブルHDDらしき...
UUID="abcd1-234efg-h56789i-jklmn01234" /media/kouzou/i...
**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 * * * webalizer
10 00 * * * updatedb
20 00 * * * apt-get update && apt-get -y upgrade >/home/...
50 00 * * * rsync -auv /var/www /media/admin/iodata/ > /...
20 01 * * * rsync -auv /home /media/admin/iodata/ > /hom...
20 02 * * * clamscan –i –r –max-filesize=4095M –max-scan...
50 02 1 * * clamscan -i -r / > /home/admin/clamfull.log
**FTPサーバー [#p2ea476d]
FTPサーバーはftpdではなく、vsftpdをインストール。
ftpdも使えるが、systemctl list-unit-files -t serviceをや...
***gftpでアップロードできるようにする [#x7cad5df]
vsftpdはデフォールトでは書き込み禁止になっているので、/et...
write_enable=YES
そして、service vsftpd restart
***アップロードするとパーミッションが変わるのを防ぐ [#d9a...
644のファイルとかをアップロードすると、デフォルトでは400...
それを防止するには、
/etc/vsftpd.conf に
local_umask=022
を追加して(コメントアウトされているので、コメントインす...
*apache2 [#qf8acacc]
--/etc/apache2/mods-available/cgi.load を/etc/apache2/mod...
ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/...
--/etc/apache2/apache2.confに以下を追加
DirectoryIndex index.html index.html.var index.cgi index...
以下の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の項は削除
--ServerNameの追加
<Directory "/var/www/">の上あたりに、
ServerName www.str.ce.akita-u.ac.jp
を追加。これがないとerror.logに以下のエラーが頻繁に書き込...
AH00558: apache2: Could not reliably determine the serve...
--/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用のパスワードは、
perl -e 'print crypt("pasuwaado", "AB"), "\n"'
みたいに実行して(ABのとこは適当な2文字)、生成された文字列...
を .htaccess内のAuthUserFileで指定しているパスにあるuserf...
--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へのシンボリックリンク...
sites-availableへのシンボリックリンクがsites-enabledに置...
生成されないので、上記のapache2の手動でリンクを貼る作業...
-[[Let's Encryptの無料SSL/TLSサーバ証明書:https://chee-s....
そもそもk2とか外部に公開されてないサーバーでサーバー証明...
まずは、/var/www/html/.well-known/acme-challenge のディレ...
# certbot certonly --webroot -w /var/www/html -d k2.hoge...
を実行。すると、以下のエラー
Failed authorization procedure. k2.hoge.jp (http-01): ur...
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/dE9RRQ6FN...
Timeout during connect (likely firewall problem)
To fix these errors, please make sure that your domain...
entered correctly and the DNS A/AAAA record(s) for tha...
contain(s) the right IP address. Additionally, please ...
your computer has a publicly routable IP address and t...
firewalls are preventing the server from communicating...
client. If you're using the webroot plugin, you should...
that you are serving files from the webroot path you p...
うまくいった場合は、
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been ...
/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 o...
version of this certificate in the future, simply run ...
again. To non-interactively renew *all* of your certif...
"certbot renew"
- If you like Certbot, please consider supporting our wo...
Donating to ISRG / Let's Encrypt: https://letsencryp...
Donating to EFF: https://eff.org/do...
みたいに出る。
このログをコピペして、encrypt.logとかに保存しておく。
/etc/apache2/sites-availableに移動し、default-ssl.confの...
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil...
の部分を、encrypt.logを参照しながら、
SSLCertificateFile /etc/letsencrypt/live/hogehoge.jp/ful...
SSLCertificateKeyFile /etc/letsencrypt/live/hogehoge.jp/...
みたいに書き換えて、service apache2 restart
これで、/var/www/html の中も/var/www/cgi-bin の中も /home...
-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}...
</ifModule>
<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000; ...
</ifModule>
***Let's Encryptのルート証明書のうち、DST Root X3が2021/9...
-https://letsencrypt.org/docs/dst-root-ca-x3-expiration-s...
-https://support.cdnext.stream.co.jp/hc/ja/articles/36004...
Let's Encrypt では、ISRG Root X1(Let's Encrypt)とDST Ro...
でも、9/30以降もAndoroid7.0以前の端末でもLet's Encryptを...
***mathjaxの修正も必要 [#z2b5107b]
-httpsで使うには、mathjax.inc.phpの中の以下のアドレスをht...
define('MATHJAX_URL', 'https://cdn.mathjax.org/mathjax/l...
この修正をしないと、httpからは数式表示できるが、httpsから...
この修正をすると、httpからでもhttpsからでも数式表示できる...
***apache2再起動時のSSLのパスフレーズの自動入力 [#jbde1bbb]
/usr/share/apache2 の中の ask-for-passphrase を ask-for-p...
#!/bin/bash
echo "pasuhureezu"
みたいに書き換える。書き換えたものもask-for-passphrase.ba...
デフォルトで上記のファイルをパスフレーズとして読みに行く...
/etc/apache2/mods-available/ssl.conf の中に、
SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-pas...
と書いてあるかどうかで確認。
# SSLPassPhraseDialog builtin もしその上にこんな行があ...
apache2がアップデートされたりすると、ask-for-passphraseが...
自動入力がうまく機能しなかった場合は、ask-for-passphrase...
デフォルトに戻っていたら、ask-for-passphrase.bakを上書き...
#service apache2 restart
で、パスフレーズの入力を求められずに再起動できるかを確認。
**pukiwiki [#x1639f4a]
まず、synapticからphpをインストールすると、最新バージョン...
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のインストール [#madd589b]
-https://dev.abicky.net/pukiwiki/plugins/index.php?mathja...
-mathjax.inc.phpを/var/www/cgi-bin/pukiwiki/plugin/にコピー
-convert_html.php.patchとmake_link.php.patchを/var/www/cg...
-patch<convert_html.php.patchとpatch<make_link.php.patch...
-httpsで使うには、mathjax.inc.phpの中の以下のアドレスをht...
--httpで使う場合も2022現在は、この修正が必要と思われる。
define('MATHJAX_URL', 'https://cdn.mathjax.org/mathjax/l...
この修正をしないと、httpからは数式表示できるが、httpsから...
この修正をすると、httpからでもhttpsからでも数式表示できる...
***編集制限 [#vcacd9ec]
-編集ユーザーをhoge, そのパスワードをhogehogeとすると、以...
$ echo -n "hogehoge" |md5sum
-pukiwiki.ini.phpを編集
$edit_auth = 1;
$auth_users = array(
// Username => password
'hoge' => '{x-php-md5}329435e5e66be809a656af105f4...
);
$edit_auth_pages = array(
// Regex Username
'##' => 'hoge',
);
***メニューバーが表示されない [#mb7b7e38]
上記で、edit_auth_pagesではなく、間違って、read_auth_page...
$read_auth_pages = array(
// Regex Username
'##' => 'hoge',
);
と設定してしまうと、左側のメニューバーが表示されなくなり、
#menu(): MenuBar is not readable
と表示される。
***adminパスワード [#v41b8dd4]
凍結解除やadminしか編集できないページを編集するパスワード...
$adminpass = '{x-php-md5}!';
を
$adminpass = 'kanrisyanopasuwaado';
みたいに書き換える。
***スタイルや画像バナーが読み込まれない [#ufc92e60]
上記のapache2の設定のとこを参照して、/etc/apache2/conf-av...
***検索すると文字化け [#w7a58b7c]
根本解決ではないのだが、対処療法ということであれば、
libの中のhtml.phpの以下の箇所に//をつけてコメントアウトす...
//$body = preg_replace_callback($whole_pattern, '_decor...
根本解決のためには、php.iniを編集してmbstringを有効にする...
***pukiwikiの移転 [#j51fd1ad]
バージョンが変わらないなら、/var/www/cgi-bin/にそのままコ...
バージョンが変わっている場合は、まず新しいバージョンのpuk...
***pukiwiki移転後、メニューバーが下に表示される [#be08811a]
サーバー移転に伴って、pukiwiki1.5.2から1.5.3に移行した場...
***スマホからアクセスするとメニューバーが下に表示される。...
あと、1.5.3のpukiwiki.cssファイルは、/* Mobile-friendly R...
スマホでも、デフォールトで左側にメニューバーが表示された...
pukiwiki.cssの中の /* Mobile-friendly Responsive layout *...
***pukiwiki移転後、編集パスワードを設定して編集すると「編...
pukiwiki.ini.phpの設定は間違ってなくても、旧サーバーにア...
***ubuntu20から22にアップグレード後にpukiwikiというかphp...
apache2は機能していて、htmlも表示され、.htaccessのパスワ...
php8.1をインストールしても同様。
Internal Server Error
The server encountered an internal error or misconfigura...
Please contact the server administrator at webmaster@loc...
More information about this error may be available in th...
/var/log/apache2/error.log を見ると、
[cgi:error] [pid 1706] [client 158.215.134.42:58688] AH...
***phpが動作しているかどうかを確認 [#v0b34326]
pukiwikiが上記のエラーで動かないときは、まずは、/cgi-bin/...
それにアクセスし、php自体が動いているかどうかを確認。上の...
<?php
phpinfo();
?>
ちゃんと動作していれば、以下のようなリストがテーブルタグ...
PHP Version 7.4.3-4ubuntu2.23
System Linux str 5.4.0-193-generic #213-Ubuntu SMP Fri ...
Build Date Jun 17 2024 13:22:20
Server API Apache 2.0 Handler
***ubuntu20からubuntu22にアップグレードした場合は、php7.4...
a2dismod php7.4
a2enmod php8.1
systemctl restart apache2.service
これで、phpが動くようになり、pukiwikiも動くようになった。
**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?jcod...
から新しいjcode.plを持ってきて置き換える。
**IPアドレスの変更 [#b92e8bdf]
-/etc/netplan/50-cloud-init.yaml を編集(ubuntu20の場合は...
-netplan applyで反映
-ip addr で確認
*不具合 [#vb1131bc]
**ログアウトした状態でサーバーを立ち上げておくと20分後に...
/etc/gdm3/greeter.dconf-defaults の以下の2行をコメントア...
# 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...
どうもそうではなくて、有線LANは生きているのだけど、
画面上部メニュー右側のネットワークアイコンから有線接続の...
編集したりができなくなったというだけのような。
というか、上記のようにIPを設定していたんだとすると、もと...
つまり、サーバー版にMATEをインストールしたマシンでは、右...
*ubuntu22.04 LTSデスクトップ版とサーバー版の違い [#ra32f9...
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 proce...
See "systemctl status apache2.service" and "journalctl -...
systemctl status apache2.service をやると、
Invalid command 'Header', perhaps misspelled or defined ...
みたいに出ると思う。その場合は、まず、a2enmod headersをや...
**HSTSの設定 [#la39fcc0]
-以下を参照
-https://qiita.com/takoratta/items/fb6b3486257eb7b9f12e
-https://techexpert.tips/ja/apache-ja/%E3%82%A2%E3%83%91%...
a2enmod headersをやってから.htaccessに以下を追加。上記の...
<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000; ...
</ifModule>
確認方法:まず、.htaccessでリダイレクトされないページが、...
リダイレクトされるページにhttpでアクセスして、httpsに飛ば...
リダイレクトされないページにアクセスすると、httpsに飛ばさ...
**秋田大学のサーバ証明書の取り方 [#u6c11237]
-秋田大学のサーバ証明書は、UPKI電子証明書発行サービスで取...
-↓のやり方で.csrファイルと.tsvファイルを生成
--https://meatwiki.nii.ac.jp/confluence/pages/viewpage.ac...
-次に、情報統括センターに生成したファイルを送付して本人確認
--https://www.gipc.akita-u.ac.jp/service/upki
-その後、送付されたURLから証明書のファイルをダウンロード...
--https://meatwiki.nii.ac.jp/confluence/pages/viewpage.ac...
-有効期間は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...
Enter pass phrase: <password>
Verifying - Enter pass phrase: <password>←もう一度入力
-署名アルゴリズムSHA2でCSRを作成し、hogeserver.csrとして...
openssl req -new -key servername.key -sha256 -out hogese...
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...
Organizational Unit Name (eg, section) []:入力なし
Common Name (eg, your name or your server's hostname...
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] サーバ証明書発行受付通知 という...
-ダウンロードした証明書を「server.crt」という名前に変えて...
***証明書のインストール [#c41691ba]
-https://repo1.secomtrust.net/sppca/nii/odca4/index.html...
-更に[[SECOMのリポジトリ:https://repository.secomtrust.ne...
SECOM TLS RSA Root CA 2024
※Security Communication RootCA2が発行した
クロス証明書(Cross Certificate)
tlsrsarootca2024cross-pem.cerもダウンロード。ブラウザから...
URLをコピーしてwget した方が良い。
wget https://repository.secomtrust.net/SC-Root2/tlsrsaro...
みたいに。各証明書を cat -A で表示し、行末に^M が入ってい...
もし^Mが入っていた場合は、
sed -i 's/\r$//' hoge.crt
みたいにして、^M を取り、cat -A で取れたか確認する。
-/etc/key/にconfというフォルダを作成
-/etc/key/conf/に中間CA証明書(nii-odca4g7rsa.cer)、serv...
cd /etc/key/
mkdir conf
cd conf
(以下はホームディレクトリにファイルがあるとした場合)
cp ~/nii-odca4g7rsa.cer ./
cp ~/server.crt ./
cp ~/hogeserver.key ./
-中間CA証明書とサーバ証明書を連結させる
cat nii-odca4g7rsa.cer >> server.crt
--更にクロス証明書も連結させる
cat tlsrsarootca2024cross-pem.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):
-キーのパスワードを外すには、
cd /etc/key/conf/
cp hoge.key hoge.key.org
openssl rsa -in hoge.key -out hoge.key.nopass
cp hoge.key.nopass hoge.key
chmod 600 hoge.key
chown root:root hoge.key
apachectl configtest
をやって、Syntax OK なら
systemctl restart apache2
***サーバー証明書の更新 [#fddc8917]
-半年くらい経過すると、有効期限が切れるので更新が必要にな...
-中間CA証明書(nii-odca4g8rsa.cer), クロスルート証明書(tls...
--更に古い.oldは、oldディレクトリの中に移動しておく。
-上記の[[csrの作成:https://www.str.ce.akita-u.ac.jp/cgi-b...
-https://repo1.secomtrust.net/sppca/nii/odca4/index.html...
--中間CA証明書(nii-odca4g8rsa.cer), クロスルート証明書(tl...
-念のため、openssl s_client -connect www.akita-u.ac.jp:44...
-fullchain.pemをfullchain.pem.oldに移動(前の.oldはoldディ...
-fullchain.pem.hinagataをfullchain.pemにコピー
-----BEGIN CERTIFICATE-----
ここに構造研サーバー証明書(hoge.cer)をコピー
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
ここに中間CA証明書(nii-odca4g8rsa-pem.cer)をコピー
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
ここにクロスルート証明書(tlsrsarootca2024cross-pem.cer)...
-----END CERTIFICATE-----
sudo apachectl configtest
sudo systemctl reload apache2
openssl s_client -connect hoge.hoge.jp:443 -showcerts
うまくいけば、
Verify return code: 0 (ok)
**不具合 [#ycd10226]
-ChromeやChromiumや一部のfirefoxでは、「信頼できないサイ...
-「SECOM TLS RSA Root CA 2024」は比較的新しく、まだ信頼ス...
***本部サイトの上位CA証明書を利用する(解決) [#cc27d1ed]
openssl s_client -connect www.akita-u.ac.jp:443 -showcer...
をやると、
0 = 秋田大学本部サーバー自身の証明書
1 = 中間CA証明書
2 = 上位CA証明書
が、akita-chain.txt の中に入る。
この各証明書と、以下の方法で作った、fullchain.pemを比べる...
0 = 秋田大学本部サーバー自身の証明書が違うのは当たり前。
構造研サーバーのものは構造研サーバーの証明書になっている。
1 = 中間CA証明書 も以下のnii-odca4g8rsa-pem.cer と同じ。
なので、fullchain.pem の末尾に 2 = 上位CA証明書 をコピペ...
viで、コマンドモードのspなどをつかってコピペし、^Mとかが...
sudo apachectl configtest
sudo systemctl reload apache2
openssl s_client -connect hoge.hoge.jp:443 -showcerts
うまくいけば、
Verify return code: 0 (ok)
これで、chromiumでもアクセスできるようになった。
ちなみに、上記の 2 = 上位CA証明書 は、
[[SECOMのリポジトリ:https://repository.secomtrust.net/SC-...
SECOM TLS RSA Root CA 2024
※Security Communication RootCA2が発行した
クロス証明書(Cross Certificate)
と同じ。
※ G8 RSA の利用には、クロスルート証明書のインストールが...
以下のリポジトリから取得し、必ずサーバにインストールし...
https://repository.secomtrust.net/SC-Root2/index.html
***回避策(ルート証明書も含めて配布する)解決せず(参考) [#j...
cat server.crt intermediate.crt root.crt > fullchain.pem
中間証明書が nii-odca4g8rsa-pem.cer だったら、
cat server.crt nii-odca4g8rsa-pem.cer rootCA.pem > fullc...
だが、server.crt の中に、nii-odca4g8rsa-pem.cer が既に入...
cat server.crt rootCA.pem > fullchain.pem
でよい。
証明書をつなぐのは、catを使うのが安全だと思うが、(Windows...
cat -A fullchain.pem
をやって、行末に^Mが入っていないことを確認する。
sudo vi /etc/apache2/sites-available/default-ssl.conf
を編集し、
SSLCertificateFile /etc/key/conf/server.crt
の箇所を、
SSLCertificateFile /etc/key/conf/fullchain.pem
に変更。
-構文確認
sudo apachectl configtest
-reload
sudo systemctl reload apache2
-reload後確認
openssl s_client -connect hoge.hoge.jp:443 -showcerts
うまくいけば、
Verify return code: 0 (ok)
***サーバー証明書と中間証明書を別ファイルにする(解決せず...
サーバー証明書と中間証明書をくっつける際に、境界部分に変...
サーバー証明書と中間証明書を別ファイルのままとする方法も...
既にくっつけてしまった server.crt から、サーバー証明書だ...
awk 'BEGIN{c=0}/BEGIN CERT/{c++}c==1{print}' \
/etc/key/conf/server.crt > /etc/key/conf/server_only.crt
中間証明書に^Mが入っていたら削除する。
sed -i 's/\r$//' /etc/key/conf/nii-odca4g8rsa-pem.cer
/etc/apache2/sites-available/default-ssl.conf を以下のよ...
SSLCertificateFile /etc/key/conf/server_only.crt
SSLCertificateChainFile /etc/key/conf/nii-odca4g8rsa-pem...
そして
apachectl configtest
systemctl reload apache2
***キーの更新やopenssl関係の更新の度にapache2の起動時パス...
キーのパスワードを外すには、
cd /etc/key/conf/
cp hoge.key hoge.key.org
openssl rsa -in hoge.key -out hoge.key.nopass
cp hoge.key.nopass hoge.key
chmod 600 hoge.key
chown root:root hoge.key
apachectl configtest
をやって、Syntax OK なら
systemctl restart apache2
**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.se...
Drop-In: /etc/systemd/system/clamav-daemon.service.d
└─extend.conf
Active: active (running) since Fri 2022-10-28 07:00:...
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-ant...
mkdir -p ~/.clamav-test/
-テストファイルで正常に実行できるか確認
cd ~/.clamav-test
sudo clamscan -r
-正常に実行されると以下のようになる
/home/hoge/.clamav-test/eicar.com: Win.Test.EICAR_HDB-1 ...
/home/hoge/.clamav-test/eicar_com.zip: Win.Test.EICAR_HD...
----------- 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/usin...
-clamdscanをするとclamdが常駐してしまうので使わない
***詳細設定 [#l2e10f2e]
-ファイルシステム(sysfs,proc)をスキャンしようとするとエ...
-https://insource-mkd.co.jp/staff-blog/10645/ を参考に、...
clamscan –infected –recursive –max-filesize=4095M –max-s...
*DNSの変更 [#ucde30be]
-https://endy-tech.hatenablog.jp/entry/systemd-resolved-b...
-https://blog.apar.jp/linux/3147/
-http://fishrimper.blogspot.com/2014/07/dhcp-dns-ip.html
-このあたりが参考になりそう
終了行:
#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-serv...
-iiyamaの最近(2021)のOSなしマシンで、SSDとHDDがあり、HDD...
起動すると、バイオス(UEFI?)が起動するので、advancedから、...
がdisableになっているのをenableにしてからsaveして再起動
-iiyamaの最近(2021)のOSなしマシンは、ネットワークケーブル...
だいたい、DVDから起動する。
-言語選択は日本語はないので、Englishを選択
-キーボードは、Japanese
-Network connectionsで、eno1 eth のところを選択してエンタ...
--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/
-Configure Ubuntu archive mirror
--http://jp.archive.ubuntu.com/ubuntu のまま
--Done
-Filesystem setup(ubuntu20では Guided storage configurati...
--Use An Entire Disk を選択
--(ubuntu20の場合は、Set up this disk as an LVM group の...
---(u20: SSDとHDDがあって、HDDの方にインストールしたい場...
---(u20: そうすると、HDDの容量ぐらいの/パーティション(ext...
--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...
--Rebootしてみるか(いつのまにインストールしてたの?)
-ディスクが出てきたのを取り出してエンターすると再起動
[ OK ] Reached target Cloud-init target.
みたいなところで止まってるなあと思って、エンターを押して...
login:カーソルが出てくるので、ログインする。
一般ユーザーなので、sudo suでrootになる。
プロキシの設定とか、しなくて大丈夫かわからないが、まずは...
# apt -y install ubuntu-mate-desktop
-Menu->AllのLanguage SupportのInstall/Remove Languagesか...
**ひとまずのインストール [#f792c22b]
sudo apt install apache2 fcitx-mozc fdclone mlocate net-...
**rootログイン禁止、管理者ログインも禁止 [#g79e9fa2]
-/etc/ssh/の中のsshd_configをsshd_config.orgにバックアッ...
#PermitRootLogin prohibit-password
の行を(1行コピーしてコメントはずして)
PermitRootLogin no
DenyUsers admin
に変更。adminは管理者ユーザー名
# sshd -t
で構文チェックし、何もエラーが表示されなければ、以下でssh...
# /etc/init.d/ssh restart
**visudoエディターの変更(不採用) [#b3a45834]
# update-alternatives --config editor
sudoersを修正して、管理者アカウントからのsshログインを禁...
admin ALL=(ALL:ALL) ALL, !/usr/bin/ssh
みたいにやっても、adminでsshログインできてしまう。上記のs...
**タイムゾーンの変更 [#b9afbcb9]
timedatectl set-timezone Asia/Tokyo
確認は、timedatectl
**サービス管理 [#fd12bb22]
***サービス一覧 [#t469a74b]
# systemctl list-unit-files -t service
Vine Linuxだとサービス管理がGUIで行えて便利だったのだけど...
**バックアップ用ポータブルHDDの設定 [#fb8c6ef4]
まず、ボリューム名をそのポータブルHDDだとわかるような名前...
マウントされた状態で、メニュー→設定→ディスク→(左側に表示...
→(/media/kouzou/diskにマウント みたいに書かれていることで...
歯車2つの設定ボタンをクリック→「ファイルシステムを編集」→...
ラベルを「iodata」とか「buffalo」とか、そのポータブルHDD...
ラベルを disk のままにしておくと、下の方法でバックアップ...
/media/kouzou/disk の中にバックアップが取られてはいるのだ...
実は、これは内蔵ハードディスク内に作られた disk というデ...
ことが起きたりする。そういうことが起きている場合、ポータ...
ということが起きる。
よくわからないのだが、一番 最初にポータブルHDDが /media/k...
ポータブルHDDにバックアップが取られて、その後、マウントの...
ポータブルHDDは /media/kouzou/disk1 にマウントされるよう...
crontab とかで、/media/kouzou/disk にバックアップを取ると...
内蔵ハードディスク上に作られてしまい、以後、ポーターブルH...
取られているというようなことが起きていることにしばらく気...
そういう事態を避けるため、バックアップ目的のポータブルHDD...
自動的につけられる disk という名前から変更しておいた方が...
と思ったが、それでも十分ではなく、ポータブルHDDのラベル名...
なにかの拍子に(ポータブルHDDを接続したまま再起動したとか...
iodataの方は、ポータブルHDDを最初につないだ際に/media/kou...
ポータブルHDDをつなぎっぱなしで再起動すると、/media/kouzo...
ポータブルHDDが新たに/media/kouzou/iodata1 の方にマウント...
再起動の度に、ポータブルHDDを外して、/media/kouzou/iodata...
ポータブルHDDを /media/kouzou/iodata にマウントさせるとい...
crontabで指定するバックアップ先を /media/kouzou/iodata1 ...
外付けHDDにバックアップを取っている人たちは、どうやってる...
いや、それでもだめみたい。今、ubuntu20とubuntu22それぞれ...
今回は、iodata1みたいなディレクトリは作られていない。うー...
iodata1ができてしまったのだろう。
再起動の度に、もしiodata1ができてたら、もう1つあるであろ...
ポータブルHDDをマウントし直して、iodataでマウントされるよ...
***fstabで固定マウント [#y0235b6a]
自動マウントにしていると、なにかのはずみ?でポータブルHDD...
crontabでの自動バックアップ先のディレクトリが違うところに...
fstabで固定マウントするのがいいのではないかと思う。/etc/f...
UUIDの確認は、メニュー→設定→ディスク→ポータブルHDDらしき...
UUID="abcd1-234efg-h56789i-jklmn01234" /media/kouzou/i...
**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 * * * webalizer
10 00 * * * updatedb
20 00 * * * apt-get update && apt-get -y upgrade >/home/...
50 00 * * * rsync -auv /var/www /media/admin/iodata/ > /...
20 01 * * * rsync -auv /home /media/admin/iodata/ > /hom...
20 02 * * * clamscan –i –r –max-filesize=4095M –max-scan...
50 02 1 * * clamscan -i -r / > /home/admin/clamfull.log
**FTPサーバー [#p2ea476d]
FTPサーバーはftpdではなく、vsftpdをインストール。
ftpdも使えるが、systemctl list-unit-files -t serviceをや...
***gftpでアップロードできるようにする [#x7cad5df]
vsftpdはデフォールトでは書き込み禁止になっているので、/et...
write_enable=YES
そして、service vsftpd restart
***アップロードするとパーミッションが変わるのを防ぐ [#d9a...
644のファイルとかをアップロードすると、デフォルトでは400...
それを防止するには、
/etc/vsftpd.conf に
local_umask=022
を追加して(コメントアウトされているので、コメントインす...
*apache2 [#qf8acacc]
--/etc/apache2/mods-available/cgi.load を/etc/apache2/mod...
ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/...
--/etc/apache2/apache2.confに以下を追加
DirectoryIndex index.html index.html.var index.cgi index...
以下の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の項は削除
--ServerNameの追加
<Directory "/var/www/">の上あたりに、
ServerName www.str.ce.akita-u.ac.jp
を追加。これがないとerror.logに以下のエラーが頻繁に書き込...
AH00558: apache2: Could not reliably determine the serve...
--/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用のパスワードは、
perl -e 'print crypt("pasuwaado", "AB"), "\n"'
みたいに実行して(ABのとこは適当な2文字)、生成された文字列...
を .htaccess内のAuthUserFileで指定しているパスにあるuserf...
--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へのシンボリックリンク...
sites-availableへのシンボリックリンクがsites-enabledに置...
生成されないので、上記のapache2の手動でリンクを貼る作業...
-[[Let's Encryptの無料SSL/TLSサーバ証明書:https://chee-s....
そもそもk2とか外部に公開されてないサーバーでサーバー証明...
まずは、/var/www/html/.well-known/acme-challenge のディレ...
# certbot certonly --webroot -w /var/www/html -d k2.hoge...
を実行。すると、以下のエラー
Failed authorization procedure. k2.hoge.jp (http-01): ur...
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/dE9RRQ6FN...
Timeout during connect (likely firewall problem)
To fix these errors, please make sure that your domain...
entered correctly and the DNS A/AAAA record(s) for tha...
contain(s) the right IP address. Additionally, please ...
your computer has a publicly routable IP address and t...
firewalls are preventing the server from communicating...
client. If you're using the webroot plugin, you should...
that you are serving files from the webroot path you p...
うまくいった場合は、
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been ...
/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 o...
version of this certificate in the future, simply run ...
again. To non-interactively renew *all* of your certif...
"certbot renew"
- If you like Certbot, please consider supporting our wo...
Donating to ISRG / Let's Encrypt: https://letsencryp...
Donating to EFF: https://eff.org/do...
みたいに出る。
このログをコピペして、encrypt.logとかに保存しておく。
/etc/apache2/sites-availableに移動し、default-ssl.confの...
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil...
の部分を、encrypt.logを参照しながら、
SSLCertificateFile /etc/letsencrypt/live/hogehoge.jp/ful...
SSLCertificateKeyFile /etc/letsencrypt/live/hogehoge.jp/...
みたいに書き換えて、service apache2 restart
これで、/var/www/html の中も/var/www/cgi-bin の中も /home...
-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}...
</ifModule>
<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000; ...
</ifModule>
***Let's Encryptのルート証明書のうち、DST Root X3が2021/9...
-https://letsencrypt.org/docs/dst-root-ca-x3-expiration-s...
-https://support.cdnext.stream.co.jp/hc/ja/articles/36004...
Let's Encrypt では、ISRG Root X1(Let's Encrypt)とDST Ro...
でも、9/30以降もAndoroid7.0以前の端末でもLet's Encryptを...
***mathjaxの修正も必要 [#z2b5107b]
-httpsで使うには、mathjax.inc.phpの中の以下のアドレスをht...
define('MATHJAX_URL', 'https://cdn.mathjax.org/mathjax/l...
この修正をしないと、httpからは数式表示できるが、httpsから...
この修正をすると、httpからでもhttpsからでも数式表示できる...
***apache2再起動時のSSLのパスフレーズの自動入力 [#jbde1bbb]
/usr/share/apache2 の中の ask-for-passphrase を ask-for-p...
#!/bin/bash
echo "pasuhureezu"
みたいに書き換える。書き換えたものもask-for-passphrase.ba...
デフォルトで上記のファイルをパスフレーズとして読みに行く...
/etc/apache2/mods-available/ssl.conf の中に、
SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-pas...
と書いてあるかどうかで確認。
# SSLPassPhraseDialog builtin もしその上にこんな行があ...
apache2がアップデートされたりすると、ask-for-passphraseが...
自動入力がうまく機能しなかった場合は、ask-for-passphrase...
デフォルトに戻っていたら、ask-for-passphrase.bakを上書き...
#service apache2 restart
で、パスフレーズの入力を求められずに再起動できるかを確認。
**pukiwiki [#x1639f4a]
まず、synapticからphpをインストールすると、最新バージョン...
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のインストール [#madd589b]
-https://dev.abicky.net/pukiwiki/plugins/index.php?mathja...
-mathjax.inc.phpを/var/www/cgi-bin/pukiwiki/plugin/にコピー
-convert_html.php.patchとmake_link.php.patchを/var/www/cg...
-patch<convert_html.php.patchとpatch<make_link.php.patch...
-httpsで使うには、mathjax.inc.phpの中の以下のアドレスをht...
--httpで使う場合も2022現在は、この修正が必要と思われる。
define('MATHJAX_URL', 'https://cdn.mathjax.org/mathjax/l...
この修正をしないと、httpからは数式表示できるが、httpsから...
この修正をすると、httpからでもhttpsからでも数式表示できる...
***編集制限 [#vcacd9ec]
-編集ユーザーをhoge, そのパスワードをhogehogeとすると、以...
$ echo -n "hogehoge" |md5sum
-pukiwiki.ini.phpを編集
$edit_auth = 1;
$auth_users = array(
// Username => password
'hoge' => '{x-php-md5}329435e5e66be809a656af105f4...
);
$edit_auth_pages = array(
// Regex Username
'##' => 'hoge',
);
***メニューバーが表示されない [#mb7b7e38]
上記で、edit_auth_pagesではなく、間違って、read_auth_page...
$read_auth_pages = array(
// Regex Username
'##' => 'hoge',
);
と設定してしまうと、左側のメニューバーが表示されなくなり、
#menu(): MenuBar is not readable
と表示される。
***adminパスワード [#v41b8dd4]
凍結解除やadminしか編集できないページを編集するパスワード...
$adminpass = '{x-php-md5}!';
を
$adminpass = 'kanrisyanopasuwaado';
みたいに書き換える。
***スタイルや画像バナーが読み込まれない [#ufc92e60]
上記のapache2の設定のとこを参照して、/etc/apache2/conf-av...
***検索すると文字化け [#w7a58b7c]
根本解決ではないのだが、対処療法ということであれば、
libの中のhtml.phpの以下の箇所に//をつけてコメントアウトす...
//$body = preg_replace_callback($whole_pattern, '_decor...
根本解決のためには、php.iniを編集してmbstringを有効にする...
***pukiwikiの移転 [#j51fd1ad]
バージョンが変わらないなら、/var/www/cgi-bin/にそのままコ...
バージョンが変わっている場合は、まず新しいバージョンのpuk...
***pukiwiki移転後、メニューバーが下に表示される [#be08811a]
サーバー移転に伴って、pukiwiki1.5.2から1.5.3に移行した場...
***スマホからアクセスするとメニューバーが下に表示される。...
あと、1.5.3のpukiwiki.cssファイルは、/* Mobile-friendly R...
スマホでも、デフォールトで左側にメニューバーが表示された...
pukiwiki.cssの中の /* Mobile-friendly Responsive layout *...
***pukiwiki移転後、編集パスワードを設定して編集すると「編...
pukiwiki.ini.phpの設定は間違ってなくても、旧サーバーにア...
***ubuntu20から22にアップグレード後にpukiwikiというかphp...
apache2は機能していて、htmlも表示され、.htaccessのパスワ...
php8.1をインストールしても同様。
Internal Server Error
The server encountered an internal error or misconfigura...
Please contact the server administrator at webmaster@loc...
More information about this error may be available in th...
/var/log/apache2/error.log を見ると、
[cgi:error] [pid 1706] [client 158.215.134.42:58688] AH...
***phpが動作しているかどうかを確認 [#v0b34326]
pukiwikiが上記のエラーで動かないときは、まずは、/cgi-bin/...
それにアクセスし、php自体が動いているかどうかを確認。上の...
<?php
phpinfo();
?>
ちゃんと動作していれば、以下のようなリストがテーブルタグ...
PHP Version 7.4.3-4ubuntu2.23
System Linux str 5.4.0-193-generic #213-Ubuntu SMP Fri ...
Build Date Jun 17 2024 13:22:20
Server API Apache 2.0 Handler
***ubuntu20からubuntu22にアップグレードした場合は、php7.4...
a2dismod php7.4
a2enmod php8.1
systemctl restart apache2.service
これで、phpが動くようになり、pukiwikiも動くようになった。
**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?jcod...
から新しいjcode.plを持ってきて置き換える。
**IPアドレスの変更 [#b92e8bdf]
-/etc/netplan/50-cloud-init.yaml を編集(ubuntu20の場合は...
-netplan applyで反映
-ip addr で確認
*不具合 [#vb1131bc]
**ログアウトした状態でサーバーを立ち上げておくと20分後に...
/etc/gdm3/greeter.dconf-defaults の以下の2行をコメントア...
# 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...
どうもそうではなくて、有線LANは生きているのだけど、
画面上部メニュー右側のネットワークアイコンから有線接続の...
編集したりができなくなったというだけのような。
というか、上記のようにIPを設定していたんだとすると、もと...
つまり、サーバー版にMATEをインストールしたマシンでは、右...
*ubuntu22.04 LTSデスクトップ版とサーバー版の違い [#ra32f9...
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 proce...
See "systemctl status apache2.service" and "journalctl -...
systemctl status apache2.service をやると、
Invalid command 'Header', perhaps misspelled or defined ...
みたいに出ると思う。その場合は、まず、a2enmod headersをや...
**HSTSの設定 [#la39fcc0]
-以下を参照
-https://qiita.com/takoratta/items/fb6b3486257eb7b9f12e
-https://techexpert.tips/ja/apache-ja/%E3%82%A2%E3%83%91%...
a2enmod headersをやってから.htaccessに以下を追加。上記の...
<ifModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000; ...
</ifModule>
確認方法:まず、.htaccessでリダイレクトされないページが、...
リダイレクトされるページにhttpでアクセスして、httpsに飛ば...
リダイレクトされないページにアクセスすると、httpsに飛ばさ...
**秋田大学のサーバ証明書の取り方 [#u6c11237]
-秋田大学のサーバ証明書は、UPKI電子証明書発行サービスで取...
-↓のやり方で.csrファイルと.tsvファイルを生成
--https://meatwiki.nii.ac.jp/confluence/pages/viewpage.ac...
-次に、情報統括センターに生成したファイルを送付して本人確認
--https://www.gipc.akita-u.ac.jp/service/upki
-その後、送付されたURLから証明書のファイルをダウンロード...
--https://meatwiki.nii.ac.jp/confluence/pages/viewpage.ac...
-有効期間は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...
Enter pass phrase: <password>
Verifying - Enter pass phrase: <password>←もう一度入力
-署名アルゴリズムSHA2でCSRを作成し、hogeserver.csrとして...
openssl req -new -key servername.key -sha256 -out hogese...
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...
Organizational Unit Name (eg, section) []:入力なし
Common Name (eg, your name or your server's hostname...
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] サーバ証明書発行受付通知 という...
-ダウンロードした証明書を「server.crt」という名前に変えて...
***証明書のインストール [#c41691ba]
-https://repo1.secomtrust.net/sppca/nii/odca4/index.html...
-更に[[SECOMのリポジトリ:https://repository.secomtrust.ne...
SECOM TLS RSA Root CA 2024
※Security Communication RootCA2が発行した
クロス証明書(Cross Certificate)
tlsrsarootca2024cross-pem.cerもダウンロード。ブラウザから...
URLをコピーしてwget した方が良い。
wget https://repository.secomtrust.net/SC-Root2/tlsrsaro...
みたいに。各証明書を cat -A で表示し、行末に^M が入ってい...
もし^Mが入っていた場合は、
sed -i 's/\r$//' hoge.crt
みたいにして、^M を取り、cat -A で取れたか確認する。
-/etc/key/にconfというフォルダを作成
-/etc/key/conf/に中間CA証明書(nii-odca4g7rsa.cer)、serv...
cd /etc/key/
mkdir conf
cd conf
(以下はホームディレクトリにファイルがあるとした場合)
cp ~/nii-odca4g7rsa.cer ./
cp ~/server.crt ./
cp ~/hogeserver.key ./
-中間CA証明書とサーバ証明書を連結させる
cat nii-odca4g7rsa.cer >> server.crt
--更にクロス証明書も連結させる
cat tlsrsarootca2024cross-pem.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):
-キーのパスワードを外すには、
cd /etc/key/conf/
cp hoge.key hoge.key.org
openssl rsa -in hoge.key -out hoge.key.nopass
cp hoge.key.nopass hoge.key
chmod 600 hoge.key
chown root:root hoge.key
apachectl configtest
をやって、Syntax OK なら
systemctl restart apache2
***サーバー証明書の更新 [#fddc8917]
-半年くらい経過すると、有効期限が切れるので更新が必要にな...
-中間CA証明書(nii-odca4g8rsa.cer), クロスルート証明書(tls...
--更に古い.oldは、oldディレクトリの中に移動しておく。
-上記の[[csrの作成:https://www.str.ce.akita-u.ac.jp/cgi-b...
-https://repo1.secomtrust.net/sppca/nii/odca4/index.html...
--中間CA証明書(nii-odca4g8rsa.cer), クロスルート証明書(tl...
-念のため、openssl s_client -connect www.akita-u.ac.jp:44...
-fullchain.pemをfullchain.pem.oldに移動(前の.oldはoldディ...
-fullchain.pem.hinagataをfullchain.pemにコピー
-----BEGIN CERTIFICATE-----
ここに構造研サーバー証明書(hoge.cer)をコピー
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
ここに中間CA証明書(nii-odca4g8rsa-pem.cer)をコピー
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
ここにクロスルート証明書(tlsrsarootca2024cross-pem.cer)...
-----END CERTIFICATE-----
sudo apachectl configtest
sudo systemctl reload apache2
openssl s_client -connect hoge.hoge.jp:443 -showcerts
うまくいけば、
Verify return code: 0 (ok)
**不具合 [#ycd10226]
-ChromeやChromiumや一部のfirefoxでは、「信頼できないサイ...
-「SECOM TLS RSA Root CA 2024」は比較的新しく、まだ信頼ス...
***本部サイトの上位CA証明書を利用する(解決) [#cc27d1ed]
openssl s_client -connect www.akita-u.ac.jp:443 -showcer...
をやると、
0 = 秋田大学本部サーバー自身の証明書
1 = 中間CA証明書
2 = 上位CA証明書
が、akita-chain.txt の中に入る。
この各証明書と、以下の方法で作った、fullchain.pemを比べる...
0 = 秋田大学本部サーバー自身の証明書が違うのは当たり前。
構造研サーバーのものは構造研サーバーの証明書になっている。
1 = 中間CA証明書 も以下のnii-odca4g8rsa-pem.cer と同じ。
なので、fullchain.pem の末尾に 2 = 上位CA証明書 をコピペ...
viで、コマンドモードのspなどをつかってコピペし、^Mとかが...
sudo apachectl configtest
sudo systemctl reload apache2
openssl s_client -connect hoge.hoge.jp:443 -showcerts
うまくいけば、
Verify return code: 0 (ok)
これで、chromiumでもアクセスできるようになった。
ちなみに、上記の 2 = 上位CA証明書 は、
[[SECOMのリポジトリ:https://repository.secomtrust.net/SC-...
SECOM TLS RSA Root CA 2024
※Security Communication RootCA2が発行した
クロス証明書(Cross Certificate)
と同じ。
※ G8 RSA の利用には、クロスルート証明書のインストールが...
以下のリポジトリから取得し、必ずサーバにインストールし...
https://repository.secomtrust.net/SC-Root2/index.html
***回避策(ルート証明書も含めて配布する)解決せず(参考) [#j...
cat server.crt intermediate.crt root.crt > fullchain.pem
中間証明書が nii-odca4g8rsa-pem.cer だったら、
cat server.crt nii-odca4g8rsa-pem.cer rootCA.pem > fullc...
だが、server.crt の中に、nii-odca4g8rsa-pem.cer が既に入...
cat server.crt rootCA.pem > fullchain.pem
でよい。
証明書をつなぐのは、catを使うのが安全だと思うが、(Windows...
cat -A fullchain.pem
をやって、行末に^Mが入っていないことを確認する。
sudo vi /etc/apache2/sites-available/default-ssl.conf
を編集し、
SSLCertificateFile /etc/key/conf/server.crt
の箇所を、
SSLCertificateFile /etc/key/conf/fullchain.pem
に変更。
-構文確認
sudo apachectl configtest
-reload
sudo systemctl reload apache2
-reload後確認
openssl s_client -connect hoge.hoge.jp:443 -showcerts
うまくいけば、
Verify return code: 0 (ok)
***サーバー証明書と中間証明書を別ファイルにする(解決せず...
サーバー証明書と中間証明書をくっつける際に、境界部分に変...
サーバー証明書と中間証明書を別ファイルのままとする方法も...
既にくっつけてしまった server.crt から、サーバー証明書だ...
awk 'BEGIN{c=0}/BEGIN CERT/{c++}c==1{print}' \
/etc/key/conf/server.crt > /etc/key/conf/server_only.crt
中間証明書に^Mが入っていたら削除する。
sed -i 's/\r$//' /etc/key/conf/nii-odca4g8rsa-pem.cer
/etc/apache2/sites-available/default-ssl.conf を以下のよ...
SSLCertificateFile /etc/key/conf/server_only.crt
SSLCertificateChainFile /etc/key/conf/nii-odca4g8rsa-pem...
そして
apachectl configtest
systemctl reload apache2
***キーの更新やopenssl関係の更新の度にapache2の起動時パス...
キーのパスワードを外すには、
cd /etc/key/conf/
cp hoge.key hoge.key.org
openssl rsa -in hoge.key -out hoge.key.nopass
cp hoge.key.nopass hoge.key
chmod 600 hoge.key
chown root:root hoge.key
apachectl configtest
をやって、Syntax OK なら
systemctl restart apache2
**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.se...
Drop-In: /etc/systemd/system/clamav-daemon.service.d
└─extend.conf
Active: active (running) since Fri 2022-10-28 07:00:...
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-ant...
mkdir -p ~/.clamav-test/
-テストファイルで正常に実行できるか確認
cd ~/.clamav-test
sudo clamscan -r
-正常に実行されると以下のようになる
/home/hoge/.clamav-test/eicar.com: Win.Test.EICAR_HDB-1 ...
/home/hoge/.clamav-test/eicar_com.zip: Win.Test.EICAR_HD...
----------- 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/usin...
-clamdscanをするとclamdが常駐してしまうので使わない
***詳細設定 [#l2e10f2e]
-ファイルシステム(sysfs,proc)をスキャンしようとするとエ...
-https://insource-mkd.co.jp/staff-blog/10645/ を参考に、...
clamscan –infected –recursive –max-filesize=4095M –max-s...
*DNSの変更 [#ucde30be]
-https://endy-tech.hatenablog.jp/entry/systemd-resolved-b...
-https://blog.apar.jp/linux/3147/
-http://fishrimper.blogspot.com/2014/07/dhcp-dns-ip.html
-このあたりが参考になりそう
ページ名: