DRBDに挑戦 ; バージョンを9.0にアップ その3

いよいよdrbdを削除していきます。
# rmmod drbd → drbd.koを削除
# lsmod |grep drbd → 削除されているか確認。何も表示されずプロンプトが出ればOK
# yum remove kmod-drbd84 → 私の場合は凄く時間がかかった。
# yum remove drbd*  → drbd84-utils を削除
# rpm -qa | grep drbd → 念の為、drbd関連が無いか確認。何も表示がなければOK

そして、drbd9.0をインストールしていきます。
# yum install kmod-drbd90 drbd90-utils → kmodのインストールに時間がかかった。
# modprobe drbd → drbdのインストール
# cat /proc/drbd → バージョンを調べる
version: 9.0.22-2 (api:2/proto:86-116)
GIT-hash: 719792f2cc1360c65c848ffdb66090959e27fde5 build by akemi@Build64R7, 2020-09-29 17:13:49
Transports (api:16):

メタデーターの変換。DRBD 8とDRBD 9では内部の形式が異なるため、drbdadm create-mdコマンドを実行して、メタデータを変換します。
# drbdadm create-md r0 (注:データーのあるディスクに行ってもデータは消えない)
–== Thank you for participating in the global usage survey ==–
The server’s response is:

you are the 31399th user to install this version
You want me to create a v09 style flexible-size internal meta data block.
There appears to be a v08 flexible-size internal meta data block
already in place on /dev/vdd at byte offset 499826814976

Valid v08 meta-data found, convert to v09?
[need to type ‘yes’ to confirm] yes

md_offset 499826814976
al_offset 499826782208
bm_offset 499811528704

Found xfs filesystem
488097196 kB data area apparently used
488097196 kB left usable by current configuration

Even though it looks like this would place the new meta data into
unused space, you still need to confirm, as this is only a guess.

Do you want to proceed?
[need to type ‘yes’ to confirm] yes

Writing meta data…
New drbd meta data block successfully created.
success
最後にサクセスと表示されているので成功したようです。

プライマリーとの同期をを再開。
# drbdadm up r0
# drbdadm status
r0 role:Secondary
disk:UpToDate
smb0.kinryo.net role:Primary
peer-disk:UpToDate
セカンダリーとUpToDateになっているので同期しています。
ちなみに、8.4で使っていた cat /proc/drbdではこの情報は出てきません。
# crm_mon -1 → リソースの状態を調べる
Node smb1: standby

Online: [ smb0 ]
Active resources:
Resource Group: smbgroup
vipcheck_res (ocf::myres:VIPcheck): Started smb0
VirtualIP (ocf::heartbeat:IPaddr2): Started smb0
FS_DRBD0 (ocf::heartbeat:Filesystem): Started smb0
SAMBA (systemd:smb): Started smb0
NAMED (systemd:nmb): Started smb0
Master/Slave Set: MS_DRBD0 [DRBD0]
Masters: [ smb0 ]
あれスタンバイのままだ
# pcs cluster unstandby smb1 → smb1をオンラインにする

# crm_mon -1 → 再び確認
Stack: corosync
Current DC: smb0 (version 1.1.23-1.el7_9.1-9acf116022) – partition with quorum
Last updated: Thu Feb 4 15:45:54 2021
Last change: Thu Feb 4 15:45:45 2021 by root via cibadmin on smb1
2 nodes configured
7 resource instances configured
Online: [ smb0 smb1 ]
Active resources:
Resource Group: smbgroup
vipcheck_res (ocf::myres:VIPcheck): Started smb0
VirtualIP (ocf::heartbeat:IPaddr2): Started smb0
FS_DRBD0 (ocf::heartbeat:Filesystem): Started smb0
SAMBA (systemd:smb): Started smb0
NAMED (systemd:nmb): Started smb0
Master/Slave Set: MS_DRBD0 [DRBD0]
Masters: [ smb0 ]
Slaves: [ smb1 ]
やっと、両方共オンラインになった。
へーーー smb0が8.4でsmb1が9.0でも動くんだ!!

これでsmb1が9.0になったので、smb0を同じようにやっていきます。

