Harmless Weblog

パソコン・インターネット

さくらレンタルサーバその後(新ハードに移行完了)

さくらのレンタルサーバを借りたのは2005年で、当時契約していたインターネットプロバイダ廃業に伴ってホームページの引っ越しを迫られたことがきっかけだった。当時のライトプランは年額1500円で300MBの容量、CGI利用可、メールアドレス生成無制限など、当時からお得感があった。ありがたいことにその後19年間、安定してサービスを継続してくれているだけでなく、料金据え置きで容量は100GB(300倍)にアップしていて大変感謝している。鳴り物入りで登場してユーザを集めどんどん値上げした上にサービスが劣化した挙句10年も経たずにサービス終了する幾多のクラウドサービスは猛省してほしい。

さすがに古参ユーザの収容サーバも老朽化してきたようで、しばらく前から新ハード(SSD化、OSアップデート)移行の提案が来ていた。以前のように単なる個人のホームページやブログ、メールサーバだけであれば迷わずとっとと移行すれば良いんだけれど、今はWebアプリ「日替わり通信術練習」をレンタルサーバで動かしていて、最低でも毎日最低数十人のユーザがアクセスして試験対策に使ってくれている状態であり、簡単にサービス中断するというわけにもいかない。

ただ、このまま旧環境を使い続けているとそのうちさくら側の都合とタイミングで勝手に移行されてしまいそうだったので、総通試験直後の週末、かつ日替わり問題の更新に影響がない夕方を狙って、2週間のアプリ上での告知期間を経て移行を実施。

16時に移行開始してから完了のメール受信が来たのが18時過ぎ。ただIPアドレス変更の影響か、18時頃にはまだWebサイトはメンテナンス表示で、普通に閲覧できるようになったのは20時頃だった。特にトラブルや表示の異常などもなく、すんなり移行できて良かった。

さくらレンタルサーバはずっと不可とされてきたプラン変更がついに解禁されたので、スタンダードプランに移行するかどうか迷っている。WordPressを使うなら迷わず移行なんだけど...。

≫ 続きを読む

パソコン・インターネット   2024/03/30   gena

日替わり通信術練習(和文pdfファイルの表示とダウンロード機能)

2023年9月期の一総通試験が終わり、メールやX(Twitter)で頂いた合格(通信術の科目合格)の報告が5件と過去最高を記録。2023年3月期は1件だったので、通年だと最低でもアプリ利用者の合格者は6名ということになる。2022年度の合格者数が10名だそうなので、今年度はアプリの効果でもう少し合格者数が増えていたりしないだろうか、と期待。

頂いたメールの中で、古いパソコンのブラウザだと和文ページのマスがずれて表示されるというコメントがあった。この問題は把握していて、古いブラウザだとCSSの解釈が不完全だったりフォントが入っていないなどの原因がある。

基本的にはできるだけ最新のブラウザやスマートフォンを使ってほしい、ということなんだけど、試しにサーバ側で和文ページのpdfを生成して、ブラウザから表示・ダウンロードできるように検討を開始。

和文ページはJavaScriptで動的に生成しているので、サーバ(VPS)でChromeをヘッドレスモードで起動し、PythonのSeleniumで和文ページをクリックして表示させてから、pdfで保存するというのが一連の流れ。以下のページが参考になった(というかそのまま)。

[Qiita]SeleniumとHeadless ChromeでページをPDFに保存する

Seleniumのスクリプトを工夫して、過去の問題をどんどん掘っていってpdf化することも可能だけど、とりあえずは機能実装後のpdfを毎日保存していくようにしてみた。

このヘッドレスChromeとSeleniumは優秀で、たいていのWeb情報はクローリング・スクレイピングできそうだけど、なるほどそういうのを避けるために「私はロボットではありません」みたいなチェックをさせる仕掛けがあるんだな、と納得。

既知の不具合としては、スマホのPWAでアプリとして起動したときに、pdf表示から元の画面に戻る方法がないこと。pdfに元ページへのハイパーリンクを仕込めばいいのかな。

getpdf.png

≫ 続きを読む

パソコン・インターネット   2023/11/25   gena

さくらのVPSその後(1年経過)

