Posts

Feedbin のインストール

結果的に、動作しなかったが、勿体ないので、記事は残しておく。ニュースサイトの閲覧に、サーバー設置型であるニュースフィーダーの Fever を使っているのだが、ディスコンになってしまって、乗り換え先を探していたところ、オープンソースで公開されている Freebin がよさげだったので、Debian GNU/Linux 9 Stretch にインストールしてみた。Feedbin に月 $5 払えば、インストールなどいらないのだが、ドキュメントに書かれていない設定が多数あって、試行錯誤に丸一日費やしたので、どこかに残しておかないと勿体なかったというのもある。😁 まず、Stripe.com のアカウントが必要なので、サインアップする。 ダッシュボードの「テスト API キーの取得」に、公開可能キーとシークレットキーがあるので、これをいったんコピーしておく。 次に、サイドバーの Billing → 商品から、商品を 9 種類追加する。商品ごとの料金プランで、API ID に以下の値をひとつずつ設定する。面倒だが、Stripe.com に該当の API ID を持つ商品(料金プラン)がないとエラーになるので、頑張って設定する。 basic-monthly basic-yearly basic-monthly-2 basic-yearly-2 basic-monthly-3 basic-yearly-3 free timed trial 設定が終わったら、インストール作業に入る。まず、Feedbin を実行するユーザーを作成する。 sudo useradd -m feedbin 実行には、memcahed、elasticsearch、ruby が必要なので、インストールする。ただし、システムデフォルトの ruby は、バージョンが古い (2.3) ので、rvm から必要なバージョンを導入しなくてはならない。(無論、rbenv から導入してもよい) sudo apt install dirmngr sudo apt install apt-transport-https sudo apt install curl sudo apt install memcached sudo apt install -t stretch-backports redis sudo gpg --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E37D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.
Read more

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

サーバーインストール型の家計簿があるのを見つけて、インストールしてみたので、手順を備忘録として残しておく。家計簿ソフトの名前は、小槌 (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 メニューが表示されるため、シリアルコンソールに制御が移ったときには表示済みのため、一見表示されていないように見えただけだった。反省。