2022-2-18 追記:
このままだとdrbdmanageがありません。又、elrepoにも無いようです。そこでdrbdmanageをインストールしていきます(参照:https://qiita.com/nagase/items/8316e02f16acf4567326
# yum install rpmdevtools git libxslt pygobject2 help2man
# git clone https://github.com/LINBIT/drbdmanage.git

# cd drbdmanage
# sed -ie ‘s/drbd-utils/drbd90-utils/g’ setup.cfg
# make rpm
# ls dist
drbdmanage-0.99.18-1.noarch.rpm drbdmanage-0.99.18.tar.gz drbdmanage-0.99.18-1.src.rpm
# yum localinstall dist/drbdmanage-0.99.18-1.noarch.rpm

これで、drbdmanageが使えるようになるが、私はdrbdmanageの使い方がよくわからないし、NODEも2つしかないので8.4のままにしている。

カテゴリー: DRBDに挑戦(CentOS7) | コメントする

DRBDに挑戦 ; バージョンを9.0にアップ その2

yumでdrbdをインストールする為にelrepoをインストールしますが、これは8.4をインストールする時にやっていますのでまだの方はここを参考にしてインストールしてください。先ずはインストールされているCentOSのバージョンをチェック
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
と7.9がインストールされています。次にdrbdのバージョンは
# yum list installed |grep drbd
drbd84-utils.x86_64       9.12.2-1.el7.elrepo            @elrepo
kmod-drbd84.x86_64     8.4.11-1.2.el7_8.elrepo     @elrepo
elrepoに何があるか確認。https://elrepo.org/linux/elrepo/el7/x86_64/RPMS/ を調べると
drbd90-utils-9.12.2-1.el7.elrepo.x86_64.rpm
kmod-drbd90-9.0.22-3.el7_9.elrepo.x86_64.rpm
がありました。(7.8用のkmodもあった)

これで下調べが終わりましたので、早速アップデートにかかりますが、
https://blog.drbd.jp/2020/07/drbd-8_to_drbd-9/ を参考にして行きます。
まずはどっちのノードがオンラインか調べてスレーブ側をスタンバイにします。
# pcs status
Cluster name: mycluster
Stack: corosync
Current DC: smb1 (version 1.1.23-1.el7_9.1-9acf116022) – partition with quorum
Last updated: Tue Feb 2 18:30:35 2021
Last change: Tue Feb 2 16:50:18 2021 by root via cibadmin on smb0

2 nodes configured
7 resource instances configured

Online: [ smb0 smb1 ]

Full list of resources:

Resource Group: smbgroup
vipcheck_res (ocf::myres:VIPcheck): Started smb0
VirtualIP (ocf::heartbeat:IPaddr2): Started smb0
FS_DRBD0 (ocf::heartbeat:Filesystem): Started smb0
SAMBA (systemd:smb): Started smb0
NAMED (systemd:nmb): Started smb0
Master/Slave Set: MS_DRBD0 [DRBD0]
Masters: [ smb0 ]
Slaves: [ smb1 ]

Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
とsmb0がマスターですので
# pcs cluster standby smb1
でスタンバイさせる。pcs statusでsmb1がstandbyになっている事を確認

長くなってきたのでその3へ

カテゴリー: DRBDに挑戦(CentOS7) | コメントする

DRBDに挑戦 ; バージョンを9.0にアップ その1

ここいらでDRBDのバージョンを上げようと思う。その際の手順を示す

  1. インストールされているdrbdを調べる
  2. スレーブをスタンバイ
  3. drbd8.4を削除する
  4. drbd 9.0をインストール
  5. メタデーターの変換
  6. クラスターシステムの復旧
  7. もう一方のノードをバージョウンアップ(1から6をやる)

こんな感じで進めて行きます。

DRBDに挑戦 ; バージョンを9.0にアップ その2

カテゴリー: DRBDに挑戦(CentOS7) | コメントする

DRBDに挑戦 ; よく使うコマンド:9

すぐ忘れるのでメモ

PCS エラーの消去:pcs resource cleanup
スタンバイ:  pcs cluster standby all(又はnode名)
アンスタンバイ:pcs cluster unstandby all(又はnode名)
スプリットブレイン解消:
    cs:standalone ro:secondaryを確認
    drbdadm — –discard-my-data connect r0
    もう一方を drbdadm connect r0
DRBD状態確認
   drbdadm status r0(リソース名)   ver 8.4 ver9. で使える
   cat /proc/drbd      vir 8.4のみ ver9. では状態は表示されない

カテゴリー: DRBDに挑戦(CentOS7) | コメントする

KVMで作ったサブホストで日本語の切り替えに漢字キーが使えない

色々いじったが原因が分からないので暫くほって置いた。この時の状況は漢字キー(全角半角)とひらがな/カタカナが効かないだけで、画像2にあるように Alt+@ではひらがな入力と英数入力が押すたびにトグルするので日本語から英語に行ったり来たりは出来るが、二ツのキーを押すのと、この切り替えは漢字キー一つでやるのに慣れているので、どうも面倒臭い。

 

 

しばらくして、サブホストの設定を見直している時に”はっ”と気が付いた。

 

画像1はサブホストの設定画面である(これは仮想マシンマネージャーのsmb0を選び”開くアイコン”をクリックし、赤いアンダーラインのある”電球”をクリックし、”ディスプレー Spice”を選んだもの)このキー配列に”ja”を選び、適用をクリックすると、無事サブホストでも、漢字キーで日本語/英語の切り替えができるようになった。

カテゴリー: Linux運用時のメモ | コメントする

一週間も経たないのにまたAMAZONが語られる危険メール

いつも言っているが、メールを見るときは

1:差出人を見る事(画像の1)。今回は本文はアマゾンと言っておきながら、差出人はアマゾンでない info@em2302.kt.city。今回はこれですぐわかるが、ここは偽装ができるので、amazonになっていたり、自分のメアドになっていたりする。

2:これが一番大事。画像2をクリックするとそこに飛ぶのだが、どこに飛ぶかを確認できる。それにはマウスをオレンジの確認用アカウントの上に持っていく(絶対にクリックしてはいけない、)と、画像の3の下に赤線のアンダーラインで示した所が実際に飛ぶ場所。https://u7815977.ct.sendgrid.net にとぶ。ほーらここはあまぞんでないよー これはTHUNDERBIRDというメールソフトの場合だが、ほかの物でも必ずどこかに表示される筈。

カテゴリー: 危険メールや手紙、IP | コメントする

またまたアマゾンが語られる(狙われてるなー)

コロナの自粛生活の為かまたまたAMAZONが語られている。

この所悪さをする奴のやり方が巧妙になって来ている。は差出人だが偽造である。なんでこのアドレスが使われたか?実はこのWEBに良くアクセスし、その確認メールがくるがそのメアドが noreply@info.yachin-shien.go.jp である。と言う事は敵は私のメアドをウォッチしている事になる。気味が悪いけど防ぎようは無さそう。ちなみに昔はここが出鱈目なアドレスを使っていたが、最近のメールサーバーは差出人のアドレスが存在するかチェックをしていることが多いので、このように実際にあるメアドに偽装している。良くあるのは自分のメアドになっている。

問題はの所をクリックさせたいのだろうが、これが問題、ここにマウスを持って来ると実際に飛ぶアドレスが左下のに表示される(メールソフトはサンダーバードだが、ほかのソフトでも同じようなものが出る筈)ここには
https://www.amazboc.club/
となっている。はーー amazboc.club  よくもamazonに似たようなドメインだがここはアマゾンでは無い。ここをクリックすると、あなたは彼らの餌食になるよ!!!

何度もこのWEBに書いているが、クリックする場所にマウスを持って行き、このように表示されたとび先を必ずチェックしてね。

蛇足だが、上のようなとび先はURLと呼ばれ、このURLは一文字でも違うと別のURLとして登録出来てしまう。なので悪さをする奴は似たようなURLを登録している。

カテゴリー: 危険メールや手紙、IP | コメントする

4:設定時に躓いた事

メールソフト(thunderbird)の設定ミス 最初はvirtual domain でなく単独のメールサーバーでテストをし、その後virtual domainを導入していました。virtual domain 関連の設定をしたが、如何してもdovecot にログイン出来無い。その時のログは

Jan 08 10:09:00 auth-worker(13946): Info: sql(otake,xxx.xxx.xx.xx,<i1aZM1m4qOig7U0V>): unknown user
Jan 08 10:09:06 auth-worker(13946): Info: sql(otake,1xxx.xxx.xx.xx,<i1aZM1m4qOig7U0V>): unknown user
Jan 08 10:09:12 auth-worker(13946): Info: sql(otake,xxx.xxx.xx.xx,<i1aZM1m4qOig7U0V>): unknown user
Jan 08 10:09:14 imap-login: Info: Disconnected (auth failed, 3 attempts in 14 secs): user=<otake>, method=PLAIN, rip=xxx.xxx.xx.xx, lip=192.168.xx.xx, TLS, session=<i1aZM1m4qOig7U0V>

これはvirtual の設定をした後なので、ユーザー名の後にドメインが無いのがおかしい。dovecot の設定を色々見たが判らない。やっとの事でメールソフト側の問題である事が分かり thunderbirdのサーバー設定のユーザー名(N):にユーザー名@ドメイン名 とし、同じ様に、送信(SMTP)サーバーの設定のユーザー名(M):に同じものを設定設楽ログイン出来た。

メールの保存が本来と違う所に出来てしまう 私の場合、メールの保存場所は /Mail/ドメイン名/ユーザー名(ドメイン無し)だが、送信メールは本来の場所に保存されているが、dovecotでログインすると/Mail/ドメイン名/ユーザー名@ドメイン名が出来てそこを参照している。postfix は正常なので、dovecotの設定が間違えている筈。local.confの mail_location = maildir:/Mail/%d/%u になっていた。最後の%uはユーザー名@ドメイン名を指すのでこれが原因、ココの最後の %u を %n に変更したら正常になった。

dovecotにログイン出来無い これは結論から言うとpostfixadmin とdovecotの暗号化の違いが原因。これはhttps://www.kinryo.net/?p=1997 を参照して下さい

apacheの Alias の設定が出来無い /etc/httpd/conf.d/postfixadmin.conf を設定している時、本来の場所に飛ばない。この設定は
Alias /postfixadmin “/サーバーのルート/postfixadmin/public”としているが、どうしても最後のPublicでは無く、postfixadminに行ってします。これには二日間も原因が解らなかった。仕方無くアパッチの本家にアクセスし(http://httpd.apache.org/docs/2.2/ja/mod/mod_alias.html)このページの処理の順番を見て、もしやと思い、/etc/httpd/conf.d/ を探すと、在った。如何してこんな所に書いたか全くおかしいが、awreport.conf にAlias /postfixadmin “/サーバーのルート/postfixadmin の記入がある。しかもこのファイルはpostfixadmin.confより前にあるので、ここでヒットし、public に飛ばなかった!!!

カテゴリー: メールサーバーに挑戦 | コメントする

3:postfixadminのインストールと設定

ダウンロードはhttps://sourceforge.net/projects/postfixadmin/にReleased /postfixadmin-3.3.2/PostfixAdmin 3.3.2 – bug fix.tar.gzがありましたのが、私がインストールした時は3.2でしたので、この分の設定です。postfixadmin ディレクトリーを保存した所に INSTALL.TXT がありますのでこれに従って設定して行きますが、postfixadminへのアクセスの為にapacheの設定をします。/etc/httpd/conf.d/ にpostfixadmin.conf というファイルを作成
# gedit /etc/httpd/conf.d/postfixadmin.conf

Alias /postfixadmin "/xxxxxxxx/xxxxx/kinryo/postfixadmin/public"

<Location "/postfixadmin">
	Require all denied
	Require ip 127.0.0.1
	Require ip 192.168.xx.xx/24
	Require all granted
</Location>

一部に伏せ字があります。この設定は自分のネットワークからのみアクセスを許可しています。
# systemctl reload httpd
とし、設定を反映。

次はデーターベースの制作 (mysql(mariadb)自体は既にインストール済みです)
データーベースは mysql(mariadb)
其ユーザーは postfixadmin
データーベース名は postfix として作成
# mysql -u root -p
パスワードを入力
MariaDB [(none)]> create database postfix;
MariaDB [(none)]>grant all privileges on postfix.* to postfixadmin@localhost identified by ‘postfixadminのパスワード’;
MariaDB [(none)]>quit
作成したユーザーパスワードでログインできることを確認
# mysql -u postfixadmin -p
パスワードを入力

postfixadminはconfig.inc.phpと同じ場所に config.local.php というファイルを置いておくとデフォルトをオーバーライドしてくれるので、早速作成
# gedit /WEBのルートディレクトリ/postfixadmin/config.local.php


<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'xxxxxxxxxx';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
$CONF['default_language'] = 'ja';
?>

次は、template_c ディレクトリーの作成
# mkdir /WEBのルートディレクトリ/postfixadmin/template_c
postfixadmin ディレクトリー以下のオーナーをapacheにする。
# chown -R apache. /WEBのルートディレクトリ/postfixadmin

そしてブラウザで ドメイン/postfixadmin/setup.phpにアクセス

この画面は全く初めてアクセスすると上の画面とは若干違う(この画面は二回目以降の画面)ここで、管理者に自分のメールアドレスを入力し、設定するパスワードを二回入れ、管理者をクリックすると

赤字の最後の行の $CONF[‘setup_password’] で始まる行をconfig.local.phpにコピー

<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'XXXXXXXXX';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
$CONF['default_language'] = 'ja';

$CONF['setup_password'] = '07dfece4c2cce2b07b8bb1b8b477310b:7ab14259fc21b0e3a79610c5386d3f76a3f06c0a';
?>

これで、 ドメイン/postfixadmin にアクセスすると
そして、メアドとパスワードを入れ、ログインをクリックすると

これで、ドメインやメアドなどが作れる。

カテゴリー: メールサーバーに挑戦 | コメントする

2:dovecotの設定

dovecotの認証はmysql(mariadb)を使います、SSLはletsencryptを使用、ログはデフォルトのmail.logでは無くdovecot.logにする。imapとpop3の設定が入っているが、pop3はファイヤーウォールで禁止しています。SMTP認証もdovecot側でやります。
メールの保存場所には新規に作った50GBの領域である /Mail にドメイン/ユーザー名(メアドの@より前の部分)として保存、ここをアクセスするユーザーは新規にvmailというユーザーを作成し、其UID、GIDを10000とし、このユーザーでメールの保存などをする。
dovecotは、/etc/dovecot/local.conf を作る事でデフォルトの設定を変更できます。
まずはlocal.confを有効にする為に /etc/dovecot.conf の最後に !include_try local.conf を書き入れます。次に /etc/dovecot/conf.d/10-auth.conf を変更
#!include auth-system.conf.ext 先頭に#を入れてコメントアウト(これはシステムのログインを使う場合なので今回はコメントアウト)
!include auth-sql.conf.ext の先頭の#を削除し有効化。
次に、local.confを作成
# gedit /etc/dovecot/local.conf
protocols = imap pop3
listen = *
login_greeting = ready.
syslog_facility = local5
log_path = /var/log/dovecot.log
ssl = yes
ssl_cert = </etc/letsencrypt/live/mail.kinryo.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.kinryo.net/privkey.pem
mail_location = maildir:/Mail/%d/%n
first_valid_uid = 10000
first_valid_gid = 10000
mail_uid = 10000
mail_gid = 10000
#auth_mechanisms = plain
auth_mechanisms = plain login cram-md5
service auth {
     unix_listener /var/spool/postfix/private/auth {
          mode = 0660
          user = postfix
          group = postfix
          }
}
#protocol imap {
#     mail_plugins = quota imap_quota
#}
#protocol pop3 {
#     mail_plugins = quota
#}
#auth_verbose = yes
#auth_debug = yes

quotaは現時点では未使用(将来の為)、最後のauthから始まる二行はデバッグをするときに有効にする。ドメインやユーザーの作成はpostfixadminから行いますが、その際パスワードの暗号化を同じにするために、auth_mechanisms = plain login cram-md5 を入れてあります。ここはcram-md5 だけでいいと思いますが、未検証です。また、postfixadmin側の暗号化をcram-md5にするために、postfixadminの下にある config.inc.phpに
//$CONF[‘encrypt’] = ‘md5crypt’; の下に
$CONF[‘encrypt’] = ‘dovecot:CRAM-MD5’; を記入し保存。これでパスワードの暗号化がcram-md5になる。次にmysql(mariadb)関連の設定
# gedit /etc/dovecot/dovecot-sql.conf.ext
driver = mysql
connect = host=localhost dbname=postfix user=postfix password=xxxxxxx default_pass_scheme = CRAM-MD5
user_query = select concat(‘/Mail/’, maildir) as home, 10000 as uid, 10000 as gid FROM mailbox WHERE username = ‘%u’ AND active = ‘1’;
password_query = SELECT password FROM mailbox WHERE username = ‘%u’ AND active = ‘1’;

次はpostfixadminのインストールと設定。3:postfixadminのインストールと設定を参照

カテゴリー: メールサーバーに挑戦 | コメントする