さくらのVPSは契約後1年になる。基本的に3か月経過の頃からは大きな変更はなく、安定稼働中。なんとなく東京のサーバを選んでしまったけれど、延々とランニングコストがかかるものなので、ちょっとでも安い石狩にすれば良かったかも。

Evernoteの有料プランを解約した代わりに、自作のWebアプリで日記とメモ(ブログ原稿や備忘録)を運用している。こちらも意外とトラブルもなく使えていて、Evernoteの時のアプリの使いづらさとか同期の不安定さとは無縁でむしろ便利。裏で動いているソフトがすべて自作で中身がわかっているので、いざとなればsshでアクセスすればなんとでもなる。

グローバルIPを持つサーバなのでセキュリティには気を遣うけれど、fail2banで1度でもbanされたIPはiptablesで永久出入り禁止としているし、悪質なドメイン(同じサブネットから何度もアタックしてくる)についてはサブネットごと永久banしている。それでも毎日数十件の不正アクセスの試みは続いているけれど、基本的にsshのパスワードログインを禁止していることで、重大な問題はほぼ生じないと思われる。WebのDoS攻撃やCMSの管理画面を狙った攻撃はWAFで防げていると思う。

このまま安定稼働を維持したいけれど、心配はCentOS7のサポートが2024年6月で終了してしまうこと。今のところさくらのVPSのサイトではCentOS7が標準OSのままで、後継や移行方法についてのアナウンスがない。最悪はサポート終了のタイミングで、データをバックアップした上でその時に標準になっているOSをクリーンインストールしてしまうことだと思うけど、上記の日記アプリや日替わり通信術練習などのアプリをまた新環境で動くように手当するのがちょっと面倒だなぁ。連続稼働を止めるわけにはいかないので、移行の際は一度別なサーバを借りて無料期間で環境構築とアプリの稼働を確認してから本番サーバの入れ替えかな。

日替わり通信術練習のアプリ利用者の方から、一総通合格の報告や、ありがたいことにドネーションまで頂いてしまったので、これから受験する方のためにもできるだけ安定稼働で維持していきたい。

≫ 続きを読む

パソコン・インターネット   2023/10/15   gena
タグ:JavaScript , VPS , PHP

中古のLet's Noteその後(1年経過)

中古のLet's Note(CF-SZ5)を購入して1年経った。元々はドンキ2in1の後継として無線用に使う予定だったけれど、軽量でパフォーマンスも最高なので、休日にカフェでパソコン作業がしたいときとかにいつも持ち歩くようになった。

ちょうどこれを買ったのと同じ時期にさくらのVPSを契約して、ネットさえ繋がればどこからでもWebアプリのメンテができるようになったこともあって、パソコンに求めるのはほぼブラウザと、ssh接続ができるアプリ(ターミナル)で、クライアントのOSはなんでも良いという感じになった。

なのでこのLet's Noteの、軽く、解像度が高いディスプレイと長持ちするバッテリーという特長だけで私の用途には充分すぎる感じ。ハードがWindows11に対応していないというのはまったく瑣末なことで、Win10のサポートが続けばまったく問題はない。

アマチュア無線用としても性能は充分で、USBIF4CWをつないでCTESTWINでがんがんコンテストに使ってもまったく不安はない。

パソコンは2015年モデルのMacBookPro15インチと、2016年モデルのLet's Noteの2台体制で、以前なら5年経過でそろそろ買い替え時期かな、と思っていたけれど、上にも書いたようにブラウザとターミナルさえ動けば大抵のことは何とかなるし、重い動画編集などは今のところしていないので、ぜんぜん買い替えたいという気持ちにならない。思うにストレージがssdになったあたりから、軽い使い方であればOSの寿命まで使い続けられるようになった感じ。

≫ 続きを読む

パソコン・インターネット   2023/09/22   gena
タグ:Windows

Apple Watch Series7その後(1年経過)

Apple Watch Series7を買って1年経った。

スポーツジムは継続していて、体重は半年で5キロ(約10%)ほど減りBMIは19を切って、その後1-2キロ戻して安定している感じ。途中から有酸素運動に加えて筋トレも始めたので、多少筋肉がついてきたのかもしれないけれど、よくわからない。腹囲は-7センチ。

