ゆう's Blog
main.cf と master.cf

main.cf は全体のデフォルト設定
master.cf はポートごとの上書き設定

main.cf

smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination message_size_limit = 10485760 smtpd_tls_security_level = may smtp_tls_security_level = may smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1 smtp_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1 smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache

master.cf(submission 587)

submission inet n - n - - smtpd # -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes

master.cf(smtps 465)

smtps inet n - n - - smtpd # -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes

Androidスマホを探す

・PCまたは別のスマホからアクセス
Web版:https://www.google.com/android/find
・紛失したスマホと同じ Googleアカウントでログイン
・地図上にスマホの現在地が表示される(おおよその位置)

できること
・位置を確認
GPS / Wi‑Fi / モバイルデータから現在地を表示
・音を鳴らす
マナーモードでも最大5分間着信音を鳴らせる
・デバイスをロック
画面ロック+拾った人向けメッセージ表示が可能
・データ消去
最終手段。初期化後は位置追跡ができなくなる

事前に必要な設定
・位置情報がON
・デバイスを探すがON(通常は自動でON)
・Googleアカウントにログイン済み
・ネット接続がある状態(Wi‑Fi / モバイルデータ)

探せないケース
・電源OFF
・バッテリー切れ
・ネット未接続
・Googleアカウントからログアウト済み
この場合は最後に検出された位置が表示されることがあります。

mysqldump

テーブル名を指定するだけで、個別テーブルのバックアップができます。
複数テーブルもスペース区切りで並べるだけです。

mysqldump -u root -p app_db users > users.sql

テーブル構造だけ

mysqldump -u root -p app_db users --no-data > users_schema.sql

データだけ

mysqldump -u root -p app_db users --no-create-info > users_data.sql

GRANTとREVOKE

GRANT は 上書きではなく追加
権限を減らしたいときは REVOKE が必須

・GRANT は追加のみ(上書きしない)
・REVOKE は削除のみ(他の権限に影響しない)

操作何が起きる?
GRANT SELECTSELECT が追加される
GRANT ALL全権限が追加される
REVOKE UPDATEUPDATE だけ消える
REVOKE ALL PRIVILEGESその DB に対する権限が全部消える

ユーザー権限は SHOW GRANTS で確認する

SHOW GRANTS FOR 'app_user'@'localhost';

USAGE(= 権限なし)が全体に付与されている
最終的な権限はこれらの“和集合”

データベースを DROP すると、その DB に対する権限は自動で削除される
ただし ユーザー自体は残る
他の DB や GLOBAL 権限には影響しない
MySQL は内部的に「存在しないデータベースに対する権限」を保持しない設計になっています。

FLUSH PRIVILEGES が必要なのは

“権限テーブルを直接編集したときだけ”

GRANT / REVOKE / CREATE USER / DROP USER では 不要。
実務では手動編集は避けるべき、MySQL は GRANT / REVOKE を使う限り自動で反映してくれる。

データベースの正しい流れ

① root で DB を作る(管理者作業)

CREATE DATABASE app_db;

② root でユーザーを作る(管理者作業)

CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'xxx';

③ 必要最小限の権限だけ与える

GRANT SELECT, UPDATE, DELETE ON app_db.* TO 'app_user'@'localhost';

④ アプリはそのユーザーで DB に接続する

DB 作成
テーブル作成
ユーザー作成
権限管理
バックアップ
リストア
これらは root だけがやればよい。

自宅サーバーでの IPv6 設定

DNS だけ手動固定
IPv6 アドレスとゲートウェイは自動

ipv6.method: auto ipv6.addresses: -- ipv6.gateway: --

VPS と違う点
項目自宅サーバーVPS
IPv6 アドレス自動(SLAAC)手動(固定値)
IPv6 ゲートウェイ自動(RA)手動(固定値)
RAルーターが送る多くの VPS は送らない
手動設定の必要性不要必須
DNS サーバーの設定方法(nmcli)

まず現在の接続名を確認:

nmcli connection show

例として接続名が Wired connection 1 だった場合:

nmcli connection modify "Wired connection 1" ipv4.dns "1.1.1.1 8.8.8.8 9.9.9.9" nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes nmcli connection modify "Wired connection 1" ipv6.dns "2606:4700:4700::1111 2001:4860:4860::8888 2620:fe::fe" nmcli connection modify "Wired connection 1" ipv6.ignore-auto-dns yes nmcli connection up "Wired connection 1"

確認

nmcli connection show "Wired connection 1" | grep dns

Public DNS
1. Cloudflare(1.1.1.1 / 2606:4700:4700::1111)
2. Google(8.8.8.8 / 2001:4860:4860::8888)
3. Quad9(9.9.9.9 / 2620:fe::fe)

OpenSSL で SMTP サーバーに直接接続できるか確認する

TLS のハンドシェイクまで確認できるため、 SMTPポートが開いているか+TLSが正しく通るかを同時に判定できます。

587番(STARTTLS)

openssl s_client -starttls smtp -connect smtp.example.com:587

465番(SMTPS)

openssl s_client -connect smtp.example.com:465

▼ 成功する場合
大量の証明書情報が表示される
最後に 250 STARTTLS や 220 などの応答が返る

▼ 失敗する場合
Connection timed out(ポートが塞がれている)
Connection refused(相手が拒否)
何も返らず固まる(アウトバウンド制限)

75歳まで繰り下げた年金

75歳になっても自動では支給開始されません。必ず「請求手続き」が必要です。
放置していても年金は振り込まれません。

● 75〜79歳で請求した場合
75歳時点の増額率(最大84%)で計算された年金が支給開始
75歳の翌月から請求月までの未支給分が 一括で支払われる

● 80歳以降で請求した場合
過去5年分のみ 一括で支給
→ それより前の分は 時効で受け取れない