Yuki猫のおうち

気ままに自由に日々を生きる

vpsサーバーのsshポートを変更する

不正アクセスされていた

久しぶりにvpsサーバーを覗いてみたら、何度か不正アクセスを試みようとされていたログが残っていたので、いい機会だと思って対応しました。

作業内容

こちらの記事を参考にしました。
weblabo.oscasierra.net

作業としては以下三点です。

  • sshdデーモンの設定変更
  • 新しいポートの開放
  • SELinuxで新しいポートへのsshアクセスを許可

作業にあたって気をつける点は2つあって、

  1. 新しいポートの設定を追加してから古いポートの設定を消す
  2. ssh接続した状態のコンソールを一つ用意しておく

です。

設定を間違えると(vpsの場合はwebコンソールから操作できるのでなんとか復旧はできますが)最悪sshできなくなってしまうので、注意が必要です。

詰まった点

参考にした記事内に書かれている作業のうち、port22の設定をselinuxから削除する操作が以下のエラーが出てしまって実行できませんでした。

$ sudo semanage port --delete --type ssh_port_t --proto tcp 22
ValueError: ポート tcp/22 はポリシーに定義されているため、削除できません

どうも標準設定に定義されているので消せないらしいです。

firewallの設定でport22は許可していないためセキュリティ面では特に問題はなさそうですし、ログ的な意味も込めて残しておいてもいいのかなとは思います。
(まぁ、sshのportが22なのは周知の事実ではありますが)

BitCoinでFXトレードして日銭を稼ぐ

最近、bitcoinデイトレードして少しづつ日銭を稼げないか試してみています。

1日1時間くらい、チャートと睨めっこしながら売ったり買ったりしてみていて、今のところの収益はこんな感じ。

大損してますT ^ T

自分の投資スタンスを守れなくて損切りをしっかりできなかった結果なので、典型的な失敗例ですね…

少しづつ取り戻して行きたいなーと思います。

UdemyでGolangの勉強を始めてみる

自分で調べて勉強ってのがなかなかできなくなってしまったので、空き時間でさくっと学べないかなと思ってUdemyでこれ買ってみました。

初回登録特典で、1900円くらいで購入できたのでとてもお得でした。

まだgolangの基礎までしかやってないけれど、結構基礎の基礎からしっかり解説してくれている感じでこの先の期待も高まっています。

ちょうどBitFlyerのアカウントも持っているので、BitCoinの運用も始めてみようかしら。

現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発

AGC040 A - ><

今日の問題

atcoder.jp

今日の言語

golang

所要時間

1h 51m 03s

私の解答

github.com

感想

アホみたいに時間かかりました。法則性が全然見つけられませんでした。
1問目にこんなに時間をかけているようじゃ本番だったら一問も解けずに終わってるので、ごちゃごちゃ考えていないでまずはコードを書いてACすべきだったんでしょうね...

参考資料

なし

データベーススペシャリスト試験落ちました

惨敗

そういえば、今年の春に受験したデータベーススペシャリスト試験ですが、午前1で点数が足りず落ちました。

応用情報技術者試験の範囲をしっかり勉強し直してからそのうちまた受験したいです…

ブログ更新と勉強のモチベーション維持のためにも、勉強した内容をちゃんとまとめてブログに投稿するといいかもしれない。

PHP5.6からPHP7.3への移行対応

概要

会社の業務で、PHP5.6環境で動作しているプロダクトをPHP7.3環境に移行する対応を行ったので、対応内容を忘備録として残しておく。

一度に記事を書くのは大変なので、この記事をハブページとして、項目別にいくつかの記事に分けて投稿していく予定。

PHP5.6のサポートが切れている

公式サイトによると、PHP5.6のサポートは2019年1月に切れていることになっている。

PHP Manual:Supported Versions

f:id:yukineko4you:20191212002011p:plain
PHPのバージョン毎サポート情報 (PHP公式サイトから抜粋)

セキュリティサポートが切れているといっても、なにも今すぐ危険だというわけではない。とはいえ、今後致命的なセキュリティバグが発見されても修正されないということなので、そのまま放置していいものでもない。

PHP7

およそ10年ぶりのメジャーアップデートというのもあり、PHP5と比べると処理性能もメモリ使用量もかなり改善されている。
理論値では、およそ2倍になるケースもあるのだとか。

「PHP 7」登場。10年ぶりのメジャーバージョンアップで実行速度はPHP 5の2倍以上に、PHPの生みの親が語る。PHPカンファレンス2015(前編) - Publickey

単純にサーバー処理時間が短くなるのでレスポンス速度が速くなるし、CPU負荷も下がるのでスケールアウトしているサービスであればサーバー台数を削減できるかもしれない。
これは移行しない手はない。

対応方針

今回の移行にあたって、メンテナンス期間なしで移行対応を行うことになった。
方法としては、スケールアウトされているサーバー群に対して、PHP7環境のサーバーをサービスインしてPHP5環境をサービスアウトする、という方法で徐々にPHP7環境へと移行していく方式をとる。
その性質上、一時的にPHP5とPHP7のサーバーが混在する期間が発生するため、コードをPHP5でもPHP7でも動作する互換性のあるコードに修正していく方針となった。

下位互換性のない変更点

メジャーアップデートなので、当然(?)下位互換性のない変更点というのがいくつかある。

詳細は公式サイトにまとまっているが、全てのソースコードを目で確認するのは土台無理な話である。
そこで、静的チェックツールを活用しつつ下位互換性のない変更点を修正していくことになる。

https://www.php.net/manual/ja/migration70.php

静的チェックツールを利用した互換性のない処理の洗い出し

今回はPHPCompatibilityを使用した。

PHPCompatibility

github.com

導入方法は別記事で書く。

(予定)macにcomposerをインストールする
(予定)macでPHP5とPHP7の環境を切り替えられるようにする
(予定)composerでPHPCompatibilityをインストールしてコードを静的チェックする

互換コードへの修正対応

これはたくさんあるので後日別記事で書く。
(予定)PHPCompatibilityを活用してPHP5系とPHP7系どちらでも動作する互換コードに書き換える
(予定)PHPCompatibilityではチェックしきれない下位互換性のない変更点の修正