3ヶ月ほどで純正バンドのソロループが緩く感じるようになった。ソロループは長さ調整ができないので、悩んだけれどワンサイズ短いものを追加で購入した。純正バンド代で安い時計が買える値段。

新しいバンドがキツすぎたらどうしようと思っていたけれど、幸いピッタリで、これならもっと早く買っておけば良かったと思った。しかし、さらに半年ほどしたら、冬場で肌が乾燥していたこともあると思うけれど、短めのバンドも緩く感じるようになった。検索するとどうもこのソロループは経年で伸びてしまうらしい。ソロループはサイズがピッタリでないと意味がない気がするし、6000円以上のものなので、もう少し持ってほしい。長さ調整可能なバンドを新しく買うかどうするか検討中。

基本的に常に装着していて、外すのは充電時と入浴・シャワーのときくらい。充電は寝る前(50%残くらい)と起床後(90%残くらい)にしていて、習慣化すればあまり気にならないけれど、充電を忘れると丸2日は持たないかも。純正ケーブル(入力はUSB-C)でけっこう急速充電されるので、10分でもいいから充電時間を確保できればなんとかなるかな。ただ専用ケーブル(マグネット式)がないとどうにもならない。旅行時などは面倒だけどケーブルも持っていく必要がある。

元々持っていた腕時計(機械式)はワインダーにセットしたままぜんぜん着けなくなってしまった。Apple Watchで睡眠の記録とか、運動量の記録とか、心電図とか、常に着けていることでライフログ的に使えるので。一度経験するとWatchなしの生活に戻るのはなかなか難しいかもしれない。

≫ 続きを読む

パソコン・インターネット   2023/06/18   gena
タグ:AppleWatch

日替わり通信術練習(和文答え合わせページの実装)

かんなさんと一緒に取り組んでいた資格試験の勉強が一段落したので、二週間ほど集中して取り組んでどうにかリリース。

日替わり通信術練習(モールス受信)のWebアプリを開く

当初から日替わり通信術練習を送信の練習にも使いたい、とか、和文受信用紙に書き取ったときの答え合わせがしたい、ということで、受信用紙のフォーマットで表示したいという漠然とした考えはあった。

ただ、それを実現するためには受信用紙の変態的な縦書き帳票・原稿用紙スタイルをCSSで再現しなくてはならず、少しずつ「css 帳票」や「css 縦書き 原稿用紙」などのキーワードでググって調査は進めていた。

参考にしたサイト

ちなみに上記はすべてqiitaのサイト。最近プログラミングやHTML関係でググるときはかならず"qiita"を検索ワードに追加している。そうしないと、「〜の方法をご紹介します!」から始まって「〜いかがでしたでしょうか?」という冗長なサイトばかりが引っかかって、読んでも結局そんなことは調べてないとか、最初から知っていることだけで有用な情報が得られないため。一般的なことを調べているビギナー向けには役に立つサイトなんだろうけど、こっちが求めているのはもっとニッチでマニアックな内容なんだよなぁ。

和文受信(送信)用紙のフォーマットは、縦書きの帳票+原稿用紙という変則的なもので、もちろん作り方はググってもどこにも出てこない。上記の帳票のCSSに、縦書きのCSSを組み合わせる方法で手探りで作っていった。

基本はCSSでボックスを各項目(発信局とか字数とか)ごとに並べて、各ボックスのフォントを縦書き・当幅フォントで指定してあげて、位置とフォントサイズを細かく調整する地道な作業。

原稿用紙のフォーマットが課題だったけれど、原稿用紙の罫線部分を画像として保存して、白背景部分を透過にしたpngをサイズ指定で貼ることでなんとかそれっぽくなった。どうしても微妙にマスがズレるんだけど、この程度は許容範囲ということで。

パソコンからそのままA4に印刷すると、受信用紙と同じサイズで出力されるので、送信練習をリアルにやりたい方は使えると思う。

IMG_3276_w560.jpg

構想時にはもっと苦戦するかと思ったけれど、やってみたら(力技っぽいところがあるとはいえ)意外とうまく作れたな、という感じ。

