2018年1月30日火曜日

Postfixで"unable to create lock file"でファイル送信が失敗する

Postfixでメールサーバー構築を行っていた際に、以下のようなメッセージが表示されて、メール配送に失敗する事象が発生した。

# postqueue -p
------------------------------
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
E632018BD679      429 Sat Jan 13 20:36:21  ex-1@example.com
(delivery failed to mailbox /var/spool/virtual/example1.com/ex1-1/Maildir: unable to create lock file /var/spool/virtual/example1.com/ex1-1/Maildir.lock: No such file or directory)
                                         ex1-1@example1.com

-- 0 Kbytes in 1 Request.
------------------------------

上記エラーをWebで調べても、なかなか同一事象が記載されたサイトがなく、解決に苦労したため、本記事にてエラーの原因と解決方法について記載する。

原因と解決方法

1つのメールサーバーで複数ドメインを扱う必要があったため、バーチャルメールボックスにてPostfixを設定していた。ユーザーとメールボックス紐づけは、/etc/postfix/vmailboxのファイルに以下のように記載をしていた。

# cat /etc/postfix/vmailbox
------------------------------
ex-1@example.com      example.com/ex-1/Maildir
ex-2@example.com      example.com/ex-2/Maildir
ex1-1@example1.com    example1.com/ex1-1/Maildir
ex2-1@example2.com    example2.com/ex2-1/Maildir
------------------------------

当初、上記記載に誤りはないものと考えていたが、結果としては前述したメール配送の失敗が発生した。

いろいろ切り分けた結果、以下のように記載を修正することで解決した。ユーザーのメールボックスの指定する際には、最後に「/」が必要だった。解決した後だから言えるが、たいしたことのない問題だった。

------------------------------
ex-1@example.com      example.com/ex-1/Maildir/
ex-2@example.com      example.com/ex-2/Maildir/
ex1-1@example1.com    example1.com/ex1-1/Maildir/
ex2-1@example2.com    example2.com/ex2-1/Maildir/
------------------------------

2018年1月16日火曜日

Windows Server 2012以降で.Net Framework 3.5をインストールする方法 (代替ソースパスの設定)

Windows Server 2012以降のOSでは、「サーバーマネージャー」の「役割と機能の追加」にて、.Net Framework 3.5を単純にインストールしようとすると失敗する。


この場合、「代替ソースパス」を指定することで解消するが、代替ソースパスを知らないと、どこを指定してよいものかわからないので、本手順にて代替ソースパスの設定手順について記載する。

手順

1. 予め、Windows Serverのインストールメディアをマウントしておく。今回はDドライブにマウントした想定で手順を記載する。

2. 「サーバーマネージャー」の「役割と機能の追加」を開き、「機能」の項目にて、「.Net Framework 3.5 Features」にチェックを付ける。


3. 確認画面で、「代替ソースパスを指定する必要がありますか?」という警告が表示されることを確認する。


4. ダイアログボックス下部の「代替ソースパスの指定」の文字をクリックする。


5. 代替ソースパスの指定にて、以下を指定する。今回はDドライブにWindows Serverのインストールメディアがマウントされている想定なので、環境に合わせてドライブレターは変更すること。また、この指定パスは、Windows Server 2012以降のインストールメディアで、すべて共通となっている。

 D:\sources\sxs


6. 「インストール」ボタンを押してしばらくすると、インストールが正常に完了するはずである。



2018年1月11日木曜日

Windows Server 2016で定期的にAdvapiがログイン失敗 (イベントID 4625)する問題

Windows Server 2016の評価版をインストールし使い始めたのだが、ログオンプロセスがAdvapiという名前のログイン失敗(イベントID 4625)が、1日に1、2回程度の間隔で定期的に発生するということがわかった。

この事象には、以下記事で述べたログイン失敗検知をZabbixで実装しているため気付くことができた。

