DKIM, DMARC さくらインターネットは手動設定、ロリポップは自動で対応されてた

DMARC は届かないことを通知するメールアドレスを指定できるが、ロリポップで指定する場合は、ネームサーバーを変更する必要がありそうだ。

2024年02月02日本日、ここまで、

  • コアサーバーV2 10/10
  • さくらインターネット スタンダードプラン 10/10
  • ロリポップ 10/10
  • Bizメール&ウェブ 対応中

ネームサーバーを指定してドメインの x._domainkey. を取得するphpコード

$hostname = 'example.com';
$ns_server = 'ns1.example.com';
$dns_records = dns_get_record('x._domainkey.'.$hostname, DNS_TXT, ['nameservers' => [$ns_server]]);

foreach ($dns_records as $record) {
    if (strpos($record['txt'], 'v=DKIM1') !== false) {
        echo $record['txt'];
        break;
    }

コアサーバーのsshで取得できる文字列は取得できなかった。やはり公開エリアからは権限がないかな。

ChatGPT すご。

コアサーバー ウェブ アクセスログを自動保存(テスト中)

ログを調べなければいけない事案があったので、FTPでログファイルを取り出した。
コアサーバーのサポートへ問い合わせたが、ログファイルは7日間だけで変更はできない。

  • ホームページを閲覧すると、ログファイルをコピー。
    丸一日1回もアクセスがないと動作しない。。。
  • コピーがすでにある場合は、「logfile:ok」
  • 何かしらでコピーできていない時は、「logfile:error」
  • ファイル名を「月日」にすれば1年前は上書きされるので1年分の容量
    ファイル名を「日」にすれば1月前は上書きされるので1月分の容量

  • 月替わりなどまだチェック必要
  • 20230308 変更、0:01 にアクセスがあると1日前のログがコピーされてしまいそうなので、6時以降のアクセスでコピーすることにした

date_default_timezone_set('Asia/Tokyo');
$ymd = date("Ymd");
$mmdd = date("md");
$jikan = date("G");
$yyy = date("Y");
$mmm = date("M");
// コアサーバーのログファイル名 May-2023.tar.gz
$logfile = "$mmm-$yyy.tar.gz";
$logfiletoday = "/home/ユーザ/domains/ドメイン.jp/logs/$logfile";
// ファイル名を変数に格納
$filename = "/home/ユーザ/domains/ドメイン.jp/public_html/秘密-logs/$mmdd.tar.gz";
// ファイルが存在するかチェックする
if (file_exists($filename) and $jikan > 6) {
echo "logfile:ok";
} else if (copy($logfiletoday, $filename)) {
echo $logfile;
} else { echo "logfile:error"; }

追記

月はじめ1日、todayのファイルが2つできる時間帯があるようだ。コピーするタイミングによっては情報に欠落が出る場合がある。

Nextcloud 管理画面からのアップデート ”Update in process.” で進めない。コアサーバ V2での対処

1)Nextcloud でログイン後の管理ページからアップデートをかけたところ失敗。

Update in process. と表示されて何も操作できなくなった。

2)コアサーバーのコントロールパネル

インストールしたときの画面で見ると、アップデートボタンが赤くなっているので、クリックしてみたら、アップデートが通った。

アップデート無事終了。何度か画面がタイムアップしてしまったけど、アップデート自体は進んでおり、再接続することで確認できた。
実際、ブラウザで Nextcloud へアクセスすると正常に動作できていた。

3)メモ

  • インストール時に、コアサーバのツールからインストールしている必要がある。
  • 以前別のサーバで Nextcloud を手動でインストールした関係で、Nextcloud  をNextcloud の画面からアップデートした経験があったので、そこからのアップデートを試みてしまった。
  • コアサーバからの更新をうながすメールにも、「Webホスティングのコントロールパネルへ」とある。

 

追記:2023.06.21現在 Nextcloud Hub 3 (25.0.7) アップデートをかけると壊れる

コアサーバーのコントロールパネルからインストールしたアプリとして、ver.26 へアップデートをかけると NextCloud が壊れる。
直前にバックアップがあるなら、新たに、「Nextcloud Hub 3 (25.0.7)」をインストールしてバックアップをインポートすることになる。
5月に、バックアップも削除してしまったので、まっさらな Nextcloud で再出発となった。100ギガ以上使っていて、ダウンロードも何もできなかった。
ver.26 を新規でインストールも失敗する。
たぶん php のモジュールとかの関係と思おうが、カスタマイズしたり、サポートをうけたりと手間をかけすぎないようにしたい。

