小槌をインストールしてみた

サーバーインストール型の家計簿があるのを見つけて、インストールしてみたので、手順を備忘録として残しておく。家計簿ソフトの名前は、小槌 (GitHub リポジトリ) まず、node.js をインストール curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt install -y nodejs 続けて、ruby その他をインストール sudo apt install -y ruby ruby-dev build-essential zlib1g-dev MySQL/MariaDB のライブラリをインストール sudo apt install libmysqlclient-dev または、 sudo apt install libmariadbclient-dev-compat Debian 9 stretch デフォルトの gem はバージョンが低いので、アップデートする。 gem -v 2.5.2.1 sudo gem update --system (省略) gem -v 3.0.3 Bundler をインストール sudo gem install bundler GitHub から、ソースをクローン。 sudo git clone https://github.com/everyleaf/kozuchi.git Bundle を使って、必要なモジュールをインストール
Read more

Pydio Cells の隠し仕様

ファイル共有サーバーソフト、Pydio が、内容を一新、Go でスクラッチから書き直されて、Pydio Cells となった。 最近になって、更新のための時間が取れたので、インストールしてみた。ところ、このブログも乗っかってる専鯖上の VM には問題なくインストール完了。ところが、ストレージ目的で借りている VPS で、所謂ヌルポインタエラーが出た。フォーラムで質問しても解決しなかったが、うまくいったケースとそうでないケースを見比べて違いを埋めていった結果、Pydio Cells は、プライベート IP アドレスがないとセグメンテーションフォールトを起こす仕様になっていることがわかった。 ドキュメントのどこにも書いてないが、ソースではしっかりチェックされてて、確かにプライベートアドレスがないとエラーになる箇所があった。ところがそのエラーをチェックせずに実行を継続しているので所謂ぬるぽになっている。明らかなバグ。フォーラムで報告しておいた。 [2019/03/15 追記] バージョン 1.4 でこの問題が解決されていることを確認しました。

I/O Flood 最高!

突然、このブログを含むサーバー群にアクセスできなくなった。VM を実行しているホスト自体が落ちたようだ。 そこで、サポートに連絡したら、一時間かからずに復旧してくれた。何でもサーバーのマザーボードが壊れたらしい。 新しいマシンにディスクを移動して、設定を調整した上でブート、疎通確認までしてくれた。マネージドでもないのに。しかも、何気に CPU が、Xeon L5520 (4コア8スレッド) デュアルから、Xeon L5639 (6コア12スレッド) デュアルにアップグレードされている。どうやら同型機は売り切れていたらしい。追加料金は一切なし。 やっぱ、専用サーバーを借りるなら、I/O Flood に限る!との思いを新たにした。ありがとう!I/O Flood!

メールサーバー間の SMTP 通信を暗号化する

メールサーバー間の通信で、TLSを使った暗号化が可能なのは知っていたが、面倒なので放置していた。 が、Gmail などで暗号化通信で送られてきたメールにはその旨記載があったり、世の中も動いてきてるので、今回、対応することにした。 Debian の場合 apt install ca-certificates で、CA証明書を導入しておくことを忘れない。 /etc/postfix/main.cf に以下の行を挿入。 smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtp_tls_security_level = may smtp_tls_loglevel = 1 FreeBSD の場合 pkg install ca_root_nss で、CA証明書を導入しておくことを忘れない。 /usr/local/etc/postfix/main.cf に以下の行を挿入。 smtp_tls_CAfile = /usr/local/etc/ssl/cert.pem smtp_tls_security_level = may smtp_tls_loglevel = 1 これで、送信時に暗号化通信を行える相手には、暗号化して送信し、そうでない相手には平文で送信するようになる。 共通 次に受信時の暗号化通信だが、メールのヘッダに暗号通信の記録を残すことを含め、main.cf へ次の行を挿入。 smtpd_use_tls=yes smtpd_tls_received_header = yes 無論、SSL 証明書を Let’s Encrypt などから取得して、設定しておくことを忘れない。 以上で対応は終了だった。簡単すぎて拍子抜け。もっと早くに対応しておくべきだった。