・Zabbixを使ってWindowsとLinuxのログイン失敗を監視する
https://tech-mmmm.blogspot.jp/2017/06/zabbixwindowslinux.html

特にログイン失敗を監視していないような環境では特に気にしなくてもよいかもしれないが、発生条件と対策について調べてみた。しかし、本件に関する対策は、2018年1月時点では存在しないようである。本記事では、本事象の発生条件と、実施した対策について記載する。

事象

以下がイベントログ セキュリティの失敗の監査のメッセージとして表示される。セキュリティIDが「NULL SID」でログオンプロセスが「Advapi」となっており、通常ユーザーのログイン失敗ではないと想定される。

------------------------------
ログの名前:         Security
ソース:           Microsoft-Windows-Security-Auditing
日付:            2018/01/06 7:48:39
イベント ID:       4625
タスクのカテゴリ:      ログオン
レベル:           情報
キーワード:         失敗の監査
ユーザー:          N/A
コンピューター:       t1082w216.intrat.local
説明:
アカウントがログオンに失敗しました。

サブジェクト:
セキュリティ ID: SYSTEM
アカウント名: T1082W216$
アカウント ドメイン: INTRAT
ログオン ID: 0x3E7

ログオン タイプ: 5

ログオンを失敗したアカウント:
セキュリティ ID: NULL SID
アカウント名: -
アカウント ドメイン: -

エラー情報:
失敗の原因: ログオン中にエラーが発生しました。
状態: 0xC0000073
サブ ステータス: 0xC0000073

プロセス情報:
呼び出し側プロセス ID: 0x138
呼び出し側プロセス名: C:\Windows\System32\svchost.exe

ネットワーク情報:
ワークステーション名: -
ソース ネットワーク アドレス: -
ソース ポート: -

詳細な認証情報:
ログオン プロセス: Advapi  
認証パッケージ: Negotiate
移行されたサービス: -
パッケージ名 (NTLM のみ): -
キーの長さ: 0

~(以下略)~
------------------------------

発生条件

以下URLに同様の事象について記載されていた。

・KB3213986 Causes Logon Failures When Starting BITS Service - Please fix
https://windowsserver.uservoice.com/forums/304618-installation-and-patching/suggestions/18475483-kb3213986-causes-logon-failures-when-starting-bits

発生条件は、以下2つであることが記載されている。
  1. KB3213986がインストールされている
  2. BITS (Background Intelligent Transfer Service)が起動時
実際にイベントログを見ると、BITS起動のログとログイン失敗のタイミングは、秒数まで含めて、同一タイミングとなっていた。



また、先ほど記載したURLでは、この問題を修正するようMicrosoftに提言する内容となっているが、コメント欄を見る限りでは、残念ながら修正したという内容は記載されていない。

実施した対策 (効果なし)

①パッチのアンインストールを試みる

原因となっているOSパッチ「KB321396」は、Windows Server 2016に最初からインストールされており、アンインストールも不可となっていた。
※アンインストール可能な場合は、以下画面の「整理」の欄に「アンインストール」が表示される。


②OSパッチを最新化する

Windows Updateを行い、OSパッチを最新化してみたが、事象は改善しなかった。

③BITSを停止させる

BITSを停止することで解消するか確認してみた。「サービス」を開き、「Background Intelligent Transfer Service」を確認すると、「スタートアップの種類」が「手動」になっているはず。こちらを「無効」変更した。


しかし、無効にしてもOSが定期的に手動に変更してしまうようで、BITSを停止しても事象は改善しなかった。

上記3点の対応を実施しても事象は改善しないことがわかった。特に影響はなさそうな事象ではあるので、監視で検知しないよう監視マネージャー側で抑止するしかなさそうだ。

(2018/5/1追記)
Zabbixで抑止する手順については以下記事に記載した。

★関連記事はこちら↓

Zabbixで「Advapi」のログイン失敗イベントを無視する設定
https://tech-mmmm.blogspot.jp/2018/05/zabbixadvapi.html

人気の投稿