コアサーバー V1にてカスタムフィルターで「ごみ箱」を指定したときの確認方法

1)基本的にはマニュアル通り

https://help.coreserver.jp/manual/v1/customfilter/

2)受信方法の「破棄」

途中の設定に、受信方法の「破棄」というのがある。
言葉的に、こんな設定で良いの?と思ってしまうが、破棄前提で条件分岐で通常のメールは届くように設定してあげることになる。

  1. 破棄できる前提のフィルター
  2. 条件で対象のメールの処理を決める
  3. 条件に合わなかった、正常のメールは、通常のメールボックスへ届ける「」

3番をしてしてあげないといけないところが、敷居が高い。

3)設定してみた

旧コンパネで確認できる設定例

:0HB
*
* ? /usr/bin/nkf -meZ2 | sed ‘s/[[:space:]]//g’ | grep ‘良くない言葉’
$MAILDIR/.Trash/new
:0HB
* .*
$MAILDIR/

説明:「良くない言葉」というテキストがあると、「Trash」フォルダに入る。
この「Trash」がくせ者で、手元のメールアプリのごみ箱へ受信するというものではない。
(IMAPで試せば、ごみ箱も同期するかもしれないが試していない。)

ウェブメールで確認で確認すると、ごみ箱に入った。

他のアカウントを試すと、ごみ箱がない!

ウェブメールで確認しようとするが、Roundcube(ラウンドキューブ)で確認すると、デフォルトだとごみ箱が表示されない。
Roundcube(ラウンドキューブ)の場合は、アカウントでログイン後に、送信や、削除の操作をしないとフォルダを表示しない。

デフォルトのウェブメールアプリ、SquirrelMail(リスのアイコン) でログインして確認するのが良いが、SquirrelMail だと、文字化けしたり、レイアウトが崩れたりで、使用を避けていた。

4)カスタムフィルターで「ごみ箱」を指定したときの確認方法

ウェブメールでログインして確認

Roundcube(ラウンドキューブ)

https://サーバ.coreserver.jp/mail/src/login.php

SquirrelMail(リスのアイコン)

https://サーバ.coreserver.jp/mailr/

Roundcube(ラウンドキューブ)で確認する場合は、削除の操作をして、「ごみ箱」を表示させよう。

 

メモ

ごみ箱から、削除されるタイミングはわかっていないけど、「ごみ箱」確認しないと大量残り続ける可能性があるね。

 

コアサーバー Mac ターミナルでSSH接続

1)参考

コアサーバー

https://help.coreserver.jp/manual/v2/ssh-use/

Tera Term で進めている。Windows のコマンドプロンプトも SSH のコマンドは使えるが、証明書を使う仕様の接続には対応していないようだ。
自分の環境は、Mac に 仮想で Windows と CentOS を入れている。Tera Term をインストールすることなく作業を進められるなら、都合がよい。

mac でコアサーバーに接続 参考サイト

https://oncologynote.com/?dcc506d23f

2)コアサーバで用意できる情報、ファイル

  • サーバー:ユーザー@v2002.coreserver.jp
  • 証明書ファイル:文字列_rsa ダウンロードして手元のMacで使う
  • パスワード:自分で決めるパスワード

3)Mac での操作

mac ターミナルにて

  1. SSH ユーザー@v2002.coreserver.jp -i ~/.ssh/文字列_rsa
  2. エラーになるが、「/Users/マックユーザー/.ssh/」と「.ssh 」のフォルダができる。
    「.ssh」でなければならない必要はない。
    後に
    SSH ユーザー@v2002.coreserver.jp -i /Users/マックユーザー/Downloads/文字列_rsa
    でも接続できた。
  3. 再び
    SSH ユーザー@v2002.coreserver.jp -i ~/.ssh/文字列_rsa
    参考サイトの説明通り、権限で注意される
  4. chmod 600 /Users/マックユーザー/.ssh/文字列_rsa
  5. 再び
    SSH ユーザー@v2002.coreserver.jp -i ~/.ssh/文字列_rsa

4)メモ

隠しファイルが見えない場合は:Shift + コマンド + ピリオド