NetBSD の virtio は、vhost-net に対応していない

調子に乗って、NetBSD もインストールしてみた。 最初、ネットワークアダプタを認識してるのに外部へも外部からも通信できなくて頭を捻ったのだが、kvm の vhost-net を off にしたら問題なく通信するようになった。他の BSD が vhost-net に対応していたので、これはちょっと意外。

最近のBSD の virtio 対応状況

NetBSD は試していないのでわからないけれども、FreeBSD、OpenBSD、DragonFly BSD はすべてデフォルトで virtio ドライバを搭載しているので、普通に kvm 上でインストールできる。進歩したものだ。

OpenBSD のインストールについて覚え書き

OpenBSD をインストールする際、カーネルやブートストラッパが / に置かれるため、ディスクパーティションの先頭は必ず / になるよう配置しなくてはならない。Linux の癖で swap を先頭にしてブートせずに嵌まったので、覚え書き代わりにメモ。

CentOS 7 の firewalld

気分が乗ったので、CentOS 7 をインストールした。ファイアウォールの設定が結構手間だったので、備忘録代わりに記録しておく。 まず、定番のサービスポートを開けておく。 sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=pop3 sudo firewall-cmd --permanent --zone=public --add-service=pop3s sudo firewall-cmd --permanent --zone=public --add-service=imap sudo firewall-cmd --permanent --zone=public --add-service=imaps sudo firewall-cmd --permanent --zone=public --add-service=smtp sudo firewall-cmd --permanent --zone=public --add-service=smtps sudo firewall-cmd --permanent --zone=public --add-service=smtp-submission sudo firewall-cmd --permanent --zone=public --add-service=ftp 自宅は固定アドレスで、かつ ipv6 も割り当てられているので、そこからは全ポートを受け付けてもらえるように開放する。 sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="118.243.217.235" accept'sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv6" source address="2405:6584:7840:800::/64" accept' 内部通信用のインターフェースは無条件で信頼する。
Read more

Debian Stretch – GRUB 2 のバグ?

KVM のシリアルポート経由で、ブートメッセージをチェックするようにしているのだが、Debian Stretch をゲストにすると、なぜか GRUB 2 がシリアルコンソールにメニューを表示しない問題があった。 実用上さして気にするほどでもなかったので放置してたのだが、他のディストリビューション (CentOS 7, Ubuntu 16) ではちゃんと表示されるので、いっちょ修正するか、と手を出してみた。 結論。sid の GRUB 2 と入れ替えたら問題なく表示された。なぜ Stretch では直さないのかよくわからない。バックポートが難しいのだろうか。 使用しているスクリプトで kvm の起動待ちをしている部分が悪さをしていることがわかった。起動確認をしている間に grub メニューが表示されるため、シリアルコンソールに制御が移ったときには表示済みのため、一見表示されていないように見えただけだった。反省。

DragonFly BSD の IPv6 設定問題

なぜか、/etc/rc.conf に以下の設定をしても反映されない。 ipv6_enable="YES" ipv6_network_interfaces="vtnet0" ipv6_ifconfig_vtnet0="inet6 2001:470:d:461::7:1 prefixlen 64" ipv6_defaultrouter="2001:470:d:461::1" 仕方ないので、/etc/rc.local にコマンドを直書きしてごまかした。 #! /bin/sh ifconfig vtnet0 inet6 2001:470:d:461::7:1 prefixlen 64 alias<br /> route add -inet6 default 2001:470:d:461::1<br /> 解決法をご存じの方がいらしたら、ぜひコメントをお願いしたい。 追記。 メーリングリストで質問したら、ipv6_ifconfig_vtnet0 の設定がよくないと指摘された。 -ipv6_ifconfig_vtnet0="inet6 2001:470:d:461::7:1 prefixlen 64" +ipv6_ifconfig_vtnet0="2001:470:d:461::7:1" と、アドレスだけ指定するのが、DragonFly での作法とか。指摘してくれた、Aaron に感謝。