実装したかった機能は今のところこれでだいたい完了かな。そもそものHTMLとCSSがけっこう原始的で、JI1JDIさんのモダンなDitDah Appsには憧れるけれど、今のままでも総通の通信術の練習という目的には充分使えるのではないかと考えている。

≫ 続きを読む

パソコン・インターネット   2023/02/25   gena

VPSその後(3ヶ月経過)

さくらのVPSはその後もいろいろと手を入れたくなるところがあって、やっぱりレンタルサーバと比べると比較にならないほど手間がかかるけれど、その分面白い。

手塩にかけて育てた(設定した)サーバは愛着も出てきて、レジャーとしてかなりオススメ。不正アクセスの試みも、siteGuardやfail2banが防いでいるログを眺めては、ふふふ、そんな攻撃で防壁が破れると思っているのか?とか楽しんで見ている。

TeraCLOUDの無料ストレージをマウントして使っていて、ふと、同じようにさくらレンタルサーバライトのストレージもマウントできないのかな、と思って調べてみたところ、FTPをマウントできる方法があったので試してみた。

【参考サイト】

CurlFtpFSは動作してレンタルサーバをbashからストレージとして見られるようになった。イメージのバックアップはかなり時間がかかるけれど、cron_dailyに放り込んでおけば夜中に勝手に終わっているのでまあこれでも良いかも。容量見合いで古いバックアップは自動削除するようにしておく。Tipsとしては、mondoarchiveの"-E"オプションで除外フォルダを設定するときは、-E "/backup1|/backup2"のようにパイプで区切ること。スペースだと無視される。

イメージバックアップはもしものときの備えで、実際にリカバリできるかは試していないので不明。それよりも操作ミスとかでデータが消える方が怖いので、データのバックアップはしつこいくらいに取っている。自作のスクリプトはGithubのプライベートリポジトリに、日記・ブログ記事のデータはrsyncで上記TeraCLOUDに30分毎に同期させている。

どこからでもアクセスできて好きなようにいじることのできるサーバの特性を活かして、Evernote(やその他クラウドで同期するメモ帳的なもの)に頼らない日記とメモのWebアプリを作った。Webアプリと言っても完全に自分専用のもので公開するつもりはない(パスワードで保護している)。このアプリは正直使えるようになるまでに半年単位で時間がかかると覚悟していたんだけど、意外とあっさり動いてくれた。PHPとJavascriptのハイブリッド。

cfvmemo.jpg

今はEvernoteはバックアップで補助的に使うだけになってしまった。もう少し様子を見て問題なければ有料プラン(3,100円/年)は解約しても良いくらいかも。...なんて書いたらEvernote有料プランの値上げ(3,100円→4,500円/年)の通知がきたので、サクっと解約。これで差し引き年間5,000円ほどでVPSが維持できる。

不正アクセスの試みはsiteGuardとfail2banで防げているし、自分アプリも一応完成してしまったので、契約後2ヶ月を経過したあたりで安定稼働を維持するモードになってしまった。次の課題を何か考えたいところ。

≫ 続きを読む

パソコン・インターネット   2022/12/02   gena
タグ:JavaScript , 日記 , VPS , PHP

さくらのVPSその後(1か月経過)

さくらのVPSを契約して1か月経った。

いろいろ設定するのに手間がかかったので、気になっていたイメージバックアップを設定。国内サーバのTeraCLOUDの無料10GB(紹介ボーナスで+5GBの計15GB)。まだイメージからの復旧を試していないけれど、これはいつか試すことになるんだろうか。一応データというか自分で書いたスクリプトはgithubのプライベートリポジトリにpushするようにしているし、日記データはrsyncで上述のTeraCLOUDにバックアップしている。

ちなみにTeraCLOUDの紹介ボーナスの+5GB(永続)が使いたい方は、登録時に私の紹介コード「8AVDG」を入力していただければOKです(私に紹介者ボーナスの2GB1年間が付与されます)。

アクセスする端末もだいたい固定化した(MacBookPro, LetsNote, iPad, iPhone)ので、すべて公開鍵認証を設定してパスワードログインは無効にした。これで基本は安心のはずだけど、それでもlastbコマンドで見るとしつこくログインしようとしてくるIPアドレスが記録されている。fail2banを設定してようやく落ち着いた(けど、それでもいろいろなIPからsshやpostfixのアクセスが記録される)。一応さくらVPSだとsiteGuard server editionも正規ライセンスが無料で使えるのでこれも設定。最初は自分で書いた日記スクリプトでフォームの内容によってディレクトリトラバーサルで拒否されてしまったけれど、.htaccessで監視除外にしたら大丈夫だった。