証明書の場所:「ダウンロード」でもOK、権限の変更は必要
下記でも接続できる
SSH ユーザー@v2002.coreserver.jp -i /Users/マックユーザー/Downloads/文字列_rsa

コアサーバでのコマンド作業が終わったら:exit でログアウト

近々作業がない場合は、コアサーバのSSH設定を削除、手元の証明書を削除しておくことにした。

 

コアサーバー DKIM 設定方法

1)参考サイト

https://hkzo.org/2021/09/dkim-enabled-coreserver-v2/

上記の様子で、2022年4月上旬までは、できていたのだけれども、うまくいかなくなった。

「dig txt x._domainkey.example.com. @xxxx.coreserver.jp」がきかない。

connection timed out; no servers could be reached

となる。

2)外部からサーバーを指定してだめなら、サーバーの中で

いちいちバリュードメインのサポートを受けるのも時間がかかる。
ぼんやりコマンドを眺めていると、サーバーを指定して、txt を問い合わせている。
DNSに書き込む前なら、サーバー内で問い合わせられるかな?

ということで、SSHを試すことにする。

3)コアサーバーでSSH

参考サイト

コアサーバー

https://help.coreserver.jp/manual/v2/ssh-use/

アプリ Tera Term

<<リンク先が拒否しているようで表示できないので別ページで、mac で使えるように説明する予定。>>

ssh で

dig txt x._domainkey.****.co.jp

→2022.06.16 追記上記ではダメ、dig txt x._domainkey.****.co.jp. @xxxx.coreserver.jp

として、結果が表示され、文字列をコピーできる。
(1)の参照サイトのように、改行や、「’ ‘」がないようにして、ドメインのDNSへ追記する。

4)チェック

check-auth@verifier.port25.com へメールを送信

==========================================================
Summary of Results
==========================================================
SPF check:          pass
"iprev" check:      pass
DKIM check:         pass

==========================================================

5)CORESERVER V2 DKIM 設定方法まとめ (2022.06.22追記)

  1. コアサーバーコントロールパネル>メール>メールアカウント設定

    DKIMを有効
  2. ターミナルで
    dig txt x._domainkey.****.jp. @v200*.coreserver.jp
    としても
    connection timed out; no servers could be reached
    だったときは、SSHで問い合わせる
  3. コアサーバーコントロールパネル>ツール>SSH
    キーを作成
  4. コアサーバーコントロールパネル>ツール>ファイルマネージャー
    .SSH の中にある、(3)の操作でできた「ssh_rsa」ファイルをダウンロード
    ※ダウンロードの際に、余計な拡張子はつかない(2022.07.03追記 .htmlが付くが、ファイル名をssh_rsa.htmlとして進めてもOK)
  5. ダウンロードしたファイルをデスクトップに配置
    ターミナルにて、
    ・ディレクトリを移動
    $ cd /Users/macユーザー名/Desktop
    ・ファイルの権限を変更しておく
    $ chmod 600 ssh_rsa
  6. SSH接続
    ターミナルにて、
    SSH *****@v200*.coreserver.jp -i /Users/macユーザー名/Desktop/ssh_rsa
    パスワードを聞かれる<Enter passphrase for key ‘/Users/macユーザー名/Desktop/ssh_rsa’:>
    パスワード入力
    SSH接続できると、行の頭が下記になる
    [*****@v200* ~]$
  7. SSH で DKIM 問い合わせ
    [*****@v200* ~]$ dig txt x._domainkey.*****.com. @v200*.coreserver.jp
    応答のあったtxtをコピーして
    p= を「’ ‘」を除いて一行に編集
  8. DNS設定に追記する
    txt x._domainkey.*****.com. v=DKIM1; k=rsa;p=<一行に編集した文字列>
  9. 普通にターミナルから問い合わせると応答するようになる
    dig txt x._domainkey.****.jp.
  10. メールアプリのアカウントから、
    check-auth@verifier.port25.com へメールを送信するなどしてDKIM が pass するかチェック

 

2023.07.25 追記========================

コンパネに表示されるようになっていた。

意図せず自分の契約しているサーバに攻撃者扱いされる

1)自分契約しているサービスなのに接続できない

コアサーバーはメールアカウントを誤った状態で設定していると、自分が契約しているサービスなのに、利用できなくなります。

・V1プランは、メール接続のみ。ウェブメールの利用はできる。

・V2プランは、メールもウェブも自分のサービスに接続できなくなる。

2)回復方法

