リモートホスト設定・開発環境

パソコンなどのローカル環境から外部サーバー(ここ:さくらVPSなど)に接続して各種設定を行う場合は、基本的にはSSHなどターミナル接続を行い、サーバー上のエディタなどを用いて設定ファイルなどの編集を行っている。

当方の場合は、ローカルのWindowsマシンよりPuttyを使用してSSH接続を行っている。サーバー側もSSHの設定を行いしっかりと鍵ペア認証による接続を行うことで安全性を保っている。ちなみにファイルのコピーには同じ鍵を用いたWinSCPを使用している。

サーバー上での設定ファイルの編集などは、当方ではEmacsを用いている。昔はワークステーション上でも重量級のエディタという印象だったので、チョットしたファイルの編集には不向きということで、専らVi系の軽いエディタを使用していた。まぁ昨今になるとマシンパワーのおかげでそれほど気にするレベルでも無いと言うことで、何となく惰性で使用している。しかし昔ほど気合いの入った設定とかは行う事無くほぼほぼインストールしたままで使用しているのでした。

ただし一点だけ、こだわりではないが、バックアップファイルの自動生成について、デフォルトの設定では、編集してセーブを行うと、元ファイルと同じディレクトリに「(元ファイル名)~」という「~」(チルダ)付きのバックアップファイルが大量発生して何とも見苦しい。その為、バックアップファイルは編集したユーザーのホームの「.saves」ディレクトリにバックアップファイルを世代付きで保存する方式に変更している。

編集対象ファイル例):/home/user-name/project/hogehoge/Readme.md
⇒バックアップファイル:/home/user-name/.saves/!home!user-name!project!hogehoge!Readme.md.~1~

のように元のパス情報を含めたファイル名で世代管理の番号を付けた状態で保存される。下記の設定を

(setq auto-save-default nil)
(setq backup-directory-alist `(("." . "~/.saves")))
(setq backup-by-copying t)
(setq delete-old-versions  t
      kept-ner-versions 6
      kept-old-versions 2
      version-control t)

各ユーザーの設定ファイル(.emacs)に記載しておく、当方の場合は自分以外に使用する人もいないという理由もあって/usr/shara/emacs/下のdefault.elに記載とか乱暴なことをやっている(汗)

続きを読む…

ブロックリスト自動生成(素人のサーバー管理)

自宅あるPCを使っている分には外部からの攻撃とかあまり気にしないけど、さくらVPSなど外部に配置したサーバーだと、攻撃とは言わないまでも手当たり次第にピンポンダッシュしてくる輩の多いこと・・・。

ここでいうピンポンダッシュとは言うまでも無く、ポートスキャンや不正ログイン試行のことで(不正ログインはピンポンダッシュと言うよりドアガチャのイメージかな)、ログを見てても気持ちの良いものではない。そんなに見ていただく内容もない自己満足のサーバーなだけに、こう言うのだけでアクセスが増えるのも何とも困ったものだ。

そこで、ファイヤーウォールのお世話になることになる。何も用事が無ければ全ポート閉じてしまうのが一番安全だけど、何のためのサーバーぞやということで、WEBサーバーもやりたいしメールサーバーも動かしたい。SSHも当然開けておかないと意味がないし。。。

SSHに関しては自分が使うだけなので、ポート番号を変更して鍵のないアカウントからはログイン出来ないようにすればとりあえず安心。WEBサーバーもそれほどいたずらされる心配も無いと思うが、一番怖いのは多分メールサーバーで25番からポート変更するわけにも行かないし、設定不備で世間に迷惑をかけることになりかねない。

引越前のサーバーだが、下のようなログが1日に何百何千と残ることがある

May  2 15:41:32 marocha postfix/smtpd[810548]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
May  2 15:41:32 marocha postfix/smtpd[810542]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:41:42 marocha postfix/smtpd[810542]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: Connection lost to authentication server
May  2 15:41:43 marocha postfix/smtpd[810559]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:41:54 marocha postfix/smtpd[810559]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: Connection lost to authentication server
May  2 15:41:54 marocha postfix/smtpd[810568]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:41:58 marocha postfix/smtpd[810568]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
May  2 15:41:58 marocha postfix/smtpd[810570]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:42:07 marocha postfix/smtpd[810570]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
May  2 15:42:07 marocha postfix/smtpd[810588]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:42:20 marocha postfix/smtpd[810588]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
May  2 15:42:20 marocha postfix/smtpd[810589]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:42:30 marocha postfix/smtpd[810589]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: Connection lost to authentication server
May  2 15:42:31 marocha postfix/smtpd[810590]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:42:41 marocha postfix/smtpd[810590]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: Connection lost to authentication server
May  2 15:42:42 marocha postfix/smtpd[810591]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:42:46 marocha postfix/smtpd[810591]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
May  2 15:42:46 marocha postfix/smtpd[810592]: connect from unknown[xxx.xxx.xxx.xxx]
May  2 15:43:15 marocha postfix/smtpd[810592]: warning: unknown[xxx.xxx.xxx.xxx]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
続きを読む…

データベース移植作業

ユーザーの作成

移動先のデータベースにも同じユーザーを作成しておきました(パスワードも同じにしておく)

データベースのバックアップ

root@xxxxx:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1094
Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| xxxxxxxx           |
| yyyyyyyy           |
| information_schema |
| mysql              |
| AAAAAAAA           |
| performance_schema |
| sys                |
| webdata            |
+--------------------+
8 rows in set (0.00 sec)

mysql>

バックアップするマシンのmysqlにrootユーザー(mysqlの)でログインし、データベースの一覧を確認する

同様にバックアップ先のマシンのデータベースを確認し、バックアップ先にないものをバックアップします。コマンドは mysqldumpを使用しました。とりあえず移植と言うことで深く考えずにバックアップ先にないものを個別にバックアップしました。

root@xxxxx:~#  mysqldump --lock-all-tables -u root -p --databases xxxxxxxx > xxxxxxxx

全てのデータベースを一度にバックアップする方法もありますが、システム用のデータベースも一緒になってしまい、バックアップ先で競合するのを避けるため、個別としました。

次にバックアップ先のマシンでリストアします。

user@yyyy:~$ mysql -u root -p < xxxxxxxxx

全てのデータベースをリストアして無事終了