siteguard.png

Evernoteの代替になる個人用日記スクリプトは、楽しみながら作っている。現時点でもベーシックな機能(日記を書いて保存する)は実現できている。サーバにtxtファイルを保存するところはググりながらなんとか。現状の日記を読み込んで表示するところはjavascript、編集した日記を保存するところはphp、毎日0時に日付を付加してバックアップするところなどはシェルスクリプトとcronというハイブリッドな構成。

diary.png

ラズパイで書いていたスクリプト類もVPSに最新リポジトリをクローンして、今後はこちらで編集しようと思う。ラズパイは外出先からアクセスしようとするとChromeリモートデスクトップを使ったりと手間がかかるのに対して、VPSならネット接続できる環境なら簡単につながるので。日替わり通信術練習の電報文生成のスクリプトもVPSで実行するように切り替えた。VPSも完璧ではないにしろ、自宅のラズパイよりは信頼性が高いと思うので。

MySQL(MariaDB)もインストールしたのでWordPressもいつでも使える状態なんだけど、ブログはレンタルサーバがあるのでWordPressは何に使おうかと考え中。

 

≫ 続きを読む

パソコン・インターネット   2022/10/08   gena
タグ:VPS

中古のLet's Noteを購入

気づいたらドンキの格安2in1をもう6年半も使っている。稼働率は高くはないけれど、無線の移動運用やHamlogやe-mail QSLなどでは現役。

かんなさんが、実家の壊れたノートPCの後継機種を選んでいて、ちょうどAmazon整備品の中古ノートPCが安くなっているというので、私にも一台選んでもらって購入。

2016年発売のCF-SZ5シリーズでCPU:第6世代i5、RAM8GB、SSD:256GB、12.1"WUXGA(1920x1200)というスペックが3.6万円。2015年モデルのMacBookProを今だにメインマシンにしている私にはこれで十分かも。Let's noteは2003年頃に仕事で使っていたのでほぼ20年ぶり。それでも丸いタッチパッドとか造形とか雰囲気は当時から変わっていない。それだけ確立したブランドだということ。

最初箱から出した時、あまりに軽いのでバッテリーが別梱包なのかと思った。確認するとバッテリーは着いている。もしかして騙されてモックアップを買わされたのか?と思って起動してみるとちゃんと起動した。重量は900gを切っているそうで、厚みの割に軽いので驚いた。ドンキ2in1は10インチで1.2kgくらい。

Windows11には(公式には)非対応だけど、Win10Proで使う分には驚異的なコストパフォーマンスだと思う。もちろんこのスペックで不足する人はいるだろうけれど、そういう人は現行モデルを買ってもらえば良い。

無線関係の環境を移さなくてはいけないけれど、まずはVPSいじりのためのssh環境を確認。昔はTeraTarm proとかだったと思うけど、今はマイクロソフト純正でWindowsターミナルがあるのでこれを使う。フォントはMyricaをダウンロードして入れた。

早速持ち出してカフェのWiFiにつないでサーバいじり。iPadよりは重いけど、MacBookPro15インチを持ち出すよりは全然楽だし、中古で心配だったバッテリーも余裕で丸一日持ちそう。

移動運用で使えれば良いや、と思って買ったけれど、想像以上に使い勝手が良いので、しばらく外出時のメインマシンになりそう。

≫ 続きを読む

パソコン・インターネット   2022/09/16   gena
タグ:Windows , VPS

さくらのVPSを契約

日記25年の記事で、Evernote依存から長期的にレンタルサーバ上で管理したいという話を書いた。

夏休みの課題としていろいろと調べたところ、さくらレンタルサーバのスタンダードプランだと、確かにSSH接続はできるようになるけれど、権限の関係で自由にできない部分も多いことがわかってきた。それで月500円くらいなので、だったらもう500円プラスして、VPS(Virtual Private Server;仮想専用サーバ)を借りてみるのはどうだろう。