拒否されている回線から、契約しているサービスのコントロールパネルにログインして、しばらく待つ。

3)原因

自分の場合は、iPhone でした。サーバーを乗り換えて、パスワードや、アカウントの接続情報が変わったのに、エラー表示もないまま、接続を繰り返して、ブロックされてしまいました。

他の人の場合、Windows メール
なんとバックグランドでしれっと動いている。
何度となく、outlookなどの設定を見直しても、原因がわからないのはこのため。
よく見かける、設定方法を解説したページでも、outlook と Windowsメールの設定が混在している説明が多い。

特殊なケースとしては、Windows10 なのに、Windows live メール を使っていたケース。
これは、実機を見ていないのだが、PCを利用していた人は気が付かない状態で動いていた。
Windows live メール はサポートも切れているし、Windows live メール からメールを送信すると、迷惑メール扱いされる可能性が大きいから、メールアプリとしては使うのを避けたい。
それでも、カレンダー機能など使い慣れているから、使い続けている人がかなりいるようだ。

いずれにしろバックグランドで、エラー表示が表に出てこないうちに、接続エラーを何度も繰り返して、自分の契約しているサーバからブロックされてしまうという、切ない事態になってしまう。

または、ほかのサーバー、以前のサーバーに「攻撃」を繰り返す状態が続いてしまう。
見直したいものだ。

コアサーバー v2002 で Nextcloud Hub 23.0.0 インストール

症状

v2001はそのままで、Nextcloud Hub 23.0.0 インストールできたが、v2002 では思うようにいかなかった。

  • コントロールパネルの「ウェブ」>「ツール」からのインストールでエラー表示が出る。
  • アクセスすると、画面は真っ白。
  • ファイルを確認すると、設定ファイルができていない。
  • エラーを知らせるメールが届くが、容量は?データベースは?見当違いに思える内容が届く。
    技術的なエラー:
    Error: A database query has failed. Is the entered database information correct? Does the account have available disk space?type = mysql
    host = localhost
    database = ***_nc2
    username = ***_nc2
    password = **HIDDEN**Technical information:
    method = query
    arguments = array ( 0 => ‘SELECT u.`uid` FROM `nc_users` u, `nc_group_user` g WHERE u.`uid`=g.`uid` AND g.`gid`=\’admin\’ LIMIT 1′, 1 => NULL, 2 => ‘uid’,)

    errstr =

    Technical Error: 1146 Table ‘***_nc2.nc_users’ doesn’t existSELECT u.`uid` FROM `nc_users` u, `nc_group_user` g WHERE u.`uid`=g.`uid` AND g.`gid`=’admin’ LIMIT 1

サポートに連絡した後に、phpのバージョン変更を試してみようと考えたところに、返事が来た。

解決策

phpのバージョンを変える。おまじないかもしれない設定もあり。いわれるとおりにしてみた。

結果

インストールできました。

2022.02.02 追記

2022年2月2日現在に、v2002 のサーバー申し込みができない状況になっている。
メンテも入っているようなので、上記のようなインストールできない&解決策は必要なくなっているかもしれません。

自分の契約しているサーバーに自分だけ接続できない時

自分のサーバーから、レンタルサーバーへ引っ越しした。
数日経って、サイトにもメールにもアクセスできない状態になってしまった。

プロバイダーの回答:
アクセス制限をすることはいっさいない。telnet を勧められた。Mac の端末から問い合わせたので、Mac 用に homebrew で利用する方法だったが、Android のアプリで探して、Android Fing というアプリを使った、
Fing > ネットワークのトラブル・・・>  Traceroute

タップするだけで、サーバーまでのIPアドレスのリレーを表示してくれた。最後のゴールを意味するフラッグがなぜか愛おしかった。
問題の接続できないサーバーもは、あるIPアドレスで止められていた。
問題のない接続では、あるIPアドレスの直後が目的のIPアドレス。
この情報を使って、サーバーのサポートに問い合わせた。

サーバー側の回答:
メールアカウントに繰り返し間違った情報でアクセスがあったので遮断するようになっていたとのこと。問い合わせと同時に制限を解除してくれていた。

当該のアカウントは iPhone に設定していたものだ。メインの送受信に使っていたアカウントではなかったので、iPhone ではエラーとか表示は一切なく、放置してしまった結果、サーバーのアクセス制限を誘発してしまった。

自分で自分の首を絞める、皮肉な経験だった。