サーバの構築や管理なんてもちろん経験がないけれど、誰だって初めてはあるわけだし、Linuxのシェルは3台のラズパイの管理で、ググりながらではあるものの、多少は触っているので。

ということで、お試し期間の2週間使ってみて、難しすぎてどうにもならなければ、やっぱりレンタルサーバにすることにして、VPSを契約。プランは1G(CPU仮想2Core, メモリ1GB, SSD50GB)で年間1万円ほど。

さくらインターネット自体はアカウントがあるので、VPSはオンラインで手続きしてすぐに利用可能になった。最初はOSも何も入っていないので、セットアップから。もしサーバのハードを買ってセットアップするとなったら大変だけど、VPSならコントロールパネルで用意されているOSの中から好きなものを選んでクリックすれば、SSHで接続できるところまで自動でセットアップしてくれる。これは便利だし、もしおかしくなってしまったら、再インストールも簡単。

最初はラズパイのOSと系統が近いと思われるUbuntuを入れてみたけれど、公式の入門はCentOS7で、Ubuntuで使う時の情報が意外と検索してもヒットしないので、早速再インストールでCentOS7を入れ直した。データや設定は消えてしまうけれど、自前でハードを初期化するより全然手軽で助かる。

SSHでログインしてまず驚くのが、ブルートフォースアタックという不正アクセスの試みの多さ。CentOSはrootログイン時に、前回の正常ログイン時間と今回までの間に何件の不正ログインの試行があったかを教えてくれるんだけど、1分に1回以上、数時間放っておくと何百件ものログイン試行が記録されている。ログを見るとrootを始め、userとかadminとかのIDで何度も何度もログインを試しているIPがたくさん。

いろいろ調べて、以下を設定。

  • rootの直接ログインを禁止
  • 国内IPのみ許可
  • ssh接続のポートを変更

rootログインの禁止は、実効性は高いと思うけど、結局ID:rootでログイン試行(して失敗する)のログは記録されてしまう。外国のIPを弾く設定は、うまく設定ができていないのか、ほとんど効果がなかった(注)。最終的にはsshの標準ポート(22)を塞いで、わかりにくいポートに変更するのが一番効果があった。それでもポートスキャンなどで(?)アタックしてくるIPは個別に拒否するようにする。さくらVPSのパケットフィルタリングも同様に22番を塞ぐようにする。

(注)これはiptablesで設定していて、その後firewalldを改めて設定したのでiptablesが無効になった模様。

最低ここまでやってようやく落ち着いていじれるようになった感じ。

やっぱりiPadのターミナルアプリ(Termius)でどこからでも直接アクセスできるのは最初は感動する。今まではTeamViewerとかChromeリモートデスクトップで(PCを踏み台にして)自宅のラズパイにアクセスしていたけれど、TeamViewerは商利用チェック(誤認識)が入って切断されたり、ChromeデスクトップはiPadからだとCtrlキーとカーソルキーが使えないという致命的バグがある。

一応ドメインも取って、常時SSLの設定も済ませたので、Wordpressとかでブログを作ったりもできるんだけど、そこまでするかどうかはまだ悩んでいる。一応レンタルサーバでサイトを公開していることもあるし、VPSの方はいろいろいじり回す想定なので。安定稼働はレンタルサーバに任せて、個人の日記プロジェクトとか、日替わり通信術練習の裏方スクリプトなんかを動かすようにしようかな。いずれにしろやろうと思うことはなんでもできる環境にはなったので、これから色々勉強していきたい。

その後もググりながら使いそうな環境を構築。ある程度は公式の入門記事がある。

  • Apacheインストール、設定
  • phpの設定、pythonの各種ライブラリインストール(日替わり通信術関係)
  • ドメイン取得(ムームードメイン)
  • 常時SSL化
  • メールサーバ設定(postfix)
  • CGI許可設定(httpd.conf)

入門記事やググって設定できるとは言え、手順が多いのでできればイメージバックアップを取っておきたいところ。たださくらVPSはバックアップのサービスがないので、自分で考える必要があるらしい。これは後日かな。

≫ 続きを読む

パソコン・インターネット   2022/09/11   gena
タグ:VPS